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.
|
||||
// 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) {
|
||||
pvcSpec.VolumeMode = nil
|
||||
if oldPVCSpec != nil {
|
||||
oldPVCSpec.VolumeMode = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
|
|||
// Enable alpha feature BlockVolume
|
||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, true)()
|
||||
// now test dropping the fields - should not be dropped
|
||||
DropDisabledFields(&pvc.Spec)
|
||||
DropDisabledFields(&pvc.Spec, nil)
|
||||
|
||||
// check to make sure VolumeDevices is still present
|
||||
// if featureset is set to true
|
||||
|
@ -50,7 +50,7 @@ func TestDropAlphaPVCVolumeMode(t *testing.T) {
|
|||
// Disable alpha feature BlockVolume
|
||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.BlockVolume, false)()
|
||||
// now test dropping the fields
|
||||
DropDisabledFields(&pvc.Spec)
|
||||
DropDisabledFields(&pvc.Spec, nil)
|
||||
|
||||
// check to make sure VolumeDevices is nil
|
||||
// if featureset is set to false
|
||||
|
|
|
@ -24,11 +24,17 @@ import (
|
|||
|
||||
// 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.
|
||||
func DropDisabledFields(pspSpec *policy.PodSecurityPolicySpec) {
|
||||
func DropDisabledFields(pspSpec, oldPSPSpec *policy.PodSecurityPolicySpec) {
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.ProcMountType) {
|
||||
pspSpec.AllowedProcMountTypes = nil
|
||||
if oldPSPSpec != nil {
|
||||
oldPSPSpec.AllowedProcMountTypes = nil
|
||||
}
|
||||
}
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.RunAsGroup) {
|
||||
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)()
|
||||
|
||||
// now test dropping the fields - should not be dropped
|
||||
DropDisabledFields(&psp.Spec)
|
||||
DropDisabledFields(&psp.Spec, nil)
|
||||
|
||||
// check to make sure AllowedProcMountTypes is still present
|
||||
// if featureset is set to true
|
||||
|
@ -52,7 +52,7 @@ func TestDropAlphaProcMountType(t *testing.T) {
|
|||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ProcMountType, false)()
|
||||
|
||||
// now test dropping the fields
|
||||
DropDisabledFields(&psp.Spec)
|
||||
DropDisabledFields(&psp.Spec, nil)
|
||||
|
||||
// check to make sure AllowedProcMountTypes is nil
|
||||
// if featureset is set to false
|
||||
|
|
|
@ -23,9 +23,13 @@ import (
|
|||
)
|
||||
|
||||
// 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) {
|
||||
class.VolumeBindingMode = nil
|
||||
class.AllowedTopologies = nil
|
||||
if oldClass != nil {
|
||||
oldClass.VolumeBindingMode = nil
|
||||
oldClass.AllowedTopologies = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ func TestDropAlphaFields(t *testing.T) {
|
|||
VolumeBindingMode: &bindingMode,
|
||||
AllowedTopologies: allowedTopologies,
|
||||
}
|
||||
DropDisabledFields(class)
|
||||
DropDisabledFields(class, nil)
|
||||
if class.VolumeBindingMode != nil {
|
||||
t.Errorf("VolumeBindingMode field didn't get dropped: %+v", class.VolumeBindingMode)
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ func TestDropAlphaFields(t *testing.T) {
|
|||
AllowedTopologies: allowedTopologies,
|
||||
}
|
||||
defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.VolumeScheduling, true)()
|
||||
DropDisabledFields(class)
|
||||
DropDisabledFields(class, nil)
|
||||
if class.VolumeBindingMode != &bindingMode {
|
||||
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.Status = api.PersistentVolumeClaimStatus{}
|
||||
|
||||
pvcutil.DropDisabledFields(&pvc.Spec)
|
||||
pvcutil.DropDisabledFields(&pvc.Spec, nil)
|
||||
}
|
||||
|
||||
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)
|
||||
newPvc.Status = oldPvc.Status
|
||||
|
||||
pvcutil.DropDisabledFields(&newPvc.Spec)
|
||||
pvcutil.DropDisabledFields(&oldPvc.Spec)
|
||||
pvcutil.DropDisabledFields(&newPvc.Spec, &oldPvc.Spec)
|
||||
}
|
||||
|
||||
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) {
|
||||
psp := obj.(*policy.PodSecurityPolicy)
|
||||
|
||||
psputil.DropDisabledFields(&psp.Spec)
|
||||
psputil.DropDisabledFields(&psp.Spec, nil)
|
||||
}
|
||||
|
||||
func (strategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
|
||||
newPsp := obj.(*policy.PodSecurityPolicy)
|
||||
oldPsp := old.(*policy.PodSecurityPolicy)
|
||||
|
||||
psputil.DropDisabledFields(&newPsp.Spec)
|
||||
psputil.DropDisabledFields(&oldPsp.Spec)
|
||||
psputil.DropDisabledFields(&newPsp.Spec, &oldPsp.Spec)
|
||||
}
|
||||
|
||||
func (strategy) Canonicalize(obj runtime.Object) {
|
||||
|
|
|
@ -52,7 +52,7 @@ func (storageClassStrategy) PrepareForCreate(ctx context.Context, obj runtime.Ob
|
|||
class.AllowVolumeExpansion = nil
|
||||
}
|
||||
|
||||
storageutil.DropDisabledFields(class)
|
||||
storageutil.DropDisabledFields(class, nil)
|
||||
}
|
||||
|
||||
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
|
||||
oldClass.AllowVolumeExpansion = nil
|
||||
}
|
||||
storageutil.DropDisabledFields(oldClass)
|
||||
storageutil.DropDisabledFields(newClass)
|
||||
storageutil.DropDisabledFields(oldClass, newClass)
|
||||
}
|
||||
|
||||
func (storageClassStrategy) ValidateUpdate(ctx context.Context, obj, old runtime.Object) field.ErrorList {
|
||||
|
|
Loading…
Reference in New Issue