Remove validation of *VolumeSource.FSType.

Most volume plugins use SafeFormatAndMount, which uses ext4 by default.

FlexVolume plugin has FSType attribute 'omitempty', so reflect it in the
description of the type.
This commit is contained in:
Jan Safranek
2016-02-09 09:13:06 +01:00
parent 318705feb9
commit 40c97ddd5f
10 changed files with 179 additions and 173 deletions

View File

@@ -10234,13 +10234,14 @@ func (x *GCEPersistentDiskVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
var yyq683 [4]bool
_, _, _ = yysep683, yyq683, yy2arr683
const yyr683 bool = false
yyq683[1] = x.FSType != ""
yyq683[2] = x.Partition != 0
yyq683[3] = x.ReadOnly != false
var yynn683 int
if yyr683 || yy2arr683 {
r.EncodeArrayStart(4)
} else {
yynn683 = 2
yynn683 = 1
for _, b := range yyq683 {
if b {
yynn683++
@@ -10270,21 +10271,27 @@ func (x *GCEPersistentDiskVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr683 || yy2arr683 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym688 := z.EncBinary()
_ = yym688
if false {
if yyq683[1] {
yym688 := z.EncBinary()
_ = yym688
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym689 := z.EncBinary()
_ = yym689
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
if yyq683[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym689 := z.EncBinary()
_ = yym689
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
}
}
if yyr683 || yy2arr683 {
@@ -10915,13 +10922,14 @@ func (x *AWSElasticBlockStoreVolumeSource) CodecEncodeSelf(e *codec1978.Encoder)
var yyq740 [4]bool
_, _, _ = yysep740, yyq740, yy2arr740
const yyr740 bool = false
yyq740[1] = x.FSType != ""
yyq740[2] = x.Partition != 0
yyq740[3] = x.ReadOnly != false
var yynn740 int
if yyr740 || yy2arr740 {
r.EncodeArrayStart(4)
} else {
yynn740 = 2
yynn740 = 1
for _, b := range yyq740 {
if b {
yynn740++
@@ -10951,21 +10959,27 @@ func (x *AWSElasticBlockStoreVolumeSource) CodecEncodeSelf(e *codec1978.Encoder)
}
if yyr740 || yy2arr740 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym745 := z.EncBinary()
_ = yym745
if false {
if yyq740[1] {
yym745 := z.EncBinary()
_ = yym745
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym746 := z.EncBinary()
_ = yym746
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
if yyq740[1] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym746 := z.EncBinary()
_ = yym746
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
}
}
if yyr740 || yy2arr740 {
@@ -11893,12 +11907,13 @@ func (x *ISCSIVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
_, _, _ = yysep819, yyq819, yy2arr819
const yyr819 bool = false
yyq819[3] = x.ISCSIInterface != ""
yyq819[4] = x.FSType != ""
yyq819[5] = x.ReadOnly != false
var yynn819 int
if yyr819 || yy2arr819 {
r.EncodeArrayStart(6)
} else {
yynn819 = 4
yynn819 = 3
for _, b := range yyq819 {
if b {
yynn819++
@@ -11991,21 +12006,27 @@ func (x *ISCSIVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr819 || yy2arr819 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym833 := z.EncBinary()
_ = yym833
if false {
if yyq819[4] {
yym833 := z.EncBinary()
_ = yym833
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym834 := z.EncBinary()
_ = yym834
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
if yyq819[4] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym834 := z.EncBinary()
_ = yym834
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
}
}
if yyr819 || yy2arr819 {
@@ -12273,12 +12294,13 @@ func (x *FCVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
var yyq855 [4]bool
_, _, _ = yysep855, yyq855, yy2arr855
const yyr855 bool = false
yyq855[2] = x.FSType != ""
yyq855[3] = x.ReadOnly != false
var yynn855 int
if yyr855 || yy2arr855 {
r.EncodeArrayStart(4)
} else {
yynn855 = 3
yynn855 = 2
for _, b := range yyq855 {
if b {
yynn855++
@@ -12345,21 +12367,27 @@ func (x *FCVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) {
}
if yyr855 || yy2arr855 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
yym865 := z.EncBinary()
_ = yym865
if false {
if yyq855[2] {
yym865 := z.EncBinary()
_ = yym865
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym866 := z.EncBinary()
_ = yym866
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
if yyq855[2] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("fsType"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
yym866 := z.EncBinary()
_ = yym866
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.FSType))
}
}
}
if yyr855 || yy2arr855 {

View File

@@ -542,7 +542,7 @@ type RBDVolumeSource struct {
RBDImage string `json:"image"`
// Filesystem type of the volume that you want to mount.
// Tip: Ensure that the filesystem type is supported by the host operating system.
// Examples: "ext4", "xfs", "ntfs".
// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#rbd
// TODO: how do we prevent errors in the filesystem from compromising the machine
FSType string `json:"fsType,omitempty"`
@@ -577,9 +577,9 @@ type CinderVolumeSource struct {
// volume id used to identify the volume in cinder
// More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
VolumeID string `json:"volumeID"`
// Required: Filesystem type to mount.
// Filesystem type to mount.
// Must be a filesystem type supported by the host operating system.
// Only ext3 and ext4 are allowed
// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
FSType string `json:"fsType,omitempty"`
// Optional: Defaults to false (read/write). ReadOnly here will force
@@ -648,10 +648,10 @@ type GCEPersistentDiskVolumeSource struct {
PDName string `json:"pdName"`
// Filesystem type of the volume that you want to mount.
// Tip: Ensure that the filesystem type is supported by the host operating system.
// Examples: "ext4", "xfs", "ntfs".
// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk
// TODO: how do we prevent errors in the filesystem from compromising the machine
FSType string `json:"fsType"`
FSType string `json:"fsType,omitempty"`
// The partition in the volume that you want to mount.
// If omitted, the default is to mount by volume name.
// Examples: For volume /dev/sda1, you specify the partition as "1".
@@ -669,9 +669,9 @@ type GCEPersistentDiskVolumeSource struct {
type FlexVolumeSource struct {
// Driver is the name of the driver to use for this volume.
Driver string `json:"driver"`
// Required: Filesystem type to mount.
// Filesystem type to mount.
// Must be a filesystem type supported by the host operating system.
// Ex. "ext4", "xfs", "ntfs"
// Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
FSType string `json:"fsType,omitempty"`
// Optional: SecretRef is reference to the authentication secret for User, default is empty.
SecretRef *LocalObjectReference `json:"secretRef,omitempty"`
@@ -694,10 +694,10 @@ type AWSElasticBlockStoreVolumeSource struct {
VolumeID string `json:"volumeID"`
// Filesystem type of the volume that you want to mount.
// Tip: Ensure that the filesystem type is supported by the host operating system.
// Examples: "ext4", "xfs", "ntfs".
// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore
// TODO: how do we prevent errors in the filesystem from compromising the machine
FSType string `json:"fsType"`
FSType string `json:"fsType,omitempty"`
// The partition in the volume that you want to mount.
// If omitted, the default is to mount by volume name.
// Examples: For volume /dev/sda1, you specify the partition as "1".
@@ -768,10 +768,10 @@ type ISCSIVolumeSource struct {
ISCSIInterface string `json:"iscsiInterface,omitempty"`
// Filesystem type of the volume that you want to mount.
// Tip: Ensure that the filesystem type is supported by the host operating system.
// Examples: "ext4", "xfs", "ntfs".
// Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#iscsi
// TODO: how do we prevent errors in the filesystem from compromising the machine
FSType string `json:"fsType"`
FSType string `json:"fsType,omitempty"`
// ReadOnly here will force the ReadOnly setting in VolumeMounts.
// Defaults to false.
ReadOnly bool `json:"readOnly,omitempty"`
@@ -785,11 +785,11 @@ type FCVolumeSource struct {
TargetWWNs []string `json:"targetWWNs"`
// Required: FC target lun number
Lun *int32 `json:"lun"`
// Required: Filesystem type to mount.
// Filesystem type to mount.
// Must be a filesystem type supported by the host operating system.
// Ex. "ext4", "xfs", "ntfs"
// Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
// TODO: how do we prevent errors in the filesystem from compromising the machine
FSType string `json:"fsType"`
FSType string `json:"fsType,omitempty"`
// Optional: Defaults to false (read/write). ReadOnly here will force
// the ReadOnly setting in VolumeMounts.
ReadOnly bool `json:"readOnly,omitempty"`

View File

@@ -30,7 +30,7 @@ package v1
var map_AWSElasticBlockStoreVolumeSource = map[string]string{
"": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist and be formatted before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.",
"volumeID": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore",
"partition": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).",
"readOnly": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#awselasticblockstore",
}
@@ -96,7 +96,7 @@ func (CephFSVolumeSource) SwaggerDoc() map[string]string {
var map_CinderVolumeSource = map[string]string{
"": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
"volumeID": "volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
"fsType": "Required: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Only ext3 and ext4 are allowed More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
"fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
"readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md",
}
@@ -455,7 +455,7 @@ var map_FCVolumeSource = map[string]string{
"": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.",
"targetWWNs": "Required: FC target world wide names (WWNs)",
"lun": "Required: FC target lun number",
"fsType": "Required: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\"",
"fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
"readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
}
@@ -466,7 +466,7 @@ func (FCVolumeSource) SwaggerDoc() map[string]string {
var map_FlexVolumeSource = map[string]string{
"": "FlexVolume represents a generic volume resource that is provisioned/attached using a exec based plugin. This is an alpha feature and may change in future.",
"driver": "Driver is the name of the driver to use for this volume.",
"fsType": "Required: Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\"",
"fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.",
"secretRef": "Optional: SecretRef is reference to the authentication secret for User, default is empty.",
"readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"options": "Optional: Extra command options if any.",
@@ -488,7 +488,7 @@ func (FlockerVolumeSource) SwaggerDoc() map[string]string {
var map_GCEPersistentDiskVolumeSource = map[string]string{
"": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA 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. GCE PDs support ownership management and SELinux relabeling.",
"pdName": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk",
"partition": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk",
"readOnly": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#gcepersistentdisk",
}
@@ -568,7 +568,7 @@ var map_ISCSIVolumeSource = map[string]string{
"iqn": "Target iSCSI Qualified Name.",
"lun": "iSCSI target lun number.",
"iscsiInterface": "Optional: Defaults to 'default' (tcp). iSCSI interface name that uses an iSCSI transport.",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#iscsi",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#iscsi",
"readOnly": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
}
@@ -1237,7 +1237,7 @@ var map_RBDVolumeSource = map[string]string{
"": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.",
"monitors": "A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",
"image": "The rados image name. More info: http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#rbd",
"fsType": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: http://releases.k8s.io/HEAD/docs/user-guide/volumes.md#rbd",
"pool": "The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it.",
"user": "The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",
"keyring": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/rbd/README.md#how-to-use-it",