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.

1259 lines
42 KiB

  1. # Copyright 2022 The cert-manager Authors.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. apiVersion: v1
  16. kind: Namespace
  17. metadata:
  18. name: {{ cert_manager_namespace }}
  19. ---
  20. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-serviceaccount.yaml
  21. apiVersion: v1
  22. kind: ServiceAccount
  23. automountServiceAccountToken: true
  24. metadata:
  25. name: cert-manager-cainjector
  26. namespace: {{ cert_manager_namespace }}
  27. labels:
  28. app: cainjector
  29. app.kubernetes.io/name: cainjector
  30. app.kubernetes.io/instance: cert-manager
  31. app.kubernetes.io/component: "cainjector"
  32. app.kubernetes.io/version: "{{ cert_manager_version }}"
  33. ---
  34. # Source: cert-manager/deploy/charts/cert-manager/templates/serviceaccount.yaml
  35. apiVersion: v1
  36. kind: ServiceAccount
  37. automountServiceAccountToken: true
  38. metadata:
  39. name: cert-manager
  40. namespace: {{ cert_manager_namespace }}
  41. labels:
  42. app: cert-manager
  43. app.kubernetes.io/name: cert-manager
  44. app.kubernetes.io/instance: cert-manager
  45. app.kubernetes.io/component: "controller"
  46. app.kubernetes.io/version: "{{ cert_manager_version }}"
  47. ---
  48. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-serviceaccount.yaml
  49. apiVersion: v1
  50. kind: ServiceAccount
  51. automountServiceAccountToken: true
  52. metadata:
  53. name: cert-manager-webhook
  54. namespace: {{ cert_manager_namespace }}
  55. labels:
  56. app: webhook
  57. app.kubernetes.io/name: webhook
  58. app.kubernetes.io/instance: cert-manager
  59. app.kubernetes.io/component: "webhook"
  60. app.kubernetes.io/version: "{{ cert_manager_version }}"
  61. ---
  62. # Source: cert-manager/deploy/charts/cert-manager/templates/controller-config.yaml
  63. apiVersion: v1
  64. kind: ConfigMap
  65. metadata:
  66. name: cert-manager
  67. namespace: {{ cert_manager_namespace }}
  68. labels:
  69. app: cert-manager
  70. app.kubernetes.io/name: cert-manager
  71. app.kubernetes.io/instance: cert-manager
  72. app.kubernetes.io/component: "controller"
  73. app.kubernetes.io/version: "{{ cert_manager_version }}"
  74. data:
  75. ---
  76. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-config.yaml
  77. apiVersion: v1
  78. kind: ConfigMap
  79. metadata:
  80. name: cert-manager-webhook
  81. namespace: {{ cert_manager_namespace }}
  82. labels:
  83. app: webhook
  84. app.kubernetes.io/name: webhook
  85. app.kubernetes.io/instance: cert-manager
  86. app.kubernetes.io/component: "webhook"
  87. app.kubernetes.io/version: "{{ cert_manager_version }}"
  88. data:
  89. ---
  90. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-rbac.yaml
  91. apiVersion: rbac.authorization.k8s.io/v1
  92. kind: ClusterRole
  93. metadata:
  94. name: cert-manager-cainjector
  95. labels:
  96. app: cainjector
  97. app.kubernetes.io/name: cainjector
  98. app.kubernetes.io/instance: cert-manager
  99. app.kubernetes.io/component: "cainjector"
  100. app.kubernetes.io/version: "{{ cert_manager_version }}"
  101. rules:
  102. - apiGroups: ["cert-manager.io"]
  103. resources: ["certificates"]
  104. verbs: ["get", "list", "watch"]
  105. - apiGroups: [""]
  106. resources: ["secrets"]
  107. verbs: ["get", "list", "watch"]
  108. - apiGroups: [""]
  109. resources: ["events"]
  110. verbs: ["get", "create", "update", "patch"]
  111. - apiGroups: ["admissionregistration.k8s.io"]
  112. resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
  113. verbs: ["get", "list", "watch", "update", "patch"]
  114. - apiGroups: ["apiregistration.k8s.io"]
  115. resources: ["apiservices"]
  116. verbs: ["get", "list", "watch", "update", "patch"]
  117. - apiGroups: ["apiextensions.k8s.io"]
  118. resources: ["customresourcedefinitions"]
  119. verbs: ["get", "list", "watch", "update", "patch"]
  120. ---
  121. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  122. # Issuer controller role
  123. apiVersion: rbac.authorization.k8s.io/v1
  124. kind: ClusterRole
  125. metadata:
  126. name: cert-manager-controller-issuers
  127. labels:
  128. app: cert-manager
  129. app.kubernetes.io/name: cert-manager
  130. app.kubernetes.io/instance: cert-manager
  131. app.kubernetes.io/component: "controller"
  132. app.kubernetes.io/version: "{{ cert_manager_version }}"
  133. rules:
  134. - apiGroups: ["cert-manager.io"]
  135. resources: ["issuers", "issuers/status"]
  136. verbs: ["update", "patch"]
  137. - apiGroups: ["cert-manager.io"]
  138. resources: ["issuers"]
  139. verbs: ["get", "list", "watch"]
  140. - apiGroups: [""]
  141. resources: ["secrets"]
  142. verbs: ["get", "list", "watch", "create", "update", "delete"]
  143. - apiGroups: [""]
  144. resources: ["events"]
  145. verbs: ["create", "patch"]
  146. ---
  147. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  148. # ClusterIssuer controller role
  149. apiVersion: rbac.authorization.k8s.io/v1
  150. kind: ClusterRole
  151. metadata:
  152. name: cert-manager-controller-clusterissuers
  153. labels:
  154. app: cert-manager
  155. app.kubernetes.io/name: cert-manager
  156. app.kubernetes.io/instance: cert-manager
  157. app.kubernetes.io/component: "controller"
  158. app.kubernetes.io/version: "{{ cert_manager_version }}"
  159. rules:
  160. - apiGroups: ["cert-manager.io"]
  161. resources: ["clusterissuers", "clusterissuers/status"]
  162. verbs: ["update", "patch"]
  163. - apiGroups: ["cert-manager.io"]
  164. resources: ["clusterissuers"]
  165. verbs: ["get", "list", "watch"]
  166. - apiGroups: [""]
  167. resources: ["secrets"]
  168. verbs: ["get", "list", "watch", "create", "update", "delete"]
  169. - apiGroups: [""]
  170. resources: ["events"]
  171. verbs: ["create", "patch"]
  172. ---
  173. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  174. # Certificates controller role
  175. apiVersion: rbac.authorization.k8s.io/v1
  176. kind: ClusterRole
  177. metadata:
  178. name: cert-manager-controller-certificates
  179. labels:
  180. app: cert-manager
  181. app.kubernetes.io/name: cert-manager
  182. app.kubernetes.io/instance: cert-manager
  183. app.kubernetes.io/component: "controller"
  184. app.kubernetes.io/version: "{{ cert_manager_version }}"
  185. rules:
  186. - apiGroups: ["cert-manager.io"]
  187. resources: ["certificates", "certificates/status", "certificaterequests", "certificaterequests/status"]
  188. verbs: ["update", "patch"]
  189. - apiGroups: ["cert-manager.io"]
  190. resources: ["certificates", "certificaterequests", "clusterissuers", "issuers"]
  191. verbs: ["get", "list", "watch"]
  192. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  193. # admission controller enabled:
  194. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  195. - apiGroups: ["cert-manager.io"]
  196. resources: ["certificates/finalizers", "certificaterequests/finalizers"]
  197. verbs: ["update"]
  198. - apiGroups: ["acme.cert-manager.io"]
  199. resources: ["orders"]
  200. verbs: ["create", "delete", "get", "list", "watch"]
  201. - apiGroups: [""]
  202. resources: ["secrets"]
  203. verbs: ["get", "list", "watch", "create", "update", "delete", "patch"]
  204. - apiGroups: [""]
  205. resources: ["events"]
  206. verbs: ["create", "patch"]
  207. ---
  208. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  209. # Orders controller role
  210. apiVersion: rbac.authorization.k8s.io/v1
  211. kind: ClusterRole
  212. metadata:
  213. name: cert-manager-controller-orders
  214. labels:
  215. app: cert-manager
  216. app.kubernetes.io/name: cert-manager
  217. app.kubernetes.io/instance: cert-manager
  218. app.kubernetes.io/component: "controller"
  219. app.kubernetes.io/version: "{{ cert_manager_version }}"
  220. rules:
  221. - apiGroups: ["acme.cert-manager.io"]
  222. resources: ["orders", "orders/status"]
  223. verbs: ["update", "patch"]
  224. - apiGroups: ["acme.cert-manager.io"]
  225. resources: ["orders", "challenges"]
  226. verbs: ["get", "list", "watch"]
  227. - apiGroups: ["cert-manager.io"]
  228. resources: ["clusterissuers", "issuers"]
  229. verbs: ["get", "list", "watch"]
  230. - apiGroups: ["acme.cert-manager.io"]
  231. resources: ["challenges"]
  232. verbs: ["create", "delete"]
  233. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  234. # admission controller enabled:
  235. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  236. - apiGroups: ["acme.cert-manager.io"]
  237. resources: ["orders/finalizers"]
  238. verbs: ["update"]
  239. - apiGroups: [""]
  240. resources: ["secrets"]
  241. verbs: ["get", "list", "watch"]
  242. - apiGroups: [""]
  243. resources: ["events"]
  244. verbs: ["create", "patch"]
  245. ---
  246. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  247. # Challenges controller role
  248. apiVersion: rbac.authorization.k8s.io/v1
  249. kind: ClusterRole
  250. metadata:
  251. name: cert-manager-controller-challenges
  252. labels:
  253. app: cert-manager
  254. app.kubernetes.io/name: cert-manager
  255. app.kubernetes.io/instance: cert-manager
  256. app.kubernetes.io/component: "controller"
  257. app.kubernetes.io/version: "{{ cert_manager_version }}"
  258. rules:
  259. # Use to update challenge resource status
  260. - apiGroups: ["acme.cert-manager.io"]
  261. resources: ["challenges", "challenges/status"]
  262. verbs: ["update", "patch"]
  263. # Used to watch challenge resources
  264. - apiGroups: ["acme.cert-manager.io"]
  265. resources: ["challenges"]
  266. verbs: ["get", "list", "watch"]
  267. # Used to watch challenges, issuer and clusterissuer resources
  268. - apiGroups: ["cert-manager.io"]
  269. resources: ["issuers", "clusterissuers"]
  270. verbs: ["get", "list", "watch"]
  271. # Need to be able to retrieve ACME account private key to complete challenges
  272. - apiGroups: [""]
  273. resources: ["secrets"]
  274. verbs: ["get", "list", "watch"]
  275. # Used to create events
  276. - apiGroups: [""]
  277. resources: ["events"]
  278. verbs: ["create", "patch"]
  279. # HTTP01 rules
  280. - apiGroups: [""]
  281. resources: ["pods", "services"]
  282. verbs: ["get", "list", "watch", "create", "delete"]
  283. - apiGroups: ["networking.k8s.io"]
  284. resources: ["ingresses"]
  285. verbs: ["get", "list", "watch", "create", "delete", "update"]
  286. - apiGroups: [ "gateway.networking.k8s.io" ]
  287. resources: [ "httproutes" ]
  288. verbs: ["get", "list", "watch", "create", "delete", "update"]
  289. # We require the ability to specify a custom hostname when we are creating
  290. # new ingress resources.
  291. # See: https://github.com/openshift/origin/blob/21f191775636f9acadb44fa42beeb4f75b255532/pkg/route/apiserver/admission/ingress_admission.go#L84-L148
  292. - apiGroups: ["route.openshift.io"]
  293. resources: ["routes/custom-host"]
  294. verbs: ["create"]
  295. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  296. # admission controller enabled:
  297. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  298. - apiGroups: ["acme.cert-manager.io"]
  299. resources: ["challenges/finalizers"]
  300. verbs: ["update"]
  301. # DNS01 rules (duplicated above)
  302. - apiGroups: [""]
  303. resources: ["secrets"]
  304. verbs: ["get", "list", "watch"]
  305. ---
  306. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  307. # ingress-shim controller role
  308. apiVersion: rbac.authorization.k8s.io/v1
  309. kind: ClusterRole
  310. metadata:
  311. name: cert-manager-controller-ingress-shim
  312. labels:
  313. app: cert-manager
  314. app.kubernetes.io/name: cert-manager
  315. app.kubernetes.io/instance: cert-manager
  316. app.kubernetes.io/component: "controller"
  317. app.kubernetes.io/version: "{{ cert_manager_version }}"
  318. rules:
  319. - apiGroups: ["cert-manager.io"]
  320. resources: ["certificates", "certificaterequests"]
  321. verbs: ["create", "update", "delete"]
  322. - apiGroups: ["cert-manager.io"]
  323. resources: ["certificates", "certificaterequests", "issuers", "clusterissuers"]
  324. verbs: ["get", "list", "watch"]
  325. - apiGroups: ["networking.k8s.io"]
  326. resources: ["ingresses"]
  327. verbs: ["get", "list", "watch"]
  328. # We require these rules to support users with the OwnerReferencesPermissionEnforcement
  329. # admission controller enabled:
  330. # https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#ownerreferencespermissionenforcement
  331. - apiGroups: ["networking.k8s.io"]
  332. resources: ["ingresses/finalizers"]
  333. verbs: ["update"]
  334. - apiGroups: ["gateway.networking.k8s.io"]
  335. resources: ["gateways", "httproutes"]
  336. verbs: ["get", "list", "watch"]
  337. - apiGroups: ["gateway.networking.k8s.io"]
  338. resources: ["gateways/finalizers", "httproutes/finalizers"]
  339. verbs: ["update"]
  340. - apiGroups: [""]
  341. resources: ["events"]
  342. verbs: ["create", "patch"]
  343. ---
  344. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  345. apiVersion: rbac.authorization.k8s.io/v1
  346. kind: ClusterRole
  347. metadata:
  348. name: cert-manager-cluster-view
  349. labels:
  350. app: cert-manager
  351. app.kubernetes.io/name: cert-manager
  352. app.kubernetes.io/instance: cert-manager
  353. app.kubernetes.io/component: "controller"
  354. app.kubernetes.io/version: "{{ cert_manager_version }}"
  355. rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
  356. rules:
  357. - apiGroups: ["cert-manager.io"]
  358. resources: ["clusterissuers"]
  359. verbs: ["get", "list", "watch"]
  360. ---
  361. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  362. apiVersion: rbac.authorization.k8s.io/v1
  363. kind: ClusterRole
  364. metadata:
  365. name: cert-manager-view
  366. labels:
  367. app: cert-manager
  368. app.kubernetes.io/name: cert-manager
  369. app.kubernetes.io/instance: cert-manager
  370. app.kubernetes.io/component: "controller"
  371. app.kubernetes.io/version: "{{ cert_manager_version }}"
  372. rbac.authorization.k8s.io/aggregate-to-view: "true"
  373. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  374. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  375. rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
  376. rules:
  377. - apiGroups: ["cert-manager.io"]
  378. resources: ["certificates", "certificaterequests", "issuers"]
  379. verbs: ["get", "list", "watch"]
  380. - apiGroups: ["acme.cert-manager.io"]
  381. resources: ["challenges", "orders"]
  382. verbs: ["get", "list", "watch"]
  383. ---
  384. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  385. apiVersion: rbac.authorization.k8s.io/v1
  386. kind: ClusterRole
  387. metadata:
  388. name: cert-manager-edit
  389. labels:
  390. app: cert-manager
  391. app.kubernetes.io/name: cert-manager
  392. app.kubernetes.io/instance: cert-manager
  393. app.kubernetes.io/component: "controller"
  394. app.kubernetes.io/version: "{{ cert_manager_version }}"
  395. rbac.authorization.k8s.io/aggregate-to-edit: "true"
  396. rbac.authorization.k8s.io/aggregate-to-admin: "true"
  397. rules:
  398. - apiGroups: ["cert-manager.io"]
  399. resources: ["certificates", "certificaterequests", "issuers"]
  400. verbs: ["create", "delete", "deletecollection", "patch", "update"]
  401. - apiGroups: ["cert-manager.io"]
  402. resources: ["certificates/status"]
  403. verbs: ["update"]
  404. - apiGroups: ["acme.cert-manager.io"]
  405. resources: ["challenges", "orders"]
  406. verbs: ["create", "delete", "deletecollection", "patch", "update"]
  407. ---
  408. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  409. # Permission to approve CertificateRequests referencing cert-manager.io Issuers and ClusterIssuers
  410. apiVersion: rbac.authorization.k8s.io/v1
  411. kind: ClusterRole
  412. metadata:
  413. name: cert-manager-controller-approve:cert-manager-io
  414. labels:
  415. app: cert-manager
  416. app.kubernetes.io/name: cert-manager
  417. app.kubernetes.io/instance: cert-manager
  418. app.kubernetes.io/component: "cert-manager"
  419. app.kubernetes.io/version: "{{ cert_manager_version }}"
  420. rules:
  421. - apiGroups: ["cert-manager.io"]
  422. resources: ["signers"]
  423. verbs: ["approve"]
  424. resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
  425. ---
  426. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  427. # Permission to:
  428. # - Update and sign CertificatSigningeRequests referencing cert-manager.io Issuers and ClusterIssuers
  429. # - Perform SubjectAccessReviews to test whether users are able to reference Namespaced Issuers
  430. apiVersion: rbac.authorization.k8s.io/v1
  431. kind: ClusterRole
  432. metadata:
  433. name: cert-manager-controller-certificatesigningrequests
  434. labels:
  435. app: cert-manager
  436. app.kubernetes.io/name: cert-manager
  437. app.kubernetes.io/instance: cert-manager
  438. app.kubernetes.io/component: "cert-manager"
  439. app.kubernetes.io/version: "{{ cert_manager_version }}"
  440. rules:
  441. - apiGroups: ["certificates.k8s.io"]
  442. resources: ["certificatesigningrequests"]
  443. verbs: ["get", "list", "watch", "update"]
  444. - apiGroups: ["certificates.k8s.io"]
  445. resources: ["certificatesigningrequests/status"]
  446. verbs: ["update", "patch"]
  447. - apiGroups: ["certificates.k8s.io"]
  448. resources: ["signers"]
  449. resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
  450. verbs: ["sign"]
  451. - apiGroups: ["authorization.k8s.io"]
  452. resources: ["subjectaccessreviews"]
  453. verbs: ["create"]
  454. ---
  455. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-rbac.yaml
  456. apiVersion: rbac.authorization.k8s.io/v1
  457. kind: ClusterRole
  458. metadata:
  459. name: cert-manager-webhook:subjectaccessreviews
  460. labels:
  461. app: webhook
  462. app.kubernetes.io/name: webhook
  463. app.kubernetes.io/instance: cert-manager
  464. app.kubernetes.io/component: "webhook"
  465. app.kubernetes.io/version: "{{ cert_manager_version }}"
  466. rules:
  467. - apiGroups: ["authorization.k8s.io"]
  468. resources: ["subjectaccessreviews"]
  469. verbs: ["create"]
  470. ---
  471. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-rbac.yaml
  472. apiVersion: rbac.authorization.k8s.io/v1
  473. kind: ClusterRoleBinding
  474. metadata:
  475. name: cert-manager-cainjector
  476. labels:
  477. app: cainjector
  478. app.kubernetes.io/name: cainjector
  479. app.kubernetes.io/instance: cert-manager
  480. app.kubernetes.io/component: "cainjector"
  481. app.kubernetes.io/version: "{{ cert_manager_version }}"
  482. roleRef:
  483. apiGroup: rbac.authorization.k8s.io
  484. kind: ClusterRole
  485. name: cert-manager-cainjector
  486. subjects:
  487. - name: cert-manager-cainjector
  488. namespace: {{ cert_manager_namespace }}
  489. kind: ServiceAccount
  490. ---
  491. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  492. apiVersion: rbac.authorization.k8s.io/v1
  493. kind: ClusterRoleBinding
  494. metadata:
  495. name: cert-manager-controller-issuers
  496. labels:
  497. app: cert-manager
  498. app.kubernetes.io/name: cert-manager
  499. app.kubernetes.io/instance: cert-manager
  500. app.kubernetes.io/component: "controller"
  501. app.kubernetes.io/version: "{{ cert_manager_version }}"
  502. roleRef:
  503. apiGroup: rbac.authorization.k8s.io
  504. kind: ClusterRole
  505. name: cert-manager-controller-issuers
  506. subjects:
  507. - name: cert-manager
  508. namespace: {{ cert_manager_namespace }}
  509. kind: ServiceAccount
  510. ---
  511. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  512. apiVersion: rbac.authorization.k8s.io/v1
  513. kind: ClusterRoleBinding
  514. metadata:
  515. name: cert-manager-controller-clusterissuers
  516. labels:
  517. app: cert-manager
  518. app.kubernetes.io/name: cert-manager
  519. app.kubernetes.io/instance: cert-manager
  520. app.kubernetes.io/component: "controller"
  521. app.kubernetes.io/version: "{{ cert_manager_version }}"
  522. roleRef:
  523. apiGroup: rbac.authorization.k8s.io
  524. kind: ClusterRole
  525. name: cert-manager-controller-clusterissuers
  526. subjects:
  527. - name: cert-manager
  528. namespace: {{ cert_manager_namespace }}
  529. kind: ServiceAccount
  530. ---
  531. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  532. apiVersion: rbac.authorization.k8s.io/v1
  533. kind: ClusterRoleBinding
  534. metadata:
  535. name: cert-manager-controller-certificates
  536. labels:
  537. app: cert-manager
  538. app.kubernetes.io/name: cert-manager
  539. app.kubernetes.io/instance: cert-manager
  540. app.kubernetes.io/component: "controller"
  541. app.kubernetes.io/version: "{{ cert_manager_version }}"
  542. roleRef:
  543. apiGroup: rbac.authorization.k8s.io
  544. kind: ClusterRole
  545. name: cert-manager-controller-certificates
  546. subjects:
  547. - name: cert-manager
  548. namespace: {{ cert_manager_namespace }}
  549. kind: ServiceAccount
  550. ---
  551. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  552. apiVersion: rbac.authorization.k8s.io/v1
  553. kind: ClusterRoleBinding
  554. metadata:
  555. name: cert-manager-controller-orders
  556. labels:
  557. app: cert-manager
  558. app.kubernetes.io/name: cert-manager
  559. app.kubernetes.io/instance: cert-manager
  560. app.kubernetes.io/component: "controller"
  561. app.kubernetes.io/version: "{{ cert_manager_version }}"
  562. roleRef:
  563. apiGroup: rbac.authorization.k8s.io
  564. kind: ClusterRole
  565. name: cert-manager-controller-orders
  566. subjects:
  567. - name: cert-manager
  568. namespace: {{ cert_manager_namespace }}
  569. kind: ServiceAccount
  570. ---
  571. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  572. apiVersion: rbac.authorization.k8s.io/v1
  573. kind: ClusterRoleBinding
  574. metadata:
  575. name: cert-manager-controller-challenges
  576. labels:
  577. app: cert-manager
  578. app.kubernetes.io/name: cert-manager
  579. app.kubernetes.io/instance: cert-manager
  580. app.kubernetes.io/component: "controller"
  581. app.kubernetes.io/version: "{{ cert_manager_version }}"
  582. roleRef:
  583. apiGroup: rbac.authorization.k8s.io
  584. kind: ClusterRole
  585. name: cert-manager-controller-challenges
  586. subjects:
  587. - name: cert-manager
  588. namespace: {{ cert_manager_namespace }}
  589. kind: ServiceAccount
  590. ---
  591. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  592. apiVersion: rbac.authorization.k8s.io/v1
  593. kind: ClusterRoleBinding
  594. metadata:
  595. name: cert-manager-controller-ingress-shim
  596. labels:
  597. app: cert-manager
  598. app.kubernetes.io/name: cert-manager
  599. app.kubernetes.io/instance: cert-manager
  600. app.kubernetes.io/component: "controller"
  601. app.kubernetes.io/version: "{{ cert_manager_version }}"
  602. roleRef:
  603. apiGroup: rbac.authorization.k8s.io
  604. kind: ClusterRole
  605. name: cert-manager-controller-ingress-shim
  606. subjects:
  607. - name: cert-manager
  608. namespace: {{ cert_manager_namespace }}
  609. kind: ServiceAccount
  610. ---
  611. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  612. apiVersion: rbac.authorization.k8s.io/v1
  613. kind: ClusterRoleBinding
  614. metadata:
  615. name: cert-manager-controller-approve:cert-manager-io
  616. labels:
  617. app: cert-manager
  618. app.kubernetes.io/name: cert-manager
  619. app.kubernetes.io/instance: cert-manager
  620. app.kubernetes.io/component: "cert-manager"
  621. app.kubernetes.io/version: "{{ cert_manager_version }}"
  622. roleRef:
  623. apiGroup: rbac.authorization.k8s.io
  624. kind: ClusterRole
  625. name: cert-manager-controller-approve:cert-manager-io
  626. subjects:
  627. - name: cert-manager
  628. namespace: {{ cert_manager_namespace }}
  629. kind: ServiceAccount
  630. ---
  631. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  632. apiVersion: rbac.authorization.k8s.io/v1
  633. kind: ClusterRoleBinding
  634. metadata:
  635. name: cert-manager-controller-certificatesigningrequests
  636. labels:
  637. app: cert-manager
  638. app.kubernetes.io/name: cert-manager
  639. app.kubernetes.io/instance: cert-manager
  640. app.kubernetes.io/component: "cert-manager"
  641. app.kubernetes.io/version: "{{ cert_manager_version }}"
  642. roleRef:
  643. apiGroup: rbac.authorization.k8s.io
  644. kind: ClusterRole
  645. name: cert-manager-controller-certificatesigningrequests
  646. subjects:
  647. - name: cert-manager
  648. namespace: {{ cert_manager_namespace }}
  649. kind: ServiceAccount
  650. ---
  651. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-rbac.yaml
  652. apiVersion: rbac.authorization.k8s.io/v1
  653. kind: ClusterRoleBinding
  654. metadata:
  655. name: cert-manager-webhook:subjectaccessreviews
  656. labels:
  657. app: webhook
  658. app.kubernetes.io/name: webhook
  659. app.kubernetes.io/instance: cert-manager
  660. app.kubernetes.io/component: "webhook"
  661. app.kubernetes.io/version: "{{ cert_manager_version }}"
  662. roleRef:
  663. apiGroup: rbac.authorization.k8s.io
  664. kind: ClusterRole
  665. name: cert-manager-webhook:subjectaccessreviews
  666. subjects:
  667. - apiGroup: ""
  668. kind: ServiceAccount
  669. name: cert-manager-webhook
  670. namespace: {{ cert_manager_namespace }}
  671. ---
  672. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-rbac.yaml
  673. # leader election rules
  674. apiVersion: rbac.authorization.k8s.io/v1
  675. kind: Role
  676. metadata:
  677. name: cert-manager-cainjector:leaderelection
  678. namespace: {{ cert_manager_leader_election_namespace }}
  679. labels:
  680. app: cainjector
  681. app.kubernetes.io/name: cainjector
  682. app.kubernetes.io/instance: cert-manager
  683. app.kubernetes.io/component: "cainjector"
  684. app.kubernetes.io/version: "{{ cert_manager_version }}"
  685. rules:
  686. # Used for leader election by the controller
  687. # cert-manager-cainjector-leader-election is used by the CertificateBased injector controller
  688. # see cmd/cainjector/start.go#L113
  689. # cert-manager-cainjector-leader-election-core is used by the SecretBased injector controller
  690. # see cmd/cainjector/start.go#L137
  691. - apiGroups: ["coordination.k8s.io"]
  692. resources: ["leases"]
  693. resourceNames: ["cert-manager-cainjector-leader-election", "cert-manager-cainjector-leader-election-core"]
  694. verbs: ["get", "update", "patch"]
  695. - apiGroups: ["coordination.k8s.io"]
  696. resources: ["leases"]
  697. verbs: ["create"]
  698. ---
  699. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  700. apiVersion: rbac.authorization.k8s.io/v1
  701. kind: Role
  702. metadata:
  703. name: cert-manager:leaderelection
  704. namespace: {{ cert_manager_leader_election_namespace }}
  705. labels:
  706. app: cert-manager
  707. app.kubernetes.io/name: cert-manager
  708. app.kubernetes.io/instance: cert-manager
  709. app.kubernetes.io/component: "controller"
  710. app.kubernetes.io/version: "{{ cert_manager_version }}"
  711. rules:
  712. - apiGroups: ["coordination.k8s.io"]
  713. resources: ["leases"]
  714. resourceNames: ["cert-manager-controller"]
  715. verbs: ["get", "update", "patch"]
  716. - apiGroups: ["coordination.k8s.io"]
  717. resources: ["leases"]
  718. verbs: ["create"]
  719. ---
  720. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-rbac.yaml
  721. apiVersion: rbac.authorization.k8s.io/v1
  722. kind: Role
  723. metadata:
  724. name: cert-manager-webhook:dynamic-serving
  725. namespace: {{ cert_manager_namespace }}
  726. labels:
  727. app: webhook
  728. app.kubernetes.io/name: webhook
  729. app.kubernetes.io/instance: cert-manager
  730. app.kubernetes.io/component: "webhook"
  731. app.kubernetes.io/version: "{{ cert_manager_version }}"
  732. rules:
  733. - apiGroups: [""]
  734. resources: ["secrets"]
  735. resourceNames:
  736. - 'cert-manager-webhook-ca'
  737. verbs: ["get", "list", "watch", "update"]
  738. # It's not possible to grant CREATE permission on a single resourceName.
  739. - apiGroups: [""]
  740. resources: ["secrets"]
  741. verbs: ["create"]
  742. ---
  743. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-rbac.yaml
  744. # grant cert-manager permission to manage the leaderelection configmap in the
  745. # leader election namespace
  746. apiVersion: rbac.authorization.k8s.io/v1
  747. kind: RoleBinding
  748. metadata:
  749. name: cert-manager-cainjector:leaderelection
  750. namespace: {{ cert_manager_leader_election_namespace }}
  751. labels:
  752. app: cainjector
  753. app.kubernetes.io/name: cainjector
  754. app.kubernetes.io/instance: cert-manager
  755. app.kubernetes.io/component: "cainjector"
  756. app.kubernetes.io/version: "{{ cert_manager_version }}"
  757. roleRef:
  758. apiGroup: rbac.authorization.k8s.io
  759. kind: Role
  760. name: cert-manager-cainjector:leaderelection
  761. subjects:
  762. - kind: ServiceAccount
  763. name: cert-manager-cainjector
  764. namespace: {{ cert_manager_namespace }}
  765. ---
  766. # Source: cert-manager/deploy/charts/cert-manager/templates/rbac.yaml
  767. # grant cert-manager permission to manage the leaderelection configmap in the
  768. # leader election namespace
  769. apiVersion: rbac.authorization.k8s.io/v1
  770. kind: RoleBinding
  771. metadata:
  772. name: cert-manager:leaderelection
  773. namespace: {{ cert_manager_leader_election_namespace }}
  774. labels:
  775. app: cert-manager
  776. app.kubernetes.io/name: cert-manager
  777. app.kubernetes.io/instance: cert-manager
  778. app.kubernetes.io/component: "controller"
  779. app.kubernetes.io/version: "{{ cert_manager_version }}"
  780. roleRef:
  781. apiGroup: rbac.authorization.k8s.io
  782. kind: Role
  783. name: cert-manager:leaderelection
  784. subjects:
  785. - apiGroup: ""
  786. kind: ServiceAccount
  787. name: cert-manager
  788. namespace: {{ cert_manager_namespace }}
  789. ---
  790. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-rbac.yaml
  791. apiVersion: rbac.authorization.k8s.io/v1
  792. kind: RoleBinding
  793. metadata:
  794. name: cert-manager-webhook:dynamic-serving
  795. namespace: {{ cert_manager_namespace }}
  796. labels:
  797. app: webhook
  798. app.kubernetes.io/name: webhook
  799. app.kubernetes.io/instance: cert-manager
  800. app.kubernetes.io/component: "webhook"
  801. app.kubernetes.io/version: "{{ cert_manager_version }}"
  802. roleRef:
  803. apiGroup: rbac.authorization.k8s.io
  804. kind: Role
  805. name: cert-manager-webhook:dynamic-serving
  806. subjects:
  807. - apiGroup: ""
  808. kind: ServiceAccount
  809. name: cert-manager-webhook
  810. namespace: {{ cert_manager_namespace }}
  811. ---
  812. # Source: cert-manager/deploy/charts/cert-manager/templates/service.yaml
  813. apiVersion: v1
  814. kind: Service
  815. metadata:
  816. name: cert-manager
  817. namespace: {{ cert_manager_namespace }}
  818. labels:
  819. app: cert-manager
  820. app.kubernetes.io/name: cert-manager
  821. app.kubernetes.io/instance: cert-manager
  822. app.kubernetes.io/component: "controller"
  823. app.kubernetes.io/version: "{{ cert_manager_version }}"
  824. spec:
  825. type: ClusterIP
  826. ports:
  827. - protocol: TCP
  828. port: 9402
  829. name: tcp-prometheus-servicemonitor
  830. targetPort: 9402
  831. selector:
  832. app.kubernetes.io/name: cert-manager
  833. app.kubernetes.io/instance: cert-manager
  834. app.kubernetes.io/component: "controller"
  835. ---
  836. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-service.yaml
  837. apiVersion: v1
  838. kind: Service
  839. metadata:
  840. name: cert-manager-webhook
  841. namespace: {{ cert_manager_namespace }}
  842. labels:
  843. app: webhook
  844. app.kubernetes.io/name: webhook
  845. app.kubernetes.io/instance: cert-manager
  846. app.kubernetes.io/component: "webhook"
  847. app.kubernetes.io/version: "{{ cert_manager_version }}"
  848. spec:
  849. type: ClusterIP
  850. ports:
  851. - name: https
  852. port: 443
  853. protocol: TCP
  854. targetPort: "https"
  855. selector:
  856. app.kubernetes.io/name: webhook
  857. app.kubernetes.io/instance: cert-manager
  858. app.kubernetes.io/component: "webhook"
  859. ---
  860. # Source: cert-manager/deploy/charts/cert-manager/templates/cainjector-deployment.yaml
  861. apiVersion: apps/v1
  862. kind: Deployment
  863. metadata:
  864. name: cert-manager-cainjector
  865. namespace: {{ cert_manager_namespace }}
  866. labels:
  867. app: cainjector
  868. app.kubernetes.io/name: cainjector
  869. app.kubernetes.io/instance: cert-manager
  870. app.kubernetes.io/component: "cainjector"
  871. app.kubernetes.io/version: "{{ cert_manager_version }}"
  872. spec:
  873. replicas: 1
  874. selector:
  875. matchLabels:
  876. app.kubernetes.io/name: cainjector
  877. app.kubernetes.io/instance: cert-manager
  878. app.kubernetes.io/component: "cainjector"
  879. template:
  880. metadata:
  881. labels:
  882. app: cainjector
  883. app.kubernetes.io/name: cainjector
  884. app.kubernetes.io/instance: cert-manager
  885. app.kubernetes.io/component: "cainjector"
  886. app.kubernetes.io/version: "{{ cert_manager_version }}"
  887. spec:
  888. serviceAccountName: cert-manager-cainjector
  889. enableServiceLinks: false
  890. securityContext:
  891. runAsNonRoot: true
  892. seccompProfile:
  893. type: RuntimeDefault
  894. containers:
  895. - name: cert-manager-cainjector
  896. image: "{{ cert_manager_cainjector_image_repo }}:{{ cert_manager_cainjector_image_tag }}"
  897. imagePullPolicy: {{ k8s_image_pull_policy }}
  898. args:
  899. - --v=2
  900. - --leader-election-namespace={{ cert_manager_leader_election_namespace }}
  901. env:
  902. - name: POD_NAMESPACE
  903. valueFrom:
  904. fieldRef:
  905. fieldPath: metadata.namespace
  906. {% if cert_manager_http_proxy is defined and cert_manager_http_proxy != "" %}
  907. - name: HTTP_PROXY
  908. value: "{{ cert_manager_http_proxy }}"
  909. {% endif %}
  910. {% if cert_manager_https_proxy is defined and cert_manager_https_proxy != "" %}
  911. - name: HTTPS_PROXY
  912. value: "{{ cert_manager_https_proxy }}"
  913. {% endif %}
  914. {% if cert_manager_no_proxy is defined and cert_manager_no_proxy != "" %}
  915. - name: NO_PROXY
  916. value: "{{ cert_manager_no_proxy }}"
  917. {% endif %}
  918. securityContext:
  919. allowPrivilegeEscalation: false
  920. capabilities:
  921. drop:
  922. - ALL
  923. runAsNonRoot: true
  924. seccompProfile:
  925. type: RuntimeDefault
  926. {% if cert_manager_tolerations %}
  927. tolerations:
  928. {{ cert_manager_tolerations | to_nice_yaml(indent=2) | indent(width=8) }}
  929. {% endif %}
  930. {% if cert_manager_nodeselector %}
  931. nodeSelector:
  932. {{ cert_manager_nodeselector | to_nice_yaml | indent(width=8) }}
  933. {% endif %}
  934. {% if cert_manager_affinity %}
  935. affinity:
  936. {{ cert_manager_affinity | to_nice_yaml | indent(width=8) }}
  937. {% endif %}
  938. ---
  939. {% if cert_manager_trusted_internal_ca is defined %}
  940. apiVersion: v1
  941. data:
  942. internal-ca.pem: |
  943. {{ cert_manager_trusted_internal_ca | indent(width=4, first=False) }}
  944. kind: ConfigMap
  945. metadata:
  946. name: ca-internal-truststore
  947. namespace: {{ cert_manager_namespace }}
  948. ---
  949. {% endif %}
  950. # Source: cert-manager/deploy/charts/cert-manager/templates/deployment.yaml
  951. apiVersion: apps/v1
  952. kind: Deployment
  953. metadata:
  954. name: cert-manager
  955. namespace: {{ cert_manager_namespace }}
  956. labels:
  957. app: cert-manager
  958. app.kubernetes.io/name: cert-manager
  959. app.kubernetes.io/instance: cert-manager
  960. app.kubernetes.io/component: "controller"
  961. app.kubernetes.io/version: "{{ cert_manager_version }}"
  962. spec:
  963. replicas: 1
  964. selector:
  965. matchLabels:
  966. app.kubernetes.io/name: cert-manager
  967. app.kubernetes.io/instance: cert-manager
  968. app.kubernetes.io/component: "controller"
  969. template:
  970. metadata:
  971. labels:
  972. app: cert-manager
  973. app.kubernetes.io/name: cert-manager
  974. app.kubernetes.io/instance: cert-manager
  975. app.kubernetes.io/component: "controller"
  976. app.kubernetes.io/version: "{{ cert_manager_version }}"
  977. annotations:
  978. prometheus.io/path: "/metrics"
  979. prometheus.io/scrape: 'true'
  980. prometheus.io/port: '9402'
  981. spec:
  982. serviceAccountName: cert-manager
  983. enableServiceLinks: false
  984. securityContext:
  985. runAsNonRoot: true
  986. seccompProfile:
  987. type: RuntimeDefault
  988. containers:
  989. - name: cert-manager-controller
  990. image: "{{ cert_manager_controller_image_repo }}:{{ cert_manager_controller_image_tag }}"
  991. imagePullPolicy: {{ k8s_image_pull_policy }}
  992. args:
  993. - --v=2
  994. - --cluster-resource-namespace=$(POD_NAMESPACE)
  995. - --leader-election-namespace={{ cert_manager_leader_election_namespace }}
  996. {% for extra_arg in cert_manager_controller_extra_args %}
  997. - {{ extra_arg }}
  998. {% endfor %}
  999. ports:
  1000. - containerPort: 9402
  1001. name: http-metrics
  1002. protocol: TCP
  1003. - containerPort: 9403
  1004. name: http-healthz
  1005. protocol: TCP
  1006. securityContext:
  1007. allowPrivilegeEscalation: false
  1008. capabilities:
  1009. drop:
  1010. - ALL
  1011. runAsNonRoot: true
  1012. seccompProfile:
  1013. type: RuntimeDefault
  1014. env:
  1015. - name: POD_NAMESPACE
  1016. valueFrom:
  1017. fieldRef:
  1018. fieldPath: metadata.namespace
  1019. {% if cert_manager_http_proxy is defined and cert_manager_http_proxy != "" %}
  1020. - name: HTTP_PROXY
  1021. value: "{{ cert_manager_http_proxy }}"
  1022. {% endif %}
  1023. {% if cert_manager_https_proxy is defined and cert_manager_https_proxy != "" %}
  1024. - name: HTTPS_PROXY
  1025. value: "{{ cert_manager_https_proxy }}"
  1026. {% endif %}
  1027. {% if cert_manager_no_proxy is defined and cert_manager_no_proxy != "" %}
  1028. - name: NO_PROXY
  1029. value: "{{ cert_manager_no_proxy }}"
  1030. {% endif %}
  1031. {% if cert_manager_trusted_internal_ca is defined %}
  1032. volumeMounts:
  1033. - mountPath: /etc/ssl/certs/internal-ca.pem
  1034. name: ca-internal-truststore
  1035. subPath: internal-ca.pem
  1036. volumes:
  1037. - configMap:
  1038. defaultMode: 420
  1039. name: ca-internal-truststore
  1040. name: ca-internal-truststore
  1041. {% endif %}
  1042. {% if cert_manager_tolerations %}
  1043. tolerations:
  1044. {{ cert_manager_tolerations | to_nice_yaml(indent=2) | indent(width=8) }}
  1045. {% endif %}
  1046. {% if cert_manager_nodeselector %}
  1047. nodeSelector:
  1048. {{ cert_manager_nodeselector | to_nice_yaml | indent(width=8) }}
  1049. {% endif %}
  1050. {% if cert_manager_affinity %}
  1051. affinity:
  1052. {{ cert_manager_affinity | to_nice_yaml | indent(width=8) }}
  1053. {% endif %}
  1054. {% if cert_manager_dns_policy %}
  1055. dnsPolicy: {{ cert_manager_dns_policy }}
  1056. {% endif %}
  1057. {% if cert_manager_dns_config %}
  1058. dnsConfig:
  1059. {{ cert_manager_dns_config | to_nice_yaml | indent(width=8) }}
  1060. {% endif %}
  1061. ---
  1062. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-deployment.yaml
  1063. apiVersion: apps/v1
  1064. kind: Deployment
  1065. metadata:
  1066. name: cert-manager-webhook
  1067. namespace: {{ cert_manager_namespace }}
  1068. labels:
  1069. app: webhook
  1070. app.kubernetes.io/name: webhook
  1071. app.kubernetes.io/instance: cert-manager
  1072. app.kubernetes.io/component: "webhook"
  1073. app.kubernetes.io/version: "{{ cert_manager_version }}"
  1074. spec:
  1075. replicas: 1
  1076. selector:
  1077. matchLabels:
  1078. app.kubernetes.io/name: webhook
  1079. app.kubernetes.io/instance: cert-manager
  1080. app.kubernetes.io/component: "webhook"
  1081. template:
  1082. metadata:
  1083. labels:
  1084. app: webhook
  1085. app.kubernetes.io/name: webhook
  1086. app.kubernetes.io/instance: cert-manager
  1087. app.kubernetes.io/component: "webhook"
  1088. app.kubernetes.io/version: "{{ cert_manager_version }}"
  1089. spec:
  1090. serviceAccountName: cert-manager-webhook
  1091. enableServiceLinks: false
  1092. securityContext:
  1093. runAsNonRoot: true
  1094. seccompProfile:
  1095. type: RuntimeDefault
  1096. containers:
  1097. - name: cert-manager-webhook
  1098. image: "{{ cert_manager_webhook_image_repo }}:{{ cert_manager_webhook_image_tag }}"
  1099. imagePullPolicy: {{ k8s_image_pull_policy }}
  1100. args:
  1101. - --v=2
  1102. - --secure-port=10250
  1103. - --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
  1104. - --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
  1105. - --dynamic-serving-dns-names=cert-manager-webhook
  1106. - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
  1107. - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
  1108. ports:
  1109. - name: https
  1110. protocol: TCP
  1111. containerPort: 10250
  1112. - name: healthcheck
  1113. protocol: TCP
  1114. containerPort: 6080
  1115. livenessProbe:
  1116. httpGet:
  1117. path: /livez
  1118. port: 6080
  1119. scheme: HTTP
  1120. initialDelaySeconds: 60
  1121. periodSeconds: 10
  1122. timeoutSeconds: 1
  1123. successThreshold: 1
  1124. failureThreshold: 3
  1125. readinessProbe:
  1126. httpGet:
  1127. path: /healthz
  1128. port: 6080
  1129. scheme: HTTP
  1130. initialDelaySeconds: 5
  1131. periodSeconds: 5
  1132. timeoutSeconds: 1
  1133. successThreshold: 1
  1134. failureThreshold: 3
  1135. securityContext:
  1136. allowPrivilegeEscalation: false
  1137. capabilities:
  1138. drop:
  1139. - ALL
  1140. runAsNonRoot: true
  1141. seccompProfile:
  1142. type: RuntimeDefault
  1143. env:
  1144. - name: POD_NAMESPACE
  1145. valueFrom:
  1146. fieldRef:
  1147. fieldPath: metadata.namespace
  1148. {% if cert_manager_http_proxy is defined and cert_manager_http_proxy != "" %}
  1149. - name: HTTP_PROXY
  1150. value: "{{ cert_manager_http_proxy }}"
  1151. {% endif %}
  1152. {% if cert_manager_https_proxy is defined and cert_manager_https_proxy != "" %}
  1153. - name: HTTPS_PROXY
  1154. value: "{{ cert_manager_https_proxy }}"
  1155. {% endif %}
  1156. {% if cert_manager_no_proxy is defined and cert_manager_no_proxy != "" %}
  1157. - name: NO_PROXY
  1158. value: "{{ cert_manager_no_proxy }}"
  1159. {% endif %}
  1160. {% if cert_manager_tolerations %}
  1161. tolerations:
  1162. {{ cert_manager_tolerations | to_nice_yaml(indent=2) | indent(width=8) }}
  1163. {% endif %}
  1164. {% if cert_manager_nodeselector %}
  1165. nodeSelector:
  1166. {{ cert_manager_nodeselector | to_nice_yaml | indent(width=8) }}
  1167. {% endif %}
  1168. {% if cert_manager_affinity %}
  1169. affinity:
  1170. {{ cert_manager_affinity | to_nice_yaml | indent(width=8) }}
  1171. {% endif %}
  1172. ---
  1173. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-mutating-webhook.yaml
  1174. apiVersion: admissionregistration.k8s.io/v1
  1175. kind: MutatingWebhookConfiguration
  1176. metadata:
  1177. name: cert-manager-webhook
  1178. labels:
  1179. app: webhook
  1180. app.kubernetes.io/name: webhook
  1181. app.kubernetes.io/instance: cert-manager
  1182. app.kubernetes.io/component: "webhook"
  1183. app.kubernetes.io/version: "{{ cert_manager_version }}"
  1184. annotations:
  1185. cert-manager.io/inject-ca-from-secret: "{{ cert_manager_namespace }}/cert-manager-webhook-ca"
  1186. webhooks:
  1187. - name: webhook.cert-manager.io
  1188. rules:
  1189. - apiGroups:
  1190. - "cert-manager.io"
  1191. - "acme.cert-manager.io"
  1192. apiVersions:
  1193. - "v1"
  1194. operations:
  1195. - CREATE
  1196. - UPDATE
  1197. resources:
  1198. - "*/*"
  1199. admissionReviewVersions: ["v1"]
  1200. # This webhook only accepts v1 cert-manager resources.
  1201. # Equivalent matchPolicy ensures that non-v1 resource requests are sent to
  1202. # this webhook (after the resources have been converted to v1).
  1203. matchPolicy: Equivalent
  1204. timeoutSeconds: 10
  1205. failurePolicy: Fail
  1206. # Only include 'sideEffects' field in Kubernetes 1.12+
  1207. sideEffects: None
  1208. clientConfig:
  1209. service:
  1210. name: cert-manager-webhook
  1211. namespace: {{ cert_manager_namespace }}
  1212. path: /mutate
  1213. ---
  1214. # Source: cert-manager/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml
  1215. apiVersion: admissionregistration.k8s.io/v1
  1216. kind: ValidatingWebhookConfiguration
  1217. metadata:
  1218. name: cert-manager-webhook
  1219. labels:
  1220. app: webhook
  1221. app.kubernetes.io/name: webhook
  1222. app.kubernetes.io/instance: cert-manager
  1223. app.kubernetes.io/component: "webhook"
  1224. app.kubernetes.io/version: "{{ cert_manager_version }}"
  1225. annotations:
  1226. cert-manager.io/inject-ca-from-secret: "{{ cert_manager_namespace }}/cert-manager-webhook-ca"
  1227. webhooks:
  1228. - name: webhook.cert-manager.io
  1229. namespaceSelector:
  1230. matchExpressions:
  1231. - key: "cert-manager.io/disable-validation"
  1232. operator: "NotIn"
  1233. values:
  1234. - "true"
  1235. rules:
  1236. - apiGroups:
  1237. - "cert-manager.io"
  1238. - "acme.cert-manager.io"
  1239. apiVersions:
  1240. - "v1"
  1241. operations:
  1242. - CREATE
  1243. - UPDATE
  1244. resources:
  1245. - "*/*"
  1246. admissionReviewVersions: ["v1"]
  1247. # This webhook only accepts v1 cert-manager resources.
  1248. # Equivalent matchPolicy ensures that non-v1 resource requests are sent to
  1249. # this webhook (after the resources have been converted to v1).
  1250. matchPolicy: Equivalent
  1251. timeoutSeconds: 10
  1252. failurePolicy: Fail
  1253. sideEffects: None
  1254. clientConfig:
  1255. service:
  1256. name: cert-manager-webhook
  1257. namespace: {{ cert_manager_namespace }}
  1258. path: /validate