summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go
diff options
context:
space:
mode:
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.go21
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
}