mandatory.yaml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  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/part-of: ingress-nginx
  8. ---
  9. kind: ConfigMap
  10. apiVersion: v1
  11. metadata:
  12. name: nginx-configuration
  13. namespace: ingress-nginx
  14. labels:
  15. app.kubernetes.io/name: ingress-nginx
  16. app.kubernetes.io/part-of: ingress-nginx
  17. ---
  18. kind: ConfigMap
  19. apiVersion: v1
  20. metadata:
  21. name: tcp-services
  22. namespace: ingress-nginx
  23. labels:
  24. app.kubernetes.io/name: ingress-nginx
  25. app.kubernetes.io/part-of: ingress-nginx
  26. ---
  27. kind: ConfigMap
  28. apiVersion: v1
  29. metadata:
  30. name: udp-services
  31. namespace: ingress-nginx
  32. labels:
  33. app.kubernetes.io/name: ingress-nginx
  34. app.kubernetes.io/part-of: ingress-nginx
  35. ---
  36. apiVersion: v1
  37. kind: ServiceAccount
  38. metadata:
  39. name: nginx-ingress-serviceaccount
  40. namespace: ingress-nginx
  41. labels:
  42. app.kubernetes.io/name: ingress-nginx
  43. app.kubernetes.io/part-of: ingress-nginx
  44. ---
  45. apiVersion: rbac.authorization.k8s.io/v1beta1
  46. kind: ClusterRole
  47. metadata:
  48. name: nginx-ingress-clusterrole
  49. labels:
  50. app.kubernetes.io/name: ingress-nginx
  51. app.kubernetes.io/part-of: ingress-nginx
  52. rules:
  53. - apiGroups:
  54. - ""
  55. resources:
  56. - configmaps
  57. - endpoints
  58. - nodes
  59. - pods
  60. - secrets
  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. - "extensions"
  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. - "extensions"
  95. resources:
  96. - ingresses/status
  97. verbs:
  98. - update
  99. ---
  100. apiVersion: rbac.authorization.k8s.io/v1beta1
  101. kind: Role
  102. metadata:
  103. name: nginx-ingress-role
  104. namespace: ingress-nginx
  105. labels:
  106. app.kubernetes.io/name: ingress-nginx
  107. app.kubernetes.io/part-of: ingress-nginx
  108. rules:
  109. - apiGroups:
  110. - ""
  111. resources:
  112. - configmaps
  113. - pods
  114. - secrets
  115. - namespaces
  116. verbs:
  117. - get
  118. - apiGroups:
  119. - ""
  120. resources:
  121. - configmaps
  122. resourceNames:
  123. # Defaults to "<election-id>-<ingress-class>"
  124. # Here: "<ingress-controller-leader>-<nginx>"
  125. # This has to be adapted if you change either parameter
  126. # when launching the nginx-ingress-controller.
  127. - "ingress-controller-leader-nginx"
  128. verbs:
  129. - get
  130. - update
  131. - apiGroups:
  132. - ""
  133. resources:
  134. - configmaps
  135. verbs:
  136. - create
  137. - apiGroups:
  138. - ""
  139. resources:
  140. - endpoints
  141. verbs:
  142. - get
  143. ---
  144. apiVersion: rbac.authorization.k8s.io/v1beta1
  145. kind: RoleBinding
  146. metadata:
  147. name: nginx-ingress-role-nisa-binding
  148. namespace: ingress-nginx
  149. labels:
  150. app.kubernetes.io/name: ingress-nginx
  151. app.kubernetes.io/part-of: ingress-nginx
  152. roleRef:
  153. apiGroup: rbac.authorization.k8s.io
  154. kind: Role
  155. name: nginx-ingress-role
  156. subjects:
  157. - kind: ServiceAccount
  158. name: nginx-ingress-serviceaccount
  159. namespace: ingress-nginx
  160. ---
  161. apiVersion: rbac.authorization.k8s.io/v1beta1
  162. kind: ClusterRoleBinding
  163. metadata:
  164. name: nginx-ingress-clusterrole-nisa-binding
  165. labels:
  166. app.kubernetes.io/name: ingress-nginx
  167. app.kubernetes.io/part-of: ingress-nginx
  168. roleRef:
  169. apiGroup: rbac.authorization.k8s.io
  170. kind: ClusterRole
  171. name: nginx-ingress-clusterrole
  172. subjects:
  173. - kind: ServiceAccount
  174. name: nginx-ingress-serviceaccount
  175. namespace: ingress-nginx
  176. ---
  177. apiVersion: extensions/v1beta1
  178. kind: DaemonSet
  179. metadata:
  180. name: nginx-ingress-controller
  181. namespace: ingress-nginx
  182. labels:
  183. app.kubernetes.io/name: ingress-nginx
  184. app.kubernetes.io/part-of: ingress-nginx
  185. spec:
  186. #replicas: 1
  187. selector:
  188. matchLabels:
  189. app.kubernetes.io/name: ingress-nginx
  190. app.kubernetes.io/part-of: ingress-nginx
  191. updateStrategy:
  192. rollingUpdate:
  193. maxUnavailable: 1
  194. type: RollingUpdate
  195. template:
  196. metadata:
  197. labels:
  198. app.kubernetes.io/name: ingress-nginx
  199. app.kubernetes.io/part-of: ingress-nginx
  200. annotations:
  201. prometheus.io/port: "10254"
  202. prometheus.io/scrape: "true"
  203. spec:
  204. serviceAccountName: nginx-ingress-serviceaccount
  205. hostNetwork: true
  206. containers:
  207. - name: nginx-ingress-controller
  208. image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0
  209. args:
  210. - /nginx-ingress-controller
  211. - --configmap=$(POD_NAMESPACE)/nginx-configuration
  212. - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
  213. - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
  214. - --publish-service=$(POD_NAMESPACE)/ingress-nginx
  215. - --annotations-prefix=nginx.ingress.kubernetes.io
  216. securityContext:
  217. allowPrivilegeEscalation: true
  218. capabilities:
  219. drop:
  220. - ALL
  221. add:
  222. - NET_BIND_SERVICE
  223. # www-data -> 33
  224. runAsUser: 33
  225. env:
  226. - name: POD_NAME
  227. valueFrom:
  228. fieldRef:
  229. fieldPath: metadata.name
  230. - name: POD_NAMESPACE
  231. valueFrom:
  232. fieldRef:
  233. fieldPath: metadata.namespace
  234. ports:
  235. - name: http
  236. containerPort: 80
  237. - name: https
  238. containerPort: 443
  239. livenessProbe:
  240. failureThreshold: 3
  241. httpGet:
  242. path: /healthz
  243. port: 10254
  244. scheme: HTTP
  245. initialDelaySeconds: 10
  246. periodSeconds: 10
  247. successThreshold: 1
  248. timeoutSeconds: 1
  249. readinessProbe:
  250. failureThreshold: 3
  251. httpGet:
  252. path: /healthz
  253. port: 10254
  254. scheme: HTTP
  255. periodSeconds: 10
  256. successThreshold: 1
  257. timeoutSeconds: 1
  258. ---