diff options
Diffstat (limited to 'vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go')
| -rw-r--r-- | vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go index c844a051c..3f4338128 100644 --- a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go @@ -337,6 +337,13 @@ func (s *Plugin) limitSecretReferences(serviceAccount *corev1.ServiceAccount, po } } } + for _, envFrom := range container.EnvFrom { + if envFrom.SecretRef != nil { + if !mountableSecrets.Has(envFrom.SecretRef.Name) { + return fmt.Errorf("init container %s with envFrom referencing secret.secretName=\"%s\" is not allowed because service account %s does not reference that secret", container.Name, envFrom.SecretRef.Name, serviceAccount.Name) + } + } + } } for _, container := range pod.Spec.Containers { @@ -347,6 +354,13 @@ func (s *Plugin) limitSecretReferences(serviceAccount *corev1.ServiceAccount, po } } } + for _, envFrom := range container.EnvFrom { + if envFrom.SecretRef != nil { + if !mountableSecrets.Has(envFrom.SecretRef.Name) { + return fmt.Errorf("container %s with envFrom referencing secret.secretName=\"%s\" is not allowed because service account %s does not reference that secret", container.Name, envFrom.SecretRef.Name, serviceAccount.Name) + } + } + } } // limit pull secret references as well @@ -388,6 +402,13 @@ func (s *Plugin) limitEphemeralContainerSecretReferences(pod *api.Pod, a admissi } } } + for _, envFrom := range container.EnvFrom { + if envFrom.SecretRef != nil { + if !mountableSecrets.Has(envFrom.SecretRef.Name) { + return fmt.Errorf("ephemeral container %s with envFrom referencing secret.secretName=\"%s\" is not allowed because service account %s does not reference that secret", container.Name, envFrom.SecretRef.Name, serviceAccount.Name) + } + } + } } return nil } |
