mirror of https://github.com/k3s-io/k3s
Block volumes should have empty FSType
FSType in block PVs has no meaning and it should be empty in provisioned PVs.pull/8/head
parent
c97b2e0d1e
commit
1c22dc9a5a
|
@ -514,6 +514,15 @@ func (c *awsElasticBlockStoreProvisioner) Provision(selectedNode *v1.Node, allow
|
||||||
fstype = "ext4"
|
fstype = "ext4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var volumeMode *v1.PersistentVolumeMode
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
|
volumeMode = c.options.PVC.Spec.VolumeMode
|
||||||
|
if volumeMode != nil && *volumeMode == v1.PersistentVolumeBlock {
|
||||||
|
// Block volumes should not have any FSType
|
||||||
|
fstype = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pv := &v1.PersistentVolume{
|
pv := &v1.PersistentVolume{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: c.options.PVName,
|
Name: c.options.PVName,
|
||||||
|
@ -528,6 +537,7 @@ func (c *awsElasticBlockStoreProvisioner) Provision(selectedNode *v1.Node, allow
|
||||||
Capacity: v1.ResourceList{
|
Capacity: v1.ResourceList{
|
||||||
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", sizeGB)),
|
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", sizeGB)),
|
||||||
},
|
},
|
||||||
|
VolumeMode: volumeMode,
|
||||||
PersistentVolumeSource: v1.PersistentVolumeSource{
|
PersistentVolumeSource: v1.PersistentVolumeSource{
|
||||||
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
|
AWSElasticBlockStore: &v1.AWSElasticBlockStoreVolumeSource{
|
||||||
VolumeID: string(volumeID),
|
VolumeID: string(volumeID),
|
||||||
|
@ -553,9 +563,5 @@ func (c *awsElasticBlockStoreProvisioner) Provision(selectedNode *v1.Node, allow
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
|
||||||
pv.Spec.VolumeMode = c.options.PVC.Spec.VolumeMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,6 +170,15 @@ func (p *azureDiskProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var volumeMode *v1.PersistentVolumeMode
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
|
volumeMode = p.options.PVC.Spec.VolumeMode
|
||||||
|
if volumeMode != nil && *volumeMode == v1.PersistentVolumeBlock {
|
||||||
|
// Block volumes should not have any FSType
|
||||||
|
fsType = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pv := &v1.PersistentVolume{
|
pv := &v1.PersistentVolume{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: p.options.PVName,
|
Name: p.options.PVName,
|
||||||
|
@ -184,6 +193,7 @@ func (p *azureDiskProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
|
||||||
Capacity: v1.ResourceList{
|
Capacity: v1.ResourceList{
|
||||||
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", requestGB)),
|
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", requestGB)),
|
||||||
},
|
},
|
||||||
|
VolumeMode: volumeMode,
|
||||||
PersistentVolumeSource: v1.PersistentVolumeSource{
|
PersistentVolumeSource: v1.PersistentVolumeSource{
|
||||||
AzureDisk: &v1.AzureDiskVolumeSource{
|
AzureDisk: &v1.AzureDiskVolumeSource{
|
||||||
CachingMode: &cachingMode,
|
CachingMode: &cachingMode,
|
||||||
|
@ -197,9 +207,5 @@ func (p *azureDiskProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
|
||||||
pv.Spec.VolumeMode = p.options.PVC.Spec.VolumeMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -512,6 +512,15 @@ func (c *cinderVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopolo
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var volumeMode *v1.PersistentVolumeMode
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
|
volumeMode = c.options.PVC.Spec.VolumeMode
|
||||||
|
if volumeMode != nil && *volumeMode == v1.PersistentVolumeBlock {
|
||||||
|
// Block volumes should not have any FSType
|
||||||
|
fstype = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pv := &v1.PersistentVolume{
|
pv := &v1.PersistentVolume{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: c.options.PVName,
|
Name: c.options.PVName,
|
||||||
|
@ -526,6 +535,7 @@ func (c *cinderVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopolo
|
||||||
Capacity: v1.ResourceList{
|
Capacity: v1.ResourceList{
|
||||||
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", sizeGB)),
|
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", sizeGB)),
|
||||||
},
|
},
|
||||||
|
VolumeMode: volumeMode,
|
||||||
PersistentVolumeSource: v1.PersistentVolumeSource{
|
PersistentVolumeSource: v1.PersistentVolumeSource{
|
||||||
Cinder: &v1.CinderPersistentVolumeSource{
|
Cinder: &v1.CinderPersistentVolumeSource{
|
||||||
VolumeID: volumeID,
|
VolumeID: volumeID,
|
||||||
|
@ -540,10 +550,6 @@ func (c *cinderVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopolo
|
||||||
pv.Spec.AccessModes = c.plugin.GetAccessModes()
|
pv.Spec.AccessModes = c.plugin.GetAccessModes()
|
||||||
}
|
}
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
|
||||||
pv.Spec.VolumeMode = c.options.PVC.Spec.VolumeMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -480,6 +480,15 @@ func (c *gcePersistentDiskProvisioner) Provision(selectedNode *v1.Node, allowedT
|
||||||
fstype = "ext4"
|
fstype = "ext4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var volumeMode *v1.PersistentVolumeMode
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
|
volumeMode = c.options.PVC.Spec.VolumeMode
|
||||||
|
if volumeMode != nil && *volumeMode == v1.PersistentVolumeBlock {
|
||||||
|
// Block volumes should not have any FSType
|
||||||
|
fstype = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pv := &v1.PersistentVolume{
|
pv := &v1.PersistentVolume{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: c.options.PVName,
|
Name: c.options.PVName,
|
||||||
|
@ -494,6 +503,7 @@ func (c *gcePersistentDiskProvisioner) Provision(selectedNode *v1.Node, allowedT
|
||||||
Capacity: v1.ResourceList{
|
Capacity: v1.ResourceList{
|
||||||
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dG", sizeGB)),
|
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dG", sizeGB)),
|
||||||
},
|
},
|
||||||
|
VolumeMode: volumeMode,
|
||||||
PersistentVolumeSource: v1.PersistentVolumeSource{
|
PersistentVolumeSource: v1.PersistentVolumeSource{
|
||||||
GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
|
GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{
|
||||||
PDName: volumeID,
|
PDName: volumeID,
|
||||||
|
@ -518,9 +528,5 @@ func (c *gcePersistentDiskProvisioner) Provision(selectedNode *v1.Node, allowedT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
|
||||||
pv.Spec.VolumeMode = c.options.PVC.Spec.VolumeMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -691,6 +691,15 @@ func (r *rbdVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
|
||||||
rbd.Keyring = keyring
|
rbd.Keyring = keyring
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var volumeMode *v1.PersistentVolumeMode
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
|
volumeMode = r.options.PVC.Spec.VolumeMode
|
||||||
|
if volumeMode != nil && *volumeMode == v1.PersistentVolumeBlock {
|
||||||
|
// Block volumes should not have any FSType
|
||||||
|
fstype = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rbd.RadosUser = r.Id
|
rbd.RadosUser = r.Id
|
||||||
rbd.FSType = fstype
|
rbd.FSType = fstype
|
||||||
pv.Spec.PersistentVolumeSource.RBD = rbd
|
pv.Spec.PersistentVolumeSource.RBD = rbd
|
||||||
|
@ -703,10 +712,7 @@ func (r *rbdVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopologie
|
||||||
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dMi", sizeMB)),
|
v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dMi", sizeMB)),
|
||||||
}
|
}
|
||||||
pv.Spec.MountOptions = r.options.MountOptions
|
pv.Spec.MountOptions = r.options.MountOptions
|
||||||
|
pv.Spec.VolumeMode = volumeMode
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
|
||||||
pv.Spec.VolumeMode = r.options.PVC.Spec.VolumeMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return pv, nil
|
return pv, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue