Skip to content

Commit 58e3606

Browse files
Merge pull request #17856 from php-coder/improve_scc_admission_plugin
Automatic merge from submit-queue (batch tested with PRs 17856, 16934, 17979, 17993, 18001). SCC admission plugin: extract name to a constant I hope that it won't create unnecessary package coupling. PTAL @pweil- @liggitt CC @simo5
2 parents 8f25acb + 7109512 commit 58e3606

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

pkg/cmd/server/origin/admission/chain_builder.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
imagepolicy "github.com/openshift/origin/pkg/image/admission/imagepolicy/api"
2525
ingressadmission "github.com/openshift/origin/pkg/ingress/admission"
2626
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
27+
sccadmission "github.com/openshift/origin/pkg/security/admission"
2728
serviceadmit "github.com/openshift/origin/pkg/service/admission"
2829
)
2930

@@ -61,7 +62,7 @@ var (
6162
"LimitRanger",
6263
"ServiceAccount",
6364
noderestriction.PluginName,
64-
"SecurityContextConstraint",
65+
sccadmission.PluginName,
6566
storageclassdefaultadmission.PluginName,
6667
"AlwaysPullImages",
6768
"LimitPodHardAntiAffinityTopology",
@@ -107,7 +108,7 @@ var (
107108
"LimitRanger",
108109
"ServiceAccount",
109110
noderestriction.PluginName,
110-
"SecurityContextConstraint",
111+
sccadmission.PluginName,
111112
storageclassdefaultadmission.PluginName,
112113
"AlwaysPullImages",
113114
"LimitPodHardAntiAffinityTopology",

pkg/cmd/server/origin/admission/config_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
configapi "github.com/openshift/origin/pkg/cmd/server/api"
1313
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
14+
sccadmission "github.com/openshift/origin/pkg/security/admission"
1415
serviceadmit "github.com/openshift/origin/pkg/service/admission"
1516
)
1617

@@ -66,7 +67,7 @@ var legacyOpenshiftAdmissionPlugins = sets.NewString(
6667
"OriginPodNodeEnvironment",
6768
overrideapi.PluginName,
6869
serviceadmit.ExternalIPPluginName,
69-
"SecurityContextConstraint",
70+
sccadmission.PluginName,
7071
"SCCExecRestrictions",
7172
"ResourceQuota",
7273
)

pkg/cmd/server/origin/admission/register.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ var (
8585
"LimitRanger",
8686
"ServiceAccount",
8787
noderestriction.PluginName,
88-
"SecurityContextConstraint",
88+
securityadmission.PluginName,
8989
"SCCExecRestrictions",
9090
"PersistentVolumeLabel",
9191
"DefaultStorageClass",

pkg/security/admission/admission.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ import (
2424
"k8s.io/kubernetes/pkg/serviceaccount"
2525
)
2626

27+
const PluginName = "SecurityContextConstraint"
28+
2729
func Register(plugins *admission.Plugins) {
28-
plugins.Register("SecurityContextConstraint",
30+
plugins.Register(PluginName,
2931
func(config io.Reader) (admission.Interface, error) {
3032
return NewConstraint(), nil
3133
})
@@ -137,8 +139,7 @@ func (c *constraint) Admit(a admission.Attributes) error {
137139
return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs))
138140
}
139141

140-
// SetInformers implements WantsInformers interface for constraint.
141-
142+
// SetSecurityInformers implements WantsSecurityInformer interface for constraint.
142143
func (c *constraint) SetSecurityInformers(informers securityinformer.SharedInformerFactory) {
143144
c.sccLister = informers.Security().InternalVersion().SecurityContextConstraints().Lister()
144145
}
@@ -147,10 +148,13 @@ func (c *constraint) SetInternalKubeClientSet(client kclientset.Interface) {
147148
c.client = client
148149
}
149150

150-
// Validate defines actions to vallidate security admission
151+
// ValidateInitialization implements InitializationValidator interface for constraint.
151152
func (c *constraint) ValidateInitialization() error {
152153
if c.sccLister == nil {
153-
return fmt.Errorf("sccLister not initialized")
154+
return fmt.Errorf("%s requires an sccLister", PluginName)
155+
}
156+
if c.client == nil {
157+
return fmt.Errorf("%s requires a client", PluginName)
154158
}
155159
return nil
156160
}

0 commit comments

Comments
 (0)