values.yaml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. ---
  2. global:
  3. nodeSelector: {}
  4. tolerations: []
  5. topologySpreadConstraints: []
  6. # - maxSkew: 1
  7. # topologyKey: topology.kubernetes.io/zone
  8. # whenUnsatisfiable: ScheduleAnyway
  9. # matchLabelKeys:
  10. # - pod-template-hash
  11. # - maxSkew: 1
  12. # topologyKey: kubernetes.io/hostname
  13. # whenUnsatisfiable: DoNotSchedule
  14. # matchLabelKeys:
  15. # - pod-template-hash
  16. affinity: {}
  17. # -- Global hostAliases to be applied to all deployments
  18. hostAliases: []
  19. # -- Global pod labels to be applied to all deployments
  20. podLabels: {}
  21. # -- Global pod annotations to be applied to all deployments
  22. podAnnotations: {}
  23. # -- Global imagePullSecrets to be applied to all deployments
  24. imagePullSecrets: []
  25. # -- Global image repository to be applied to all deployments
  26. repository: ""
  27. compatibility:
  28. openshift:
  29. # -- Manages the securityContext properties to make them compatible with OpenShift.
  30. # Possible values:
  31. # auto - Apply configurations if it is detected that OpenShift is the target platform.
  32. # force - Always apply configurations.
  33. # disabled - No modification applied.
  34. adaptSecurityContext: auto
  35. replicaCount: 1
  36. bitwarden-sdk-server:
  37. enabled: false
  38. namespaceOverride: ""
  39. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  40. revisionHistoryLimit: 10
  41. image:
  42. repository: ghcr.io/external-secrets/external-secrets
  43. pullPolicy: IfNotPresent
  44. # -- The image tag to use. The default is the chart appVersion.
  45. tag: ""
  46. # -- The flavour of tag you want to use
  47. # There are different image flavours available, like distroless and ubi.
  48. # Please see GitHub release notes for image tags for these flavors.
  49. # By default, the distroless image is used.
  50. flavour: ""
  51. # -- If set, install and upgrade CRDs through helm chart.
  52. installCRDs: true
  53. crds:
  54. # -- If true, create CRDs for Cluster External Secret. If set to false you must also set processClusterExternalSecret: false.
  55. createClusterExternalSecret: true
  56. # -- If true, create CRDs for Cluster Secret Store. If set to false you must also set processClusterStore: false.
  57. createClusterSecretStore: true
  58. # -- If true, create CRDs for Provider.
  59. createProvider: false
  60. # -- If true, create CRDs for Cluster Provider.
  61. createClusterProvider: false
  62. # -- If true, create CRDs for Secret Store. If set to false you must also set processSecretStore: false.
  63. createSecretStore: true
  64. # -- If true, create CRDs for Cluster Generator. If set to false you must also set processClusterGenerator: false.
  65. createClusterGenerator: true
  66. # -- If true, create CRDs for Cluster Push Secret. If set to false you must also set processClusterPushSecret: false.
  67. createClusterPushSecret: true
  68. # -- If true, create CRDs for Push Secret. If set to false you must also set processPushSecret: false.
  69. createPushSecret: true
  70. annotations: {}
  71. conversion:
  72. # -- Conversion is disabled by default as we stopped supporting v1alpha1.
  73. enabled: false
  74. # -- If true, enable v1beta1 API version serving for ExternalSecret, ClusterExternalSecret, SecretStore, and ClusterSecretStore CRDs.
  75. # v1beta1 is deprecated. Only enable this for backward compatibility if you have existing v1beta1 resources.
  76. # Warning: This flag will be removed on 2026.05.01.
  77. unsafeServeV1Beta1: false
  78. imagePullSecrets: []
  79. nameOverride: ""
  80. fullnameOverride: ""
  81. namespaceOverride: ""
  82. # -- Additional labels added to all helm chart resources.
  83. commonLabels: {}
  84. # -- If true, external-secrets will perform leader election between instances to ensure no more
  85. # than one instance of external-secrets operates at a time.
  86. leaderElect: false
  87. # -- If set external secrets will filter matching
  88. # Secret Stores with the appropriate controller values.
  89. controllerClass: ""
  90. # -- If true external secrets will use recommended kubernetes
  91. # annotations as prometheus metric labels.
  92. extendedMetricLabels: false
  93. # -- If set external secrets are only reconciled in the
  94. # provided namespace
  95. scopedNamespace: ""
  96. # -- Must be used with scopedNamespace. If true, create scoped RBAC roles under the scoped namespace
  97. # and implicitly disable cluster stores and cluster external secrets
  98. scopedRBAC: false
  99. # -- If true the OpenShift finalizer permissions will be added to RBAC
  100. openshiftFinalizers: true
  101. # -- If true the system:auth-delegator ClusterRole will be added to RBAC
  102. systemAuthDelegator: false
  103. # -- if true, the operator will process cluster external secret. Else, it will ignore them.
  104. # When enabled, this adds update/patch permissions on namespaces to handle finalizers for proper
  105. # cleanup during namespace deletion, preventing race conditions with ExternalSecrets.
  106. processClusterExternalSecret: true
  107. # -- if true, the operator will process cluster push secret. Else, it will ignore them.
  108. processClusterPushSecret: true
  109. # -- if true, the operator will process cluster store. Else, it will ignore them.
  110. processClusterStore: true
  111. # -- if true, the operator will process secret store. Else, it will ignore them.
  112. processSecretStore: true
  113. # -- if true, the operator will process cluster generator. Else, it will ignore them.
  114. processClusterGenerator: true
  115. # -- if true, the operator will process push secret. Else, it will ignore them.
  116. processPushSecret: true
  117. # -- Experimental v2 Provider/ClusterProvider support.
  118. # Keep disabled unless you explicitly opt into v2 provider flows.
  119. v2:
  120. enabled: false
  121. # -- Enable support for generic targets (ConfigMaps, Custom Resources).
  122. # Warning: Using generic target. Make sure access policies and encryption are properly configured.
  123. # When enabled, this grants the controller permissions to create/update/delete
  124. # ConfigMaps and optionally other resource types specified in generic.resources.
  125. genericTargets:
  126. # -- Enable generic target support
  127. enabled: false
  128. # -- List of additional resource types to grant permissions for.
  129. # Each entry should specify apiGroup, resources, and verbs.
  130. # Example:
  131. # resources:
  132. # - apiGroup: "argoproj.io"
  133. # resources: ["applications"]
  134. # verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
  135. resources: []
  136. # -- Specifies whether an external secret operator deployment be created.
  137. createOperator: true
  138. # -- if true, HTTP2 will be enabled for the services created by all controllers, curently metrics and webhook.
  139. enableHTTP2: false
  140. # -- Specifies the number of concurrent ExternalSecret Reconciles external-secret executes at
  141. # a time.
  142. concurrent: 1
  143. # -- Specifies Log Params to the External Secrets Operator
  144. log:
  145. level: info
  146. timeEncoding: epoch
  147. service:
  148. # -- Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
  149. ipFamilyPolicy: ""
  150. # -- Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
  151. ipFamilies: []
  152. serviceAccount:
  153. # -- Specifies whether a service account should be created.
  154. create: true
  155. # -- Automounts the service account token in all containers of the pod
  156. automount: true
  157. # -- Annotations to add to the service account.
  158. annotations: {}
  159. # -- Extra Labels to add to the service account.
  160. extraLabels: {}
  161. # -- The name of the service account to use.
  162. # If not set and create is true, a name is generated using the fullname template.
  163. name: ""
  164. rbac:
  165. # -- Specifies whether role and rolebinding resources should be created.
  166. create: true
  167. servicebindings:
  168. # -- Specifies whether a clusterrole to give servicebindings read access should be created.
  169. create: true
  170. # -- Specifies whether permissions are aggregated to the view ClusterRole
  171. aggregateToView: true
  172. # -- Specifies whether permissions are aggregated to the edit ClusterRole
  173. aggregateToEdit: true
  174. ## -- Extra environment variables to add to container.
  175. extraEnv: []
  176. ## -- Map of extra arguments to pass to container.
  177. extraArgs: {}
  178. ## -- Extra volumes to pass to pod.
  179. extraVolumes: []
  180. ## -- Extra Kubernetes objects to deploy with the helm chart
  181. extraObjects: []
  182. ## -- Extra volumes to mount to the container.
  183. extraVolumeMounts: []
  184. ## -- Extra init containers to add to the pod.
  185. extraInitContainers: []
  186. ## -- Extra containers to add to the pod.
  187. extraContainers: []
  188. # -- Annotations to add to Deployment
  189. deploymentAnnotations: {}
  190. # -- Set deployment strategy
  191. strategy: {}
  192. # -- Annotations to add to Pod
  193. podAnnotations: {}
  194. podLabels: {}
  195. podSecurityContext:
  196. enabled: true
  197. # fsGroup: 2000
  198. securityContext:
  199. allowPrivilegeEscalation: false
  200. capabilities:
  201. drop:
  202. - ALL
  203. enabled: true
  204. readOnlyRootFilesystem: true
  205. runAsNonRoot: true
  206. runAsUser: 1000
  207. seccompProfile:
  208. type: RuntimeDefault
  209. resources: {}
  210. # requests:
  211. # cpu: 10m
  212. # memory: 32Mi
  213. serviceMonitor:
  214. # -- Specifies whether to create a ServiceMonitor resource for collecting Prometheus metrics
  215. enabled: false
  216. # -- How should we react to missing CRD "`monitoring.coreos.com/v1/ServiceMonitor`"
  217. #
  218. # Possible values:
  219. # - `skipIfMissing`: Only render ServiceMonitor resources if CRD is present, skip if missing.
  220. # - `failIfMissing`: Fail Helm install if CRD is not present.
  221. # - `alwaysRender` : Always render ServiceMonitor resources, do not check for CRD.
  222. # @schema
  223. # enum:
  224. # - skipIfMissing
  225. # - failIfMissing
  226. # - alwaysRender
  227. # @schema
  228. renderMode: skipIfMissing # @schema enum: [skipIfMissing, failIfMissing, alwaysRender]
  229. # -- namespace where you want to install ServiceMonitors
  230. namespace: ""
  231. # -- Additional labels
  232. additionalLabels: {}
  233. # -- Interval to scrape metrics
  234. interval: 30s
  235. # -- Timeout if metrics can't be retrieved in given time interval
  236. scrapeTimeout: 25s
  237. # -- Let prometheus add an exported_ prefix to conflicting labels
  238. honorLabels: false
  239. # -- Metric relabel configs to apply to samples before ingestion. [Metric Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs)
  240. metricRelabelings: []
  241. # - action: replace
  242. # regex: (.*)
  243. # replacement: $1
  244. # sourceLabels:
  245. # - exported_namespace
  246. # targetLabel: namespace
  247. # -- Relabel configs to apply to samples before ingestion. [Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config)
  248. relabelings: []
  249. # - sourceLabels: [__meta_kubernetes_pod_node_name]
  250. # separator: ;
  251. # regex: ^(.*)$
  252. # targetLabel: nodename
  253. # replacement: $1
  254. # action: replace
  255. metrics:
  256. listen:
  257. port: 8080
  258. secure:
  259. enabled: false
  260. # -- if those are not set or invalid, self-signed certs will be generated
  261. # -- TLS cert directory path
  262. certDir: /etc/tls
  263. # -- TLS cert file path
  264. certFile: /etc/tls/tls.crt
  265. # -- TLS key file path
  266. keyFile: /etc/tls/tls.key
  267. service:
  268. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  269. enabled: false
  270. # -- Metrics service port to scrape
  271. port: 8080
  272. # -- Additional service annotations
  273. annotations: {}
  274. grafanaDashboard:
  275. # -- If true creates a Grafana dashboard.
  276. enabled: false
  277. # -- Label that ConfigMaps should have to be loaded as dashboards.
  278. sidecarLabel: "grafana_dashboard"
  279. # -- Label value that ConfigMaps should have to be loaded as dashboards.
  280. sidecarLabelValue: "1"
  281. # -- Annotations that ConfigMaps can have to get configured in Grafana,
  282. # See: sidecar.dashboards.folderAnnotation for specifying the dashboard folder.
  283. # https://github.com/grafana/helm-charts/tree/main/charts/grafana
  284. annotations: {}
  285. # -- Extra labels to add to the Grafana dashboard ConfigMap.
  286. extraLabels: {}
  287. livenessProbe:
  288. # -- Enabled determines if the liveness probe should be used or not. By default it's disabled.
  289. enabled: false
  290. # -- The body of the liveness probe settings.
  291. spec:
  292. # -- Address for liveness probe.
  293. address: ""
  294. # -- Named port for liveness probe.
  295. port: 8082
  296. # -- Specify the maximum amount of time to wait for a probe to respond before considering it fails.
  297. timeoutSeconds: 5
  298. # -- Number of consecutive probe failures that should occur before considering the probe as failed.
  299. failureThreshold: 5
  300. # -- Period in seconds for K8s to start performing probes.
  301. periodSeconds: 10
  302. # -- Number of successful probes to mark probe successful.
  303. successThreshold: 1
  304. # -- Delay in seconds for the container to start before performing the initial probe.
  305. initialDelaySeconds: 10
  306. # -- Handler for liveness probe.
  307. httpGet:
  308. # -- Set this value to 'live' (for named port) or an an integer for liveness probes.
  309. # @schema type: [string, integer]
  310. port: live
  311. # -- Path for liveness probe.
  312. path: /healthz
  313. nodeSelector: {}
  314. tolerations: []
  315. topologySpreadConstraints: []
  316. affinity: {}
  317. # -- Pod priority class name.
  318. priorityClassName: ""
  319. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  320. podDisruptionBudget:
  321. enabled: false
  322. minAvailable: 1 # @schema type:[integer, string]
  323. nameOverride: ""
  324. # maxUnavailable: "50%"
  325. # -- Run the controller on the host network
  326. hostNetwork: false
  327. # -- (bool) Specifies if controller pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  328. # @schema type: [boolean, null]
  329. hostUsers:
  330. webhook:
  331. # -- Annotations to place on validating webhook configuration.
  332. annotations: {}
  333. # -- Specifies whether a webhook deployment be created. If set to false, crds.conversion.enabled should also be set to false otherwise the kubeapi will be hammered because the conversion is looking for a webhook endpoint.
  334. create: true
  335. # -- Specifies the time to check if the cert is valid
  336. certCheckInterval: "5m"
  337. # -- Specifies the lookaheadInterval for certificate validity
  338. lookaheadInterval: ""
  339. replicaCount: 1
  340. # -- Specifies Log Params to the Webhook
  341. log:
  342. level: info
  343. timeEncoding: epoch
  344. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  345. revisionHistoryLimit: 10
  346. certDir: /tmp/certs
  347. # -- Specifies whether validating webhooks should be created with failurePolicy: Fail or Ignore
  348. failurePolicy: Fail
  349. # -- Specifies if webhook pod should use hostNetwork or not.
  350. hostNetwork: false
  351. # -- (bool) Specifies if webhook pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  352. # @schema type: [boolean, null]
  353. hostUsers:
  354. image:
  355. repository: ghcr.io/external-secrets/external-secrets
  356. pullPolicy: IfNotPresent
  357. # -- The image tag to use. The default is the chart appVersion.
  358. tag: ""
  359. # -- The flavour of tag you want to use
  360. flavour: ""
  361. imagePullSecrets: []
  362. # -- The port the webhook will listen to
  363. port: 10250
  364. serviceAccount:
  365. # -- Specifies whether a service account should be created.
  366. create: true
  367. # -- Automounts the service account token in all containers of the pod
  368. automount: true
  369. # -- Annotations to add to the service account.
  370. annotations: {}
  371. # -- Extra Labels to add to the service account.
  372. extraLabels: {}
  373. # -- The name of the service account to use.
  374. # If not set and create is true, a name is generated using the fullname template.
  375. name: ""
  376. nodeSelector: {}
  377. # -- Specifies `hostAliases` to webhook deployment
  378. hostAliases: []
  379. certManager:
  380. # -- Enabling cert-manager support will disable the built in secret and
  381. # switch to using cert-manager (installed separately) to automatically issue
  382. # and renew the webhook certificate. This chart does not install
  383. # cert-manager for you, See https://cert-manager.io/docs/
  384. enabled: false
  385. # -- Automatically add the cert-manager.io/inject-ca-from annotation to the
  386. # webhooks and CRDs. As long as you have the cert-manager CA Injector
  387. # enabled, this will automatically setup your webhook's CA to the one used
  388. # by cert-manager. See https://cert-manager.io/docs/concepts/ca-injector
  389. addInjectorAnnotations: true
  390. cert:
  391. # -- Create a certificate resource within this chart. See
  392. # https://cert-manager.io/docs/usage/certificate/
  393. create: true
  394. # -- For the Certificate created by this chart, setup the issuer. See
  395. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.IssuerSpec
  396. issuerRef:
  397. group: cert-manager.io
  398. kind: "Issuer"
  399. name: "my-issuer"
  400. # -- Set the requested duration (i.e. lifetime) of the Certificate. See
  401. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  402. # One year by default.
  403. duration: "8760h0m0s"
  404. # -- Set the revisionHistoryLimit on the Certificate. See
  405. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  406. # Defaults to 0 (ignored).
  407. revisionHistoryLimit: 0
  408. # -- How long before the currently issued certificate’s expiry
  409. # cert-manager should renew the certificate. See
  410. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  411. # Note that renewBefore should be greater than .webhook.lookaheadInterval
  412. # since the webhook will check this far in advance that the certificate is
  413. # valid.
  414. renewBefore: ""
  415. # -- Specific settings on the privateKey and its generation
  416. privateKey: {}
  417. # rotationPolicy: Always
  418. # algorithm: RSA
  419. # size: 2048
  420. # -- Specific settings on the signatureAlgorithm used on the cert.
  421. # signatureAlgorithm is only valid for cert-manager v1.18.0+
  422. signatureAlgorithm: ""
  423. # -- Add extra annotations to the Certificate resource.
  424. annotations: {}
  425. tolerations: []
  426. topologySpreadConstraints: []
  427. affinity: {}
  428. # -- Set deployment strategy
  429. strategy: {}
  430. # -- Pod priority class name.
  431. priorityClassName: ""
  432. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  433. podDisruptionBudget:
  434. enabled: false
  435. minAvailable: 1 # @schema type:[integer, string]
  436. nameOverride: ""
  437. # maxUnavailable: "50%"
  438. metrics:
  439. listen:
  440. port: 8080
  441. service:
  442. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  443. enabled: false
  444. # -- Metrics service port to scrape
  445. port: 8080
  446. # -- Additional service annotations
  447. annotations: {}
  448. readinessProbe:
  449. # -- Address for readiness probe
  450. address: ""
  451. # -- ReadinessProbe port for kubelet
  452. port: 8081
  453. ## -- Extra environment variables to add to container.
  454. extraEnv: []
  455. ## -- Map of extra arguments to pass to container.
  456. extraArgs: {}
  457. ## -- Extra init containers to add to the pod.
  458. extraInitContainers: []
  459. ## -- Extra volumes to pass to pod.
  460. extraVolumes: []
  461. ## -- Extra volumes to mount to the container.
  462. extraVolumeMounts: []
  463. # -- Annotations to add to Secret
  464. secretAnnotations: {}
  465. # -- Annotations to add to Deployment
  466. deploymentAnnotations: {}
  467. # -- Annotations to add to Pod
  468. podAnnotations: {}
  469. podLabels: {}
  470. podSecurityContext:
  471. enabled: true
  472. # fsGroup: 2000
  473. securityContext:
  474. allowPrivilegeEscalation: false
  475. capabilities:
  476. drop:
  477. - ALL
  478. enabled: true
  479. readOnlyRootFilesystem: true
  480. runAsNonRoot: true
  481. runAsUser: 1000
  482. seccompProfile:
  483. type: RuntimeDefault
  484. resources: {}
  485. # requests:
  486. # cpu: 10m
  487. # memory: 32Mi
  488. # -- Manage the service through which the webhook is reached.
  489. service:
  490. # -- Whether the service object should be enabled or not (it is expected to exist).
  491. enabled: true
  492. # -- Custom annotations for the webhook service.
  493. annotations: {}
  494. # -- Custom labels for the webhook service.
  495. labels: {}
  496. # -- The service type of the webhook service.
  497. type: ClusterIP
  498. # -- If the webhook service type is LoadBalancer, you can assign a specific load balancer IP here.
  499. # Check the documentation of your load balancer provider to see if/how this should be used.
  500. loadBalancerIP: ""
  501. certController:
  502. # -- Specifies whether a certificate controller deployment be created.
  503. create: true
  504. requeueInterval: "5m"
  505. replicaCount: 1
  506. # -- Specifies Log Params to the Certificate Controller
  507. log:
  508. level: info
  509. timeEncoding: epoch
  510. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  511. revisionHistoryLimit: 10
  512. image:
  513. repository: ghcr.io/external-secrets/external-secrets
  514. pullPolicy: IfNotPresent
  515. tag: ""
  516. flavour: ""
  517. imagePullSecrets: []
  518. rbac:
  519. # -- Specifies whether role and rolebinding resources should be created.
  520. create: true
  521. serviceAccount:
  522. # -- Specifies whether a service account should be created.
  523. create: true
  524. # -- Automounts the service account token in all containers of the pod
  525. automount: true
  526. # -- Annotations to add to the service account.
  527. annotations: {}
  528. # -- Extra Labels to add to the service account.
  529. extraLabels: {}
  530. # -- The name of the service account to use.
  531. # If not set and create is true, a name is generated using the fullname template.
  532. name: ""
  533. nodeSelector: {}
  534. # -- Specifies `hostAliases` to cert-controller deployment
  535. hostAliases: []
  536. tolerations: []
  537. topologySpreadConstraints: []
  538. affinity: {}
  539. # -- Set deployment strategy
  540. strategy: {}
  541. # -- Run the certController on the host network
  542. hostNetwork: false
  543. # -- (bool) Specifies if certController pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  544. # @schema type: [boolean, null]
  545. hostUsers:
  546. # -- Pod priority class name.
  547. priorityClassName: ""
  548. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  549. podDisruptionBudget:
  550. enabled: false
  551. minAvailable: 1 # @schema type:[integer, string]
  552. nameOverride: ""
  553. # maxUnavailable: "50%"
  554. metrics:
  555. listen:
  556. port: 8080
  557. service:
  558. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  559. enabled: false
  560. # -- Metrics service port to scrape
  561. port: 8080
  562. # -- Additional service annotations
  563. annotations: {}
  564. readinessProbe:
  565. # -- Address for readiness probe
  566. address: ""
  567. # -- ReadinessProbe port for kubelet
  568. port: 8081
  569. startupProbe:
  570. # -- Enabled determines if the startup probe should be used or not. By default it's enabled
  571. enabled: false
  572. # -- whether to use the readiness probe port for startup probe.
  573. useReadinessProbePort: true
  574. # -- Port for startup probe.
  575. port: ""
  576. ## -- Extra environment variables to add to container.
  577. extraEnv: []
  578. ## -- Map of extra arguments to pass to container.
  579. extraArgs: {}
  580. ## -- Extra init containers to add to the pod.
  581. extraInitContainers: []
  582. ## -- Extra volumes to pass to pod.
  583. extraVolumes: []
  584. ## -- Extra volumes to mount to the container.
  585. extraVolumeMounts: []
  586. # -- Annotations to add to Deployment
  587. deploymentAnnotations: {}
  588. # -- Annotations to add to Pod
  589. podAnnotations: {}
  590. podLabels: {}
  591. podSecurityContext:
  592. enabled: true
  593. # fsGroup: 2000
  594. securityContext:
  595. allowPrivilegeEscalation: false
  596. capabilities:
  597. drop:
  598. - ALL
  599. enabled: true
  600. readOnlyRootFilesystem: true
  601. runAsNonRoot: true
  602. runAsUser: 1000
  603. seccompProfile:
  604. type: RuntimeDefault
  605. resources: {}
  606. # requests:
  607. # cpu: 10m
  608. # memory: 32Mi
  609. # -- Specifies `dnsPolicy` to deployment
  610. dnsPolicy: ClusterFirst
  611. # -- Specifies `dnsOptions` to deployment
  612. dnsConfig: {}
  613. # -- Specifies `hostAliases` to deployment
  614. hostAliases: []
  615. # -- Any extra pod spec on the deployment
  616. podSpecExtra: {}
  617. # -- Provider defaults configuration
  618. # Common configuration that is automatically merged with each provider's configuration
  619. # Individual providers can override any of these defaults by specifying the same keys
  620. providerDefaults:
  621. # Default replica count
  622. replicaCount: 2
  623. # Default service account configuration
  624. serviceAccount:
  625. create: true
  626. automount: true
  627. annotations: {}
  628. name: ""
  629. # Default pod annotations and labels
  630. podAnnotations: {}
  631. podLabels: {}
  632. # Default pod security context
  633. podSecurityContext:
  634. enabled: true
  635. runAsNonRoot: true
  636. runAsUser: 65532
  637. fsGroup: 65532
  638. seccompProfile:
  639. type: RuntimeDefault
  640. # Default container security context
  641. securityContext:
  642. enabled: true
  643. allowPrivilegeEscalation: false
  644. readOnlyRootFilesystem: true
  645. runAsNonRoot: true
  646. runAsUser: 65532
  647. capabilities:
  648. drop:
  649. - ALL
  650. # Default service configuration
  651. service:
  652. type: ClusterIP
  653. port: 8080
  654. annotations: {}
  655. # Default resource limits and requests
  656. resources:
  657. limits:
  658. cpu: 200m
  659. memory: 256Mi
  660. requests:
  661. cpu: 50m
  662. memory: 64Mi
  663. # Default node selector, tolerations, and affinity
  664. nodeSelector: {}
  665. tolerations: []
  666. affinity: {}
  667. topologySpreadConstraints: []
  668. priorityClassName: ""
  669. # Default pod disruption budget
  670. podDisruptionBudget:
  671. enabled: true
  672. minAvailable: 1
  673. # Default TLS configuration
  674. tls:
  675. enabled: true
  676. certPath: /etc/provider/certs
  677. caSecretName: external-secrets-v2-ca
  678. mountCA: true
  679. # Default metrics configuration
  680. metrics:
  681. enabled: true
  682. port: 8081
  683. serviceMonitor:
  684. enabled: false
  685. namespace: ""
  686. interval: 30s
  687. scrapeTimeout: 10s
  688. labels: {}
  689. # Default health check configuration
  690. health:
  691. port: 8082
  692. livenessProbe:
  693. enabled: false
  694. initialDelaySeconds: 10
  695. periodSeconds: 20
  696. timeoutSeconds: 5
  697. failureThreshold: 3
  698. readinessProbe:
  699. enabled: false
  700. initialDelaySeconds: 5
  701. periodSeconds: 10
  702. timeoutSeconds: 5
  703. failureThreshold: 3
  704. # Default extra volumes and volume mounts
  705. # Note: it is intentionally not defined here to allow per-provider overrides
  706. # extraVolumes: []
  707. # extraVolumeMounts: []
  708. # Default autoscaling configuration (disabled by default)
  709. autoscaling:
  710. enabled: false
  711. minReplicas: 2
  712. maxReplicas: 10
  713. targetCPUUtilizationPercentage: 80
  714. targetMemoryUtilizationPercentage: 80
  715. # -- Provider deployment configuration
  716. # Deploy one or more external secret providers alongside the controller
  717. # Each provider runs as a separate deployment with its own configuration
  718. providers:
  719. # -- Enable provider deployments
  720. enabled: false
  721. # -- List of providers to deploy
  722. # Each provider automatically inherits defaults from providerDefaults above
  723. # You only need to specify what you want to override
  724. list: []
  725. # Example configurations:
  726. #
  727. # Simple provider configuration - uses all defaults from providerDefaults:
  728. # - name: fake
  729. # type: fake
  730. # enabled: true
  731. # image:
  732. # repository: ghcr.io/external-secrets/provider-fake
  733. # tag: latest
  734. # pullPolicy: IfNotPresent
  735. # # All other settings (serviceAccount, podSecurityContext, resources, etc.)
  736. # # are automatically inherited from providerDefaults
  737. #
  738. # Advanced provider configuration - overrides specific defaults:
  739. # - name: aws
  740. # type: aws
  741. # enabled: true
  742. # replicaCount: 3 # Override default replica count (default is 2)
  743. #
  744. # image:
  745. # repository: oci.external-secrets.io/external-secrets/provider-aws
  746. # pullPolicy: IfNotPresent
  747. # tag: ""
  748. #
  749. # imagePullSecrets: []
  750. #
  751. # # Override service account to add AWS IAM role annotation
  752. # serviceAccount:
  753. # create: true
  754. # annotations:
  755. # eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/eso-provider-aws
  756. # name: ""
  757. # automount: true
  758. #
  759. # # Add custom pod labels
  760. # podLabels:
  761. # custom-label: custom-value
  762. #
  763. # # Override resources for higher limits
  764. # resources:
  765. # limits:
  766. # cpu: 500m
  767. # memory: 512Mi
  768. # requests:
  769. # cpu: 100m
  770. # memory: 128Mi
  771. #
  772. # # Add custom affinity for better distribution
  773. # affinity:
  774. # podAntiAffinity:
  775. # preferredDuringSchedulingIgnoredDuringExecution:
  776. # - weight: 100
  777. # podAffinityTerm:
  778. # labelSelector:
  779. # matchLabels:
  780. # app.kubernetes.io/component: provider
  781. # external-secrets.io/provider: aws
  782. # topologyKey: kubernetes.io/hostname
  783. #
  784. # # Provider-specific configuration
  785. # config: {}
  786. # # For AWS provider:
  787. # # region: us-east-1
  788. # # authMethod: irsa # irsa, credentials, none
  789. # # credentials:
  790. # # existingSecret: ""
  791. # # accessKeyId: ""
  792. # # secretAccessKey: ""
  793. # # assumeRoleARN: ""
  794. # # sessionTags: {}
  795. # # externalID: ""
  796. # # connectionPool:
  797. # # maxConnections: 50
  798. # # idleTimeout: 5m
  799. # # maxLifetime: 30m
  800. #
  801. # # Enable autoscaling
  802. # autoscaling:
  803. # enabled: true
  804. # minReplicas: 3
  805. # maxReplicas: 10
  806. # targetCPUUtilizationPercentage: 80
  807. # targetMemoryUtilizationPercentage: 80