diff --git a/pkg/api/types.go b/pkg/api/types.go index 3495d948218..ba44ecbd290 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -170,24 +170,24 @@ type VolumeSource struct { // machine. Most containers will NOT need this. // TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not // mount host directories as read/write. - HostPath *HostPath `json:"hostPath"` + HostPath *HostPathVolumeSource `json:"hostPath"` // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDir `json:"emptyDir"` + EmptyDir *EmptyDirVolumeSource `json:"emptyDir"` // GCEPersistentDisk represents a GCE Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDisk `json:"persistentDisk"` + GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk"` // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepo `json:"gitRepo"` + GitRepo *GitRepoVolumeSource `json:"gitRepo"` // Secret represents a secret that should populate this volume. - Secret *SecretSource `json:"secret"` + Secret *SecretVolumeSource `json:"secret"` } -// HostPath represents bare host directory volume. -type HostPath struct { +// HostPathVolumeSource represents bare host directory volume. +type HostPathVolumeSource struct { Path string `json:"path"` } -type EmptyDir struct{} +type EmptyDirVolumeSource struct{} // Protocol defines network protocols supported for things like conatiner ports. type Protocol string @@ -199,12 +199,12 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. // // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. -type GCEPersistentDisk struct { +type GCEPersistentDiskVolumeSource struct { // Unique name of the PD resource. Used to identify the disk in GCE PDName string `json:"pdName"` // Required: Filesystem type to mount. @@ -221,8 +221,8 @@ type GCEPersistentDisk struct { ReadOnly bool `json:"readOnly,omitempty"` } -// GitRepo represents a volume that is pulled from git when the pod is created. -type GitRepo struct { +// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. +type GitRepoVolumeSource struct { // Repository URL Repository string `json:"repository"` // Commit hash, this is optional @@ -230,11 +230,11 @@ type GitRepo struct { // TODO: Consider credentials here. } -// Adapts a Secret into a VolumeSource. +// SecretVolumeSource adapts a Secret into a VolumeSource. // // The contents of the target Secret's Data field will be presented in a volume // as files using the keys in the Data field as the file names. -type SecretSource struct { +type SecretVolumeSource struct { // Reference to a Secret Target ObjectReference `json:"target"` } diff --git a/pkg/api/v1beta1/defaults.go b/pkg/api/v1beta1/defaults.go index c833f9ffb60..7c9042dea32 100644 --- a/pkg/api/v1beta1/defaults.go +++ b/pkg/api/v1beta1/defaults.go @@ -28,7 +28,7 @@ func init() { func(obj *Volume) { if util.AllPtrFieldsNil(&obj.Source) { obj.Source = VolumeSource{ - EmptyDir: &EmptyDir{}, + EmptyDir: &EmptyDirVolumeSource{}, } } }, diff --git a/pkg/api/v1beta1/types.go b/pkg/api/v1beta1/types.go index 92259bc95aa..e07a980ec8f 100644 --- a/pkg/api/v1beta1/types.go +++ b/pkg/api/v1beta1/types.go @@ -95,24 +95,24 @@ type VolumeSource struct { // things that are allowed to see the host machine. Most containers will NOT need this. // TODO(jonesdl) We need to restrict who can use host directory mounts and // who can/can not mount host directories as read/write. - HostDir *HostPath `json:"hostDir" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` + HostDir *HostPathVolumeSource `json:"hostDir" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDir `json:"emptyDir" description:"temporary directory that shares a pod's lifetime"` + EmptyDir *EmptyDirVolumeSource `json:"emptyDir" description:"temporary directory that shares a pod's lifetime"` // GCEPersistentDisk represents a GCE Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDisk `json:"persistentDisk" description:"GCE disk resource attached to the host machine on demand"` + GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk" description:"GCE disk resource attached to the host machine on demand"` // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepo `json:"gitRepo" description:"git repository at a particular revision"` + GitRepo *GitRepoVolumeSource `json:"gitRepo" description:"git repository at a particular revision"` // Secret represents a secret to populate the volume with - Secret *SecretSource `json:"secret" description:"secret to populate volume with"` + Secret *SecretVolumeSource `json:"secret" description:"secret to populate volume with"` } -// HostPath represents bare host directory volume. -type HostPath struct { +// HostPathVolumeSource represents bare host directory volume. +type HostPathVolumeSource struct { Path string `json:"path" description:"path of the directory on the host"` } -type EmptyDir struct{} +type EmptyDirVolumeSource struct{} // Protocol defines network protocols supported for things like conatiner ports. type Protocol string @@ -124,12 +124,12 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. // // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. -type GCEPersistentDisk struct { +type GCEPersistentDiskVolumeSource struct { // Unique name of the PD resource. Used to identify the disk in GCE PDName string `json:"pdName" description:"unique name of the PD resource in GCE"` // Required: Filesystem type to mount. @@ -147,16 +147,16 @@ type GCEPersistentDisk struct { ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` } -// GitRepo represents a volume that is pulled from git when the pod is created. -type GitRepo struct { +// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. +type GitRepoVolumeSource struct { // Repository URL Repository string `json:"repository" description:"repository URL"` // Commit hash, this is optional Revision string `json:"revision" description:"commit hash for the specified revision"` } -// Adapts a Secret into a VolumeSource -type SecretSource struct { +// SecretVolumeSource adapts a Secret into a VolumeSource +type SecretVolumeSource struct { // Reference to a Secret Target ObjectReference `json:"target" description:"target is a reference to a secret"` } diff --git a/pkg/api/v1beta2/defaults.go b/pkg/api/v1beta2/defaults.go index 9242bf3a323..db59b8cd272 100644 --- a/pkg/api/v1beta2/defaults.go +++ b/pkg/api/v1beta2/defaults.go @@ -30,7 +30,7 @@ func init() { if util.AllPtrFieldsNil(&obj.Source) { glog.Errorf("Defaulting volume source for %v", obj) obj.Source = VolumeSource{ - EmptyDir: &EmptyDir{}, + EmptyDir: &EmptyDirVolumeSource{}, } } }, diff --git a/pkg/api/v1beta2/types.go b/pkg/api/v1beta2/types.go index 5a45eab9af8..6d56326e54c 100644 --- a/pkg/api/v1beta2/types.go +++ b/pkg/api/v1beta2/types.go @@ -64,27 +64,27 @@ type VolumeSource struct { // things that are allowed to see the host machine. Most containers will NOT need this. // TODO(jonesdl) We need to restrict who can use host directory mounts and // who can/can not mount host directories as read/write. - HostDir *HostPath `json:"hostDir" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` + HostDir *HostPathVolumeSource `json:"hostDir" description:"pre-existing host file or directory; generally for privileged system daemons or other agents tied to the host"` // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDir `json:"emptyDir" description:"temporary directory that shares a pod's lifetime"` + EmptyDir *EmptyDirVolumeSource `json:"emptyDir" description:"temporary directory that shares a pod's lifetime"` // A persistent disk that is mounted to the // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDisk `json:"persistentDisk" description:"GCE disk resource attached to the host machine on demand"` + GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"persistentDisk" description:"GCE disk resource attached to the host machine on demand"` // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepo `json:"gitRepo" description:"git repository at a particular revision"` + GitRepo *GitRepoVolumeSource `json:"gitRepo" description:"git repository at a particular revision"` // Secret is a secret to populate the volume with - Secret *SecretSource `json:"secret" description:"secret to populate volume"` + Secret *SecretVolumeSource `json:"secret" description:"secret to populate volume"` } -// HostPath represents bare host directory volume. -type HostPath struct { +// HostPathVolumeSource represents bare host directory volume. +type HostPathVolumeSource struct { Path string `json:"path" description:"path of the directory on the host"` } -type EmptyDir struct{} +type EmptyDirVolumeSource struct{} -// Adapts a Secret into a VolumeSource -type SecretSource struct { +// SecretVolumeSource adapts a Secret into a VolumeSource +type SecretVolumeSource struct { // Reference to a Secret Target ObjectReference `json:"target" description:"target is a reference to a secret"` } @@ -114,12 +114,12 @@ type Port struct { HostIP string `json:"hostIP,omitempty" description:"host IP to bind the port to"` } -// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. // // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. -type GCEPersistentDisk struct { +type GCEPersistentDiskVolumeSource struct { // Unique name of the PD resource. Used to identify the disk in GCE PDName string `json:"pdName" description:"unique name of the PD resource in GCE"` // Required: Filesystem type to mount. @@ -137,8 +137,8 @@ type GCEPersistentDisk struct { ReadOnly bool `json:"readOnly,omitempty" description:"read-only if true, read-write otherwise (false or unspecified)"` } -// GitRepo represents a volume that is pulled from git when the pod is created. -type GitRepo struct { +// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. +type GitRepoVolumeSource struct { // Repository URL Repository string `json:"repository" description:"repository URL"` // Commit hash, this is optional diff --git a/pkg/api/v1beta3/defaults.go b/pkg/api/v1beta3/defaults.go index 3149601fb64..55c867c3614 100644 --- a/pkg/api/v1beta3/defaults.go +++ b/pkg/api/v1beta3/defaults.go @@ -28,7 +28,7 @@ func init() { func(obj *Volume) { if util.AllPtrFieldsNil(&obj.Source) { obj.Source = VolumeSource{ - EmptyDir: &EmptyDir{}, + EmptyDir: &EmptyDirVolumeSource{}, } } }, diff --git a/pkg/api/v1beta3/types.go b/pkg/api/v1beta3/types.go index d7c3ec42ee9..2408527385e 100644 --- a/pkg/api/v1beta3/types.go +++ b/pkg/api/v1beta3/types.go @@ -189,24 +189,24 @@ type VolumeSource struct { // to see the host machine. Most containers will NOT need this. // TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not // mount host directories as read/write. - HostPath *HostPath `json:"hostPath"` + HostPath *HostPathVolumeSource `json:"hostPath"` // EmptyDir represents a temporary directory that shares a pod's lifetime. - EmptyDir *EmptyDir `json:"emptyDir"` + EmptyDir *EmptyDirVolumeSource `json:"emptyDir"` // GCEPersistentDisk represents a GCE Disk resource that is attached to a // kubelet's host machine and then exposed to the pod. - GCEPersistentDisk *GCEPersistentDisk `json:"gcePersistentDisk"` + GCEPersistentDisk *GCEPersistentDiskVolumeSource `json:"gcePersistentDisk"` // GitRepo represents a git repository at a particular revision. - GitRepo *GitRepo `json:"gitRepo"` + GitRepo *GitRepoVolumeSource `json:"gitRepo"` // Secret represents a secret that should populate this volume. - Secret *SecretSource `json:"secret"` + Secret *SecretVolumeSource `json:"secret"` } -// HostPath represents bare host directory volume. -type HostPath struct { +// HostPathVolumeSource represents bare host directory volume. +type HostPathVolumeSource struct { Path string `json:"path"` } -type EmptyDir struct{} +type EmptyDirVolumeSource struct{} // Protocol defines network protocols supported for things like conatiner ports. type Protocol string @@ -218,12 +218,12 @@ const ( ProtocolUDP Protocol = "UDP" ) -// GCEPersistentDisk represents a Persistent Disk resource in Google Compute Engine. +// GCEPersistentDiskVolumeSource represents a Persistent Disk resource in Google Compute Engine. // // A GCE PD must exist and be formatted before mounting to a container. // The disk must also be in the same GCE project and zone as the kubelet. // A GCE PD can only be mounted as read/write once. -type GCEPersistentDisk struct { +type GCEPersistentDiskVolumeSource struct { // Unique name of the PD resource. Used to identify the disk in GCE PDName string `json:"pdName"` // Required: Filesystem type to mount. @@ -240,16 +240,16 @@ type GCEPersistentDisk struct { ReadOnly bool `json:"readOnly,omitempty"` } -// GitRepo represents a volume that is pulled from git when the pod is created. -type GitRepo struct { +// GitRepoVolumeSource represents a volume that is pulled from git when the pod is created. +type GitRepoVolumeSource struct { // Repository URL Repository string `json:"repository"` // Commit hash, this is optional Revision string `json:"revision"` } -// Adapts a Secret into a VolumeSource -type SecretSource struct { +// SecretVolumeSource adapts a Secret into a VolumeSource +type SecretVolumeSource struct { // Reference to a Secret Target ObjectReference `json:"target" description:"target is a reference to a secret"` } diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 95d4bcea9c1..d3b12f8d44b 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -255,7 +255,7 @@ func validateSource(source *api.VolumeSource) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if source.HostPath != nil { numVolumes++ - allErrs = append(allErrs, validateHostPath(source.HostPath).Prefix("hostPath")...) + allErrs = append(allErrs, validateHostPathVolumeSource(source.HostPath).Prefix("hostPath")...) } if source.EmptyDir != nil { numVolumes++ @@ -263,15 +263,15 @@ func validateSource(source *api.VolumeSource) errs.ValidationErrorList { } if source.GitRepo != nil { numVolumes++ - allErrs = append(allErrs, validateGitRepo(source.GitRepo).Prefix("gitRepo")...) + allErrs = append(allErrs, validateGitRepoVolumeSource(source.GitRepo).Prefix("gitRepo")...) } if source.GCEPersistentDisk != nil { numVolumes++ - allErrs = append(allErrs, validateGCEPersistentDisk(source.GCEPersistentDisk).Prefix("persistentDisk")...) + allErrs = append(allErrs, validateGCEPersistentDiskVolumeSource(source.GCEPersistentDisk).Prefix("persistentDisk")...) } if source.Secret != nil { numVolumes++ - allErrs = append(allErrs, validateSecretSource(source.Secret).Prefix("secret")...) + allErrs = append(allErrs, validateSecretVolumeSource(source.Secret).Prefix("secret")...) } if numVolumes != 1 { allErrs = append(allErrs, errs.NewFieldInvalid("", source, "exactly 1 volume type is required")) @@ -279,7 +279,7 @@ func validateSource(source *api.VolumeSource) errs.ValidationErrorList { return allErrs } -func validateHostPath(hostDir *api.HostPath) errs.ValidationErrorList { +func validateHostPathVolumeSource(hostDir *api.HostPathVolumeSource) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if hostDir.Path == "" { allErrs = append(allErrs, errs.NewFieldRequired("path", hostDir.Path)) @@ -287,7 +287,7 @@ func validateHostPath(hostDir *api.HostPath) errs.ValidationErrorList { return allErrs } -func validateGitRepo(gitRepo *api.GitRepo) errs.ValidationErrorList { +func validateGitRepoVolumeSource(gitRepo *api.GitRepoVolumeSource) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if gitRepo.Repository == "" { allErrs = append(allErrs, errs.NewFieldRequired("repository", gitRepo.Repository)) @@ -295,7 +295,7 @@ func validateGitRepo(gitRepo *api.GitRepo) errs.ValidationErrorList { return allErrs } -func validateGCEPersistentDisk(PD *api.GCEPersistentDisk) errs.ValidationErrorList { +func validateGCEPersistentDiskVolumeSource(PD *api.GCEPersistentDiskVolumeSource) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if PD.PDName == "" { allErrs = append(allErrs, errs.NewFieldRequired("pdName", PD.PDName)) @@ -309,7 +309,7 @@ func validateGCEPersistentDisk(PD *api.GCEPersistentDisk) errs.ValidationErrorLi return allErrs } -func validateSecretSource(secretSource *api.SecretSource) errs.ValidationErrorList { +func validateSecretVolumeSource(secretSource *api.SecretVolumeSource) errs.ValidationErrorList { allErrs := errs.ValidationErrorList{} if secretSource.Target.Name == "" { allErrs = append(allErrs, errs.NewFieldRequired("target.name", "")) diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 9125c52c8b9..ca2ac42f8dd 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -147,13 +147,13 @@ func TestValidateAnnotations(t *testing.T) { func TestValidateVolumes(t *testing.T) { successCase := []api.Volume{ - {Name: "abc", Source: api.VolumeSource{HostPath: &api.HostPath{"/mnt/path1"}}}, - {Name: "123", Source: api.VolumeSource{HostPath: &api.HostPath{"/mnt/path2"}}}, - {Name: "abc-123", Source: api.VolumeSource{HostPath: &api.HostPath{"/mnt/path3"}}}, - {Name: "empty", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}, - {Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{"my-PD", "ext4", 1, false}}}, - {Name: "gitrepo", Source: api.VolumeSource{GitRepo: &api.GitRepo{"my-repo", "hashstring"}}}, - {Name: "secret", Source: api.VolumeSource{Secret: &api.SecretSource{api.ObjectReference{Namespace: api.NamespaceDefault, Name: "my-secret", Kind: "Secret"}}}}, + {Name: "abc", Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/mnt/path1"}}}, + {Name: "123", Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/mnt/path2"}}}, + {Name: "abc-123", Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/mnt/path3"}}}, + {Name: "empty", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, + {Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{"my-PD", "ext4", 1, false}}}, + {Name: "gitrepo", Source: api.VolumeSource{GitRepo: &api.GitRepoVolumeSource{"my-repo", "hashstring"}}}, + {Name: "secret", Source: api.VolumeSource{Secret: &api.SecretVolumeSource{api.ObjectReference{Namespace: api.NamespaceDefault, Name: "my-secret", Kind: "Secret"}}}}, } names, errs := validateVolumes(successCase) if len(errs) != 0 { @@ -162,7 +162,7 @@ func TestValidateVolumes(t *testing.T) { if len(names) != len(successCase) || !names.HasAll("abc", "123", "abc-123", "empty", "gcepd", "gitrepo", "secret") { t.Errorf("wrong names result: %v", names) } - emptyVS := api.VolumeSource{EmptyDir: &api.EmptyDir{}} + emptyVS := api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}} errorCases := map[string]struct { V []api.Volume T errors.ValidationErrorType @@ -573,8 +573,8 @@ func TestValidateManifest(t *testing.T) { { Version: "v1beta1", ID: "abc", - Volumes: []api.Volume{{Name: "vol1", Source: api.VolumeSource{HostPath: &api.HostPath{"/mnt/vol1"}}}, - {Name: "vol2", Source: api.VolumeSource{HostPath: &api.HostPath{"/mnt/vol2"}}}}, + Volumes: []api.Volume{{Name: "vol1", Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/mnt/vol1"}}}, + {Name: "vol2", Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/mnt/vol2"}}}}, Containers: []api.Container{ { Name: "abc", @@ -624,7 +624,7 @@ func TestValidateManifest(t *testing.T) { "invalid volume name": { Version: "v1beta1", ID: "abc", - Volumes: []api.Volume{{Name: "vol.1", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}}, + Volumes: []api.Volume{{Name: "vol.1", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, }, @@ -647,14 +647,14 @@ func TestValidateManifest(t *testing.T) { func TestValidatePodSpec(t *testing.T) { successCases := []api.PodSpec{ { // Populate basic fields, leave defaults for most. - Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}}, + Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, }, { // Populate all fields. Volumes: []api.Volume{ - {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}, + {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, }, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, @@ -703,7 +703,7 @@ func TestValidatePod(t *testing.T) { { // Basic fields. ObjectMeta: api.ObjectMeta{Name: "123", Namespace: "ns"}, Spec: api.PodSpec{ - Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}}, + Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, @@ -713,7 +713,7 @@ func TestValidatePod(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc.123.do-re-mi", Namespace: "ns"}, Spec: api.PodSpec{ Volumes: []api.Volume{ - {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}, + {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, }, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, @@ -1005,7 +1005,7 @@ func TestValidateBoundPods(t *testing.T) { { // Basic fields. ObjectMeta: api.ObjectMeta{Name: "123", Namespace: "ns"}, Spec: api.PodSpec{ - Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}}, + Volumes: []api.Volume{{Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}}, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, @@ -1015,7 +1015,7 @@ func TestValidateBoundPods(t *testing.T) { ObjectMeta: api.ObjectMeta{Name: "abc.123.do-re-mi", Namespace: "ns"}, Spec: api.PodSpec{ Volumes: []api.Volume{ - {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}, + {Name: "vol", Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, }, Containers: []api.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent"}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, @@ -1477,7 +1477,7 @@ func TestValidateReplicationControllerUpdate(t *testing.T) { Spec: api.PodSpec{ RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, - Volumes: []api.Volume{{Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{"my-PD", "ext4", 1, false}}}}, + Volumes: []api.Volume{{Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{"my-PD", "ext4", 1, false}}}}, }, }, } @@ -1635,7 +1635,7 @@ func TestValidateReplicationController(t *testing.T) { Labels: validSelector, }, Spec: api.PodSpec{ - Volumes: []api.Volume{{Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{"my-PD", "ext4", 1, false}}}}, + Volumes: []api.Volume{{Name: "gcepd", Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{"my-PD", "ext4", 1, false}}}}, RestartPolicy: api.RestartPolicy{Always: &api.RestartPolicyAlways{}}, DNSPolicy: api.DNSClusterFirst, }, diff --git a/pkg/kubectl/cmd/util/helpers_test.go b/pkg/kubectl/cmd/util/helpers_test.go index 751f4712dc1..532f36765ed 100644 --- a/pkg/kubectl/cmd/util/helpers_test.go +++ b/pkg/kubectl/cmd/util/helpers_test.go @@ -89,11 +89,11 @@ func TestMerge(t *testing.T) { Volumes: []api.Volume{ { Name: "v1", - Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}, + Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, }, { Name: "v2", - Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}, + Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, }, }, RestartPolicy: api.RestartPolicy{ diff --git a/pkg/kubelet/config/file_test.go b/pkg/kubelet/config/file_test.go index 07a25fee27a..6155086d065 100644 --- a/pkg/kubelet/config/file_test.go +++ b/pkg/kubelet/config/file_test.go @@ -47,7 +47,7 @@ func ExampleManifestAndPod(id string) (v1beta1.ContainerManifest, api.BoundPod) { Name: "host-dir", Source: v1beta1.VolumeSource{ - HostDir: &v1beta1.HostPath{"/dir/path"}, + HostDir: &v1beta1.HostPathVolumeSource{"/dir/path"}, }, }, }, @@ -68,7 +68,7 @@ func ExampleManifestAndPod(id string) (v1beta1.ContainerManifest, api.BoundPod) { Name: "host-dir", Source: api.VolumeSource{ - HostPath: &api.HostPath{"/dir/path"}, + HostPath: &api.HostPathVolumeSource{"/dir/path"}, }, }, }, diff --git a/pkg/kubelet/volume/empty_dir/empty_dir_test.go b/pkg/kubelet/volume/empty_dir/empty_dir_test.go index 33c0bad334d..7e543d4e4ab 100644 --- a/pkg/kubelet/volume/empty_dir/empty_dir_test.go +++ b/pkg/kubelet/volume/empty_dir/empty_dir_test.go @@ -36,7 +36,7 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/empty-dir" { t.Errorf("Wrong name: %s", plug.Name()) } - if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}) { + if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}) { t.Errorf("Expected true") } if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{}}) { @@ -54,7 +54,7 @@ func TestPlugin(t *testing.T) { } spec := &api.Volume{ Name: "vol1", - Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}, + Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}, } builder, err := plug.NewBuilder(spec, types.UID("poduid")) if err != nil { @@ -134,11 +134,11 @@ func TestPluginLegacy(t *testing.T) { if plug.Name() != "empty" { t.Errorf("Wrong name: %s", plug.Name()) } - if plug.CanSupport(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}) { + if plug.CanSupport(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}) { t.Errorf("Expected false") } - if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDir{}}}, types.UID("poduid")); err == nil { + if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{EmptyDir: &api.EmptyDirVolumeSource{}}}, types.UID("poduid")); err == nil { t.Errorf("Expected failiure") } diff --git a/pkg/kubelet/volume/gce_pd/gce_pd_test.go b/pkg/kubelet/volume/gce_pd/gce_pd_test.go index 13f08563d36..526aafabbe8 100644 --- a/pkg/kubelet/volume/gce_pd/gce_pd_test.go +++ b/pkg/kubelet/volume/gce_pd/gce_pd_test.go @@ -37,7 +37,7 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/gce-pd" { t.Errorf("Wrong name: %s", plug.Name()) } - if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{}}}) { + if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{}}}) { t.Errorf("Expected true") } } @@ -89,7 +89,7 @@ func TestPlugin(t *testing.T) { spec := &api.Volume{ Name: "vol1", Source: api.VolumeSource{ - GCEPersistentDisk: &api.GCEPersistentDisk{ + GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{ PDName: "pd", FSType: "ext4", }, @@ -155,11 +155,11 @@ func TestPluginLegacy(t *testing.T) { if plug.Name() != "gce-pd" { t.Errorf("Wrong name: %s", plug.Name()) } - if plug.CanSupport(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{}}}) { + if plug.CanSupport(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{}}}) { t.Errorf("Expected false") } - if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDisk{}}}, types.UID("poduid")); err == nil { + if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{}}}, types.UID("poduid")); err == nil { t.Errorf("Expected failiure") } diff --git a/pkg/kubelet/volume/git_repo/git_repo_test.go b/pkg/kubelet/volume/git_repo/git_repo_test.go index 5e3632fd3b8..507a8593206 100644 --- a/pkg/kubelet/volume/git_repo/git_repo_test.go +++ b/pkg/kubelet/volume/git_repo/git_repo_test.go @@ -49,7 +49,7 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/git-repo" { t.Errorf("Wrong name: %s", plug.Name()) } - if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepo{}}}) { + if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepoVolumeSource{}}}) { t.Errorf("Expected true") } } @@ -111,7 +111,7 @@ func TestPlugin(t *testing.T) { spec := &api.Volume{ Name: "vol1", Source: api.VolumeSource{ - GitRepo: &api.GitRepo{ + GitRepo: &api.GitRepoVolumeSource{ Repository: "https://github.com/GoogleCloudPlatform/kubernetes.git", Revision: "2a30ce65c5ab586b98916d83385c5983edd353a1", }, @@ -168,11 +168,11 @@ func TestPluginLegacy(t *testing.T) { if plug.Name() != "git" { t.Errorf("Wrong name: %s", plug.Name()) } - if plug.CanSupport(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepo{}}}) { + if plug.CanSupport(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepoVolumeSource{}}}) { t.Errorf("Expected false") } - if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepo{}}}, types.UID("poduid")); err == nil { + if _, err := plug.NewBuilder(&api.Volume{Source: api.VolumeSource{GitRepo: &api.GitRepoVolumeSource{}}}, types.UID("poduid")); err == nil { t.Errorf("Expected failiure") } diff --git a/pkg/kubelet/volume/host_path/host_path_test.go b/pkg/kubelet/volume/host_path/host_path_test.go index d19d4386f22..d0824bbf8ae 100644 --- a/pkg/kubelet/volume/host_path/host_path_test.go +++ b/pkg/kubelet/volume/host_path/host_path_test.go @@ -35,7 +35,7 @@ func TestCanSupport(t *testing.T) { if plug.Name() != "kubernetes.io/host-path" { t.Errorf("Wrong name: %s", plug.Name()) } - if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{HostPath: &api.HostPath{}}}) { + if !plug.CanSupport(&api.Volume{Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{}}}) { t.Errorf("Expected true") } if plug.CanSupport(&api.Volume{Source: api.VolumeSource{}}) { @@ -53,7 +53,7 @@ func TestPlugin(t *testing.T) { } spec := &api.Volume{ Name: "vol1", - Source: api.VolumeSource{HostPath: &api.HostPath{"/vol1"}}, + Source: api.VolumeSource{HostPath: &api.HostPathVolumeSource{"/vol1"}}, } builder, err := plug.NewBuilder(spec, types.UID("poduid")) if err != nil { diff --git a/pkg/kubelet/volume/secret/secret_test.go b/pkg/kubelet/volume/secret/secret_test.go index d208795db94..6b6c6f8306a 100644 --- a/pkg/kubelet/volume/secret/secret_test.go +++ b/pkg/kubelet/volume/secret/secret_test.go @@ -50,7 +50,7 @@ func TestCanSupport(t *testing.T) { if plugin.Name() != secretPluginName { t.Errorf("Wrong name: %s", plugin.Name()) } - if !plugin.CanSupport(&api.Volume{Source: api.VolumeSource{Secret: &api.SecretSource{Target: api.ObjectReference{}}}}) { + if !plugin.CanSupport(&api.Volume{Source: api.VolumeSource{Secret: &api.SecretVolumeSource{Target: api.ObjectReference{}}}}) { t.Errorf("Expected true") } } @@ -66,7 +66,7 @@ func TestPlugin(t *testing.T) { volumeSpec := &api.Volume{ Name: testVolumeName, Source: api.VolumeSource{ - Secret: &api.SecretSource{ + Secret: &api.SecretVolumeSource{ Target: api.ObjectReference{ Namespace: testNamespace, Name: testName, diff --git a/pkg/scheduler/predicates_test.go b/pkg/scheduler/predicates_test.go index 908ba6a2c77..717092b2e5d 100644 --- a/pkg/scheduler/predicates_test.go +++ b/pkg/scheduler/predicates_test.go @@ -277,7 +277,7 @@ func TestDiskConflicts(t *testing.T) { Volumes: []api.Volume{ { Source: api.VolumeSource{ - GCEPersistentDisk: &api.GCEPersistentDisk{ + GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{ PDName: "foo", }, }, @@ -288,7 +288,7 @@ func TestDiskConflicts(t *testing.T) { Volumes: []api.Volume{ { Source: api.VolumeSource{ - GCEPersistentDisk: &api.GCEPersistentDisk{ + GCEPersistentDisk: &api.GCEPersistentDiskVolumeSource{ PDName: "bar", }, }, diff --git a/test/e2e/secrets.go b/test/e2e/secrets.go index cd1990bf693..8778186da89 100644 --- a/test/e2e/secrets.go +++ b/test/e2e/secrets.go @@ -82,7 +82,7 @@ var _ = Describe("Secrets", func() { { Name: volumeName, Source: api.VolumeSource{ - Secret: &api.SecretSource{ + Secret: &api.SecretVolumeSource{ Target: api.ObjectReference{ Kind: "Secret", Namespace: ns, diff --git a/test/e2e/service.go b/test/e2e/service.go index 7a9ed995947..30707b2bb8b 100644 --- a/test/e2e/service.go +++ b/test/e2e/service.go @@ -76,7 +76,7 @@ var _ = Describe("Services", func() { { Name: "results", Source: api.VolumeSource{ - EmptyDir: &api.EmptyDir{}, + EmptyDir: &api.EmptyDirVolumeSource{}, }, }, },