12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
+ ---
16
+ apiVersion: v1
17
+ kind: Service
18
+ metadata:
19
+ labels:
20
+ app.kubernetes.io/name: ingress-nginx
21
+ app.kubernetes.io/instance: ingress-nginx
22
+ app.kubernetes.io/component: controller
23
+ addonmanager.kubernetes.io/mode: Reconcile
24
+ name: ingress-nginx-controller-admission
25
+ namespace: ingress-nginx
26
+ spec:
27
+ type: ClusterIP
28
+ ports:
29
+ - name: https-webhook
30
+ port: 443
31
+ targetPort: webhook
32
+ selector:
33
+ app.kubernetes.io/name: ingress-nginx
34
+ app.kubernetes.io/instance: ingress-nginx
35
+ app.kubernetes.io/component: controller
36
+ ---
37
+ apiVersion: v1
38
+ kind: Service
39
+ metadata:
40
+ labels:
41
+ app.kubernetes.io/name: ingress-nginx
42
+ app.kubernetes.io/instance: ingress-nginx
43
+ app.kubernetes.io/component: controller
44
+ addonmanager.kubernetes.io/mode: Reconcile
45
+ name: ingress-nginx-controller
46
+ namespace: ingress-nginx
47
+ spec:
48
+ type: NodePort
49
+ ports:
50
+ - name: http
51
+ port: 80
52
+ protocol: TCP
53
+ targetPort: http
54
+ - name: https
55
+ port: 443
56
+ protocol: TCP
57
+ targetPort: https
58
+ selector:
59
+ app.kubernetes.io/name: ingress-nginx
60
+ app.kubernetes.io/instance: ingress-nginx
61
+ app.kubernetes.io/component: controller
15
62
---
16
63
apiVersion: apps/v1
17
64
kind: Deployment
18
65
metadata:
19
66
name: ingress-nginx-controller
20
- namespace: kube-system
67
+ namespace: ingress-nginx
21
68
labels:
22
69
app.kubernetes.io/name: ingress-nginx
23
70
app.kubernetes.io/instance: ingress-nginx
24
- app.kubernetes.io/part-of: kube-system
25
71
app.kubernetes.io/component: controller
26
72
addonmanager.kubernetes.io/mode: Reconcile
27
73
spec:
28
- replicas: 1
29
- strategy:
30
- type: RollingUpdate
31
- rollingUpdate:
32
- # maxUnavailable needs to be 1 so that port conflicts between the old and new pod doesn't happen when using hostPort
33
- maxUnavailable: 1
34
- maxSurge: 1
35
74
selector:
36
75
matchLabels:
37
76
app.kubernetes.io/name: ingress-nginx
38
77
app.kubernetes.io/instance: ingress-nginx
39
78
app.kubernetes.io/component: controller
79
+ addonmanager.kubernetes.io/mode: Reconcile
80
+ revisionHistoryLimit: 10
81
+ strategy:
82
+ rollingUpdate:
83
+ maxUnavailable: 1
84
+ type: RollingUpdate
85
+ minReadySeconds: 0
40
86
template:
41
87
metadata:
42
88
labels:
46
92
addonmanager.kubernetes.io/mode: Reconcile
47
93
gcp-auth-skip-secret: "true"
48
94
spec:
49
- serviceAccountName: ingress-nginx
95
+ dnsPolicy: ClusterFirst
50
96
containers:
51
97
- name: controller
52
98
image: {{.CustomRegistries.IngressController | default .ImageRepository | default .Registries.IngressController }}{{.Images.IngressController}}
58
104
- /wait-shutdown
59
105
args:
60
106
- /nginx-ingress-controller
61
- - --configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf
107
+ - --ingress-class=nginx
108
+ - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
62
109
- --report-node-internal-ip-address
63
110
- --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
64
111
- --udp-services-configmap=$(POD_NAMESPACE)/udp-services
67
114
- --validating-webhook-key=/usr/local/certificates/key
68
115
{{if .CustomIngressCert}}
69
116
- --default-ssl-certificate={{ .CustomIngressCert }}
70
- {{end}}
117
+ {{end}}
71
118
securityContext:
72
119
capabilities:
73
120
drop:
85
132
valueFrom:
86
133
fieldRef:
87
134
fieldPath: metadata.namespace
135
+ - name: LD_PRELOAD
136
+ value: /usr/local/lib/libmimalloc.so
88
137
livenessProbe:
89
138
httpGet:
90
139
path: /healthz
@@ -94,13 +143,14 @@ spec:
94
143
periodSeconds: 10
95
144
timeoutSeconds: 1
96
145
successThreshold: 1
97
- failureThreshold: 3
146
+ failureThreshold: 5
98
147
readinessProbe:
99
148
httpGet:
100
149
path: /healthz
101
150
port: 10254
102
151
scheme: HTTP
103
152
initialDelaySeconds: 10
153
+ periodSeconds: 10
104
154
timeoutSeconds: 1
105
155
successThreshold: 1
106
156
failureThreshold: 3
@@ -124,24 +174,24 @@ spec:
124
174
requests:
125
175
cpu: 100m
126
176
memory: 90Mi
177
+ serviceAccountName: ingress-nginx
127
178
volumes:
128
179
- name: webhook-cert
129
180
secret:
130
181
secretName: ingress-nginx-admission
131
-
132
182
---
133
-
134
- apiVersion: admissionregistration.k8s.io/v1beta1
183
+ apiVersion: admissionregistration.k8s.io/v1
135
184
kind: ValidatingWebhookConfiguration
136
185
metadata:
137
186
labels:
138
187
app.kubernetes.io/name: ingress-nginx
139
188
app.kubernetes.io/instance: ingress-nginx
140
189
app.kubernetes.io/component: admission-webhook
190
+ addonmanager.kubernetes.io/mode: Reconcile
141
191
name: ingress-nginx-admission
142
- namespace: kube-system
143
192
webhooks:
144
193
- name: validate.nginx.ingress.kubernetes.io
194
+ matchPolicy: Equivalent
145
195
rules:
146
196
- apiGroups:
147
197
- networking.k8s.io
@@ -160,46 +210,10 @@ webhooks:
160
210
- v1beta1
161
211
clientConfig:
162
212
service:
163
- namespace: kube-system
213
+ namespace: ingress-nginx
164
214
name: ingress-nginx-controller-admission
165
215
path: /networking/v1beta1/ingresses
166
216
---
167
- apiVersion: rbac.authorization.k8s.io/v1
168
- kind: ClusterRole
169
- metadata:
170
- name: ingress-nginx-admission
171
- labels:
172
- app.kubernetes.io/name: ingress-nginx
173
- app.kubernetes.io/instance: ingress-nginx
174
- app.kubernetes.io/component: admission-webhook
175
- namespace: kube-system
176
- rules:
177
- - apiGroups:
178
- - admissionregistration.k8s.io
179
- resources:
180
- - validatingwebhookconfigurations
181
- verbs:
182
- - get
183
- - update
184
- ---
185
- apiVersion: rbac.authorization.k8s.io/v1
186
- kind: ClusterRoleBinding
187
- metadata:
188
- name: ingress-nginx-admission
189
- labels:
190
- app.kubernetes.io/name: ingress-nginx
191
- app.kubernetes.io/instance: ingress-nginx
192
- app.kubernetes.io/component: admission-webhook
193
- namespace: kube-system
194
- roleRef:
195
- apiGroup: rbac.authorization.k8s.io
196
- kind: ClusterRole
197
- name: ingress-nginx-admission
198
- subjects:
199
- - kind: ServiceAccount
200
- name: ingress-nginx-admission
201
- namespace: kube-system
202
- ---
203
217
apiVersion: batch/v1
204
218
kind: Job
205
219
metadata:
@@ -208,7 +222,8 @@ metadata:
208
222
app.kubernetes.io/name: ingress-nginx
209
223
app.kubernetes.io/instance: ingress-nginx
210
224
app.kubernetes.io/component: admission-webhook
211
- namespace: kube-system
225
+ addonmanager.kubernetes.io/mode: Reconcile
226
+ namespace: ingress-nginx
212
227
spec:
213
228
template:
214
229
metadata:
@@ -217,24 +232,28 @@ spec:
217
232
app.kubernetes.io/name: ingress-nginx
218
233
app.kubernetes.io/instance: ingress-nginx
219
234
app.kubernetes.io/component: admission-webhook
235
+ addonmanager.kubernetes.io/mode: Reconcile
220
236
spec:
221
237
containers:
222
238
- name: create
223
239
image: {{.CustomRegistries.KubeWebhookCertgenCreate | default .ImageRepository | default .Registries.KubeWebhookCertgenCreate }}{{.Images.KubeWebhookCertgenCreate}}
224
240
imagePullPolicy: IfNotPresent
225
241
args:
226
242
- create
227
- - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.kube-system .svc
228
- - --namespace=kube-system
243
+ - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE) .svc
244
+ - --namespace=$(POD_NAMESPACE)
229
245
- --secret-name=ingress-nginx-admission
246
+ env:
247
+ - name: POD_NAMESPACE
248
+ valueFrom:
249
+ fieldRef:
250
+ fieldPath: metadata.namespace
230
251
restartPolicy: OnFailure
231
252
serviceAccountName: ingress-nginx-admission
232
253
securityContext:
233
254
runAsNonRoot: true
234
255
runAsUser: 2000
235
-
236
256
---
237
-
238
257
apiVersion: batch/v1
239
258
kind: Job
240
259
metadata:
@@ -243,7 +262,8 @@ metadata:
243
262
app.kubernetes.io/name: ingress-nginx
244
263
app.kubernetes.io/instance: ingress-nginx
245
264
app.kubernetes.io/component: admission-webhook
246
- namespace: kube-system
265
+ addonmanager.kubernetes.io/mode: Reconcile
266
+ namespace: ingress-nginx
247
267
spec:
248
268
template:
249
269
metadata:
@@ -252,41 +272,26 @@ spec:
252
272
app.kubernetes.io/name: ingress-nginx
253
273
app.kubernetes.io/instance: ingress-nginx
254
274
app.kubernetes.io/component: admission-webhook
275
+ addonmanager.kubernetes.io/mode: Reconcile
255
276
spec:
256
277
containers:
257
278
- name: patch
258
279
image: {{.CustomRegistries.KubeWebhookCertgenPatch | default .ImageRepository | default .Registries.KubeWebhookCertgenPatch }}{{.Images.KubeWebhookCertgenPatch}}
259
- imagePullPolicy:
280
+ imagePullPolicy: IfNotPresent
260
281
args:
261
282
- patch
262
283
- --webhook-name=ingress-nginx-admission
263
- - --namespace=kube-system
284
+ - --namespace=$(POD_NAMESPACE)
264
285
- --patch-mutating=false
265
286
- --secret-name=ingress-nginx-admission
266
287
- --patch-failure-policy=Fail
288
+ env:
289
+ - name: POD_NAMESPACE
290
+ valueFrom:
291
+ fieldRef:
292
+ fieldPath: metadata.namespace
267
293
restartPolicy: OnFailure
268
294
serviceAccountName: ingress-nginx-admission
269
295
securityContext:
270
296
runAsNonRoot: true
271
297
runAsUser: 2000
272
- ---
273
-
274
- apiVersion: v1
275
- kind: Service
276
- metadata:
277
- labels:
278
- app.kubernetes.io/name: ingress-nginx
279
- app.kubernetes.io/instance: ingress-nginx
280
- app.kubernetes.io/component: controller
281
- addonmanager.kubernetes.io/mode: Reconcile
282
- name: ingress-nginx-controller-admission
283
- namespace: kube-system
284
- spec:
285
- ports:
286
- - name: https-webhook
287
- port: 443
288
- targetPort: webhook
289
- selector:
290
- app.kubernetes.io/name: ingress-nginx
291
- app.kubernetes.io/instance: ingress-nginx
292
- app.kubernetes.io/component: controller
0 commit comments