Skip to content

Commit

Permalink
PSP admission plugin: extract name to a constant and a couple minor i…
Browse files Browse the repository at this point in the history
…mprovements.
  • Loading branch information
php-coder committed Dec 18, 2017
1 parent 1c24d18 commit 7109512
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
5 changes: 3 additions & 2 deletions pkg/cmd/server/origin/admission/chain_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
imagepolicy "github.com/openshift/origin/pkg/image/admission/imagepolicy/api"
ingressadmission "github.com/openshift/origin/pkg/ingress/admission"
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
sccadmission "github.com/openshift/origin/pkg/security/admission"
serviceadmit "github.com/openshift/origin/pkg/service/admission"
)

Expand Down Expand Up @@ -61,7 +62,7 @@ var (
"LimitRanger",
"ServiceAccount",
noderestriction.PluginName,
"SecurityContextConstraint",
sccadmission.PluginName,
storageclassdefaultadmission.PluginName,
"AlwaysPullImages",
"LimitPodHardAntiAffinityTopology",
Expand Down Expand Up @@ -107,7 +108,7 @@ var (
"LimitRanger",
"ServiceAccount",
noderestriction.PluginName,
"SecurityContextConstraint",
sccadmission.PluginName,
storageclassdefaultadmission.PluginName,
"AlwaysPullImages",
"LimitPodHardAntiAffinityTopology",
Expand Down
3 changes: 2 additions & 1 deletion pkg/cmd/server/origin/admission/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (

configapi "github.com/openshift/origin/pkg/cmd/server/api"
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
sccadmission "github.com/openshift/origin/pkg/security/admission"
serviceadmit "github.com/openshift/origin/pkg/service/admission"
)

Expand Down Expand Up @@ -66,7 +67,7 @@ var legacyOpenshiftAdmissionPlugins = sets.NewString(
"OriginPodNodeEnvironment",
overrideapi.PluginName,
serviceadmit.ExternalIPPluginName,
"SecurityContextConstraint",
sccadmission.PluginName,
"SCCExecRestrictions",
"ResourceQuota",
)
Expand Down
2 changes: 1 addition & 1 deletion pkg/cmd/server/origin/admission/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ var (
"LimitRanger",
"ServiceAccount",
noderestriction.PluginName,
"SecurityContextConstraint",
securityadmission.PluginName,
"SCCExecRestrictions",
"PersistentVolumeLabel",
"DefaultStorageClass",
Expand Down
14 changes: 9 additions & 5 deletions pkg/security/admission/admission.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ import (
"k8s.io/kubernetes/pkg/serviceaccount"
)

const PluginName = "SecurityContextConstraint"

func Register(plugins *admission.Plugins) {
plugins.Register("SecurityContextConstraint",
plugins.Register(PluginName,
func(config io.Reader) (admission.Interface, error) {
return NewConstraint(), nil
})
Expand Down Expand Up @@ -137,8 +139,7 @@ func (c *constraint) Admit(a admission.Attributes) error {
return admission.NewForbidden(a, fmt.Errorf("unable to validate against any security context constraint: %v", validationErrs))
}

// SetInformers implements WantsInformers interface for constraint.

// SetSecurityInformers implements WantsSecurityInformer interface for constraint.
func (c *constraint) SetSecurityInformers(informers securityinformer.SharedInformerFactory) {
c.sccLister = informers.Security().InternalVersion().SecurityContextConstraints().Lister()
}
Expand All @@ -147,10 +148,13 @@ func (c *constraint) SetInternalKubeClientSet(client kclientset.Interface) {
c.client = client
}

// Validate defines actions to vallidate security admission
// ValidateInitialization implements InitializationValidator interface for constraint.
func (c *constraint) ValidateInitialization() error {
if c.sccLister == nil {
return fmt.Errorf("sccLister not initialized")
return fmt.Errorf("%s requires an sccLister", PluginName)
}
if c.client == nil {
return fmt.Errorf("%s requires a client", PluginName)
}
return nil
}
Expand Down

0 comments on commit 7109512

Please sign in to comment.