Browse Source
psp, roles and rbs for PodSecurityPolicy when podsecuritypolicy_enabled is true
pull/3102/head
psp, roles and rbs for PodSecurityPolicy when podsecuritypolicy_enabled is true
pull/3102/head
48 changed files with 851 additions and 44 deletions
Unified View
Diff Options
-
3inventory/sample/group_vars/k8s-cluster.yml
-
6roles/kubernetes-apps/ansible/defaults/main.yml
-
30roles/kubernetes-apps/ansible/tasks/netchecker.yml
-
6roles/kubernetes-apps/ansible/templates/netchecker-agent-ds.yml.j2
-
14roles/kubernetes-apps/ansible/templates/netchecker-agent-hostnet-clusterrole.yml.j2
-
13roles/kubernetes-apps/ansible/templates/netchecker-agent-hostnet-clusterrolebinding.yml.j2
-
6roles/kubernetes-apps/ansible/templates/netchecker-agent-hostnet-ds.yml.j2
-
45roles/kubernetes-apps/ansible/templates/netchecker-agent-hostnet-psp.yml.j2
-
7roles/kubernetes-apps/ansible/templates/netchecker-agent-sa.yml.j2
-
3roles/kubernetes-apps/ansible/templates/netchecker-server-deployment.yml.j2
-
40roles/kubernetes-apps/cluster_roles/tasks/main.yml
-
35roles/kubernetes-apps/cluster_roles/templates/psp-cr.yml.j2
-
55roles/kubernetes-apps/cluster_roles/templates/psp-crb.yml.j2
-
77roles/kubernetes-apps/cluster_roles/templates/psp.yml.j2
-
33roles/kubernetes-apps/external_provisioner/cephfs_provisioner/tasks/main.yml
-
8roles/kubernetes-apps/external_provisioner/cephfs_provisioner/templates/clusterrole-cephfs-provisioner.yml.j2
-
45roles/kubernetes-apps/external_provisioner/cephfs_provisioner/templates/psp-cephfs-provisioner.yml.j2
-
29roles/kubernetes-apps/external_provisioner/local_volume_provisioner/tasks/main.yml
-
14roles/kubernetes-apps/external_provisioner/local_volume_provisioner/templates/local-volume-provisioner-psp-cr.yml.j2
-
13roles/kubernetes-apps/external_provisioner/local_volume_provisioner/templates/local-volume-provisioner-psp-rb.yml.j2
-
44roles/kubernetes-apps/external_provisioner/local_volume_provisioner/templates/local-volume-provisioner-psp.yml.j2
-
1roles/kubernetes-apps/ingress_controller/cert_manager/defaults/main.yml
-
2roles/kubernetes-apps/ingress_controller/cert_manager/templates/deploy-cert-manager.yml.j2
-
37roles/kubernetes-apps/ingress_controller/ingress_nginx/tasks/main.yml
-
48roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/psp-ingress-nginx.yml.j2
-
8roles/kubernetes-apps/ingress_controller/ingress_nginx/templates/role-ingress-nginx.yml.j2
-
30roles/kubernetes-apps/registry/tasks/main.yml
-
15roles/kubernetes-apps/registry/templates/registry-cr.yml.j2
-
13roles/kubernetes-apps/registry/templates/registry-crb.yml.j2
-
15roles/kubernetes-apps/registry/templates/registry-proxy-cr.yml.j2
-
13roles/kubernetes-apps/registry/templates/registry-proxy-crb.yml.j2
-
3roles/kubernetes-apps/registry/templates/registry-proxy-ds.yml.j2
-
48roles/kubernetes-apps/registry/templates/registry-proxy-psp.yml.j2
-
7roles/kubernetes-apps/registry/templates/registry-proxy-sa.yml.j2
-
45roles/kubernetes-apps/registry/templates/registry-psp.yml.j2
-
3roles/kubernetes-apps/registry/templates/registry-rs.yml.j2
-
7roles/kubernetes-apps/registry/templates/registry-sa.yml.j2
-
2roles/kubernetes/master/defaults/main.yml
-
6roles/kubernetes/master/tasks/main.yml
-
2roles/kubespray-defaults/defaults/main.yaml
-
8roles/network_plugin/calico/templates/calico-cr.yml.j2
-
8roles/network_plugin/canal/templates/canal-cr-calico.yml.j2
-
8roles/network_plugin/canal/templates/canal-cr-flannel.yml.j2
-
8roles/network_plugin/cilium/templates/cilium-cr.yml.j2
-
8roles/network_plugin/contiv/templates/contiv-netmaster-clusterrole.yml.j2
-
8roles/network_plugin/contiv/templates/contiv-netplugin-clusterrole.yml.j2
-
8roles/network_plugin/flannel/templates/cni-flannel-rbac.yml.j2
-
8roles/network_plugin/weave/templates/weave-net.yml.j2
@ -0,0 +1,14 @@ |
|||||
|
kind: ClusterRole |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:netchecker-agent-hostnet |
||||
|
namespace: {{ netcheck_namespace }} |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- netchecker-agent-hostnet |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
@ -0,0 +1,13 @@ |
|||||
|
kind: RoleBinding |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:netchecker-agent-hostnet |
||||
|
namespace: {{ netcheck_namespace }} |
||||
|
subjects: |
||||
|
- kind: ServiceAccount |
||||
|
name: netchecker-agent-hostnet |
||||
|
namespace: {{ netcheck_namespace }} |
||||
|
roleRef: |
||||
|
kind: ClusterRole |
||||
|
name: psp:netchecker-agent-hostnet |
||||
|
apiGroup: rbac.authorization.k8s.io |
@ -0,0 +1,45 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: netchecker-agent-hostnet |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: false |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: true |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'MustRunAsNonRoot' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,7 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: ServiceAccount |
||||
|
metadata: |
||||
|
name: netchecker-agent |
||||
|
namespace: {{ netcheck_namespace }} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
@ -0,0 +1,35 @@ |
|||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1 |
||||
|
kind: ClusterRole |
||||
|
metadata: |
||||
|
name: psp:privileged |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- privileged |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1 |
||||
|
kind: ClusterRole |
||||
|
metadata: |
||||
|
name: psp:restricted |
||||
|
namespace: kube-system |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- restricted |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
@ -0,0 +1,55 @@ |
|||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1 |
||||
|
kind: ClusterRoleBinding |
||||
|
metadata: |
||||
|
name: psp:any:restricted |
||||
|
roleRef: |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
kind: ClusterRole |
||||
|
name: psp:restricted |
||||
|
subjects: |
||||
|
- kind: Group |
||||
|
name: system:authenticated |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1 |
||||
|
kind: RoleBinding |
||||
|
metadata: |
||||
|
name: psp:kube-system:privileged |
||||
|
namespace: kube-system |
||||
|
roleRef: |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
kind: ClusterRole |
||||
|
name: psp:privileged |
||||
|
subjects: |
||||
|
- kind: Group |
||||
|
name: system:masters |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
- kind: Group |
||||
|
name: system:serviceaccounts:kube-system |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1 |
||||
|
kind: RoleBinding |
||||
|
metadata: |
||||
|
name: psp:nodes:privileged |
||||
|
namespace: kube-system |
||||
|
annotations: |
||||
|
kubernetes.io/description: 'Allow nodes to create privileged pods. Should |
||||
|
be used in combination with the NodeRestriction admission plugin to limit |
||||
|
nodes to mirror pods bound to themselves.' |
||||
|
labels: |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
roleRef: |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
kind: ClusterRole |
||||
|
name: psp:privileged |
||||
|
subjects: |
||||
|
- kind: Group |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
name: system:nodes |
||||
|
- kind: User |
||||
|
apiGroup: rbac.authorization.k8s.io |
||||
|
# Legacy node ID |
||||
|
name: kubelet |
@ -0,0 +1,77 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: restricted |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: false |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: false |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'MustRunAsNonRoot' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: privileged |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: true |
||||
|
allowPrivilegeEscalation: true |
||||
|
allowedCapabilities: |
||||
|
- '*' |
||||
|
volumes: |
||||
|
- '*' |
||||
|
hostNetwork: true |
||||
|
hostPorts: |
||||
|
- min: 0 |
||||
|
max: 65535 |
||||
|
hostIPC: true |
||||
|
hostPID: true |
||||
|
runAsUser: |
||||
|
rule: 'RunAsAny' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'RunAsAny' |
||||
|
fsGroup: |
||||
|
rule: 'RunAsAny' |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,45 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: cephfs-provisioner |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: false |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: false |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'RunAsAny' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,14 @@ |
|||||
|
kind: ClusterRole |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:local-volume-provisioner |
||||
|
namespace: {{ local_volume_provisioner_namespace }} |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- local-volume-provisioner |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
@ -0,0 +1,13 @@ |
|||||
|
kind: RoleBinding |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:local-volume-provisioner |
||||
|
namespace: {{ local_volume_provisioner_namespace }} |
||||
|
subjects: |
||||
|
- kind: ServiceAccount |
||||
|
name: local-volume-provisioner |
||||
|
namespace: {{ local_volume_provisioner_namespace }} |
||||
|
roleRef: |
||||
|
kind: ClusterRole |
||||
|
name: psp:local-volume-provisioner |
||||
|
apiGroup: rbac.authorization.k8s.io |
@ -0,0 +1,44 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: local-volume-provisioner |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: true |
||||
|
allowPrivilegeEscalation: true |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'hostPath' |
||||
|
allowedHostPaths: |
||||
|
- pathPrefix: "{{ local_volume_provisioner_base_dir }}" |
||||
|
readOnly: false |
||||
|
hostNetwork: false |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'RunAsAny' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'RunAsAny' |
||||
|
readOnlyRootFilesystem: false |
@ -1,2 +1,3 @@ |
|||||
--- |
--- |
||||
cert_manager_namespace: "cert-manager" |
cert_manager_namespace: "cert-manager" |
||||
|
cert_manager_user: 1001 |
@ -0,0 +1,48 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: ingress-nginx |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: true |
||||
|
allowedCapabilities: |
||||
|
- NET_BIND_SERVICE |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: {{ ingress_nginx_host_network|bool }} |
||||
|
hostPorts: |
||||
|
- min: 0 |
||||
|
max: 65535 |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'MustRunAsNonRoot' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,15 @@ |
|||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
kind: ClusterRole |
||||
|
metadata: |
||||
|
name: psp:registry |
||||
|
namespace: {{ registry_namespace }} |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- registry |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
@ -0,0 +1,13 @@ |
|||||
|
kind: RoleBinding |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:registry |
||||
|
namespace: {{ registry_namespace }} |
||||
|
subjects: |
||||
|
- kind: ServiceAccount |
||||
|
name: registry |
||||
|
namespace: {{ registry_namespace }} |
||||
|
roleRef: |
||||
|
kind: ClusterRole |
||||
|
name: psp:registry |
||||
|
apiGroup: rbac.authorization.k8s.io |
@ -0,0 +1,15 @@ |
|||||
|
--- |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
kind: ClusterRole |
||||
|
metadata: |
||||
|
name: psp:registry-proxy |
||||
|
namespace: {{ registry_namespace }} |
||||
|
rules: |
||||
|
- apiGroups: |
||||
|
- policy |
||||
|
resourceNames: |
||||
|
- registry-proxy |
||||
|
resources: |
||||
|
- podsecuritypolicies |
||||
|
verbs: |
||||
|
- use |
@ -0,0 +1,13 @@ |
|||||
|
kind: RoleBinding |
||||
|
apiVersion: rbac.authorization.k8s.io/v1beta1 |
||||
|
metadata: |
||||
|
name: psp:registry-proxy |
||||
|
namespace: {{ registry_namespace }} |
||||
|
subjects: |
||||
|
- kind: ServiceAccount |
||||
|
name: registry-proxy |
||||
|
namespace: {{ registry_namespace }} |
||||
|
roleRef: |
||||
|
kind: ClusterRole |
||||
|
name: psp:registry-proxy |
||||
|
apiGroup: rbac.authorization.k8s.io |
@ -0,0 +1,48 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: registry-proxy |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: false |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: true |
||||
|
hostPorts: |
||||
|
- min: 5000 |
||||
|
max: 5000 |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'RunAsAny' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,7 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: ServiceAccount |
||||
|
metadata: |
||||
|
name: registry-proxy |
||||
|
namespace: {{ registry_namespace }} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
@ -0,0 +1,45 @@ |
|||||
|
--- |
||||
|
apiVersion: policy/v1beta1 |
||||
|
kind: PodSecurityPolicy |
||||
|
metadata: |
||||
|
name: registry |
||||
|
annotations: |
||||
|
seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' |
||||
|
seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default' |
||||
|
{% if apparmor_enabled %} |
||||
|
apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' |
||||
|
apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' |
||||
|
{% endif %} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: 'true' |
||||
|
addonmanager.kubernetes.io/mode: Reconcile |
||||
|
spec: |
||||
|
privileged: false |
||||
|
allowPrivilegeEscalation: false |
||||
|
requiredDropCapabilities: |
||||
|
- ALL |
||||
|
volumes: |
||||
|
- 'configMap' |
||||
|
- 'emptyDir' |
||||
|
- 'projected' |
||||
|
- 'secret' |
||||
|
- 'downwardAPI' |
||||
|
- 'persistentVolumeClaim' |
||||
|
hostNetwork: false |
||||
|
hostIPC: false |
||||
|
hostPID: false |
||||
|
runAsUser: |
||||
|
rule: 'RunAsAny' |
||||
|
seLinux: |
||||
|
rule: 'RunAsAny' |
||||
|
supplementalGroups: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
fsGroup: |
||||
|
rule: 'MustRunAs' |
||||
|
ranges: |
||||
|
- min: 1 |
||||
|
max: 65535 |
||||
|
readOnlyRootFilesystem: false |
@ -0,0 +1,7 @@ |
|||||
|
apiVersion: v1 |
||||
|
kind: ServiceAccount |
||||
|
metadata: |
||||
|
name: registry |
||||
|
namespace: {{ registry_namespace }} |
||||
|
labels: |
||||
|
kubernetes.io/cluster-service: "true" |
Write
Preview
Loading…
Cancel
Save