@@ -17,6 +17,7 @@ import (
17
17
kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
18
18
19
19
"github.com/openshift/origin/pkg/authorization/util"
20
+ oadmission "github.com/openshift/origin/pkg/cmd/server/admission"
20
21
templateapi "github.com/openshift/origin/pkg/template/apis/template"
21
22
"github.com/openshift/origin/pkg/template/apis/template/validation"
22
23
)
@@ -96,7 +97,7 @@ func (s *templateInstanceStrategy) ValidateUpdate(ctx apirequest.Context, obj, o
96
97
templateInstance := obj .(* templateapi.TemplateInstance )
97
98
oldTemplateInstance := old .(* templateapi.TemplateInstance )
98
99
allErrs := validation .ValidateTemplateInstanceUpdate (templateInstance , oldTemplateInstance )
99
- allErrs = append (allErrs , s .validateImpersonation (templateInstance , user )... )
100
+ allErrs = append (allErrs , s .validateImpersonationUpdate (templateInstance , oldTemplateInstance , user )... )
100
101
101
102
return allErrs
102
103
}
@@ -124,6 +125,14 @@ func SelectableFields(obj *templateapi.TemplateInstance) fields.Set {
124
125
return templateapi .TemplateInstanceToSelectableFields (obj )
125
126
}
126
127
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
+
127
136
func (s * templateInstanceStrategy ) validateImpersonation (templateInstance * templateapi.TemplateInstance , userinfo user.Info ) field.ErrorList {
128
137
if templateInstance .Spec .Requester == nil || templateInstance .Spec .Requester .Username == "" {
129
138
return field.ErrorList {field .Required (field .NewPath ("spec.requester.username" ), "" )}
0 commit comments