Skip to content

Commit 6ad65f7

Browse files
committed
feat(review): apply post review suggestions
1 parent 5d86145 commit 6ad65f7

File tree

18 files changed

+166
-249
lines changed

18 files changed

+166
-249
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
apiVersion: v1
2-
name: stackit-pod-identity-webhook
2+
name: pod-identity-webhook
33
version: 0.1.0
Lines changed: 63 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,66 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: {{ include "stackit-pod-identity-webhook.fullname" . }}
4+
name: stackit-pod-identity-webhook
55
namespace: {{ .Release.Namespace }}
66
labels:
7-
{{- include "stackit-pod-identity-webhook.labels" . | nindent 4 }}
7+
app.kubernetes.io/name: stackit-pod-identity-webhook
8+
high-availability-config.resources.gardener.cloud/type: server
89
spec:
910
replicas: {{ .Values.replicaCount }}
1011
selector:
1112
matchLabels:
12-
{{- include "stackit-pod-identity-webhook.selectorLabels" . | nindent 6 }}
13+
app.kubernetes.io/name: stackit-pod-identity-webhook
1314
template:
1415
metadata:
1516
labels:
16-
{{- include "stackit-pod-identity-webhook.selectorLabels" . | nindent 8 }}
17+
app.kubernetes.io/name: stackit-pod-identity-webhook
1718
workload-identity.stackit.cloud/skip-pod-identity-webhook: "true"
1819
gardener.cloud/role: controlplane
19-
high-availability-config.resources.gardener.cloud/type: controller
2020
networking.gardener.cloud/to-dns: allowed
21-
networking.gardener.cloud/to-public-networks: allowed
22-
networking.gardener.cloud/to-private-networks: allowed
2321
networking.resources.gardener.cloud/to-kube-apiserver-tcp-443: allowed
2422
spec:
25-
serviceAccountName: {{ .Values.serviceAccount.name | default (include "stackit-pod-identity-webhook.fullname" .) }}
26-
{{- with .Values.podSecurityContext }}
23+
topologySpreadConstraints:
24+
- maxSkew: 1
25+
topologyKey: "topology.kubernetes.io/zone"
26+
whenUnsatisfiable: DoNotSchedule
27+
labelSelector:
28+
matchLabels:
29+
app.kubernetes.io/name: stackit-pod-identity-webhook
30+
- maxSkew: 1
31+
topologyKey: "kubernetes.io/hostname"
32+
whenUnsatisfiable: ScheduleAnyway
33+
labelSelector:
34+
matchLabels:
35+
app.kubernetes.io/name: stackit-pod-identity-webhook
36+
automountServiceAccountToken: false
37+
podSecurityContext:
38+
runAsNonRoot: true
39+
runAsUser: 1239
40+
runAsGroup: 1239
41+
fsGroup: 1239
2742
securityContext:
28-
{{- toYaml . | nindent 8 }}
29-
{{- end }}
30-
priorityClassName: {{ .Values.priorityClassName }}
43+
allowPrivilegeEscalation: false
44+
capabilities:
45+
drop:
46+
- ALL
47+
readOnlyRootFilesystem: true
48+
priorityClassName: gardener-system-200
3149
containers:
32-
- name: {{ .Chart.Name }}
33-
{{- with .Values.containerSecurityContext }}
50+
- name: stackit-pod-identity-webhook
3451
securityContext:
35-
{{- toYaml . | nindent 12 }}
36-
{{- end }}
52+
allowPrivilegeEscalation: false
53+
capabilities:
54+
drop:
55+
- ALL
56+
readOnlyRootFilesystem: true
3757
image: {{ index .Values.images "stackit-pod-identity-webhook" }}
3858
args:
3959
- --cert-dir=/etc/webhook/certs
4060
- --port={{ .Values.webhook.port }}
61+
env:
62+
- name: KUBECONFIG
63+
value: /var/run/secrets/gardener.cloud/shoot/generic-kubeconfig/kubeconfig
4164
ports:
4265
- name: https
4366
containerPort: {{ .Values.webhook.port }}
@@ -57,24 +80,35 @@ spec:
5780
path: /readyz
5881
port: health
5982
resources:
60-
{{- toYaml .Values.resources | nindent 12 }}
83+
limits:
84+
memory: 128Mi
85+
requests:
86+
cpu: 50m
87+
memory: 64Mi
6188
volumeMounts:
6289
- name: certs
6390
mountPath: /etc/webhook/certs
6491
readOnly: true
92+
- mountPath: /var/run/secrets/gardener.cloud/shoot/generic-kubeconfig
93+
name: kubeconfig
94+
readOnly: true
6595
volumes:
6696
- name: certs
6797
secret:
6898
secretName: {{ .Values.webhook.tlsSecretName }}
69-
{{- with .Values.nodeSelector }}
70-
nodeSelector:
71-
{{- toYaml . | nindent 8 }}
72-
{{- end }}
73-
{{- with .Values.affinity }}
74-
affinity:
75-
{{- toYaml . | nindent 8 }}
76-
{{- end }}
77-
{{- with .Values.tolerations }}
78-
tolerations:
79-
{{- toYaml . | nindent 8 }}
80-
{{- end }}
99+
- name: kubeconfig
100+
projected:
101+
defaultMode: 420
102+
sources:
103+
- secret:
104+
items:
105+
- key: kubeconfig
106+
path: kubeconfig
107+
name: {{ .Values.global.genericTokenKubeconfigSecretName }}
108+
optional: false
109+
- secret:
110+
items:
111+
- key: token
112+
path: token
113+
name: shoot-access-pod-identity-webhook
114+
optional: false

