Skip to content

Commit b624802

Browse files
authored
Merge pull request #8871 from zalando-incubator/eks-secret-read-fixes
Handle secret read clusterroles
2 parents ff23519 + 8746176 commit b624802

File tree

5 files changed

+90
-7
lines changed

5 files changed

+90
-7
lines changed

cluster/manifests/02-admission-control/teapot.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,4 +583,33 @@ webhooks:
583583
expression: '!(request.userInfo.username in ["system:kube-controller-manager", "system:kube-scheduler", "zalando-iam:zalando:service:k8sapi_credentials-provider"])'
584584
- name: 'exclude-eks-components'
585585
expression: '!request.userInfo.username.startsWith("eks:")'
586+
{{- if eq .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
587+
- name: clusterrole-admitter.teapot.zalan.do
588+
clientConfig:
589+
{{- if eq .Cluster.Provider "zalando-eks"}}
590+
service:
591+
name: "admission-controller"
592+
namespace: "kube-system"
593+
path: "/clusterrole"
594+
{{- else }}
595+
url: "https://localhost:8085/clusterrole"
596+
{{- end }}
597+
caBundle: "{{ .Cluster.ConfigItems.ca_cert_decompressed }}"
598+
admissionReviewVersions: ["v1beta1"]
599+
failurePolicy: Fail
600+
matchPolicy: Equivalent
601+
sideEffects: "None"
602+
rules:
603+
- operations: [ "CREATE", "UPDATE" ]
604+
apiGroups: ["rbac.authorization.k8s.io"]
605+
apiVersions: ["v1"]
606+
resources: ["clusterroles"]
607+
matchConditions:
608+
- name: 'exclude-privileged-groups'
609+
expression: 'request.userInfo.groups.all(g, !(g in ["system:masters", "system:nodes", "system:serviceaccounts:kube-system", "okta:common/administrator", "zalando:administrator"]))'
610+
{{- if eq .Cluster.Provider "zalando-eks"}}
611+
- name: 'exclude-eks-components'
612+
expression: '!request.userInfo.username.startsWith("eks:")'
613+
{{- end }}
614+
{{- end }}
586615
{{- end }}

cluster/manifests/deletions.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,11 @@ post_apply:
308308
- name: role-sync-controller
309309
kind: ServiceAccount
310310
namespace: kube-system
311+
# secret-read role/bindings
312+
- name: cdp-deployer-poweruser-secret-read
313+
kind: ClusterRoleBinding
314+
- name: deployment-service-executor-poweruser-secret-read
315+
kind: ClusterRoleBinding
311316
{{- end }}
312317
{{- if ne .Cluster.ConfigItems.kube_janitor_enabled "true" }}
313318
- name: kube-janitor

cluster/manifests/deployment-service/controller-rbac.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,29 @@ subjects:
123123
name: "deployment-service-controller"
124124
namespace: "kube-system"
125125
# {{ end }}
126+
# {{ if eq .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
127+
---
128+
kind: ClusterRoleBinding
129+
apiVersion: rbac.authorization.k8s.io/v1
130+
metadata:
131+
name: "deployment-service-executor-poweruser-secret-read"
132+
labels:
133+
application: "deployment-service"
134+
component: "controller"
135+
roleRef:
136+
kind: ClusterRole
137+
name: poweruser-secret-read
138+
apiGroup: rbac.authorization.k8s.io
139+
subjects:
140+
- apiGroup: rbac.authorization.k8s.io
141+
kind: User
142+
name: zalando-iam:zalando:service:k8sapi-local_deployment-service-executor
143+
# {{ if eq .Cluster.Provider "zalando-eks" }}
144+
- kind: ServiceAccount
145+
name: "deployment-service-controller"
146+
namespace: "kube-system"
147+
# {{ end }}
148+
# {{ end }}
126149
---
127150
kind: ClusterRoleBinding
128151
apiVersion: rbac.authorization.k8s.io/v1

cluster/manifests/roles/cdp-deployer-binding.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,18 @@ subjects:
1010
- kind: ServiceAccount
1111
name: cdp
1212
namespace: default
13+
# {{ if eq .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
14+
---
15+
kind: ClusterRoleBinding
16+
apiVersion: rbac.authorization.k8s.io/v1
17+
metadata:
18+
name: cdp-deployer-poweruser-secret-read
19+
roleRef:
20+
apiGroup: rbac.authorization.k8s.io
21+
kind: ClusterRole
22+
name: poweruser-secret-read
23+
subjects:
24+
- kind: ServiceAccount
25+
name: cdp
26+
namespace: default
27+
# {{ end }}

cluster/manifests/roles/poweruser-role.yaml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,16 @@ rules:
5858
- services/proxy
5959
verbs:
6060
- get
61-
{{ if ne .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
61+
# {{ if ne .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
6262
- apiGroups:
6363
- ''
6464
resources:
6565
- secrets
6666
verbs:
67-
- create
68-
- delete
69-
- deletecollection
7067
- get
7168
- list
72-
- patch
73-
- update
7469
- watch
75-
{{ end }}
70+
# {{ end }}
7671
- apiGroups:
7772
- ''
7873
- extensions
@@ -255,3 +250,19 @@ rules:
255250
- update
256251
- patch
257252
- delete
253+
# {{ if eq .Cluster.ConfigItems.role_sync_controller_enabled "true" }}
254+
---
255+
apiVersion: rbac.authorization.k8s.io/v1
256+
kind: ClusterRole
257+
metadata:
258+
name: poweruser-secret-read
259+
rules:
260+
- apiGroups:
261+
- ''
262+
resources:
263+
- secrets
264+
verbs:
265+
- get
266+
- list
267+
- watch
268+
# {{ end }}

0 commit comments

Comments
 (0)