You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

238 lines
5.2 KiB

  1. apiVersion: v1
  2. kind: Namespace
  3. metadata:
  4. name: ingress-nginx
  5. ---
  6. kind: ConfigMap
  7. apiVersion: v1
  8. metadata:
  9. name: nginx-configuration
  10. namespace: ingress-nginx
  11. labels:
  12. app.kubernetes.io/name: ingress-nginx
  13. app.kubernetes.io/part-of: ingress-nginx
  14. ---
  15. apiVersion: v1
  16. kind: ServiceAccount
  17. metadata:
  18. name: nginx-ingress-serviceaccount
  19. namespace: ingress-nginx
  20. labels:
  21. app.kubernetes.io/name: ingress-nginx
  22. app.kubernetes.io/part-of: ingress-nginx
  23. ---
  24. apiVersion: rbac.authorization.k8s.io/v1
  25. kind: ClusterRole
  26. metadata:
  27. name: nginx-ingress-clusterrole
  28. labels:
  29. app.kubernetes.io/name: ingress-nginx
  30. app.kubernetes.io/part-of: ingress-nginx
  31. rules:
  32. - apiGroups:
  33. - ""
  34. resources:
  35. - configmaps
  36. - endpoints
  37. - nodes
  38. - pods
  39. - secrets
  40. verbs:
  41. - list
  42. - watch
  43. - apiGroups:
  44. - ""
  45. resources:
  46. - nodes
  47. verbs:
  48. - get
  49. - apiGroups:
  50. - ""
  51. resources:
  52. - services
  53. verbs:
  54. - get
  55. - list
  56. - watch
  57. - apiGroups:
  58. - "extensions"
  59. resources:
  60. - ingresses
  61. verbs:
  62. - get
  63. - list
  64. - watch
  65. - apiGroups:
  66. - ""
  67. resources:
  68. - events
  69. verbs:
  70. - create
  71. - patch
  72. - apiGroups:
  73. - "extensions"
  74. resources:
  75. - ingresses/status
  76. verbs:
  77. - update
  78. ---
  79. apiVersion: rbac.authorization.k8s.io/v1
  80. kind: Role
  81. metadata:
  82. name: nginx-ingress-role
  83. namespace: ingress-nginx
  84. labels:
  85. app.kubernetes.io/name: ingress-nginx
  86. app.kubernetes.io/part-of: ingress-nginx
  87. rules:
  88. - apiGroups:
  89. - ""
  90. resources:
  91. - configmaps
  92. - pods
  93. - secrets
  94. - namespaces
  95. verbs:
  96. - get
  97. - apiGroups:
  98. - ""
  99. resources:
  100. - configmaps
  101. resourceNames:
  102. # Defaults to "<election-id>-<ingress-class>"
  103. # Here: "<ingress-controller-leader>-<nginx>"
  104. # This has to be adapted if you change either parameter
  105. # when launching the nginx-ingress-controller.
  106. - "ingress-controller-leader-nginx"
  107. verbs:
  108. - get
  109. - update
  110. - apiGroups:
  111. - ""
  112. resources:
  113. - configmaps
  114. verbs:
  115. - create
  116. - apiGroups:
  117. - ""
  118. resources:
  119. - endpoints
  120. verbs:
  121. - get
  122. ---
  123. apiVersion: rbac.authorization.k8s.io/v1
  124. kind: RoleBinding
  125. metadata:
  126. name: nginx-ingress-role-nisa-binding
  127. namespace: ingress-nginx
  128. labels:
  129. app.kubernetes.io/name: ingress-nginx
  130. app.kubernetes.io/part-of: ingress-nginx
  131. roleRef:
  132. apiGroup: rbac.authorization.k8s.io
  133. kind: Role
  134. name: nginx-ingress-role
  135. subjects:
  136. - kind: ServiceAccount
  137. name: nginx-ingress-serviceaccount
  138. namespace: ingress-nginx
  139. ---
  140. apiVersion: rbac.authorization.k8s.io/v1
  141. kind: ClusterRoleBinding
  142. metadata:
  143. name: nginx-ingress-clusterrole-nisa-binding
  144. labels:
  145. app.kubernetes.io/name: ingress-nginx
  146. app.kubernetes.io/part-of: ingress-nginx
  147. roleRef:
  148. apiGroup: rbac.authorization.k8s.io
  149. kind: ClusterRole
  150. name: nginx-ingress-clusterrole
  151. subjects:
  152. - kind: ServiceAccount
  153. name: nginx-ingress-serviceaccount
  154. namespace: ingress-nginx
  155. ---
  156. apiVersion: apps/v1
  157. kind: Deployment
  158. metadata:
  159. name: nginx-ingress-controller
  160. namespace: ingress-nginx
  161. labels:
  162. app.kubernetes.io/name: ingress-nginx
  163. app.kubernetes.io/part-of: ingress-nginx
  164. spec:
  165. replicas: 1
  166. selector:
  167. matchLabels:
  168. app.kubernetes.io/name: ingress-nginx
  169. app.kubernetes.io/part-of: ingress-nginx
  170. template:
  171. metadata:
  172. labels:
  173. app.kubernetes.io/name: ingress-nginx
  174. app.kubernetes.io/part-of: ingress-nginx
  175. annotations:
  176. prometheus.io/port: "10254"
  177. prometheus.io/scrape: "true"
  178. spec:
  179. serviceAccountName: nginx-ingress-serviceaccount
  180. containers:
  181. - name: nginx-ingress-controller
  182. image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0
  183. args:
  184. - /nginx-ingress-controller
  185. - --configmap=$(POD_NAMESPACE)/nginx-configuration
  186. - --publish-service=$(POD_NAMESPACE)/ingress-nginx
  187. - --annotations-prefix=nginx.ingress.kubernetes.io
  188. securityContext:
  189. capabilities:
  190. drop:
  191. - ALL
  192. add:
  193. - NET_BIND_SERVICE
  194. # www-data -> 33
  195. runAsUser: 33
  196. env:
  197. - name: POD_NAME
  198. valueFrom:
  199. fieldRef:
  200. fieldPath: metadata.name
  201. - name: POD_NAMESPACE
  202. valueFrom:
  203. fieldRef:
  204. fieldPath: metadata.namespace
  205. ports:
  206. - name: http
  207. containerPort: 80
  208. - name: https
  209. containerPort: 443
  210. livenessProbe:
  211. failureThreshold: 3
  212. httpGet:
  213. path: /healthz
  214. port: 10254
  215. scheme: HTTP
  216. initialDelaySeconds: 10
  217. periodSeconds: 10
  218. successThreshold: 1
  219. timeoutSeconds: 1
  220. readinessProbe:
  221. failureThreshold: 3
  222. httpGet:
  223. path: /healthz
  224. port: 10254
  225. scheme: HTTP
  226. periodSeconds: 10
  227. successThreshold: 1
  228. timeoutSeconds: 1