charts/internal/seed-controlplane/charts/stackit-pod-identity-webhook/templates/helpers.tpl

Lines changed: 0 additions & 49 deletions
This file was deleted.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
apiVersion: policy/v1
22
kind: PodDisruptionBudget
33
metadata:
4-
name: {{ include "stackit-pod-identity-webhook.fullname" . }}
4+
name: stackit-pod-identity-webhook
55
namespace: {{ .Release.Namespace }}
66
labels:
7-
{{- include "stackit-pod-identity-webhook.labels" . | nindent 4 }}
7+
app.kubernetes.io/name: stackit-pod-identity-webhook
88
spec:
99
maxUnavailable: 1
1010
selector:
1111
matchLabels:
12-
{{- include "stackit-pod-identity-webhook.selectorLabels" . | nindent 6 }}
12+
app.kubernetes.io/name: stackit-pod-identity-webhook
1313
unhealthyPodEvictionPolicy: AlwaysAllow

charts/internal/seed-controlplane/charts/stackit-pod-identity-webhook/templates/rbac.yaml

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: {{ include "stackit-pod-identity-webhook.fullname" . }}
4+
name: stackit-pod-identity-webhook
55
namespace: {{ .Release.Namespace }}
66
labels:
7-
app.kubernetes.io/name: {{ .Chart.Name }}
8-
app.kubernetes.io/instance: {{ .Release.Name }}
7+
app.kubernetes.io/name: stackit-pod-identity-webhook
8+
endpoint-slice-hints.resources.gardener.cloud/consider: "true"
9+
annotations:
10+
networking.resources.gardener.cloud/from-all-webhook-targets-allowed-ports: '[{"protocol":"TCP","port":{{ .Values.webhook.port }}}]'
11+
service.kubernetes.io/topology-mode: auto
912
spec:
10-
type: {{ .Values.service.type }}
13+
type: ClusterIP
1114
ports:
12-
- port: {{ .Values.service.port }}
13-
targetPort: {{ .Values.service.targetPort }}
15+
- port: 443
16+
targetPort: {{ .Values.webhook.port }}
1417
protocol: TCP
1518
name: https
1619
selector:
17-
app.kubernetes.io/name: {{ .Chart.Name }}
18-
app.kubernetes.io/instance: {{ .Release.Name }}
20+
app.kubernetes.io/name: stackit-pod-identity-webhook
21+
trafficDistribution: PreferClose
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: autoscaling.k8s.io/v1
2+
kind: VerticalPodAutoscaler
3+
metadata:
4+
name: stackit-pod-identity-webhook
5+
namespace: {{ .Release.Namespace }}
6+
spec:
7+
targetRef:
8+
apiVersion: apps/v1
9+
kind: Deployment
10+
name: stackit-pod-identity-webhook
11+
updatePolicy:
12+
updateMode: Auto
13+
resourcePolicy:
14+
containerPolicies:
15+
- containerName: stackit-pod-identity-webhook
16+
minAllowed:
17+
memory: 80M
18+
maxAllowed:
19+
cpu: {{ .Values.vpa.resourcePolicy.maxAllowed.cpu }}
20+
memory: {{ .Values.vpa.resourcePolicy.maxAllowed.memory }}
21+
controlledValues: RequestsOnly
Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,15 @@
11
replicaCount: 2
22

3-
# String to override the name for the chart
4-
nameOverride: ""
5-
# String to fully override the fullname of the chart
6-
fullnameOverride: ""
3+
images:
4+
stackit-pod-identity-webhook: image-repository:image-tag
75

86
webhook:
97
port: 9443
108
# The secret name containing tls.crt and tls.key for the webhook server
11-
# If certmanager.enabled is true, this secret will be created by cert-manager
129
tlsSecretName: "stackit-pod-identity-webhook-certs"
1310

14-
service:
15-
type: ClusterIP
16-
port: 443
17-
targetPort: 9443
18-
19-
resources:
20-
limits:
21-
memory: 128Mi
22-
requests:
23-
cpu: 50m
24-
memory: 64Mi
25-
26-
serviceAccount:
27-
create: true
28-
annotations: {}
29-
name: "stackit-pod-identity-webhook"
30-
31-
# PodSecurityContext holds pod-level security attributes and common container settings.
32-
podSecurityContext:
33-
runAsNonRoot: true
34-
runAsUser: 1239
35-
runAsGroup: 1239
36-
fsGroup: 1239
37-
38-
# SecurityContext holds security configuration that will be applied to a container.
39-
containerSecurityContext:
40-
allowPrivilegeEscalation: false
41-
capabilities:
42-
drop:
43-
- ALL
44-
readOnlyRootFilesystem: true
45-
46-
# NodeSelector is a selector which must be true for the pod to fit on a node.
47-
nodeSelector: {}
48-
49-
# Tolerations are applied to pods, and allow (but do not require) the pods to schedule onto nodes with matching taints.
50-
tolerations: []
51-
52-
# Affinity is a group of affinity scheduling rules.
53-
affinity: {}
54-
55-
priorityClassName: gardener-system-300
11+
vpa:
12+
resourcePolicy:
13+
maxAllowed:
14+
cpu: 1
15+
memory: 512Mi

charts/internal/seed-controlplane/requirements.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,6 @@ dependencies:
1919
repository: http://localhost:10191
2020
version: 0.1.0
2121
condition: stackit-alb-controller-manager.enabled
22+
- name: pod-identity-webhook
23+
repository: http://localhost:10191
24+
version: 0.1.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
apiVersion: v1
2-
name: stackit-pod-identity-webhook
2+
name: pod-identity-webhook
33
version: 0.1.0

0 commit comments

Comments
 (0)