16
16
apiVersion: apps/v1
17
17
kind: Deployment
18
18
metadata:
19
- name: nginx- ingress-controller
19
+ name: ingress-nginx -controller
20
20
namespace: kube-system
21
21
labels:
22
- app.kubernetes.io/name: nginx-ingress-controller
22
+ app.kubernetes.io/name: ingress-nginx
23
+ app.kubernetes.io/instance: ingress-nginx
23
24
app.kubernetes.io/part-of: kube-system
25
+ app.kubernetes.io/component: controller
24
26
addonmanager.kubernetes.io/mode: Reconcile
25
27
spec:
26
28
replicas: 1
@@ -32,67 +34,251 @@ spec:
32
34
maxSurge: 1
33
35
selector:
34
36
matchLabels:
35
- app.kubernetes.io/name: nginx- ingress-controller
36
- app.kubernetes.io/part-of: kube-system
37
- addonmanager .kubernetes.io/mode: Reconcile
37
+ app.kubernetes.io/name: ingress-nginx
38
+ app.kubernetes.io/instance: ingress-nginx
39
+ app .kubernetes.io/component: controller
38
40
template:
39
41
metadata:
40
42
labels:
41
- app.kubernetes.io/name: nginx-ingress-controller
42
- app.kubernetes.io/part-of: kube-system
43
+ app.kubernetes.io/name: ingress-nginx
44
+ app.kubernetes.io/instance: ingress-nginx
45
+ app.kubernetes.io/component: controller
43
46
addonmanager.kubernetes.io/mode: Reconcile
44
- annotations:
45
- prometheus.io/port: '10254'
46
- prometheus.io/scrape: 'true'
47
47
spec:
48
- serviceAccountName: nginx-ingress
49
- terminationGracePeriodSeconds: 60
48
+ serviceAccountName: ingress-nginx
50
49
containers:
51
- - image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller{{.ExoticArch}}:0.26.1
52
- name: nginx-ingress-controller
53
- imagePullPolicy: IfNotPresent
54
- readinessProbe:
55
- httpGet:
56
- path: /healthz
57
- port: 10254
58
- scheme: HTTP
59
- livenessProbe:
60
- httpGet:
61
- path: /healthz
62
- port: 10254
63
- scheme: HTTP
64
- initialDelaySeconds: 10
65
- timeoutSeconds: 1
66
- env:
67
- - name: POD_NAME
68
- valueFrom:
69
- fieldRef:
70
- fieldPath: metadata.name
71
- - name: POD_NAMESPACE
72
- valueFrom:
73
- fieldRef:
74
- fieldPath: metadata.namespace
75
- ports:
76
- - containerPort: 80
77
- hostPort: 80
78
- - containerPort: 443
79
- hostPort: 443
80
- # (Optional) we expose 18080 to access nginx stats in url /nginx-status
81
- - containerPort: 18080
82
- hostPort: 18080
83
- args:
84
- - /nginx-ingress-controller
85
- - --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
86
- - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
87
- - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
88
- - --annotations-prefix=nginx.ingress.kubernetes.io
89
- # use minikube IP address in ingress status field
90
- - --report-node-internal-ip-address
91
- securityContext:
92
- capabilities:
50
+ - name: controller
51
+ image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0
52
+ imagePullPolicy: IfNotPresent
53
+ lifecycle:
54
+ preStop:
55
+ exec:
56
+ command:
57
+ - /wait-shutdown
58
+ args:
59
+ - /nginx-ingress-controller
60
+ - --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
61
+ - --report-node-internal-ip-address
62
+ - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
63
+ - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
64
+ - --validating-webhook=:8443
65
+ - --validating-webhook-certificate=/usr/local/certificates/cert
66
+ - --validating-webhook-key=/usr/local/certificates/key
67
+ securityContext:
68
+ capabilities:
93
69
drop:
94
- - ALL
70
+ - ALL
95
71
add:
96
- - NET_BIND_SERVICE
97
- # www-data -> 33
98
- runAsUser: 33
72
+ - NET_BIND_SERVICE
73
+ runAsUser: 101
74
+ allowPrivilegeEscalation: true
75
+ env:
76
+ - name: POD_NAME
77
+ valueFrom:
78
+ fieldRef:
79
+ fieldPath: metadata.name
80
+ - name: POD_NAMESPACE
81
+ valueFrom:
82
+ fieldRef:
83
+ fieldPath: metadata.namespace
84
+ livenessProbe:
85
+ httpGet:
86
+ path: /healthz
87
+ port: 10254
88
+ scheme: HTTP
89
+ initialDelaySeconds: 10
90
+ periodSeconds: 10
91
+ timeoutSeconds: 1
92
+ successThreshold: 1
93
+ failureThreshold: 3
94
+ readinessProbe:
95
+ httpGet:
96
+ path: /healthz
97
+ port: 10254
98
+ scheme: HTTP
99
+ initialDelaySeconds: 10
100
+ timeoutSeconds: 1
101
+ successThreshold: 1
102
+ failureThreshold: 3
103
+ ports:
104
+ - name: http
105
+ containerPort: 80
106
+ protocol: TCP
107
+ hostPort: 80
108
+ - name: https
109
+ containerPort: 443
110
+ protocol: TCP
111
+ hostPort: 443
112
+ - name: webhook
113
+ containerPort: 8443
114
+ protocol: TCP
115
+ volumeMounts:
116
+ - name: webhook-cert
117
+ mountPath: /usr/local/certificates/
118
+ readOnly: true
119
+ resources:
120
+ requests:
121
+ cpu: 100m
122
+ memory: 90Mi
123
+ volumes:
124
+ - name: webhook-cert
125
+ secret:
126
+ secretName: ingress-nginx-admission
127
+
128
+ ---
129
+
130
+ apiVersion: admissionregistration.k8s.io/v1beta1
131
+ kind: ValidatingWebhookConfiguration
132
+ metadata:
133
+ labels:
134
+ app.kubernetes.io/name: ingress-nginx
135
+ app.kubernetes.io/instance: ingress-nginx
136
+ app.kubernetes.io/component: admission-webhook
137
+ name: ingress-nginx-admission
138
+ namespace: kube-system
139
+ webhooks:
140
+ - name: validate.nginx.ingress.kubernetes.io
141
+ rules:
142
+ - apiGroups:
143
+ - extensions
144
+ - networking.k8s.io
145
+ apiVersions:
146
+ - v1beta1
147
+ operations:
148
+ - CREATE
149
+ - UPDATE
150
+ resources:
151
+ - ingresses
152
+ failurePolicy: Fail
153
+ clientConfig:
154
+ service:
155
+ namespace: kube-system
156
+ name: ingress-nginx-controller-admission
157
+ path: /extensions/v1beta1/ingresses
158
+ ---
159
+ apiVersion: rbac.authorization.k8s.io/v1
160
+ kind: ClusterRole
161
+ metadata:
162
+ name: ingress-nginx-admission
163
+ labels:
164
+ app.kubernetes.io/name: ingress-nginx
165
+ app.kubernetes.io/instance: ingress-nginx
166
+ app.kubernetes.io/component: admission-webhook
167
+ namespace: kube-system
168
+ rules:
169
+ - apiGroups:
170
+ - admissionregistration.k8s.io
171
+ resources:
172
+ - validatingwebhookconfigurations
173
+ verbs:
174
+ - get
175
+ - update
176
+ ---
177
+ apiVersion: rbac.authorization.k8s.io/v1
178
+ kind: ClusterRoleBinding
179
+ metadata:
180
+ name: ingress-nginx-admission
181
+ labels:
182
+ app.kubernetes.io/name: ingress-nginx
183
+ app.kubernetes.io/instance: ingress-nginx
184
+ app.kubernetes.io/component: admission-webhook
185
+ namespace: kube-system
186
+ roleRef:
187
+ apiGroup: rbac.authorization.k8s.io
188
+ kind: ClusterRole
189
+ name: ingress-nginx-admission
190
+ subjects:
191
+ - kind: ServiceAccount
192
+ name: ingress-nginx-admission
193
+ namespace: kube-system
194
+ ---
195
+ apiVersion: batch/v1
196
+ kind: Job
197
+ metadata:
198
+ name: ingress-nginx-admission-create
199
+ labels:
200
+ app.kubernetes.io/name: ingress-nginx
201
+ app.kubernetes.io/instance: ingress-nginx
202
+ app.kubernetes.io/component: admission-webhook
203
+ namespace: kube-system
204
+ spec:
205
+ template:
206
+ metadata:
207
+ name: ingress-nginx-admission-create
208
+ labels:
209
+ app.kubernetes.io/name: ingress-nginx
210
+ app.kubernetes.io/instance: ingress-nginx
211
+ app.kubernetes.io/component: admission-webhook
212
+ spec:
213
+ containers:
214
+ - name: create
215
+ image: jettech/kube-webhook-certgen:v1.2.0
216
+ imagePullPolicy: IfNotPresent
217
+ args:
218
+ - create
219
+ - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.kube-system.svc
220
+ - --namespace=kube-system
221
+ - --secret-name=ingress-nginx-admission
222
+ restartPolicy: OnFailure
223
+ serviceAccountName: ingress-nginx-admission
224
+ securityContext:
225
+ runAsNonRoot: true
226
+ runAsUser: 2000
227
+
228
+ ---
229
+
230
+ apiVersion: batch/v1
231
+ kind: Job
232
+ metadata:
233
+ name: ingress-nginx-admission-patch
234
+ labels:
235
+ app.kubernetes.io/name: ingress-nginx
236
+ app.kubernetes.io/instance: ingress-nginx
237
+ app.kubernetes.io/component: admission-webhook
238
+ namespace: kube-system
239
+ spec:
240
+ template:
241
+ metadata:
242
+ name: ingress-nginx-admission-patch
243
+ labels:
244
+ app.kubernetes.io/name: ingress-nginx
245
+ app.kubernetes.io/instance: ingress-nginx
246
+ app.kubernetes.io/component: admission-webhook
247
+ spec:
248
+ containers:
249
+ - name: patch
250
+ image: jettech/kube-webhook-certgen:v1.2.0
251
+ imagePullPolicy:
252
+ args:
253
+ - patch
254
+ - --webhook-name=ingress-nginx-admission
255
+ - --namespace=kube-system
256
+ - --patch-mutating=false
257
+ - --secret-name=ingress-nginx-admission
258
+ - --patch-failure-policy=Fail
259
+ restartPolicy: OnFailure
260
+ serviceAccountName: ingress-nginx-admission
261
+ securityContext:
262
+ runAsNonRoot: true
263
+ runAsUser: 2000
264
+ ---
265
+
266
+ apiVersion: v1
267
+ kind: Service
268
+ metadata:
269
+ labels:
270
+ app.kubernetes.io/name: ingress-nginx
271
+ app.kubernetes.io/instance: ingress-nginx
272
+ app.kubernetes.io/component: controller
273
+ addonmanager.kubernetes.io/mode: Reconcile
274
+ name: ingress-nginx-controller-admission
275
+ namespace: kube-system
276
+ spec:
277
+ ports:
278
+ - name: https-webhook
279
+ port: 443
280
+ targetPort: webhook
281
+ selector:
282
+ app.kubernetes.io/name: ingress-nginx
283
+ app.kubernetes.io/instance: ingress-nginx
284
+ app.kubernetes.io/component: controller
0 commit comments