values.yaml 31 KB

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