1. apiVersion: v1
    2. kind: Namespace
    3. metadata:
    4. name: ingress-nginx
    5. labels:
    6. app.kubernetes.io/name: ingress-nginx
    7. app.kubernetes.io/instance: ingress-nginx
    8. ---
    9. # Source: ingress-nginx/templates/controller-serviceaccount.yaml
    10. apiVersion: v1
    11. kind: ServiceAccount
    12. metadata:
    13. labels:
    14. helm.sh/chart: ingress-nginx-4.0.10
    15. app.kubernetes.io/name: ingress-nginx
    16. app.kubernetes.io/instance: ingress-nginx
    17. app.kubernetes.io/version: 1.1.0
    18. app.kubernetes.io/managed-by: Helm
    19. app.kubernetes.io/component: controller
    20. name: ingress-nginx
    21. namespace: ingress-nginx
    22. automountServiceAccountToken: true
    23. ---
    24. # Source: ingress-nginx/templates/controller-configmap.yaml
    25. apiVersion: v1
    26. kind: ConfigMap
    27. metadata:
    28. labels:
    29. helm.sh/chart: ingress-nginx-4.0.10
    30. app.kubernetes.io/name: ingress-nginx
    31. app.kubernetes.io/instance: ingress-nginx
    32. app.kubernetes.io/version: 1.1.0
    33. app.kubernetes.io/managed-by: Helm
    34. app.kubernetes.io/component: controller
    35. name: ingress-nginx-controller
    36. namespace: ingress-nginx
    37. data:
    38. allow-snippet-annotations: 'true'
    39. ---
    40. # Source: ingress-nginx/templates/clusterrole.yaml
    41. apiVersion: rbac.authorization.k8s.io/v1
    42. kind: ClusterRole
    43. metadata:
    44. labels:
    45. helm.sh/chart: ingress-nginx-4.0.10
    46. app.kubernetes.io/name: ingress-nginx
    47. app.kubernetes.io/instance: ingress-nginx
    48. app.kubernetes.io/version: 1.1.0
    49. app.kubernetes.io/managed-by: Helm
    50. name: ingress-nginx
    51. rules:
    52. - apiGroups:
    53. - ''
    54. resources:
    55. - configmaps
    56. - endpoints
    57. - nodes
    58. - pods
    59. - secrets
    60. - namespaces
    61. verbs:
    62. - list
    63. - watch
    64. - apiGroups:
    65. - ''
    66. resources:
    67. - nodes
    68. verbs:
    69. - get
    70. - apiGroups:
    71. - ''
    72. resources:
    73. - services
    74. verbs:
    75. - get
    76. - list
    77. - watch
    78. - apiGroups:
    79. - networking.k8s.io
    80. resources:
    81. - ingresses
    82. verbs:
    83. - get
    84. - list
    85. - watch
    86. - apiGroups:
    87. - ''
    88. resources:
    89. - events
    90. verbs:
    91. - create
    92. - patch
    93. - apiGroups:
    94. - networking.k8s.io
    95. resources:
    96. - ingresses/status
    97. verbs:
    98. - update
    99. - apiGroups:
    100. - networking.k8s.io
    101. resources:
    102. - ingressclasses
    103. verbs:
    104. - get
    105. - list
    106. - watch
    107. ---
    108. # Source: ingress-nginx/templates/clusterrolebinding.yaml
    109. apiVersion: rbac.authorization.k8s.io/v1
    110. kind: ClusterRoleBinding
    111. metadata:
    112. labels:
    113. helm.sh/chart: ingress-nginx-4.0.10
    114. app.kubernetes.io/name: ingress-nginx
    115. app.kubernetes.io/instance: ingress-nginx
    116. app.kubernetes.io/version: 1.1.0
    117. app.kubernetes.io/managed-by: Helm
    118. name: ingress-nginx
    119. roleRef:
    120. apiGroup: rbac.authorization.k8s.io
    121. kind: ClusterRole
    122. name: ingress-nginx
    123. subjects:
    124. - kind: ServiceAccount
    125. name: ingress-nginx
    126. namespace: ingress-nginx
    127. ---
    128. # Source: ingress-nginx/templates/controller-role.yaml
    129. apiVersion: rbac.authorization.k8s.io/v1
    130. kind: Role
    131. metadata:
    132. labels:
    133. helm.sh/chart: ingress-nginx-4.0.10
    134. app.kubernetes.io/name: ingress-nginx
    135. app.kubernetes.io/instance: ingress-nginx
    136. app.kubernetes.io/version: 1.1.0
    137. app.kubernetes.io/managed-by: Helm
    138. app.kubernetes.io/component: controller
    139. name: ingress-nginx
    140. namespace: ingress-nginx
    141. rules:
    142. - apiGroups:
    143. - ''
    144. resources:
    145. - namespaces
    146. verbs:
    147. - get
    148. - apiGroups:
    149. - ''
    150. resources:
    151. - configmaps
    152. - pods
    153. - secrets
    154. - endpoints
    155. verbs:
    156. - get
    157. - list
    158. - watch
    159. - apiGroups:
    160. - ''
    161. resources:
    162. - services
    163. verbs:
    164. - get
    165. - list
    166. - watch
    167. - apiGroups:
    168. - networking.k8s.io
    169. resources:
    170. - ingresses
    171. verbs:
    172. - get
    173. - list
    174. - watch
    175. - apiGroups:
    176. - networking.k8s.io
    177. resources:
    178. - ingresses/status
    179. verbs:
    180. - update
    181. - apiGroups:
    182. - networking.k8s.io
    183. resources:
    184. - ingressclasses
    185. verbs:
    186. - get
    187. - list
    188. - watch
    189. - apiGroups:
    190. - ''
    191. resources:
    192. - configmaps
    193. resourceNames:
    194. - ingress-controller-leader
    195. verbs:
    196. - get
    197. - update
    198. - apiGroups:
    199. - ''
    200. resources:
    201. - configmaps
    202. verbs:
    203. - create
    204. - apiGroups:
    205. - ''
    206. resources:
    207. - events
    208. verbs:
    209. - create
    210. - patch
    211. ---
    212. # Source: ingress-nginx/templates/controller-rolebinding.yaml
    213. apiVersion: rbac.authorization.k8s.io/v1
    214. kind: RoleBinding
    215. metadata:
    216. labels:
    217. helm.sh/chart: ingress-nginx-4.0.10
    218. app.kubernetes.io/name: ingress-nginx
    219. app.kubernetes.io/instance: ingress-nginx
    220. app.kubernetes.io/version: 1.1.0
    221. app.kubernetes.io/managed-by: Helm
    222. app.kubernetes.io/component: controller
    223. name: ingress-nginx
    224. namespace: ingress-nginx
    225. roleRef:
    226. apiGroup: rbac.authorization.k8s.io
    227. kind: Role
    228. name: ingress-nginx
    229. subjects:
    230. - kind: ServiceAccount
    231. name: ingress-nginx
    232. namespace: ingress-nginx
    233. ---
    234. # Source: ingress-nginx/templates/controller-service-webhook.yaml
    235. apiVersion: v1
    236. kind: Service
    237. metadata:
    238. labels:
    239. helm.sh/chart: ingress-nginx-4.0.10
    240. app.kubernetes.io/name: ingress-nginx
    241. app.kubernetes.io/instance: ingress-nginx
    242. app.kubernetes.io/version: 1.1.0
    243. app.kubernetes.io/managed-by: Helm
    244. app.kubernetes.io/component: controller
    245. name: ingress-nginx-controller-admission
    246. namespace: ingress-nginx
    247. spec:
    248. type: ClusterIP
    249. ports:
    250. - name: https-webhook
    251. port: 443
    252. targetPort: webhook
    253. appProtocol: https
    254. selector:
    255. app.kubernetes.io/name: ingress-nginx
    256. app.kubernetes.io/instance: ingress-nginx
    257. app.kubernetes.io/component: controller
    258. ---
    259. # Source: ingress-nginx/templates/controller-service.yaml
    260. apiVersion: v1
    261. kind: Service
    262. metadata:
    263. annotations:
    264. labels:
    265. helm.sh/chart: ingress-nginx-4.0.10
    266. app.kubernetes.io/name: ingress-nginx
    267. app.kubernetes.io/instance: ingress-nginx
    268. app.kubernetes.io/version: 1.1.0
    269. app.kubernetes.io/managed-by: Helm
    270. app.kubernetes.io/component: controller
    271. name: ingress-nginx-controller
    272. namespace: ingress-nginx
    273. spec:
    274. type: ClusterIP
    275. ports:
    276. - name: http
    277. port: 80
    278. protocol: TCP
    279. targetPort: http
    280. appProtocol: http
    281. - name: https
    282. port: 443
    283. protocol: TCP
    284. targetPort: https
    285. appProtocol: https
    286. selector:
    287. app.kubernetes.io/name: ingress-nginx
    288. app.kubernetes.io/instance: ingress-nginx
    289. app.kubernetes.io/component: controller
    290. ---
    291. # Source: ingress-nginx/templates/controller-deployment.yaml
    292. apiVersion: apps/v1
    293. kind: Deployment
    294. metadata:
    295. labels:
    296. helm.sh/chart: ingress-nginx-4.0.10
    297. app.kubernetes.io/name: ingress-nginx
    298. app.kubernetes.io/instance: ingress-nginx
    299. app.kubernetes.io/version: 1.1.0
    300. app.kubernetes.io/managed-by: Helm
    301. app.kubernetes.io/component: controller
    302. name: ingress-nginx-controller
    303. namespace: ingress-nginx
    304. spec:
    305. selector:
    306. matchLabels:
    307. app.kubernetes.io/name: ingress-nginx
    308. app.kubernetes.io/instance: ingress-nginx
    309. app.kubernetes.io/component: controller
    310. revisionHistoryLimit: 10
    311. minReadySeconds: 0
    312. template:
    313. metadata:
    314. labels:
    315. app.kubernetes.io/name: ingress-nginx
    316. app.kubernetes.io/instance: ingress-nginx
    317. app.kubernetes.io/component: controller
    318. spec:
    319. dnsPolicy: ClusterFirst
    320. containers:
    321. - name: controller
    322. image: willdockerhub/ingress-nginx-controller:v1.0.0
    323. imagePullPolicy: IfNotPresent
    324. lifecycle:
    325. preStop:
    326. exec:
    327. command:
    328. - /wait-shutdown
    329. args:
    330. - /nginx-ingress-controller
    331. - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
    332. - --election-id=ingress-controller-leader
    333. - --controller-class=k8s.io/ingress-nginx
    334. - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller
    335. - --validating-webhook=:8443
    336. - --validating-webhook-certificate=/usr/local/certificates/cert
    337. - --validating-webhook-key=/usr/local/certificates/key
    338. securityContext:
    339. capabilities:
    340. drop:
    341. - ALL
    342. add:
    343. - NET_BIND_SERVICE
    344. runAsUser: 101
    345. allowPrivilegeEscalation: true
    346. env:
    347. - name: POD_NAME
    348. valueFrom:
    349. fieldRef:
    350. fieldPath: metadata.name
    351. - name: POD_NAMESPACE
    352. valueFrom:
    353. fieldRef:
    354. fieldPath: metadata.namespace
    355. - name: LD_PRELOAD
    356. value: /usr/local/lib/libmimalloc.so
    357. livenessProbe:
    358. failureThreshold: 5
    359. httpGet:
    360. path: /healthz
    361. port: 10254
    362. scheme: HTTP
    363. initialDelaySeconds: 10
    364. periodSeconds: 10
    365. successThreshold: 1
    366. timeoutSeconds: 1
    367. readinessProbe:
    368. failureThreshold: 3
    369. httpGet:
    370. path: /healthz
    371. port: 10254
    372. scheme: HTTP
    373. initialDelaySeconds: 10
    374. periodSeconds: 10
    375. successThreshold: 1
    376. timeoutSeconds: 1
    377. ports:
    378. - name: http
    379. containerPort: 80
    380. protocol: TCP
    381. - name: https
    382. containerPort: 443
    383. protocol: TCP
    384. - name: webhook
    385. containerPort: 8443
    386. protocol: TCP
    387. volumeMounts:
    388. - name: webhook-cert
    389. mountPath: /usr/local/certificates/
    390. readOnly: true
    391. resources:
    392. requests:
    393. cpu: 100m
    394. memory: 90Mi
    395. tolerations:
    396. - operator: "Exists"
    397. nodeSelector:
    398. kubernetes.io/hostname: master
    399. hostNetwork: true
    400. serviceAccountName: ingress-nginx
    401. terminationGracePeriodSeconds: 300
    402. volumes:
    403. - name: webhook-cert
    404. secret:
    405. secretName: ingress-nginx-admission
    406. ---
    407. # Source: ingress-nginx/templates/controller-ingressclass.yaml
    408. # We don't support namespaced ingressClass yet
    409. # So a ClusterRole and a ClusterRoleBinding is required
    410. apiVersion: networking.k8s.io/v1
    411. kind: IngressClass
    412. metadata:
    413. labels:
    414. helm.sh/chart: ingress-nginx-4.0.10
    415. app.kubernetes.io/name: ingress-nginx
    416. app.kubernetes.io/instance: ingress-nginx
    417. app.kubernetes.io/version: 1.1.0
    418. app.kubernetes.io/managed-by: Helm
    419. app.kubernetes.io/component: controller
    420. name: nginx
    421. namespace: ingress-nginx
    422. spec:
    423. controller: k8s.io/ingress-nginx
    424. ---
    425. # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml
    426. # before changing this value, check the required kubernetes version
    427. # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites
    428. apiVersion: admissionregistration.k8s.io/v1
    429. kind: ValidatingWebhookConfiguration
    430. metadata:
    431. labels:
    432. helm.sh/chart: ingress-nginx-4.0.10
    433. app.kubernetes.io/name: ingress-nginx
    434. app.kubernetes.io/instance: ingress-nginx
    435. app.kubernetes.io/version: 1.1.0
    436. app.kubernetes.io/managed-by: Helm
    437. app.kubernetes.io/component: admission-webhook
    438. name: ingress-nginx-admission
    439. webhooks:
    440. - name: validate.nginx.ingress.kubernetes.io
    441. matchPolicy: Equivalent
    442. rules:
    443. - apiGroups:
    444. - networking.k8s.io
    445. apiVersions:
    446. - v1
    447. operations:
    448. - CREATE
    449. - UPDATE
    450. resources:
    451. - ingresses
    452. failurePolicy: Fail
    453. sideEffects: None
    454. admissionReviewVersions:
    455. - v1
    456. clientConfig:
    457. service:
    458. namespace: ingress-nginx
    459. name: ingress-nginx-controller-admission
    460. path: /networking/v1/ingresses
    461. ---
    462. # Source: ingress-nginx/templates/admission-webhooks/job-patch/serviceaccount.yaml
    463. apiVersion: v1
    464. kind: ServiceAccount
    465. metadata:
    466. name: ingress-nginx-admission
    467. namespace: ingress-nginx
    468. annotations:
    469. helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    470. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    471. labels:
    472. helm.sh/chart: ingress-nginx-4.0.10
    473. app.kubernetes.io/name: ingress-nginx
    474. app.kubernetes.io/instance: ingress-nginx
    475. app.kubernetes.io/version: 1.1.0
    476. app.kubernetes.io/managed-by: Helm
    477. app.kubernetes.io/component: admission-webhook
    478. ---
    479. # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrole.yaml
    480. apiVersion: rbac.authorization.k8s.io/v1
    481. kind: ClusterRole
    482. metadata:
    483. name: ingress-nginx-admission
    484. annotations:
    485. helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    486. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    487. labels:
    488. helm.sh/chart: ingress-nginx-4.0.10
    489. app.kubernetes.io/name: ingress-nginx
    490. app.kubernetes.io/instance: ingress-nginx
    491. app.kubernetes.io/version: 1.1.0
    492. app.kubernetes.io/managed-by: Helm
    493. app.kubernetes.io/component: admission-webhook
    494. rules:
    495. - apiGroups:
    496. - admissionregistration.k8s.io
    497. resources:
    498. - validatingwebhookconfigurations
    499. verbs:
    500. - get
    501. - update
    502. ---
    503. # Source: ingress-nginx/templates/admission-webhooks/job-patch/clusterrolebinding.yaml
    504. apiVersion: rbac.authorization.k8s.io/v1
    505. kind: ClusterRoleBinding
    506. metadata:
    507. name: ingress-nginx-admission
    508. annotations:
    509. helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    510. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    511. labels:
    512. helm.sh/chart: ingress-nginx-4.0.10
    513. app.kubernetes.io/name: ingress-nginx
    514. app.kubernetes.io/instance: ingress-nginx
    515. app.kubernetes.io/version: 1.1.0
    516. app.kubernetes.io/managed-by: Helm
    517. app.kubernetes.io/component: admission-webhook
    518. roleRef:
    519. apiGroup: rbac.authorization.k8s.io
    520. kind: ClusterRole
    521. name: ingress-nginx-admission
    522. subjects:
    523. - kind: ServiceAccount
    524. name: ingress-nginx-admission
    525. namespace: ingress-nginx
    526. ---
    527. # Source: ingress-nginx/templates/admission-webhooks/job-patch/role.yaml
    528. apiVersion: rbac.authorization.k8s.io/v1
    529. kind: Role
    530. metadata:
    531. name: ingress-nginx-admission
    532. namespace: ingress-nginx
    533. annotations:
    534. helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    535. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    536. labels:
    537. helm.sh/chart: ingress-nginx-4.0.10
    538. app.kubernetes.io/name: ingress-nginx
    539. app.kubernetes.io/instance: ingress-nginx
    540. app.kubernetes.io/version: 1.1.0
    541. app.kubernetes.io/managed-by: Helm
    542. app.kubernetes.io/component: admission-webhook
    543. rules:
    544. - apiGroups:
    545. - ''
    546. resources:
    547. - secrets
    548. verbs:
    549. - get
    550. - create
    551. ---
    552. # Source: ingress-nginx/templates/admission-webhooks/job-patch/rolebinding.yaml
    553. apiVersion: rbac.authorization.k8s.io/v1
    554. kind: RoleBinding
    555. metadata:
    556. name: ingress-nginx-admission
    557. namespace: ingress-nginx
    558. annotations:
    559. helm.sh/hook: pre-install,pre-upgrade,post-install,post-upgrade
    560. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    561. labels:
    562. helm.sh/chart: ingress-nginx-4.0.10
    563. app.kubernetes.io/name: ingress-nginx
    564. app.kubernetes.io/instance: ingress-nginx
    565. app.kubernetes.io/version: 1.1.0
    566. app.kubernetes.io/managed-by: Helm
    567. app.kubernetes.io/component: admission-webhook
    568. roleRef:
    569. apiGroup: rbac.authorization.k8s.io
    570. kind: Role
    571. name: ingress-nginx-admission
    572. subjects:
    573. - kind: ServiceAccount
    574. name: ingress-nginx-admission
    575. namespace: ingress-nginx
    576. ---
    577. # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml
    578. apiVersion: batch/v1
    579. kind: Job
    580. metadata:
    581. name: ingress-nginx-admission-create
    582. namespace: ingress-nginx
    583. annotations:
    584. helm.sh/hook: pre-install,pre-upgrade
    585. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    586. labels:
    587. helm.sh/chart: ingress-nginx-4.0.10
    588. app.kubernetes.io/name: ingress-nginx
    589. app.kubernetes.io/instance: ingress-nginx
    590. app.kubernetes.io/version: 1.1.0
    591. app.kubernetes.io/managed-by: Helm
    592. app.kubernetes.io/component: admission-webhook
    593. spec:
    594. template:
    595. metadata:
    596. name: ingress-nginx-admission-create
    597. labels:
    598. helm.sh/chart: ingress-nginx-4.0.10
    599. app.kubernetes.io/name: ingress-nginx
    600. app.kubernetes.io/instance: ingress-nginx
    601. app.kubernetes.io/version: 1.1.0
    602. app.kubernetes.io/managed-by: Helm
    603. app.kubernetes.io/component: admission-webhook
    604. spec:
    605. containers:
    606. - name: create
    607. image: liangjw/kube-webhook-certgen:v1.1.1
    608. imagePullPolicy: IfNotPresent
    609. args:
    610. - create
    611. - --host=ingress-nginx-controller-admission,ingress-nginx-controller-admission.$(POD_NAMESPACE).svc
    612. - --namespace=$(POD_NAMESPACE)
    613. - --secret-name=ingress-nginx-admission
    614. env:
    615. - name: POD_NAMESPACE
    616. valueFrom:
    617. fieldRef:
    618. fieldPath: metadata.namespace
    619. securityContext:
    620. allowPrivilegeEscalation: false
    621. restartPolicy: OnFailure
    622. serviceAccountName: ingress-nginx-admission
    623. nodeSelector:
    624. kubernetes.io/os: linux
    625. securityContext:
    626. runAsNonRoot: true
    627. runAsUser: 2000
    628. ---
    629. # Source: ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml
    630. apiVersion: batch/v1
    631. kind: Job
    632. metadata:
    633. name: ingress-nginx-admission-patch
    634. namespace: ingress-nginx
    635. annotations:
    636. helm.sh/hook: post-install,post-upgrade
    637. helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
    638. labels:
    639. helm.sh/chart: ingress-nginx-4.0.10
    640. app.kubernetes.io/name: ingress-nginx
    641. app.kubernetes.io/instance: ingress-nginx
    642. app.kubernetes.io/version: 1.1.0
    643. app.kubernetes.io/managed-by: Helm
    644. app.kubernetes.io/component: admission-webhook
    645. spec:
    646. template:
    647. metadata:
    648. name: ingress-nginx-admission-patch
    649. labels:
    650. helm.sh/chart: ingress-nginx-4.0.10
    651. app.kubernetes.io/name: ingress-nginx
    652. app.kubernetes.io/instance: ingress-nginx
    653. app.kubernetes.io/version: 1.1.0
    654. app.kubernetes.io/managed-by: Helm
    655. app.kubernetes.io/component: admission-webhook
    656. spec:
    657. containers:
    658. - name: patch
    659. image: liangjw/kube-webhook-certgen:v1.1.1
    660. imagePullPolicy: IfNotPresent
    661. args:
    662. - patch
    663. - --webhook-name=ingress-nginx-admission
    664. - --namespace=$(POD_NAMESPACE)
    665. - --patch-mutating=false
    666. - --secret-name=ingress-nginx-admission
    667. - --patch-failure-policy=Fail
    668. env:
    669. - name: POD_NAMESPACE
    670. valueFrom:
    671. fieldRef:
    672. fieldPath: metadata.namespace
    673. securityContext:
    674. allowPrivilegeEscalation: false
    675. restartPolicy: OnFailure
    676. serviceAccountName: ingress-nginx-admission
    677. nodeSelector:
    678. kubernetes.io/os: linux
    679. securityContext:
    680. runAsNonRoot: true
    681. runAsUser: 2000