Skip to content

Commit a67ac87

Browse files
Merge pull request #14918 from deads2k/gc-04-allow-gc-mutation
allow templateinstance updates for GC
2 parents c6e84df + f8e6fe1 commit a67ac87

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

Diff for: pkg/template/registry/templateinstance/strategy.go

+10-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
1818

1919
"github.com/openshift/origin/pkg/authorization/util"
20+
oadmission "github.com/openshift/origin/pkg/cmd/server/admission"
2021
templateapi "github.com/openshift/origin/pkg/template/apis/template"
2122
"github.com/openshift/origin/pkg/template/apis/template/validation"
2223
)
@@ -96,7 +97,7 @@ func (s *templateInstanceStrategy) ValidateUpdate(ctx apirequest.Context, obj, o
9697
templateInstance := obj.(*templateapi.TemplateInstance)
9798
oldTemplateInstance := old.(*templateapi.TemplateInstance)
9899
allErrs := validation.ValidateTemplateInstanceUpdate(templateInstance, oldTemplateInstance)
99-
allErrs = append(allErrs, s.validateImpersonation(templateInstance, user)...)
100+
allErrs = append(allErrs, s.validateImpersonationUpdate(templateInstance, oldTemplateInstance, user)...)
100101

101102
return allErrs
102103
}
@@ -124,6 +125,14 @@ func SelectableFields(obj *templateapi.TemplateInstance) fields.Set {
124125
return templateapi.TemplateInstanceToSelectableFields(obj)
125126
}
126127

128+
func (s *templateInstanceStrategy) validateImpersonationUpdate(templateInstance, oldTemplateInstance *templateapi.TemplateInstance, userinfo user.Info) field.ErrorList {
129+
if oadmission.IsOnlyMutatingGCFields(templateInstance, oldTemplateInstance) {
130+
return nil
131+
}
132+
133+
return s.validateImpersonation(templateInstance, userinfo)
134+
}
135+
127136
func (s *templateInstanceStrategy) validateImpersonation(templateInstance *templateapi.TemplateInstance, userinfo user.Info) field.ErrorList {
128137
if templateInstance.Spec.Requester == nil || templateInstance.Spec.Requester.Username == "" {
129138
return field.ErrorList{field.Required(field.NewPath("spec.requester.username"), "")}

0 commit comments

Comments
 (0)