DRA: remove "source" indirection from v1 Pod API

This makes the API nicer:

    resourceClaims:
    - name: with-template
      resourceClaimTemplateName: test-inline-claim-template
    - name: with-claim
      resourceClaimName: test-shared-claim

Previously, this was:

    resourceClaims:
    - name: with-template
      source:
        resourceClaimTemplateName: test-inline-claim-template
    - name: with-claim
      source:
        resourceClaimName: test-shared-claim

A more long-term benefit is that other, future alternatives
might not make sense under the "source" umbrella.

This is a breaking change. It's justified because DRA is still
alpha and will have several other API breaks in 1.31.
This commit is contained in:
Patrick Ohly
2024-05-24 15:24:24 +02:00
parent bb95d084a2
commit bde9b64cdf
209 changed files with 117866 additions and 2126 deletions

View File

@@ -722,10 +722,8 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
pod1claim2 := b2.externalClaim(resourcev1alpha2.AllocationModeWaitForFirstConsumer)
pod1.Spec.ResourceClaims = append(pod1.Spec.ResourceClaims,
v1.PodResourceClaim{
Name: "claim-other",
Source: v1.ClaimSource{
ResourceClaimName: &pod1claim2.Name,
},
Name: "claim-other",
ResourceClaimName: &pod1claim2.Name,
},
)
@@ -1137,10 +1135,8 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
claim := claim
pod.Spec.ResourceClaims = append(pod.Spec.ResourceClaims,
v1.PodResourceClaim{
Name: fmt.Sprintf("claim%d", i+1),
Source: v1.ClaimSource{
ResourceClaimName: &claim.Name,
},
Name: fmt.Sprintf("claim%d", i+1),
ResourceClaimName: &claim.Name,
},
)
}
@@ -1421,10 +1417,8 @@ func (b *builder) podInline(allocationMode resourcev1alpha2.AllocationMode) (*v1
pod.Spec.Containers[0].Resources.Claims = []v1.ResourceClaim{{Name: podClaimName}}
pod.Spec.ResourceClaims = []v1.PodResourceClaim{
{
Name: podClaimName,
Source: v1.ClaimSource{
ResourceClaimTemplateName: ptr.To(pod.Name),
},
Name: podClaimName,
ResourceClaimTemplateName: ptr.To(pod.Name),
},
}
template := &resourcev1alpha2.ResourceClaimTemplate{
@@ -1464,10 +1458,8 @@ func (b *builder) podExternal() *v1.Pod {
externalClaimName := "external-claim" + b.driver.NameSuffix
pod.Spec.ResourceClaims = []v1.PodResourceClaim{
{
Name: podClaimName,
Source: v1.ClaimSource{
ResourceClaimName: &externalClaimName,
},
Name: podClaimName,
ResourceClaimName: &externalClaimName,
},
}
pod.Spec.Containers[0].Resources.Claims = []v1.ResourceClaim{{Name: podClaimName}}

View File

@@ -36,5 +36,4 @@ spec:
command: ["sh", "-c", "set && mount && ls -la /dev/"]
resourceClaims:
- name: resource
source:
resourceClaimName: external-claim
resourceClaimName: external-claim

View File

@@ -41,8 +41,6 @@ spec:
- name: resource2
resourceClaims:
- name: resource1
source:
resourceClaimTemplateName: pause-template
resourceClaimTemplateName: pause-template
- name: resource2
source:
resourceClaimTemplateName: pause-template
resourceClaimTemplateName: pause-template

View File

@@ -41,5 +41,4 @@ spec:
command: ["sh", "-c", "set && mount && ls -la /dev/"]
resourceClaims:
- name: resource
source:
resourceClaimTemplateName: test-inline-claim-template
resourceClaimTemplateName: test-inline-claim-template

View File

@@ -36,8 +36,7 @@ spec:
command: ["sh", "-c", "set && mount && ls -la /dev/"]
resourceClaims:
- name: resource
source:
resourceClaimName: shared-claim
resourceClaimName: shared-claim
---
apiVersion: v1
kind: Pod
@@ -57,5 +56,4 @@ spec:
command: ["sh", "-c", "set && mount && ls -la /dev/"]
resourceClaims:
- name: resource
source:
resourceClaimName: shared-claim
resourceClaimName: shared-claim

View File

@@ -502,10 +502,8 @@ func createTestObjects(ctx context.Context, clientSet kubernetes.Interface, node
NodeName: nodename, // Assign the node as the scheduler is not running
ResourceClaims: []v1.PodResourceClaim{
{
Name: podClaimName,
Source: v1.ClaimSource{
ResourceClaimName: &claimName,
},
Name: podClaimName,
ResourceClaimName: &claimName,
},
},
Containers: []v1.Container{

View File

@@ -225,8 +225,8 @@ func TestNodeAuthorizer(t *testing.T) {
{Name: "pvc", VolumeSource: corev1.VolumeSource{PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{ClaimName: "mypvc"}}},
},
ResourceClaims: []corev1.PodResourceClaim{
{Name: "namedclaim", Source: corev1.ClaimSource{ResourceClaimName: pointer.String("mynamedresourceclaim")}},
{Name: "templateclaim", Source: corev1.ClaimSource{ResourceClaimTemplateName: pointer.String("myresourceclaimtemplate")}},
{Name: "namedclaim", ResourceClaimName: pointer.String("mynamedresourceclaim")},
{Name: "templateclaim", ResourceClaimTemplateName: pointer.String("myresourceclaimtemplate")},
},
},
}, metav1.CreateOptions{})

View File

@@ -714,7 +714,7 @@ func TestPodSchedulingContextSSA(t *testing.T) {
pod := testutils.InitPausePod(&podConf)
podClaimName := "myclaim"
pod.Spec.Containers[0].Resources.Claims = []v1.ResourceClaim{{Name: podClaimName}}
pod.Spec.ResourceClaims = []v1.PodResourceClaim{{Name: podClaimName, Source: v1.ClaimSource{ResourceClaimName: &claim.Name}}}
pod.Spec.ResourceClaims = []v1.PodResourceClaim{{Name: podClaimName, ResourceClaimName: &claim.Name}}
if _, err := testCtx.ClientSet.CoreV1().Pods(pod.Namespace).Create(testCtx.Ctx, pod, metav1.CreateOptions{}); err != nil {
t.Fatalf("Failed to create pod: %v", err)
}

View File

@@ -11,6 +11,5 @@ spec:
- name: resource
resourceClaims:
- name: resource
source:
# Five pods share access to the same claim.
resourceClaimName: test-claim-{{div .Index 5}}
# Five pods share access to the same claim.
resourceClaimName: test-claim-{{div .Index 5}}

View File

@@ -11,5 +11,4 @@ spec:
- name: resource
resourceClaims:
- name: resource
source:
resourceClaimTemplateName: test-claim-template
resourceClaimTemplateName: test-claim-template

View File

@@ -14,14 +14,10 @@ spec:
- name: resource-2b
resourceClaims:
- name: resource-1a
source:
resourceClaimTemplateName: test-claim-template
resourceClaimTemplateName: test-claim-template
- name: resource-1b
source:
resourceClaimTemplateName: test-claim-template
resourceClaimTemplateName: test-claim-template
- name: resource-2a
source:
resourceClaimTemplateName: another-test-claim-template
resourceClaimTemplateName: another-test-claim-template
- name: resource-2b
source:
resourceClaimTemplateName: another-test-claim-template
resourceClaimTemplateName: another-test-claim-template