Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/ate-setup/internal/demos/counter/counter.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func (d *demo) externalVolumeValues(e *steps.Env) map[string]string {
"EXTERNAL_VOLUME_MOUNTS": " - name: external-data\n" +
" mountPath: /external-data",
"EXTERNAL_VOLUMES": "- name: external-data\n" +
" externalVolumeTemplate:\n" +
" external:\n" +
" capacity: 1Gi\n" +
" storageClassName: " + sc,
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/ate-setup/internal/demos/counter/counter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func TestExternalVolumeRenders(t *testing.T) {
for _, want := range []string{
"--validate-existing-file-path=/external-data/test.txt",
"mountPath: /external-data",
"externalVolumeTemplate:",
"external:",
tc.wantSC,
} {
if !strings.Contains(string(manifest), want) {
Expand Down
2 changes: 1 addition & 1 deletion cmd/ateapi/internal/apivalidation/actor_template.go
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ func ValidateCustom_Container_Image(_ context.Context, _ operation.Operation, fl
return validatePinnedImage(fldPath, *value)
}

func ValidateCustom_ExternalVolumeTemplate_Capacity(_ context.Context, _ operation.Operation, fldPath *field.Path, value, _ *string) field.ErrorList {
func ValidateCustom_ExternalVolumeSource_Capacity(_ context.Context, _ operation.Operation, fldPath *field.Path, value, _ *string) field.ErrorList {
if _, err := resource.ParseQuantity(*value); err != nil {
return field.ErrorList{field.Invalid(fldPath, *value, fmt.Sprintf("must be a Kubernetes resource quantity: %v", err))}
}
Expand Down
38 changes: 19 additions & 19 deletions cmd/ateapi/internal/apivalidation/actor_template_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -860,45 +860,45 @@ func TestValidateActorTemplate(t *testing.T) {
},
want: field.ErrorList{field.Invalid(field.NewPath("volumes").Index(0).Child("image", "reference"), nil, "")},
}, {
name: "valid external volume template",
name: "valid external volume",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: "10Gi", StorageClassName: "fast-ssd"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: "10Gi", StorageClassName: "fast-ssd"}}}
},
}, {
name: "external volume template missing capacity",
name: "external volume missing capacity",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{StorageClassName: "fast-ssd"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{StorageClassName: "fast-ssd"}}}
},
want: field.ErrorList{field.Required(field.NewPath("volumes").Index(0).Child("external_volume_template", "capacity"), "")},
want: field.ErrorList{field.Required(field.NewPath("volumes").Index(0).Child("external", "capacity"), "")},
}, {
name: "external volume template malformed capacity",
name: "external volume malformed capacity",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: "ten gigs", StorageClassName: "fast-ssd"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: "ten gigs", StorageClassName: "fast-ssd"}}}
},
want: field.ErrorList{field.Invalid(field.NewPath("volumes").Index(0).Child("external_volume_template", "capacity"), nil, "")},
want: field.ErrorList{field.Invalid(field.NewPath("volumes").Index(0).Child("external", "capacity"), nil, "")},
}, {
name: "external volume template capacity at the length bound",
name: "external volume capacity at the length bound",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: strings.Repeat("1", 30) + "Gi", StorageClassName: "fast-ssd"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: strings.Repeat("1", 30) + "Gi", StorageClassName: "fast-ssd"}}}
},
}, {
name: "external volume template capacity too long",
name: "external volume capacity too long",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: strings.Repeat("1", 31) + "Gi", StorageClassName: "fast-ssd"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: strings.Repeat("1", 31) + "Gi", StorageClassName: "fast-ssd"}}}
},
want: field.ErrorList{field.TooLong(field.NewPath("volumes").Index(0).Child("external_volume_template", "capacity"), nil, 32).WithOrigin("maxLength")},
want: field.ErrorList{field.TooLong(field.NewPath("volumes").Index(0).Child("external", "capacity"), nil, 32).WithOrigin("maxLength")},
}, {
name: "external volume template missing storage_class_name",
name: "external volume missing storage_class_name",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: "10Gi"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: "10Gi"}}}
},
want: field.ErrorList{field.Required(field.NewPath("volumes").Index(0).Child("external_volume_template", "storage_class_name"), "")},
want: field.ErrorList{field.Required(field.NewPath("volumes").Index(0).Child("external", "storage_class_name"), "")},
}, {
name: "external volume template invalid storage_class_name",
name: "external volume invalid storage_class_name",
mutate: func(tmpl *ateapipb.ActorTemplate) {
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{Capacity: "10Gi", StorageClassName: "Fast SSD"}}}
tmpl.Volumes = []*ateapipb.Volume{{Name: "data", External: &ateapipb.ExternalVolumeSource{Capacity: "10Gi", StorageClassName: "Fast SSD"}}}
},
want: field.ErrorList{field.Invalid(field.NewPath("volumes").Index(0).Child("external_volume_template", "storage_class_name"), nil, "").WithOrigin("format=k8s-long-name")},
want: field.ErrorList{field.Invalid(field.NewPath("volumes").Index(0).Child("external", "storage_class_name"), nil, "").WithOrigin("format=k8s-long-name")},
}, {
name: "valid resources",
mutate: func(tmpl *ateapipb.ActorTemplate) {
Expand Down
32 changes: 16 additions & 16 deletions cmd/ateapi/internal/apivalidation/zz_generated.validation.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cmd/ateapi/internal/controlapi/actor.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func (s *ServiceImpl) CreateActor(ctx context.Context, inActor *ateapipb.Actor)
tagRef = template.GetStatus().GetGoldenSnapshotStatus().GetGoldenTag()
} else {
for _, volume := range template.GetVolumes() {
if volume.GetExternalVolumeTemplate() != nil {
if volume.GetExternal() != nil {
// TODO: Permit cloning after CSI volume snapshots are supported.
return nil, apierror.FailedPrecondition("Tag cloning does not support ActorTemplates with external volumes")
}
Expand Down
30 changes: 15 additions & 15 deletions cmd/ateapi/internal/controlapi/functionaltest/actor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func TestCreateActor_WithExternalVolumes(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "ext-vol-1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -331,7 +331,7 @@ func TestCreateActor_RejectsSnapshotWithExternalVolumes(t *testing.T) {
}},
Volumes: []*ateapipb.Volume{{
Name: "data",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
Capacity: "1Gi", StorageClassName: "standard",
},
}},
Expand Down Expand Up @@ -1580,7 +1580,7 @@ func TestActorLifecycle_WithExternalVolumes(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "data-vol",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "fast",
Capacity: "20Gi",
},
Expand Down Expand Up @@ -1723,14 +1723,14 @@ func TestResumeActor_VolumeCreationFailure(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "succ-vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
},
{
Name: "fail-vol2",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -1865,14 +1865,14 @@ func TestResumeActor_VolumeCreationRetrySuccess(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "succ-vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
},
{
Name: "retry-vol2",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2019,7 +2019,7 @@ func TestResumeActor_VolumeAttachFailureAndRetry(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2121,7 +2121,7 @@ func TestResumeActor_VolumeAttachFailure_DeleteActor(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2276,14 +2276,14 @@ func TestResumeActor_MultiVolumePartialAttachFailure_Retry(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
},
{
Name: "vol2",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2446,7 +2446,7 @@ func TestSuspendActor_VolumeDetachFailure_RetrySuccess(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2556,7 +2556,7 @@ func TestSuspendActor_VolumeDetachFailure_DeleteActorAnyState(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2655,7 +2655,7 @@ func TestPauseActor_VolumeLifecycle_DetachAndResumeAttach(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down Expand Up @@ -2778,7 +2778,7 @@ func TestPauseActor_VolumeDetachFailure_RetrySuccess(t *testing.T) {
volumes := []*ateapipb.Volume{
{
Name: "vol1",
ExternalVolumeTemplate: &ateapipb.ExternalVolumeTemplate{
External: &ateapipb.ExternalVolumeSource{
StorageClassName: "standard",
Capacity: "10Gi",
},
Expand Down
10 changes: 5 additions & 5 deletions cmd/ateapi/internal/controlapi/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ func initialActorVolumes(ctx context.Context, scLister storagev1listers.StorageC
}
var volumes []*ateapipb.ExternalVolume
for _, vol := range template.GetVolumes() {
if vol.GetExternalVolumeTemplate() != nil {
scName := vol.GetExternalVolumeTemplate().GetStorageClassName()
if vol.GetExternal() != nil {
scName := vol.GetExternal().GetStorageClassName()
sc, err := scLister.Get(scName)
if err != nil {
if k8serrors.IsNotFound(err) {
Expand Down Expand Up @@ -82,7 +82,7 @@ func createActorVolumes(ctx context.Context, registry VolumePluginRegistry, scLi
break
}
}
if specVol == nil || specVol.GetExternalVolumeTemplate() == nil {
if specVol == nil || specVol.GetExternal() == nil {
return resultVolumes, apierror.NotFound("volume %q not found in template", volName)
}

Expand All @@ -100,7 +100,7 @@ func createActorVolumes(ctx context.Context, registry VolumePluginRegistry, scLi

actVolID := actorVolumeID(actorUID, volName)

scName := specVol.GetExternalVolumeTemplate().GetStorageClassName()
scName := specVol.GetExternal().GetStorageClassName()
sc, err := scLister.Get(scName)
if err != nil {
if k8serrors.IsNotFound(err) {
Expand All @@ -120,7 +120,7 @@ func createActorVolumes(ctx context.Context, registry VolumePluginRegistry, scLi

resp, volErr := plugin.CreateVolume(ctx, volume.CreateVolumeRequest{
Name: actVolID,
Capacity: specVol.GetExternalVolumeTemplate().GetCapacity(),
Capacity: specVol.GetExternal().GetCapacity(),
Parameters: sc.Parameters,
})
if volErr != nil {
Expand Down
Loading
Loading