mirror of https://github.com/k3s-io/k3s
Pass new and old object to DropDisabledFields
parent
88284f637b
commit
901ddba812
|
@ -24,8 +24,11 @@ import (
|
||||||
|
|
||||||
// DropDisabledFields removes disabled fields from the pvc spec.
|
// DropDisabledFields removes disabled fields from the pvc spec.
|
||||||
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a pvc spec.
|
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a pvc spec.
|
||||||
func DropDisabledFields(pvcSpec *core.PersistentVolumeClaimSpec) {
|
func DropDisabledFields(pvcSpec, oldPVCSpec *core.PersistentVolumeClaimSpec) {
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
if !utilfeature.DefaultFeatureGate.Enabled(features.BlockVolume) {
|
||||||
pvcSpec.VolumeMode = nil
|
pvcSpec.VolumeMode = nil
|
||||||
|
if oldPVCSpec != nil {
|
||||||
|
oldPVCSpec.VolumeMode = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
|
||||||
// Enable alpha feature BlockVolume
|
// Enable alpha feature BlockVolume
|
||||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, true)()
|
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, true)()
|
||||||
// now test dropping the fields - should not be dropped
|
// now test dropping the fields - should not be dropped
|
||||||
DropDisabledFields(&pvc.Spec)
|
DropDisabledFields(&pvc.Spec, nil)
|
||||||
|
|
||||||
// check to make sure VolumeDevices is still present
|
// check to make sure VolumeDevices is still present
|
||||||
// if featureset is set to true
|
// if featureset is set to true
|
||||||
|
@ -50,7 +50,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
|
||||||
// Disable alpha feature BlockVolume
|
// Disable alpha feature BlockVolume
|
||||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, false)()
|
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, false)()
|
||||||
// now test dropping the fields
|
// now test dropping the fields
|
||||||
DropDisabledFields(&pvc.Spec)
|
DropDisabledFields(&pvc.Spec, nil)
|
||||||
|
|
||||||
// check to make sure VolumeDevices is nil
|
// check to make sure VolumeDevices is nil
|
||||||
// if featureset is set to false
|
// if featureset is set to false
|
||||||
|
|
|
@ -24,11 +24,17 @@ import (
|
||||||
|
|
||||||
// DropDisabledFields removes disabled fields from the pod security policy spec.
|
// DropDisabledFields removes disabled fields from the pod security policy spec.
|
||||||
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a od security policy spec.
|
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a od security policy spec.
|
||||||
func DropDisabledFields(pspSpec *policy.PodSecurityPolicySpec) {
|
func DropDisabledFields(pspSpec, oldPSPSpec *policy.PodSecurityPolicySpec) {
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.ProcMountType) {
|
if !utilfeature.DefaultFeatureGate.Enabled(features.ProcMountType) {
|
||||||
pspSpec.AllowedProcMountTypes = nil
|
pspSpec.AllowedProcMountTypes = nil
|
||||||
|
if oldPSPSpec != nil {
|
||||||
|
oldPSPSpec.AllowedProcMountTypes = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.RunAsGroup) {
|
if !utilfeature.DefaultFeatureGate.Enabled(features.RunAsGroup) {
|
||||||
pspSpec.RunAsGroup = nil
|
pspSpec.RunAsGroup = nil
|
||||||
|
if oldPSPSpec != nil {
|
||||||
|
oldPSPSpec.RunAsGroup = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ func TestDropAlphaProcMountType(t *testing.T) {
|
||||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, true)()
|
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, true)()
|
||||||
|
|
||||||
// now test dropping the fields - should not be dropped
|
// now test dropping the fields - should not be dropped
|
||||||
DropDisabledFields(&psp.Spec)
|
DropDisabledFields(&psp.Spec, nil)
|
||||||
|
|
||||||
// check to make sure AllowedProcMountTypes is still present
|
// check to make sure AllowedProcMountTypes is still present
|
||||||
// if featureset is set to true
|
// if featureset is set to true
|
||||||
|
@ -52,7 +52,7 @@ func TestDropAlphaProcMountType(t *testing.T) {
|
||||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, false)()
|
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, false)()
|
||||||
|
|
||||||
// now test dropping the fields
|
// now test dropping the fields
|
||||||
DropDisabledFields(&psp.Spec)
|
DropDisabledFields(&psp.Spec, nil)
|
||||||
|
|
||||||
// check to make sure AllowedProcMountTypes is nil
|
// check to make sure AllowedProcMountTypes is nil
|
||||||
// if featureset is set to false
|
// if featureset is set to false
|
||||||
|
|
|
@ -23,9 +23,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
// DropDisabledFields removes disabled fields from the StorageClass object.
|
// DropDisabledFields removes disabled fields from the StorageClass object.
|
||||||
func DropDisabledFields(class *storage.StorageClass) {
|
func DropDisabledFields(class, oldClass *storage.StorageClass) {
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
|
if !utilfeature.DefaultFeatureGate.Enabled(features.VolumeScheduling) {
|
||||||
class.VolumeBindingMode = nil
|
class.VolumeBindingMode = nil
|
||||||
class.AllowedTopologies = nil
|
class.AllowedTopologies = nil
|
||||||
|
if oldClass != nil {
|
||||||
|
oldClass.VolumeBindingMode = nil
|
||||||
|
oldClass.AllowedTopologies = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ func TestDropAlphaFields(t *testing.T) {
|
||||||
VolumeBindingMode: &bindingMode,
|
VolumeBindingMode: &bindingMode,
|
||||||
AllowedTopologies: allowedTopologies,
|
AllowedTopologies: allowedTopologies,
|
||||||
}
|
}
|
||||||
DropDisabledFields(class)
|
DropDisabledFields(class, nil)
|
||||||
if class.VolumeBindingMode != nil {
|
if class.VolumeBindingMode != nil {
|
||||||
t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode)
|
t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode)
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ func TestDropAlphaFields(t *testing.T) {
|
||||||
AllowedTopologies: allowedTopologies,
|
AllowedTopologies: allowedTopologies,
|
||||||
}
|
}
|
||||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeScheduling, true)()
|
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeScheduling, true)()
|
||||||
DropDisabledFields(class)
|
DropDisabledFields(class, nil)
|
||||||
if class.VolumeBindingMode != &bindingMode {
|
if class.VolumeBindingMode != &bindingMode {
|
||||||
t.Errorf("VolumeBindingMode field got unexpectantly modified: %+v", class.VolumeBindingMode)
|
t.Errorf("VolumeBindingMode field got unexpectantly modified: %+v", class.VolumeBindingMode)
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ func (persistentvolumeclaimStrategy) PrepareForCreate(ctx context.Context, obj r
|
||||||
pvc := obj.(*api.PersistentVolumeClaim)
|
pvc := obj.(*api.PersistentVolumeClaim)
|
||||||
pvc.Status = api.PersistentVolumeClaimStatus{}
|
pvc.Status = api.PersistentVolumeClaimStatus{}
|
||||||
|
|
||||||
pvcutil.DropDisabledFields(&pvc.Spec)
|
pvcutil.DropDisabledFields(&pvc.Spec, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (persistentvolumeclaimStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
|
func (persistentvolumeclaimStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
|
||||||
|
@ -74,8 +74,7 @@ func (persistentvolumeclaimStrategy) PrepareForUpdate(ctx context.Context, obj,
|
||||||
oldPvc := old.(*api.PersistentVolumeClaim)
|
oldPvc := old.(*api.PersistentVolumeClaim)
|
||||||
newPvc.Status = oldPvc.Status
|
newPvc.Status = oldPvc.Status
|
||||||
|
|
||||||
pvcutil.DropDisabledFields(&newPvc.Spec)
|
pvcutil.DropDisabledFields(&newPvc.Spec, &oldPvc.Spec)
|
||||||
pvcutil.DropDisabledFields(&oldPvc.Spec)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (persistentvolumeclaimStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
func (persistentvolumeclaimStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
||||||
|
|
|
@ -58,15 +58,14 @@ func (strategy) AllowUnconditionalUpdate() bool {
|
||||||
func (strategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
|
func (strategy) PrepareForCreate(ctx context.Context, obj runtime.Object) {
|
||||||
psp := obj.(*policy.PodSecurityPolicy)
|
psp := obj.(*policy.PodSecurityPolicy)
|
||||||
|
|
||||||
psputil.DropDisabledFields(&psp.Spec)
|
psputil.DropDisabledFields(&psp.Spec, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
|
func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
|
||||||
newPsp := obj.(*policy.PodSecurityPolicy)
|
newPsp := obj.(*policy.PodSecurityPolicy)
|
||||||
oldPsp := old.(*policy.PodSecurityPolicy)
|
oldPsp := old.(*policy.PodSecurityPolicy)
|
||||||
|
|
||||||
psputil.DropDisabledFields(&newPsp.Spec)
|
psputil.DropDisabledFields(&newPsp.Spec, &oldPsp.Spec)
|
||||||
psputil.DropDisabledFields(&oldPsp.Spec)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (strategy) Canonicalize(obj runtime.Object) {
|
func (strategy) Canonicalize(obj runtime.Object) {
|
||||||
|
|
|
@ -52,7 +52,7 @@ func (storageClassStrategy) PrepareForCreate(ctx context.Context, obj runtime.Ob
|
||||||
class.AllowVolumeExpansion = nil
|
class.AllowVolumeExpansion = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
storageutil.DropDisabledFields(class)
|
storageutil.DropDisabledFields(class, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (storageClassStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
|
func (storageClassStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList {
|
||||||
|
@ -77,8 +77,7 @@ func (storageClassStrategy) PrepareForUpdate(ctx context.Context, obj, old runti
|
||||||
newClass.AllowVolumeExpansion = nil
|
newClass.AllowVolumeExpansion = nil
|
||||||
oldClass.AllowVolumeExpansion = nil
|
oldClass.AllowVolumeExpansion = nil
|
||||||
}
|
}
|
||||||
storageutil.DropDisabledFields(oldClass)
|
storageutil.DropDisabledFields(oldClass, newClass)
|
||||||
storageutil.DropDisabledFields(newClass)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (storageClassStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
func (storageClassStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
||||||
|
|
Loading…
Reference in New Issue