values.yaml 33 KB

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