mirror of
https://github.com/wahyd4/charts.git
synced 2026-08-09 05:06:29 +10:00
[bitnami/zookeeper] Chart standardized (#8623)
* [bitnami/zookeeper] Chart standardized Signed-off-by: juan131 <juanariza@vmware.com> * Trim trailing spaces Signed-off-by: juan131 <juanariza@vmware.com> * Fix for noauth Signed-off-by: juan131 <juanariza@vmware.com> * Reorganize secrets Signed-off-by: juan131 <juanariza@vmware.com> * Update parameters metadata Signed-off-by: juan131 <juanariza@vmware.com> * Including missing parameters Signed-off-by: juan131 <juanariza@vmware.com> * pdb.enabled -> pdb.create Signed-off-by: juan131 <juanariza@vmware.com> * Update bitnami/zookeeper/templates/configmap.yaml Co-authored-by: Miguel Ruiz <miruiz@vmware.com> Signed-off-by: juan131 <juanariza@vmware.com> * [bitnami/zookeeper] Update components versions Signed-off-by: Bitnami Containers <containers@bitnami.com> Co-authored-by: Miguel Ruiz <miruiz@vmware.com> Co-authored-by: Bitnami Containers <containers@bitnami.com>
This commit is contained in:
co-authored by
Miguel Ruiz
Bitnami Containers
parent
1796fb053d
commit
dba767ac57
@@ -21,4 +21,4 @@ name: zookeeper
|
||||
sources:
|
||||
- https://github.com/bitnami/bitnami-docker-zookeeper
|
||||
- https://zookeeper.apache.org/
|
||||
version: 7.6.2
|
||||
version: 8.0.0
|
||||
|
||||
+192
-147
@@ -65,73 +65,100 @@ The command removes all the Kubernetes components associated with the chart and
|
||||
| `nameOverride` | String to partially override common.names.fullname template (will maintain the release name) | `""` |
|
||||
| `fullnameOverride` | String to fully override common.names.fullname template | `""` |
|
||||
| `clusterDomain` | Kubernetes Cluster Domain | `cluster.local` |
|
||||
| `extraDeploy` | Extra objects to deploy (value evaluated as a template) | `[]` |
|
||||
| `extraDeploy` | Extra objects to deploy (evaluated as a template) | `[]` |
|
||||
| `commonLabels` | Add labels to all the deployed resources | `{}` |
|
||||
| `commonAnnotations` | Add annotations to all the deployed resources | `{}` |
|
||||
| `namespaceOverride` | Override namespace for ZooKeeper resources | `""` |
|
||||
| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` |
|
||||
| `diagnosticMode.command` | Command to override all containers in the deployment | `["sleep"]` |
|
||||
| `diagnosticMode.args` | Args to override all containers in the deployment | `["infinity"]` |
|
||||
| `diagnosticMode.command` | Command to override all containers in the statefulset | `["sleep"]` |
|
||||
| `diagnosticMode.args` | Args to override all containers in the statefulset | `["infinity"]` |
|
||||
|
||||
|
||||
### Zookeeper chart parameters
|
||||
### ZooKeeper chart parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
|
||||
| `image.registry` | ZooKeeper image registry | `docker.io` |
|
||||
| `image.repository` | ZooKeeper image repository | `bitnami/zookeeper` |
|
||||
| `image.tag` | ZooKeeper Image tag (immutable tags are recommended) | `3.7.0-debian-10-r215` |
|
||||
| `image.pullPolicy` | ZooKeeper image pull policy | `IfNotPresent` |
|
||||
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
|
||||
| `image.debug` | Specify if debug values should be set | `false` |
|
||||
| `tickTime` | Basic time unit in milliseconds used by ZooKeeper for heartbeats | `2000` |
|
||||
| `initLimit` | ZooKeeper uses to limit the length of time the ZooKeeper servers in quorum have to connect to a leader | `10` |
|
||||
| `syncLimit` | How far out of date a server can be from a leader | `5` |
|
||||
| `preAllocSize` | Block size for transaction log file | `65536` |
|
||||
| `snapCount` | The number of transactions recorded in the transaction log before a snapshot can be taken (and the transaction log rolled) | `100000` |
|
||||
| `maxClientCnxns` | Limits the number of concurrent connections that a single client may make to a single member of the ZooKeeper ensemble | `60` |
|
||||
| `fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands to use | `srvr, mntr, ruok` |
|
||||
| `listenOnAllIPs` | Allow Zookeeper to listen for connections from its peers on all available IP addresses | `false` |
|
||||
| `allowAnonymousLogin` | Allow to accept connections from unauthenticated users | `true` |
|
||||
| `autopurge.snapRetainCount` | Retains the snapRetainCount most recent snapshots and the corresponding transaction logs and deletes the rest | `3` |
|
||||
| `autopurge.purgeInterval` | The time interval in hours for which the purge task has to be triggered | `0` |
|
||||
| `maxSessionTimeout` | Maximum session timeout in milliseconds that the server will allow the client to negotiate | `40000` |
|
||||
| `auth.existingSecret` | Use existing secret (ignores previous password) | `""` |
|
||||
| `auth.enabled` | Enable Zookeeper auth. It uses SASL/Digest-MD5 | `false` |
|
||||
| `auth.clientUser` | User that will use ZooKeeper clients to auth | `""` |
|
||||
| `auth.clientPassword` | Password that will use ZooKeeper clients to auth | `""` |
|
||||
| `auth.serverUsers` | Comma, semicolon or whitespace separated list of user to be created | `""` |
|
||||
| `auth.serverPasswords` | Comma, semicolon or whitespace separated list of passwords to assign to users when created | `""` |
|
||||
| `heapSize` | Size in MB for the Java Heap options (Xmx and XMs) | `1024` |
|
||||
| `logLevel` | Log level for the Zookeeper server. ERROR by default | `ERROR` |
|
||||
| `dataLogDir` | Data log directory. Specifying this option will direct zookeeper to write the transaction log to the dataLogDir rather than the dataDir. | `""` |
|
||||
| `jvmFlags` | Default JVMFLAGS for the ZooKeeper process | `""` |
|
||||
| `config` | Configure ZooKeeper with a custom zoo.cfg file | `""` |
|
||||
| `namespaceOverride` | Namespace for ZooKeeper resources | `""` |
|
||||
| `hostAliases` | Deployment pod host aliases | `[]` |
|
||||
| Name | Description | Value |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
|
||||
| `image.registry` | ZooKeeper image registry | `docker.io` |
|
||||
| `image.repository` | ZooKeeper image repository | `bitnami/zookeeper` |
|
||||
| `image.tag` | ZooKeeper image tag (immutable tags are recommended) | `3.7.0-debian-10-r257` |
|
||||
| `image.pullPolicy` | ZooKeeper image pull policy | `IfNotPresent` |
|
||||
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` |
|
||||
| `image.debug` | Specify if debug values should be set | `false` |
|
||||
| `auth.enabled` | Enable ZooKeeper auth. It uses SASL/Digest-MD5 | `false` |
|
||||
| `auth.clientUser` | User that will use ZooKeeper clients to auth | `""` |
|
||||
| `auth.clientPassword` | Password that will use ZooKeeper clients to auth | `""` |
|
||||
| `auth.serverUsers` | Comma, semicolon or whitespace separated list of user to be created | `""` |
|
||||
| `auth.serverPasswords` | Comma, semicolon or whitespace separated list of passwords to assign to users when created | `""` |
|
||||
| `auth.existingSecret` | Use existing secret (ignores previous passwords) | `""` |
|
||||
| `tickTime` | Basic time unit (in milliseconds) used by ZooKeeper for heartbeats | `2000` |
|
||||
| `initLimit` | ZooKeeper uses to limit the length of time the ZooKeeper servers in quorum have to connect to a leader | `10` |
|
||||
| `syncLimit` | How far out of date a server can be from a leader | `5` |
|
||||
| `preAllocSize` | Block size for transaction log file | `65536` |
|
||||
| `snapCount` | The number of transactions recorded in the transaction log before a snapshot can be taken (and the transaction log rolled) | `100000` |
|
||||
| `maxClientCnxns` | Limits the number of concurrent connections that a single client may make to a single member of the ZooKeeper ensemble | `60` |
|
||||
| `maxSessionTimeout` | Maximum session timeout (in milliseconds) that the server will allow the client to negotiate | `40000` |
|
||||
| `heapSize` | Size (in MB) for the Java Heap options (Xmx and Xms) | `1024` |
|
||||
| `fourlwCommandsWhitelist` | A list of comma separated Four Letter Words commands that can be executed | `srvr, mntr, ruok` |
|
||||
| `minServerId` | Minimal SERVER_ID value, nodes increment their IDs respectively | `1` |
|
||||
| `listenOnAllIPs` | Allow ZooKeeper to listen for connections from its peers on all available IP addresses | `false` |
|
||||
| `autopurge.snapRetainCount` | The most recent snapshots amount (and corresponding transaction logs) to retain | `3` |
|
||||
| `autopurge.purgeInterval` | The time interval (in hours) for which the purge task has to be triggered | `0` |
|
||||
| `logLevel` | Log level for the ZooKeeper server. ERROR by default | `ERROR` |
|
||||
| `jvmFlags` | Default JVM flags for the ZooKeeper process | `""` |
|
||||
| `dataLogDir` | Dedicated data log directory | `""` |
|
||||
| `configuration` | Configure ZooKeeper with a custom zoo.cfg file | `""` |
|
||||
| `existingConfigmap` | The name of an existing ConfigMap with your custom configuration for ZooKeeper | `""` |
|
||||
| `extraEnvVars` | Array with extra environment variables to add to ZooKeeper nodes | `[]` |
|
||||
| `extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for ZooKeeper nodes | `""` |
|
||||
| `extraEnvVarsSecret` | Name of existing Secret containing extra env vars for ZooKeeper nodes | `""` |
|
||||
| `command` | Override default container command (useful when using custom images) | `["/scripts/setup.sh"]` |
|
||||
| `args` | Override default container args (useful when using custom images) | `[]` |
|
||||
|
||||
|
||||
### Statefulset parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
|
||||
| `extraVolumes` | Extra volumes | `[]` |
|
||||
| `extraVolumeMounts` | Mount extra volume(s) | `[]` |
|
||||
| `updateStrategy` | StatefulSet controller supports automated updates. There are two valid update strategies: `RollingUpdate` and `OnDelete` | `RollingUpdate` |
|
||||
| `podDisruptionBudget.maxUnavailable` | Max number of pods down simultaneously | `1` |
|
||||
| `rollingUpdatePartition` | Partition update strategy | `""` |
|
||||
| `podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: `OrderedReady` and `Parallel` | `Parallel` |
|
||||
| `replicaCount` | Number of ZooKeeper nodes | `1` |
|
||||
| `containerPort` | ZooKeeper port | `2181` |
|
||||
| `tlsContainerPort` | ZooKeeper TLS port | `3181` |
|
||||
| `followerContainerPort` | ZooKeeper follower port | `2888` |
|
||||
| `electionContainerPort` | ZooKeeper election port | `3888` |
|
||||
| `minServerId` | Minimal SERVER_ID value, nodes increment their IDs respectively | `1` |
|
||||
| `podSecurityContext.enabled` | Enable security context (ZooKeeper master pod) | `true` |
|
||||
| `podSecurityContext.fsGroup` | Group ID for the container (ZooKeeper master pod) | `1001` |
|
||||
| `containerSecurityContext.enabled` | Enable container Security Context | `true` |
|
||||
| `containerSecurityContext.runAsUser` | User ID for the container | `1001` |
|
||||
| `containerSecurityContext.runAsNonRoot` | Avoid running as root User | `true` |
|
||||
| `initContainers` | Extra init container to add to the statefulset | `[]` |
|
||||
| `containerPorts.client` | ZooKeeper client container port | `2181` |
|
||||
| `containerPorts.tls` | ZooKeeper TLS container port | `3181` |
|
||||
| `containerPorts.follower` | ZooKeeper follower container port | `2888` |
|
||||
| `containerPorts.election` | ZooKeeper election container port | `3888` |
|
||||
| `livenessProbe.enabled` | Enable livenessProbe on ZooKeeper containers | `true` |
|
||||
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `30` |
|
||||
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
||||
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
|
||||
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `livenessProbe.probeCommandTimeout` | Probe command timeout for livenessProbe | `2` |
|
||||
| `readinessProbe.enabled` | Enable readinessProbe on ZooKeeper containers | `true` |
|
||||
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
||||
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `readinessProbe.probeCommandTimeout` | Probe command timeout for readinessProbe | `2` |
|
||||
| `startupProbe.enabled` | Enable startupProbe on ZooKeeper containers | `false` |
|
||||
| `startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `30` |
|
||||
| `startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
||||
| `startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
||||
| `startupProbe.failureThreshold` | Failure threshold for startupProbe | `15` |
|
||||
| `startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
||||
| `customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
||||
| `customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
||||
| `customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
||||
| `lifecycleHooks` | for the ZooKeeper container(s) to automate configuration before or after startup | `{}` |
|
||||
| `resources.limits` | The resources limits for the ZooKeeper containers | `{}` |
|
||||
| `resources.requests.memory` | The requested memory for the ZooKeeper containers | `256Mi` |
|
||||
| `resources.requests.cpu` | The requested cpu for the ZooKeeper containers | `250m` |
|
||||
| `podSecurityContext.enabled` | Enabled ZooKeeper pods' Security Context | `true` |
|
||||
| `podSecurityContext.fsGroup` | Set ZooKeeper pod's Security Context fsGroup | `1001` |
|
||||
| `containerSecurityContext.enabled` | Enabled ZooKeeper containers' Security Context | `true` |
|
||||
| `containerSecurityContext.runAsUser` | Set ZooKeeper containers' Security Context runAsUser | `1001` |
|
||||
| `containerSecurityContext.runAsNonRoot` | Set ZooKeeper containers' Security Context runAsNonRoot | `true` |
|
||||
| `hostAliases` | ZooKeeper pods host aliases | `[]` |
|
||||
| `podLabels` | Extra labels for ZooKeeper pods | `{}` |
|
||||
| `podAnnotations` | Annotations for ZooKeeper pods | `{}` |
|
||||
| `podAffinityPreset` | Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||
| `nodeAffinityPreset.type` | Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
@@ -141,127 +168,133 @@ The command removes all the Kubernetes components associated with the chart and
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `tolerations` | Tolerations for pod assignment | `[]` |
|
||||
| `topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `{}` |
|
||||
| `podLabels` | ZooKeeper pod labels | `{}` |
|
||||
| `podAnnotations` | ZooKeeper Pod annotations | `{}` |
|
||||
| `podManagementPolicy` | StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: `OrderedReady` and `Parallel` | `Parallel` |
|
||||
| `priorityClassName` | Name of the existing priority class to be used by ZooKeeper pods, priority class needs to be created beforehand | `""` |
|
||||
| `schedulerName` | Kubernetes pod scheduler registry | `""` |
|
||||
| `resources.requests` | The requested resources for the container | `{}` |
|
||||
| `livenessProbe.enabled` | Enable livenessProbe | `true` |
|
||||
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `30` |
|
||||
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
||||
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `6` |
|
||||
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `livenessProbe.probeCommandTimeout` | Probe command timeout for livenessProbe | `2` |
|
||||
| `readinessProbe.enabled` | Enable readinessProbe | `true` |
|
||||
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `6` |
|
||||
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `readinessProbe.probeCommandTimeout` | Probe command timeout for readinessProbe | `2` |
|
||||
| `customLivenessProbe` | Override default liveness probe | `{}` |
|
||||
| `customReadinessProbe` | Override default readiness probe | `{}` |
|
||||
| `updateStrategy.type` | ZooKeeper statefulset strategy type | `RollingUpdate` |
|
||||
| `updateStrategy.rollingUpdate` | ZooKeeper statefulset rolling update configuration parameters | `{}` |
|
||||
| `extraVolumes` | Optionally specify extra list of additional volumes for the ZooKeeper pod(s) | `[]` |
|
||||
| `extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the ZooKeeper container(s) | `[]` |
|
||||
| `sidecars` | Add additional sidecar containers to the ZooKeeper pod(s) | `[]` |
|
||||
| `initContainers` | Add additional init containers to the ZooKeeper pod(s) | `[]` |
|
||||
| `pdb.create` | Deploy a pdb object for the ZooKeeper pod | `false` |
|
||||
| `pdb.minAvailable` | Minimum available ZooKeeper replicas | `""` |
|
||||
| `pdb.maxUnavailable` | Maximum unavailable ZooKeeper replicas | `1` |
|
||||
|
||||
|
||||
### Traffic Exposure parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------- | ------------------------------------------------------------------------------- | ----------- |
|
||||
| `service.type` | Kubernetes Service type | `ClusterIP` |
|
||||
| `service.loadBalancerIP` | Load balancer IP for the Zookeper Service (optional, cloud specific) | `""` |
|
||||
| `service.port` | ZooKeeper port | `2181` |
|
||||
| `service.followerPort` | ZooKeeper follower port | `2888` |
|
||||
| `service.electionPort` | ZooKeeper election port | `3888` |
|
||||
| `service.nodePorts` | Specify the nodePort value for the LoadBalancer and NodePort service types. | `{}` |
|
||||
| `service.publishNotReadyAddresses` | If the ZooKeeper headless service should publish DNS records for not ready pods | `true` |
|
||||
| `service.tlsClientPort` | Service port for tls client connections | `3181` |
|
||||
| `service.disableBaseClientPort` | Remove client port from service definitions. | `false` |
|
||||
| `service.annotations` | Annotations for the Service | `{}` |
|
||||
| `service.headless.annotations` | Annotations for the Headless Service | `{}` |
|
||||
| `serviceAccount.create` | Enable creation of ServiceAccount for Zookeeper pod | `false` |
|
||||
| `serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
| `serviceAccount.automountServiceAccountToken` | Allows auto mount of ServiceAccountToken on the serviceAccount created | `true` |
|
||||
| `sidecars` | Extra containers to the pod | `[]` |
|
||||
| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` |
|
||||
| `networkPolicy.allowExternal` | Don't require client label for connections | `true` |
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------- | --------------------------------------------------------------------------------------- | ----------- |
|
||||
| `service.type` | Kubernetes Service type | `ClusterIP` |
|
||||
| `service.ports.client` | ZooKeeper client service port | `2181` |
|
||||
| `service.ports.tls` | ZooKeeper TLS service port | `3181` |
|
||||
| `service.ports.follower` | ZooKeeper follower service port | `2888` |
|
||||
| `service.ports.election` | ZooKeeper election service port | `3888` |
|
||||
| `service.nodePorts.client` | Node port for clients | `""` |
|
||||
| `service.nodePorts.tls` | Node port for TLS | `""` |
|
||||
| `service.disableBaseClientPort` | Remove client port from service definitions. | `false` |
|
||||
| `service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` |
|
||||
| `service.clusterIP` | ZooKeeper service Cluster IP | `""` |
|
||||
| `service.loadBalancerIP` | ZooKeeper service Load Balancer IP | `""` |
|
||||
| `service.loadBalancerSourceRanges` | ZooKeeper service Load Balancer sources | `[]` |
|
||||
| `service.externalTrafficPolicy` | ZooKeeper service external traffic policy | `Cluster` |
|
||||
| `service.annotations` | Additional custom annotations for ZooKeeper service | `{}` |
|
||||
| `service.extraPorts` | Extra ports to expose in the ZooKeeper service (normally used with the `sidecar` value) | `[]` |
|
||||
| `service.headless.annotations` | Annotations for the Headless Service | `{}` |
|
||||
| `service.headless.publishNotReadyAddresses` | If the ZooKeeper headless service should publish DNS records for not ready pods | `true` |
|
||||
| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` |
|
||||
| `networkPolicy.allowExternal` | Don't require client label for connections | `true` |
|
||||
|
||||
|
||||
### Other Parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------- | ---------------------------------------------------------------------- | ------- |
|
||||
| `serviceAccount.create` | Enable creation of ServiceAccount for ZooKeeper pod | `false` |
|
||||
| `serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
| `serviceAccount.automountServiceAccountToken` | Allows auto mount of ServiceAccountToken on the serviceAccount created | `true` |
|
||||
| `serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` |
|
||||
|
||||
|
||||
### Persistence parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------------------------------- | ------------------------------------------------------------------------------ | ------------------- |
|
||||
| `persistence.existingClaim` | Provide an existing `PersistentVolumeClaim` | `""` |
|
||||
| `persistence.enabled` | Enable Zookeeper data persistence using PVC | `true` |
|
||||
| `persistence.enabled` | Enable ZooKeeper data persistence using PVC. If false, use emptyDir | `true` |
|
||||
| `persistence.existingClaim` | Name of an existing PVC to use (only when deploying a single replica) | `""` |
|
||||
| `persistence.storageClass` | PVC Storage Class for ZooKeeper data volume | `""` |
|
||||
| `persistence.accessModes` | PVC Access modes | `["ReadWriteOnce"]` |
|
||||
| `persistence.size` | PVC Storage Request for ZooKeeper data volume | `8Gi` |
|
||||
| `persistence.annotations` | Annotations for the PVC | `{}` |
|
||||
| `persistence.selector` | Selector to match an existing Persistent Volume for Zookeeper's data PVC | `{}` |
|
||||
| `persistence.dataLogDir.size` | PVC Storage Request for ZooKeeper's Data log directory | `8Gi` |
|
||||
| `persistence.dataLogDir.existingClaim` | Provide an existing `PersistentVolumeClaim` for Zookeeper's Data log directory | `""` |
|
||||
| `persistence.dataLogDir.selector` | Selector to match an existing Persistent Volume for Zookeeper's Data log PVC | `{}` |
|
||||
| `persistence.selector` | Selector to match an existing Persistent Volume for ZooKeeper's data PVC | `{}` |
|
||||
| `persistence.dataLogDir.size` | PVC Storage Request for ZooKeeper's dedicated data log directory | `8Gi` |
|
||||
| `persistence.dataLogDir.existingClaim` | Provide an existing `PersistentVolumeClaim` for ZooKeeper's data log directory | `""` |
|
||||
| `persistence.dataLogDir.selector` | Selector to match an existing Persistent Volume for ZooKeeper's data log PVC | `{}` |
|
||||
|
||||
|
||||
### Volume Permissions parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | ----------------------- |
|
||||
| `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup` | `false` |
|
||||
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
|
||||
| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` |
|
||||
| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r261` |
|
||||
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` |
|
||||
| `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` |
|
||||
| `volumePermissions.resources` | Init container resource requests/limit | `{}` |
|
||||
| `volumePermissions.containerSecurityContext.runAsUser` | User ID for the init container | `0` |
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------ | ------------------------------------------------------------------------------- | ----------------------- |
|
||||
| `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume | `false` |
|
||||
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
|
||||
| `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/bitnami-shell` |
|
||||
| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `10-debian-10-r304` |
|
||||
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` |
|
||||
| `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` |
|
||||
| `volumePermissions.resources.limits` | Init container volume-permissions resource limits | `{}` |
|
||||
| `volumePermissions.resources.requests` | Init container volume-permissions resource requests | `{}` |
|
||||
| `volumePermissions.containerSecurityContext.runAsUser` | User ID for the init container | `0` |
|
||||
|
||||
|
||||
### Metrics parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
|
||||
| `metrics.enabled` | Enable prometheus to access zookeeper metrics endpoint | `false` |
|
||||
| `metrics.containerPort` | Zookeeper Prometheus Exporter container port | `9141` |
|
||||
| `metrics.service.type` | Zookeeper Prometheus Exporter service type | `ClusterIP` |
|
||||
| `metrics.service.port` | Prometheus metrics service port | `9141` |
|
||||
| `metrics.service.annotations` | Annotations for the Zookeeper to auto-discover the metrics endpoint | `{}` |
|
||||
| `metrics.serviceMonitor.enabled` | if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`) | `false` |
|
||||
| `metrics.serviceMonitor.namespace` | Namespace for the ServiceMonitor Resource (defaults to the Release Namespace) | `""` |
|
||||
| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `""` |
|
||||
| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
|
||||
| `metrics.serviceMonitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}` |
|
||||
| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
|
||||
| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
|
||||
| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
|
||||
| `metrics.prometheusRule.enabled` | if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`) | `false` |
|
||||
| `metrics.prometheusRule.namespace` | Namespace for the PrometheusRule Resource (defaults to the Release Namespace) | `""` |
|
||||
| `metrics.prometheusRule.selector` | Prometheus instance selector labels | `{}` |
|
||||
| `metrics.prometheusRule.rules` | Prometheus Rule definitions | `[]` |
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------ | ------------------------------------------------------------------------------------- | ----------- |
|
||||
| `metrics.enabled` | Enable Prometheus to access ZooKeeper metrics endpoint | `false` |
|
||||
| `metrics.containerPort` | ZooKeeper Prometheus Exporter container port | `9141` |
|
||||
| `metrics.service.type` | ZooKeeper Prometheus Exporter service type | `ClusterIP` |
|
||||
| `metrics.service.port` | ZooKeeper Prometheus Exporter service port | `9141` |
|
||||
| `metrics.service.annotations` | Annotations for Prometheus to auto-discover the metrics endpoint | `{}` |
|
||||
| `metrics.serviceMonitor.enabled` | Create ServiceMonitor Resource for scraping metrics using Prometheus Operator | `false` |
|
||||
| `metrics.serviceMonitor.namespace` | Namespace for the ServiceMonitor Resource (defaults to the Release Namespace) | `""` |
|
||||
| `metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `""` |
|
||||
| `metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
|
||||
| `metrics.serviceMonitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}` |
|
||||
| `metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
|
||||
| `metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
|
||||
| `metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
|
||||
| `metrics.serviceMonitor.honorLabels` | Specify honorLabels parameter to add the scrape endpoint | `false` |
|
||||
| `metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
|
||||
| `metrics.prometheusRule.enabled` | Create a PrometheusRule for Prometheus Operator | `false` |
|
||||
| `metrics.prometheusRule.namespace` | Namespace for the PrometheusRule Resource (defaults to the Release Namespace) | `""` |
|
||||
| `metrics.prometheusRule.additionalLabels` | Additional labels that can be used so PrometheusRule will be discovered by Prometheus | `{}` |
|
||||
| `metrics.prometheusRule.rules` | PrometheusRule definitions | `[]` |
|
||||
|
||||
|
||||
### TLS/SSL parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
||||
| `tls.client.enabled` | Enable TLS for client connections | `false` |
|
||||
| `tls.client.autoGenerated` | Generate automatically self-signed TLS certificates for Zookeeper client communications | `false` |
|
||||
| `tls.client.existingSecret` | Name of the existing secret containing the TLS certificates for Zookeper client communications | `""` |
|
||||
| `tls.client.keystorePath` | Location of the KeyStore file used for Client connections | `/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks` |
|
||||
| `tls.client.truststorePath` | Location of the TrustStore file used for Client connections | `/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks` |
|
||||
| `tls.client.passwordsSecretName` | Existing secret containing Keystore and truststore passwords | `""` |
|
||||
| `tls.client.keystorePassword` | Password to access KeyStore if needed | `""` |
|
||||
| `tls.client.truststorePassword` | Password to access TrustStore if needed | `""` |
|
||||
| `tls.quorum.enabled` | Enable TLS for quorum protocol | `false` |
|
||||
| `tls.quorum.autoGenerated` | Create self-signed TLS certificates. Currently only supports PEM certificates. | `false` |
|
||||
| `tls.quorum.existingSecret` | Name of the existing secret containing the TLS certificates for Zookeper quorum protocol | `""` |
|
||||
| `tls.quorum.keystorePath` | Location of the KeyStore file used for Quorum protocol | `/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks` |
|
||||
| `tls.quorum.truststorePath` | Location of the TrustStore file used for Quorum protocol | `/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks` |
|
||||
| `tls.quorum.passwordsSecretName` | Existing secret containing Keystore and truststore passwords | `""` |
|
||||
| `tls.quorum.keystorePassword` | Password to access KeyStore if needed | `""` |
|
||||
| `tls.quorum.truststorePassword` | Password to access TrustStore if needed | `""` |
|
||||
| `tls.resources.limits` | The resources limits for the TLS init container | `{}` |
|
||||
| `tls.resources.requests` | The requested resources for the TLS init container | `{}` |
|
||||
| Name | Description | Value |
|
||||
| -------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
||||
| `tls.client.enabled` | Enable TLS for client connections | `false` |
|
||||
| `tls.client.autoGenerated` | Generate automatically self-signed TLS certificates for ZooKeeper client communications | `false` |
|
||||
| `tls.client.existingSecret` | Name of the existing secret containing the TLS certificates for ZooKeeper client communications | `""` |
|
||||
| `tls.client.keystorePath` | Location of the KeyStore file used for Client connections | `/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks` |
|
||||
| `tls.client.truststorePath` | Location of the TrustStore file used for Client connections | `/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks` |
|
||||
| `tls.client.passwordsSecretName` | Existing secret containing Keystore and truststore passwords | `""` |
|
||||
| `tls.client.keystorePassword` | Password to access KeyStore if needed | `""` |
|
||||
| `tls.client.truststorePassword` | Password to access TrustStore if needed | `""` |
|
||||
| `tls.quorum.enabled` | Enable TLS for quorum protocol | `false` |
|
||||
| `tls.quorum.autoGenerated` | Create self-signed TLS certificates. Currently only supports PEM certificates. | `false` |
|
||||
| `tls.quorum.existingSecret` | Name of the existing secret containing the TLS certificates for ZooKeeper quorum protocol | `""` |
|
||||
| `tls.quorum.keystorePath` | Location of the KeyStore file used for Quorum protocol | `/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks` |
|
||||
| `tls.quorum.truststorePath` | Location of the TrustStore file used for Quorum protocol | `/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks` |
|
||||
| `tls.quorum.passwordsSecretName` | Existing secret containing Keystore and truststore passwords | `""` |
|
||||
| `tls.quorum.keystorePassword` | Password to access KeyStore if needed | `""` |
|
||||
| `tls.quorum.truststorePassword` | Password to access TrustStore if needed | `""` |
|
||||
| `tls.resources.limits` | The resources limits for the TLS init container | `{}` |
|
||||
| `tls.resources.requests` | The requested resources for the TLS init container | `{}` |
|
||||
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
@@ -372,6 +405,18 @@ Find more information about how to deal with common errors related to Bitnami’
|
||||
|
||||
## Upgrading
|
||||
|
||||
### To 8.0.0
|
||||
|
||||
This major release renames several values in this chart and adds missing features, in order to be inline with the rest of assets in the Bitnami charts repository.
|
||||
|
||||
Affected values:
|
||||
|
||||
- `allowAnonymousLogin` is deprecated.
|
||||
- `containerPort`, `tlsContainerPort`, `followerContainerPort` and `electionContainerPort` have been regrouped under the `containerPorts` map.
|
||||
- `service.port`, `service.tlsClientPort`, `service.followerPort`, and `service.electionPort` have been regrouped under the `service.ports` map.
|
||||
- `updateStrategy` (string) and `rollingUpdatePartition` are regrouped under the `updateStrategy` map.
|
||||
- `podDisruptionBudget.*` parameters are renamed to `pdb.*`.
|
||||
|
||||
### To 7.0.0
|
||||
|
||||
This new version renames the parameters used to configure TLS for both client and quorum.
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Test values file for generating all of the yaml and check that
|
||||
# the rendering is correct
|
||||
replicaCount: 3
|
||||
auth:
|
||||
enabled: true
|
||||
clientUser: foo
|
||||
clientPassword: baz
|
||||
serverUsers: foo,bar
|
||||
serverPasswords: baz,qux
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
tls:
|
||||
client:
|
||||
enabled: true
|
||||
autoGenerated: true
|
||||
quorum:
|
||||
enabled: true
|
||||
autoGenerated: true
|
||||
@@ -41,7 +41,7 @@ In order to replicate the container startup scripts execute this command:
|
||||
|
||||
{{- else }}
|
||||
|
||||
ZooKeeper can be accessed via port {{ .Values.service.port }} on the following DNS name from within your cluster:
|
||||
ZooKeeper can be accessed via port {{ .Values.service.ports.client }} on the following DNS name from within your cluster:
|
||||
|
||||
{{ template "common.names.fullname" . }}.{{ template "zookeeper.namespace" . }}.svc.{{ .Values.clusterDomain }}
|
||||
|
||||
@@ -64,12 +64,12 @@ To connect to your ZooKeeper server from outside the cluster execute the followi
|
||||
Watch the status with: 'kubectl get svc --namespace {{ template "zookeeper.namespace" . }} -w {{ template "common.names.fullname" . }}'
|
||||
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ template "zookeeper.namespace" . }} {{ template "common.names.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}")
|
||||
zkCli.sh $SERVICE_IP:{{ .Values.service.port }}
|
||||
zkCli.sh $SERVICE_IP:{{ .Values.service.ports.client }}
|
||||
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
|
||||
kubectl port-forward --namespace {{ template "zookeeper.namespace" . }} svc/{{ template "common.names.fullname" . }} {{ .Values.service.port }}:{{ .Values.containerPort }} &
|
||||
zkCli.sh 127.0.0.1:{{ .Values.service.port }}
|
||||
kubectl port-forward --namespace {{ template "zookeeper.namespace" . }} svc/{{ template "common.names.fullname" . }} {{ .Values.service.ports.client }}:{{ .Values.containerPort }} &
|
||||
zkCli.sh 127.0.0.1:{{ .Values.service.ports.client }}
|
||||
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
|
||||
{{/*
|
||||
Return the proper Zookeeper image name
|
||||
Return the proper ZooKeeper image name
|
||||
*/}}
|
||||
{{- define "zookeeper.image" -}}
|
||||
{{ include "common.images.image" (dict "imageRoot" .Values.image "global" .Values.global) }}
|
||||
@@ -29,6 +29,17 @@ Check if there are rolling tags in the images
|
||||
{{- include "common.warnings.rollingTag" .Values.volumePermissions.image }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return ZooKeeper Namespace to use
|
||||
*/}}
|
||||
{{- define "zookeeper.namespace" -}}
|
||||
{{- if .Values.namespaceOverride -}}
|
||||
{{- .Values.namespaceOverride -}}
|
||||
{{- else -}}
|
||||
{{- .Release.Namespace -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
@@ -41,40 +52,92 @@ Check if there are rolling tags in the images
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return ZooKeeper Client Password
|
||||
Return the ZooKeeper authentication credentials secret
|
||||
*/}}
|
||||
{{- define "zookeeper.clientPassword" -}}
|
||||
{{- if .Values.auth.clientPassword -}}
|
||||
{{- define "zookeeper.secretName" -}}
|
||||
{{- if .Values.auth.existingSecret -}}
|
||||
{{- printf "%s" (tpl .Values.auth.existingSecret $) -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-auth" (include "common.names.fullname" .) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return true if a ZooKeeper authentication credentials secret object should be created
|
||||
*/}}
|
||||
{{- define "zookeeper.createSecret" -}}
|
||||
{{- if and .Values.auth.enabled (empty .Values.auth.existingSecret) -}}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Returns the available value for certain key in an existing secret (if it exists),
|
||||
otherwise it generates a random value.
|
||||
*/}}
|
||||
{{- define "getValueFromSecret" }}
|
||||
{{- $len := (default 16 .Length) | int -}}
|
||||
{{- $obj := (lookup "v1" "Secret" .Namespace .Name).data -}}
|
||||
{{- if $obj }}
|
||||
{{- index $obj .Key | b64dec -}}
|
||||
{{- else -}}
|
||||
{{- randAlphaNum $len -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Return ZooKeeper client password
|
||||
*/}}
|
||||
{{- define "zookeeper.client.password" -}}
|
||||
{{- if not (empty .Values.auth.clientPassword) -}}
|
||||
{{- .Values.auth.clientPassword -}}
|
||||
{{- else -}}
|
||||
{{- randAlphaNum 10 -}}
|
||||
{{- include "getValueFromSecret" (dict "Namespace" (include "zookeeper.namespace" .) "Name" (printf "%s-auth" (include "common.names.fullname" .)) "Length" 10 "Key" "client-password") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return ZooKeeper Servers Passwords
|
||||
Return ZooKeeper server password
|
||||
*/}}
|
||||
{{- define "zookeeper.serverPasswords" -}}
|
||||
{{- if .Values.auth.serverPasswords -}}
|
||||
{{- define "zookeeper.server.password" -}}
|
||||
{{- if not (empty .Values.auth.serverPasswords) -}}
|
||||
{{- .Values.auth.serverPasswords -}}
|
||||
{{- else -}}
|
||||
{{- randAlphaNum 10 -}}
|
||||
{{- include "getValueFromSecret" (dict "Namespace" (include "zookeeper.namespace" .) "Name" (printf "%s-auth" (include "common.names.fullname" .)) "Length" 10 "Key" "server-password") -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return ZooKeeper Namespace to use
|
||||
Return the ZooKeeper configuration ConfigMap name
|
||||
*/}}
|
||||
{{- define "zookeeper.namespace" -}}
|
||||
{{- if .Values.namespaceOverride }}
|
||||
{{- .Values.namespaceOverride -}}
|
||||
{{- else }}
|
||||
{{- .Release.Namespace -}}
|
||||
{{- end }}
|
||||
{{- define "zookeeper.configmapName" -}}
|
||||
{{- if .Values.existingConfigmap -}}
|
||||
{{- printf "%s" (tpl .Values.existingConfigmap $) -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s" (include "common.names.fullname" .) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the secret containing Zookeeper quorum TLS certificates
|
||||
Return true if a ConfigMap object should be created for ZooKeeper configuration
|
||||
*/}}
|
||||
{{- define "zookeeper.createConfigmap" -}}
|
||||
{{- if and .Values.configuration (not .Values.existingConfigmap) }}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return true if a TLS secret should be created for ZooKeeper quorum
|
||||
*/}}
|
||||
{{- define "zookeeper.quorum.createTlsSecret" -}}
|
||||
{{- if and .Values.tls.quorum.enabled .Values.tls.quorum.autoGenerated (not .Values.tls.quorum.existingSecret) }}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the secret containing ZooKeeper quorum TLS certificates
|
||||
*/}}
|
||||
{{- define "zookeeper.quorum.tlsSecretName" -}}
|
||||
{{- $secretName := .Values.tls.quorum.existingSecret -}}
|
||||
@@ -86,16 +149,16 @@ Return the secret containing Zookeeper quorum TLS certificates
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return true if a TLS secret object should be created
|
||||
Return true if a secret containing the Keystore and Truststore password should be created for ZooKeeper quorum
|
||||
*/}}
|
||||
{{- define "zookeeper.quorum.createTlsSecret" -}}
|
||||
{{- if and .Values.tls.quorum.enabled .Values.tls.quorum.autoGenerated (not .Values.tls.quorum.existingSecret) }}
|
||||
{{- define "zookeeper.quorum.createTlsPasswordsSecret" -}}
|
||||
{{- if and .Values.tls.quorum.enabled (not .Values.tls.quorum.passwordsSecretName) }}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the name of the secret containing the Keystore and truststore password
|
||||
Return the name of the secret containing the Keystore and Truststore password
|
||||
*/}}
|
||||
{{- define "zookeeper.quorum.tlsPasswordsSecret" -}}
|
||||
{{- $secretName := .Values.tls.quorum.passwordsSecretName -}}
|
||||
@@ -107,7 +170,16 @@ Return the name of the secret containing the Keystore and truststore password
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the secret containing Zookeper client TLS certificates
|
||||
Return true if a TLS secret should be created for ZooKeeper client
|
||||
*/}}
|
||||
{{- define "zookeeper.client.createTlsSecret" -}}
|
||||
{{- if and .Values.tls.client.enabled .Values.tls.client.autoGenerated (not .Values.tls.client.existingSecret) }}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the secret containing ZooKeeper client TLS certificates
|
||||
*/}}
|
||||
{{- define "zookeeper.client.tlsSecretName" -}}
|
||||
{{- $secretName := .Values.tls.client.existingSecret -}}
|
||||
@@ -119,16 +191,16 @@ Return the secret containing Zookeper client TLS certificates
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return true if a TLS secret object should be created
|
||||
Return true if a secret containing the Keystore and Truststore password should be created for ZooKeeper client
|
||||
*/}}
|
||||
{{- define "zookeeper.client.createTlsSecret" -}}
|
||||
{{- if and .Values.tls.client.enabled .Values.tls.client.autoGenerated (not .Values.tls.client.existingSecret) }}
|
||||
{{- define "zookeeper.client.createTlsPasswordsSecret" -}}
|
||||
{{- if and .Values.tls.client.enabled (not .Values.tls.client.passwordsSecretName) }}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the name of the secret containing the Keystore and truststore password
|
||||
Return the name of the secret containing the Keystore and Truststore password
|
||||
*/}}
|
||||
{{- define "zookeeper.client.tlsPasswordsSecret" -}}
|
||||
{{- $secretName := .Values.tls.client.passwordsSecretName -}}
|
||||
@@ -144,6 +216,7 @@ Compile all warnings into a single message.
|
||||
*/}}
|
||||
{{- define "zookeeper.validateValues" -}}
|
||||
{{- $messages := list -}}
|
||||
{{- $messages := append $messages (include "zookeeper.validateValues.auth" .) -}}
|
||||
{{- $messages := append $messages (include "zookeeper.validateValues.client.tls" .) -}}
|
||||
{{- $messages := append $messages (include "zookeeper.validateValues.quorum.tls" .) -}}
|
||||
{{- $messages := without $messages "" -}}
|
||||
@@ -154,7 +227,20 @@ Compile all warnings into a single message.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate values of Zookeeper - Client TLS enabled */}}
|
||||
{{/*
|
||||
Validate values of ZooKeeper - Authentication enabled
|
||||
*/}}
|
||||
{{- define "zookeeper.validateValues.auth" -}}
|
||||
{{- if and .Values.auth.enabled (or (not .Values.auth.clientUser) (not .Values.auth.serverUsers)) }}
|
||||
zookeeper: auth.enabled
|
||||
In order to enable authentication, you need to provide the list
|
||||
of users to be created and the user to use for clients access.
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Validate values of ZooKeeper - Client TLS enabled
|
||||
*/}}
|
||||
{{- define "zookeeper.validateValues.client.tls" -}}
|
||||
{{- if and .Values.tls.client.enabled (not .Values.tls.client.autoGenerated) (not .Values.tls.client.existingSecret) }}
|
||||
zookeeper: tls.client.enabled
|
||||
@@ -164,7 +250,9 @@ zookeeper: tls.client.enabled
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Validate values of Zookeeper - Quorum TLS enabled */}}
|
||||
{{/*
|
||||
Validate values of ZooKeeper - Quorum TLS enabled
|
||||
*/}}
|
||||
{{- define "zookeeper.validateValues.quorum.tls" -}}
|
||||
{{- if and .Values.tls.quorum.enabled (not .Values.tls.quorum.autoGenerated) (not .Values.tls.quorum.existingSecret) }}
|
||||
zookeeper: tls.quorum.enabled
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{- if .Values.config }}
|
||||
{{- if (include "zookeeper.createConfigmap" .) }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
@@ -13,5 +13,5 @@ metadata:
|
||||
{{- end }}
|
||||
data:
|
||||
zoo.cfg: |-
|
||||
{{ .Values.config | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.configuration "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -5,14 +5,14 @@ metadata:
|
||||
name: {{ template "common.names.fullname" . }}-metrics
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.metrics.service.annotations .Values.commonAnnotations }}
|
||||
annotations:
|
||||
{{- if .Values.metrics.service.annotations }}
|
||||
{{ include "common.tplvalues.render" ( dict "value" .Values.metrics.service.annotations "context" $) | nindent 4 }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.service.annotations "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{{- if .Values.networkPolicy.enabled }}
|
||||
kind: NetworkPolicy
|
||||
apiVersion: networking.k8s.io/v1
|
||||
apiVersion: {{ include "common.capabilities.networkPolicy.apiVersion" . }}
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
@@ -17,9 +17,9 @@ spec:
|
||||
policyTypes:
|
||||
- Ingress
|
||||
ingress:
|
||||
# Allow inbound connections to zookeeper
|
||||
# Allow inbound connections to ZooKeeper
|
||||
- ports:
|
||||
- port: {{ .Values.containerPort }}
|
||||
- port: {{ .Values.containerPorts.client }}
|
||||
{{- if .Values.metrics.enabled }}
|
||||
- port: {{ .Values.metrics.containerPort }}
|
||||
{{- end }}
|
||||
@@ -33,8 +33,8 @@ spec:
|
||||
{{- end }}
|
||||
# Allow internal communications between nodes
|
||||
- ports:
|
||||
- port: {{ .Values.service.followerPort }}
|
||||
- port: {{ .Values.service.electionPort }}
|
||||
- port: {{ .Values.containerPorts.follower }}
|
||||
- port: {{ .Values.containerPorts.election }}
|
||||
from:
|
||||
- podSelector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 14 }}
|
||||
|
||||
+7
-2
@@ -1,5 +1,5 @@
|
||||
{{- $replicaCount := int .Values.replicaCount }}
|
||||
{{- if gt $replicaCount 1 }}
|
||||
{{- if and .Values.pdb.create (gt $replicaCount 1) }}
|
||||
apiVersion: {{ include "common.capabilities.policy.apiVersion" . }}
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
@@ -14,8 +14,13 @@ metadata:
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.pdb.minAvailable }}
|
||||
minAvailable: {{ .Values.pdb.minAvailable }}
|
||||
{{- end }}
|
||||
{{- if .Values.pdb.maxUnavailable }}
|
||||
maxUnavailable: {{ .Values.pdb.maxUnavailable }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
{{- toYaml .Values.podDisruptionBudget | nindent 2 }}
|
||||
{{- end }}
|
||||
+6
-6
@@ -9,19 +9,19 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
{{- range $key, $value := .Values.metrics.prometheusRule.selector }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.prometheusRule.additionalLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.prometheusRule.additionalLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
groups:
|
||||
- name: {{ include "common.names.fullname" . }}
|
||||
rules: {{- toYaml .Values.metrics.prometheusRule.rules | nindent 6 }}
|
||||
- name: {{ include "common.names.fullname" . }}
|
||||
rules: {{- toYaml .Values.metrics.prometheusRule.rules | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ printf "%s-scripts" (include "common.names.fullname" .) }}
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
data:
|
||||
init-certs.sh: |-
|
||||
#!/bin/bash
|
||||
|
||||
{{- if .Values.tls.client.enabled }}
|
||||
{{- if .Values.tls.client.autoGenerated }}
|
||||
if [[ -f "/certs/client/tls.key" ]] && [[ -f "/certs/client/tls.crt" ]] && [[ -f "/certs/client/ca.crt" ]]; then
|
||||
openssl pkcs12 -export -in "/certs/client/tls.crt" \
|
||||
-passout pass:"${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-inkey "/certs/client/tls.key" \
|
||||
-out "/tmp/keystore.p12"
|
||||
keytool -importkeystore -srckeystore "/tmp/keystore.p12" \
|
||||
-srcstoretype PKCS12 \
|
||||
-srcstorepass "${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-deststorepass "${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-destkeystore "/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks"
|
||||
rm "/tmp/keystore.p12"
|
||||
keytool -import -file "/certs/client/ca.crt" \
|
||||
-keystore "/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks" \
|
||||
-storepass "${ZOO_TLS_CLIENT_TRUSTSTORE_PASSWORD}" \
|
||||
-noprompt
|
||||
else
|
||||
echo "Couldn't find the expected PEM certificates! They are mandatory when Client encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- else }}
|
||||
if [[ -f "/certs/client/zookeeper.truststore.jks" ]] && [[ -f "/certs/client/zookeeper.keystore.jks" ]]; then
|
||||
cp "/certs/client/zookeeper.truststore.jks" "/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks"
|
||||
cp "/certs/client/zookeeper.keystore.jks" "/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks"
|
||||
else
|
||||
echo "Couldn't find the expected Java Key Stores (JKS) files! They are mandatory when Client encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.tls.quorum.enabled }}
|
||||
{{- if .Values.tls.quorum.autoGenerated }}
|
||||
if [[ -f "/certs/quorum/tls.key" ]] && [[ -f "/certs/quorum/tls.crt" ]] && [[ -f "/certs/quorum/ca.crt" ]]; then
|
||||
openssl pkcs12 -export -in "/certs/quorum/tls.crt" \
|
||||
-passout pass:"${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-inkey "/certs/quorum/tls.key" \
|
||||
-out "/tmp/keystore.p12"
|
||||
keytool -importkeystore -srckeystore "/tmp/keystore.p12" \
|
||||
-srcstoretype PKCS12 \
|
||||
-srcstorepass "${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-deststorepass "${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-destkeystore "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks"
|
||||
rm "/tmp/keystore.p12"
|
||||
keytool -import -file "/certs/quorum/ca.crt" \
|
||||
-keystore "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks" \
|
||||
-storepass "${ZOO_TLS_QUORUM_TRUSTSTORE_PASSWORD}" \
|
||||
-noprompt
|
||||
else
|
||||
echo "Couldn't find the expected PEM certificates! They are mandatory when encryption Quorum via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- else }}
|
||||
if [[ -f "/certs/quorum/zookeeper.truststore.jks" ]] && [[ -f "/certs/quorum/zookeeper.keystore.jks" ]]; then
|
||||
cp "/certs/quorum/zookeeper.truststore.jks" "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks"
|
||||
cp "/certs/quorum/zookeeper.keystore.jks" "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks"
|
||||
else
|
||||
echo "Couldn't find the expected Java Key Stores (JKS) files! They are mandatory when Quorum encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
setup.sh: |-
|
||||
#!/bin/bash
|
||||
|
||||
# Execute entrypoint as usual after obtaining ZOO_SERVER_ID
|
||||
# check ZOO_SERVER_ID in persistent volume via myid
|
||||
# if not present, set based on POD hostname
|
||||
if [[ -f "/bitnami/zookeeper/data/myid" ]]; then
|
||||
export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)"
|
||||
else
|
||||
HOSTNAME="$(hostname -s)"
|
||||
if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then
|
||||
ORD=${BASH_REMATCH[2]}
|
||||
export ZOO_SERVER_ID="$((ORD + {{ .Values.minServerId }} ))"
|
||||
else
|
||||
echo "Failed to get index from hostname $HOST"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
exec /entrypoint.sh /run.sh
|
||||
@@ -1,10 +1,11 @@
|
||||
{{- if and .Values.auth.enabled (not .Values.auth.existingSecret) -}}
|
||||
{{- if (include "zookeeper.createSecret" .) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
name: {{ printf "%s-auth" (include "common.names.fullname" .) }}
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -13,11 +14,11 @@ metadata:
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
client-password: {{ include "zookeeper.clientPassword" . | b64enc | quote }}
|
||||
server-password: {{ include "zookeeper.serverPasswords" . | b64enc | quote }}
|
||||
client-password: {{ include "zookeeper.client.password" . | b64enc | quote }}
|
||||
server-password: {{ include "zookeeper.server.password" . | b64enc | quote }}
|
||||
---
|
||||
{{- end }}
|
||||
{{- if and .Values.tls.client.enabled (not .Values.tls.client.existingSecret) (or .Values.tls.client.keystorePassword .Values.tls.client.truststorePassword .Values.tls.client.autoGenerated) -}}
|
||||
{{- if (include "zookeeper.client.createTlsPasswordsSecret" .) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
@@ -32,15 +33,11 @@ metadata:
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- if or .Values.tls.client.keystorePassword .Values.tls.client.autoGenerated }}
|
||||
keystore-password: {{ (.Values.tls.client.keystorePassword | default (randAlphaNum 10)) | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.client.truststorePassword .Values.tls.client.autoGenerated }}
|
||||
truststore-password: {{ (.Values.tls.client.truststorePassword | default (randAlphaNum 10))| b64enc | quote }}
|
||||
{{- end }}
|
||||
keystore-password: {{ default (randAlphaNum 10) .Values.tls.client.keystorePassword | b64enc | quote }}
|
||||
truststore-password: {{ default (randAlphaNum 10) .Values.tls.client.truststorePassword | b64enc | quote }}
|
||||
---
|
||||
{{- end }}
|
||||
{{- if and .Values.tls.quorum.enabled (not .Values.tls.quorum.existingSecret) (or .Values.tls.quorum.keystorePassword .Values.tls.quorum.truststorePassword .Values.tls.quorum.autoGenerated) -}}
|
||||
{{- if (include "zookeeper.quorum.createTlsPasswordsSecret" .) }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
@@ -55,11 +52,7 @@ metadata:
|
||||
{{- end }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- if or .Values.tls.quorum.keystorePassword .Values.tls.quorum.autoGenerated }}
|
||||
keystore-password: {{ (.Values.tls.quorum.keystorePassword | default (randAlphaNum 10)) | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.quorum.truststorePassword .Values.tls.quorum.autoGenerated }}
|
||||
truststore-password: {{ (.Values.tls.quorum.truststorePassword | default (randAlphaNum 10))| b64enc | quote }}
|
||||
{{- end }}
|
||||
keystore-password: {{ default (randAlphaNum 10) .Values.tls.quorum.keystorePassword | b64enc | quote }}
|
||||
truststore-password: {{ default (randAlphaNum 10) .Values.tls.quorum.truststorePassword | b64enc | quote }}
|
||||
---
|
||||
{{- end }}
|
||||
|
||||
@@ -5,12 +5,17 @@ metadata:
|
||||
name: {{ template "zookeeper.serviceAccountName" . }}
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
role: zookeeper
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.commonAnnotations }}
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- if .Values.commonAnnotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceAccount.annotations }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.serviceAccount.annotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
|
||||
@@ -9,7 +9,7 @@ metadata:
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- end }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
app.kubernetes.io/component: metrics
|
||||
{{- if .Values.metrics.serviceMonitor.additionalLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.additionalLabels "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
@@ -20,12 +20,15 @@ metadata:
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.metrics.serviceMonitor.jobLabel }}
|
||||
jobLabel: {{ .Values.metrics.serviceMonitor.jobLabel }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||
{{- if .Values.metrics.serviceMonitor.selector }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.metrics.serviceMonitor.selector "context" $) | nindent 6 }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
app.kubernetes.io/component: metrics
|
||||
endpoints:
|
||||
- port: tcp-metrics
|
||||
path: "/metrics"
|
||||
@@ -40,7 +43,10 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.metricRelabelings }}
|
||||
metricRelabelings: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.serviceMonitor.metricRelabelings "context" $) | nindent 6 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.metrics.serviceMonitor.honorLabels }}
|
||||
honorLabels: {{ .Values.metrics.serviceMonitor.honorLabels }}
|
||||
{{- end }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ template "zookeeper.namespace" . }}
|
||||
|
||||
@@ -13,49 +13,38 @@ metadata:
|
||||
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceName: {{ template "common.names.fullname" . }}-headless
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
podManagementPolicy: {{ .Values.podManagementPolicy }}
|
||||
updateStrategy:
|
||||
type: {{ .Values.updateStrategy }}
|
||||
{{- if (eq "Recreate" .Values.updateStrategy) }}
|
||||
rollingUpdate: null
|
||||
{{- else if .Values.rollingUpdatePartition }}
|
||||
rollingUpdate:
|
||||
partition: {{ .Values.rollingUpdatePartition }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
serviceName: {{ printf "%s-headless" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }}
|
||||
{{- if .Values.updateStrategy }}
|
||||
updateStrategy: {{- toYaml .Values.updateStrategy | nindent 4 }}
|
||||
{{- end }}
|
||||
template:
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
annotations:
|
||||
{{- if .Values.podAnnotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if (include "zookeeper.createConfigmap" .) }}
|
||||
checksum/configuration: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if or (include "zookeeper.createSecret" .) (include "zookeeper.client.createTlsPasswordsSecret" .) (include "zookeeper.quorum.createTlsPasswordsSecret" .) }}
|
||||
checksum/secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if or (include "zookeeper.client.createTlsSecret" .) (include "zookeeper.quorum.createTlsSecret" .) }}
|
||||
checksum/tls-secrets: {{ include (print $.Template.BasePath "/tls-secrets.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 8 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
{{- if .Values.podLabels }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.podAnnotations (include "zookeeper.client.createTlsSecret" .) (include "zookeeper.quorum.createTlsSecret" .) }}
|
||||
annotations:
|
||||
{{- if (include "zookeeper.client.createTlsSecret" .) }}
|
||||
checksum/tls-client: {{ include (print $.Template.BasePath "/tls-secret.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if (include "zookeeper.quorum.createTlsSecret" .) }}
|
||||
checksum/tls-quorum: {{ include (print $.Template.BasePath "/tls-secret.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
{{- if .Values.podAnnotations }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.schedulerName }}
|
||||
schedulerName: {{ .Values.schedulerName }}
|
||||
{{- end }}
|
||||
{{- include "zookeeper.imagePullSecrets" . | nindent 6 }}
|
||||
serviceAccountName: {{ template "zookeeper.serviceAccountName" . }}
|
||||
{{- if .Values.podSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- include "zookeeper.imagePullSecrets" . | nindent 6 }}
|
||||
{{- if .Values.hostAliases }}
|
||||
hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -79,26 +68,31 @@ spec:
|
||||
{{- if .Values.priorityClassName }}
|
||||
priorityClassName: {{ .Values.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- if or .Values.initContainers (and .Values.volumePermissions.enabled .Values.persistence.enabled) (or .Values.tls.client.enabled .Values.tls.quorum.enabled) }}
|
||||
{{- if .Values.schedulerName }}
|
||||
schedulerName: {{ .Values.schedulerName }}
|
||||
{{- end }}
|
||||
{{- if .Values.podSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }}
|
||||
{{- end }}
|
||||
initContainers:
|
||||
{{- if .Values.initContainers }}
|
||||
{{ include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | trim | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }}
|
||||
- name: volume-permissions
|
||||
image: {{ template "zookeeper.volumePermissions.image" . }}
|
||||
imagePullPolicy: {{ default "" .Values.volumePermissions.image.pullPolicy | quote }}
|
||||
command:
|
||||
- chown
|
||||
- /bin/bash
|
||||
args:
|
||||
- -R
|
||||
- {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }}
|
||||
- /bitnami/zookeeper
|
||||
{{- if .Values.dataLogDir }}
|
||||
- {{ .Values.dataLogDir }}
|
||||
{{- end }}
|
||||
securityContext:
|
||||
runAsUser: {{- .Values.volumePermissions.containerSecurityContext | toYaml | nindent 12 }}
|
||||
- -ec
|
||||
- |
|
||||
mkdir -p /bitnami/zookeeper
|
||||
find /bitnami/zookeeper -mindepth 1 -maxdepth 1 -not -name ".snapshot" -not -name "lost+found" | xargs chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }}
|
||||
{{- if .Values.dataLogDir }}
|
||||
mkdir -p {{ .Values.dataLogDir }}
|
||||
find {{ .Values.dataLogDir }} -mindepth 1 -maxdepth 1 -not -name ".snapshot" -not -name "lost+found" | xargs chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }}
|
||||
{{- end }}
|
||||
{{- if .Values.volumePermissions.containerSecurityContext.enabled }}
|
||||
securityContext: {{- omit .Values.volumePermissions.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.volumePermissions.resources }}
|
||||
resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
@@ -115,103 +109,34 @@ spec:
|
||||
image: {{ include "zookeeper.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
|
||||
{{- if .Values.containerSecurityContext.enabled }}
|
||||
securityContext:
|
||||
runAsUser: {{ .Values.containerSecurityContext.runAsUser }}
|
||||
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||
{{- end }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |-
|
||||
{{- if .Values.tls.client.enabled }}
|
||||
{{- if .Values.tls.client.autoGenerated }}
|
||||
if [[ -f "/certs/client/tls.key" ]] && [[ -f "/certs/client/tls.crt" ]] && [[ -f "/certs/client/ca.crt" ]]; then
|
||||
openssl pkcs12 -export -in "/certs/client/tls.crt" \
|
||||
-passout pass:"${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-inkey "/certs/client/tls.key" \
|
||||
-out "/tmp/keystore.p12"
|
||||
keytool -importkeystore -srckeystore "/tmp/keystore.p12" \
|
||||
-srcstoretype PKCS12 \
|
||||
-srcstorepass "${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-deststorepass "${ZOO_TLS_CLIENT_KEYSTORE_PASSWORD}" \
|
||||
-destkeystore "/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks"
|
||||
rm "/tmp/keystore.p12"
|
||||
keytool -import -file "/certs/client/ca.crt" \
|
||||
-keystore "/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks" \
|
||||
-storepass "${ZOO_TLS_CLIENT_TRUSTSTORE_PASSWORD}" \
|
||||
-noprompt
|
||||
else
|
||||
echo "Couldn't find the expected PEM certificates! They are mandatory when Client encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- else }}
|
||||
if [[ -f "/certs/client/zookeeper.truststore.jks" ]] && [[ -f "/certs/client/zookeeper.keystore.jks" ]]; then
|
||||
cp "/certs/client/zookeeper.truststore.jks" "/opt/bitnami/zookeeper/config/certs/client/zookeeper.truststore.jks"
|
||||
cp "/certs/client/zookeeper.keystore.jks" "/opt/bitnami/zookeeper/config/certs/client/zookeeper.keystore.jks"
|
||||
else
|
||||
echo "Couldn't find the expected Java Key Stores (JKS) files! They are mandatory when Client encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.tls.quorum.enabled }}
|
||||
{{- if .Values.tls.quorum.autoGenerated }}
|
||||
if [[ -f "/certs/quorum/tls.key" ]] && [[ -f "/certs/quorum/tls.crt" ]] && [[ -f "/certs/quorum/ca.crt" ]]; then
|
||||
openssl pkcs12 -export -in "/certs/quorum/tls.crt" \
|
||||
-passout pass:"${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-inkey "/certs/quorum/tls.key" \
|
||||
-out "/tmp/keystore.p12"
|
||||
keytool -importkeystore -srckeystore "/tmp/keystore.p12" \
|
||||
-srcstoretype PKCS12 \
|
||||
-srcstorepass "${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-deststorepass "${ZOO_TLS_QUORUM_KEYSTORE_PASSWORD}" \
|
||||
-destkeystore "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks"
|
||||
rm "/tmp/keystore.p12"
|
||||
keytool -import -file "/certs/quorum/ca.crt" \
|
||||
-keystore "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks" \
|
||||
-storepass "${ZOO_TLS_QUORUM_TRUSTSTORE_PASSWORD}" \
|
||||
-noprompt
|
||||
else
|
||||
echo "Couldn't find the expected PEM certificates! They are mandatory when encryption Quorum via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- else }}
|
||||
if [[ -f "/certs/quorum/zookeeper.truststore.jks" ]] && [[ -f "/certs/quorum/zookeeper.keystore.jks" ]]; then
|
||||
cp "/certs/quorum/zookeeper.truststore.jks" "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.truststore.jks"
|
||||
cp "/certs/quorum/zookeeper.keystore.jks" "/opt/bitnami/zookeeper/config/certs/quorum/zookeeper.keystore.jks"
|
||||
else
|
||||
echo "Couldn't find the expected Java Key Stores (JKS) files! They are mandatory when Quorum encryption via TLS is enabled."
|
||||
exit 1
|
||||
fi
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
- /scripts/init-certs.sh
|
||||
env:
|
||||
- name: MY_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.name
|
||||
{{- if or .Values.tls.client.keystorePassword .Values.tls.client.passwordsSecretName .Values.tls.client.autoGenerated }}
|
||||
{{- if or .Values.tls.client.passwordsSecretName (include "zookeeper.client.createTlsPasswordsSecret" .) }}
|
||||
- name: ZOO_TLS_CLIENT_KEYSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zookeeper.client.tlsPasswordsSecret" . }}
|
||||
key: "keystore-password"
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.client.truststorePassword .Values.tls.client.passwordsSecretName .Values.tls.client.autoGenerated }}
|
||||
- name: ZOO_TLS_CLIENT_TRUSTSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zookeeper.client.tlsPasswordsSecret" . }}
|
||||
key: "truststore-password"
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.quorum.keystorePassword .Values.tls.quorum.passwordsSecretName .Values.tls.quorum.autoGenerated }}
|
||||
{{- if or .Values.tls.quorum.passwordsSecretName (include "zookeeper.quorum.createTlsPasswordsSecret" .) }}
|
||||
- name: ZOO_TLS_QUORUM_KEYSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zookeeper.quorum.tlsPasswordsSecret" . }}
|
||||
key: "keystore-password"
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.quorum.truststorePassword .Values.tls.quorum.passwordsSecretName .Values.tls.quorum.autoGenerated }}
|
||||
- name: ZOO_TLS_QUORUM_TRUSTSTORE_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
@@ -222,20 +147,25 @@ spec:
|
||||
resources: {{- toYaml .Values.tls.resources | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if or .Values.tls.client.enabled }}
|
||||
- name: client-certificates
|
||||
mountPath: /certs/client
|
||||
- name: client-shared-certs
|
||||
mountPath: /opt/bitnami/zookeeper/config/certs/client
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.quorum.enabled }}
|
||||
- name: quorum-certificates
|
||||
mountPath: /certs/quorum
|
||||
- name: quorum-shared-certs
|
||||
mountPath: /opt/bitnami/zookeeper/config/certs/quorum
|
||||
{{- end }}
|
||||
- name: scripts
|
||||
mountPath: /scripts/init-certs.sh
|
||||
subPath: init-certs.sh
|
||||
{{- if or .Values.tls.client.enabled }}
|
||||
- name: client-certificates
|
||||
mountPath: /certs/client
|
||||
- name: client-shared-certs
|
||||
mountPath: /opt/bitnami/zookeeper/config/certs/client
|
||||
{{- end }}
|
||||
{{- if or .Values.tls.quorum.enabled }}
|
||||
- name: quorum-certificates
|
||||
mountPath: /certs/quorum
|
||||
- name: quorum-shared-certs
|
||||
mountPath: /opt/bitnami/zookeeper/config/certs/quorum
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.initContainers }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | trim | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: zookeeper
|
||||
image: {{ template "zookeeper.image" . }}
|
||||
@@ -245,28 +175,13 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.diagnosticMode.enabled }}
|
||||
command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }}
|
||||
{{- else if .Values.command }}
|
||||
command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.diagnosticMode.enabled }}
|
||||
args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }}
|
||||
{{- else }}
|
||||
command:
|
||||
- bash
|
||||
- -ec
|
||||
- |
|
||||
# Execute entrypoint as usual after obtaining ZOO_SERVER_ID
|
||||
# check ZOO_SERVER_ID in persistent volume via myid
|
||||
# if not present, set based on POD hostname
|
||||
if [[ -f "/bitnami/zookeeper/data/myid" ]]; then
|
||||
export ZOO_SERVER_ID="$(cat /bitnami/zookeeper/data/myid)"
|
||||
else
|
||||
HOSTNAME=`hostname -s`
|
||||
if [[ $HOSTNAME =~ (.*)-([0-9]+)$ ]]; then
|
||||
ORD=${BASH_REMATCH[2]}
|
||||
export ZOO_SERVER_ID=$((ORD + {{ .Values.minServerId }} ))
|
||||
else
|
||||
echo "Failed to get index from hostname $HOST"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
exec /entrypoint.sh /run.sh
|
||||
{{- else if .Values.args }}
|
||||
args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.resources }}
|
||||
resources: {{- toYaml .Values.resources | nindent 12 }}
|
||||
@@ -277,7 +192,7 @@ spec:
|
||||
- name: ZOO_DATA_LOG_DIR
|
||||
value: {{ .Values.dataLogDir | quote }}
|
||||
- name: ZOO_PORT_NUMBER
|
||||
value: {{ .Values.containerPort | quote }}
|
||||
value: {{ .Values.containerPorts.client | quote }}
|
||||
- name: ZOO_TICK_TIME
|
||||
value: {{ .Values.tickTime | quote }}
|
||||
- name: ZOO_INIT_LIMIT
|
||||
@@ -303,8 +218,8 @@ spec:
|
||||
- name: ZOO_SERVERS
|
||||
{{- $replicaCount := int .Values.replicaCount }}
|
||||
{{- $minServerId := int .Values.minServerId }}
|
||||
{{- $followerPort := int .Values.followerContainerPort }}
|
||||
{{- $electionPort := int .Values.electionContainerPort }}
|
||||
{{- $followerPort := int .Values.containerPorts.follower }}
|
||||
{{- $electionPort := int .Values.containerPorts.election }}
|
||||
{{- $releaseNamespace := include "zookeeper.namespace" . }}
|
||||
{{- $zookeeperFullname := include "common.names.fullname" . }}
|
||||
{{- $zookeeperHeadlessServiceName := printf "%s-%s" $zookeeperFullname "headless" | trunc 63 }}
|
||||
@@ -318,14 +233,14 @@ spec:
|
||||
- name: ZOO_CLIENT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.auth.existingSecret }}{{ .Values.auth.existingSecret }}{{ else }}{{ template "common.names.fullname" . }}{{ end }}
|
||||
name: {{ include "zookeeper.secretName" . }}
|
||||
key: client-password
|
||||
- name: ZOO_SERVER_USERS
|
||||
value: {{ .Values.auth.serverUsers | quote }}
|
||||
- name: ZOO_SERVER_PASSWORDS
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.auth.existingSecret }}{{ .Values.auth.existingSecret }}{{ else }}{{ template "common.names.fullname" . }}{{ end }}
|
||||
name: {{ include "zookeeper.secretName" . }}
|
||||
key: server-password
|
||||
{{- end }}
|
||||
- name: ZOO_HEAP_SIZE
|
||||
@@ -337,7 +252,7 @@ spec:
|
||||
- name: ZOO_LOG_LEVEL
|
||||
value: {{ .Values.logLevel | quote }}
|
||||
- name: ALLOW_ANONYMOUS_LOGIN
|
||||
value: {{ ternary "yes" "no" .Values.allowAnonymousLogin | quote }}
|
||||
value: {{ ternary "no" "yes" .Values.auth.enabled | quote }}
|
||||
{{- if .Values.jvmFlags }}
|
||||
- name: JVMFLAGS
|
||||
value: {{ .Values.jvmFlags | quote }}
|
||||
@@ -398,75 +313,89 @@ spec:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.name
|
||||
{{- if .Values.extraEnvVars }}
|
||||
{{- toYaml .Values.extraEnvVars | nindent 12 }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if or .Values.extraEnvVarsCM .Values.extraEnvVarsSecret }}
|
||||
envFrom:
|
||||
{{- if .Values.extraEnvVarsCM }}
|
||||
- configMapRef:
|
||||
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsCM "context" $) }}
|
||||
{{- end }}
|
||||
{{- if .Values.extraEnvVarsSecret }}
|
||||
- secretRef:
|
||||
name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsSecret "context" $) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
- name: client
|
||||
containerPort: {{ .Values.containerPort }}
|
||||
containerPort: {{ .Values.containerPorts.client }}
|
||||
{{- end }}
|
||||
{{- if .Values.tls.client.enabled }}
|
||||
- name: client-tls
|
||||
containerPort: {{ .Values.tlsContainerPort }}
|
||||
containerPort: {{ .Values.containerPorts.tls }}
|
||||
{{- end }}
|
||||
- name: follower
|
||||
containerPort: {{ .Values.followerContainerPort }}
|
||||
containerPort: {{ .Values.containerPorts.follower }}
|
||||
- name: election
|
||||
containerPort: {{ .Values.electionContainerPort }}
|
||||
containerPort: {{ .Values.containerPorts.election }}
|
||||
{{- if .Values.metrics.enabled }}
|
||||
- name: metrics
|
||||
containerPort: {{ .Values.metrics.containerPort }}
|
||||
{{- end }}
|
||||
{{- if not .Values.diagnosticMode.enabled }}
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
livenessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.livenessProbe "enabled" "probeCommandTimeout") "context" $) | nindent 12 }}
|
||||
exec:
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} nc -w {{ .Values.livenessProbe.probeCommandTimeout }} localhost {{ .Values.containerPort }} | grep imok']
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} nc -w {{ .Values.livenessProbe.probeCommandTimeout }} localhost {{ .Values.containerPorts.client }} | grep imok']
|
||||
{{- else if not .Values.tls.client.enabled }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.containerPorts.tls }} | grep imok']
|
||||
{{- else }}
|
||||
{{- if not .Values.tls.client.enabled }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.tlsContainerPort }} | grep imok']
|
||||
{{- else }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.tlsContainerPort }} -cert {{ .Values.service.tls.client_cert_pem_path }} -key {{ .Values.service.tls.client_key_pem_path }} | grep imok']
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.livenessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.containerPorts.tls }} -cert {{ .Values.service.tls.client_cert_pem_path }} -key {{ .Values.service.tls.client_key_pem_path }} | grep imok']
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- else if .Values.customLivenessProbe }}
|
||||
livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
readinessProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.readinessProbe "enabled" "probeCommandTimeout") "context" $) | nindent 12 }}
|
||||
exec:
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} nc -w {{ .Values.readinessProbe.probeCommandTimeout }} localhost {{ .Values.containerPort }} | grep imok']
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} nc -w {{ .Values.readinessProbe.probeCommandTimeout }} localhost {{ .Values.containerPorts.client }} | grep imok']
|
||||
{{- else if not .Values.tls.client.enabled }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.containerPorts.tls }} | grep imok']
|
||||
{{- else }}
|
||||
{{- if not .Values.tls.client.enabled }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.tlsContainerPort }} | grep imok']
|
||||
{{- else }}
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.tlsContainerPort }} -cert {{ .Values.service.tls.client_cert_pem_path }} -key {{ .Values.service.tls.client_key_pem_path }} | grep imok']
|
||||
command: ['/bin/bash', '-c', 'echo "ruok" | timeout {{ .Values.readinessProbe.probeCommandTimeout }} openssl s_client -quiet -crlf -connect localhost:{{ .Values.containerPorts.tls }} -cert {{ .Values.service.tls.client_cert_pem_path }} -key {{ .Values.service.tls.client_key_pem_path }} | grep imok']
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- else if .Values.customReadinessProbe }}
|
||||
readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.startupProbe.enabled }}
|
||||
startupProbe: {{- include "common.tplvalues.render" (dict "value" (omit .Values.startupProbe "enabled") "context" $) | nindent 12 }}
|
||||
tcpSocket:
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
port: client
|
||||
{{- else }}
|
||||
port: follower
|
||||
{{- end }}
|
||||
{{- else if .Values.customStartupProbe }}
|
||||
startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.lifecycleHooks }}
|
||||
lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: scripts
|
||||
mountPath: /scripts/setup.sh
|
||||
subPath: setup.sh
|
||||
- name: data
|
||||
mountPath: /bitnami/zookeeper
|
||||
{{- if .Values.dataLogDir }}
|
||||
- name: data-log
|
||||
mountPath: {{ .Values.dataLogDir }}
|
||||
{{- end }}
|
||||
{{- if .Values.config }}
|
||||
{{- if or .Values.configuration .Values.existingConfigmap }}
|
||||
- name: config
|
||||
mountPath: /opt/bitnami/zookeeper/conf/zoo.cfg
|
||||
subPath: zoo.cfg
|
||||
@@ -488,10 +417,14 @@ spec:
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.sidecars "context" $ ) | nindent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Values.config }}
|
||||
- name: scripts
|
||||
configMap:
|
||||
name: {{ printf "%s-scripts" (include "common.names.fullname" .) }}
|
||||
defaultMode: 0755
|
||||
{{- if or .Values.configuration .Values.existingConfigmap }}
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
name: {{ include "zookeeper.configmapName" . }}
|
||||
{{- end }}
|
||||
{{- if and .Values.persistence.enabled .Values.persistence.existingClaim }}
|
||||
- name: data
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "common.names.fullname" . }}-headless
|
||||
name: {{ printf "%s-headless" (include "common.names.fullname" .) | trunc 63 | trimSuffix "-" }}
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
@@ -20,23 +20,23 @@ metadata:
|
||||
spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
publishNotReadyAddresses: {{ .Values.service.publishNotReadyAddresses }}
|
||||
publishNotReadyAddresses: {{ .Values.service.headless.publishNotReadyAddresses }}
|
||||
ports:
|
||||
{{ if not .Values.service.disableBaseClientPort }}
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
- name: tcp-client
|
||||
port: {{ .Values.service.port }}
|
||||
port: {{ .Values.service.ports.client }}
|
||||
targetPort: client
|
||||
{{ end }}
|
||||
{{ if .Values.tls.client.enabled }}
|
||||
{{- end }}
|
||||
{{- if .Values.tls.client.enabled }}
|
||||
- name: tcp-client-tls
|
||||
port: {{ .Values.service.tlsClientPort }}
|
||||
port: {{ .Values.service.ports.tls }}
|
||||
targetPort: client-tls
|
||||
{{ end }}
|
||||
- name: follower
|
||||
port: {{ .Values.service.followerPort }}
|
||||
{{- end }}
|
||||
- name: tcp-follower
|
||||
port: {{ .Values.service.ports.follower }}
|
||||
targetPort: follower
|
||||
- name: tcp-election
|
||||
port: {{ .Values.service.electionPort }}
|
||||
port: {{ .Values.service.ports.election }}
|
||||
targetPort: election
|
||||
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
|
||||
@@ -19,35 +19,48 @@ metadata:
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if and (.Values.service.loadBalancerIP) (eq .Values.service.type "LoadBalancer") }}
|
||||
sessionAffinity: {{ .Values.service.sessionAffinity }}
|
||||
{{- if and (eq .Values.service.type "ClusterIP") .Values.service.clusterIP }}
|
||||
clusterIP: {{ .Values.service.clusterIP }}
|
||||
{{- end }}
|
||||
{{- if or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy | quote }}
|
||||
{{- end }}
|
||||
{{- if and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges: {{ .Values.service.loadBalancerSourceRanges }}
|
||||
{{ end }}
|
||||
{{- if and (eq .Values.service.type "LoadBalancer") (not (empty .Values.service.loadBalancerIP)) }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
ports:
|
||||
{{ if not .Values.service.disableBaseClientPort }}
|
||||
{{- if not .Values.service.disableBaseClientPort }}
|
||||
- name: tcp-client
|
||||
port: {{ .Values.service.port }}
|
||||
port: {{ .Values.service.ports.client }}
|
||||
targetPort: client
|
||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.client)) }}
|
||||
nodePort: {{ .Values.service.nodePorts.client }}
|
||||
{{- else if eq .Values.service.type "ClusterIP" }}
|
||||
nodePort: null
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
{{ if .Values.tls.client.enabled }}
|
||||
{{- end }}
|
||||
{{- if .Values.tls.client.enabled }}
|
||||
- name: tcp-client-tls
|
||||
port: {{ .Values.service.tlsClientPort }}
|
||||
port: {{ .Values.service.ports.tls }}
|
||||
targetPort: client-tls
|
||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.clientTls)) }}
|
||||
nodePort: {{ .Values.service.nodePorts.clientTls }}
|
||||
{{- if and (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) (not (empty .Values.service.nodePorts.tls)) }}
|
||||
nodePort: {{ .Values.service.nodePorts.tls }}
|
||||
{{- else if eq .Values.service.type "ClusterIP" }}
|
||||
nodePort: null
|
||||
{{- end }}
|
||||
{{ end }}
|
||||
- name: follower
|
||||
port: {{ .Values.service.followerPort }}
|
||||
{{- end }}
|
||||
- name: tcp-follower
|
||||
port: {{ .Values.service.ports.follower }}
|
||||
targetPort: follower
|
||||
- name: tcp-election
|
||||
port: {{ .Values.service.electionPort }}
|
||||
port: {{ .Values.service.ports.election }}
|
||||
targetPort: election
|
||||
{{- if .Values.service.extraPorts }}
|
||||
{{- include "common.tplvalues.render" (dict "value" .Values.service.extraPorts "context" $) | nindent 4 }}
|
||||
{{- end }}
|
||||
selector: {{- include "common.labels.matchLabels" . | nindent 4 }}
|
||||
app.kubernetes.io/component: zookeeper
|
||||
|
||||
+4
-2
@@ -1,5 +1,4 @@
|
||||
{{- if (include "zookeeper.client.createTlsSecret" .) }}
|
||||
---
|
||||
{{- $ca := genCA "zookeeper-client-ca" 365 }}
|
||||
{{- $releaseNamespace := .Release.Namespace }}
|
||||
{{- $clusterDomain := .Values.clusterDomain }}
|
||||
@@ -12,6 +11,7 @@ apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-client-crt
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
@@ -24,9 +24,9 @@ data:
|
||||
ca.crt: {{ $ca.Cert | b64enc | quote }}
|
||||
tls.crt: {{ $crt.Cert | b64enc | quote }}
|
||||
tls.key: {{ $crt.Key | b64enc | quote }}
|
||||
---
|
||||
{{- end }}
|
||||
{{- if (include "zookeeper.quorum.createTlsSecret" .) }}
|
||||
---
|
||||
{{- $ca := genCA "zookeeper-quorum-ca" 365 }}
|
||||
{{- $releaseNamespace := .Release.Namespace }}
|
||||
{{- $clusterDomain := .Values.clusterDomain }}
|
||||
@@ -39,6 +39,7 @@ apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-quorum-crt
|
||||
namespace: {{ template "zookeeper.namespace" . }}
|
||||
labels: {{- include "common.labels.standard" . | nindent 4 }}
|
||||
{{- if .Values.commonLabels }}
|
||||
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
|
||||
@@ -51,4 +52,5 @@ data:
|
||||
ca.crt: {{ $ca.Cert | b64enc | quote }}
|
||||
tls.crt: {{ $crt.Cert | b64enc | quote }}
|
||||
tls.key: {{ $crt.Key | b64enc | quote }}
|
||||
---
|
||||
{{- end }}
|
||||
+404
-347
@@ -32,7 +32,7 @@ fullnameOverride: ""
|
||||
## @param clusterDomain Kubernetes Cluster Domain
|
||||
##
|
||||
clusterDomain: cluster.local
|
||||
## @param extraDeploy Extra objects to deploy (value evaluated as a template)
|
||||
## @param extraDeploy Extra objects to deploy (evaluated as a template)
|
||||
##
|
||||
extraDeploy: []
|
||||
## @param commonLabels Add labels to all the deployed resources
|
||||
@@ -41,30 +41,33 @@ commonLabels: {}
|
||||
## @param commonAnnotations Add annotations to all the deployed resources
|
||||
##
|
||||
commonAnnotations: {}
|
||||
## @param namespaceOverride Override namespace for ZooKeeper resources
|
||||
## Useful when including ZooKeeper as a chart dependency, so it can be released into a different namespace than the parent
|
||||
##
|
||||
namespaceOverride: ""
|
||||
|
||||
## Enable diagnostic mode in the deployment
|
||||
## Enable diagnostic mode in the statefulset
|
||||
##
|
||||
diagnosticMode:
|
||||
## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
|
||||
##
|
||||
enabled: false
|
||||
## @param diagnosticMode.command Command to override all containers in the deployment
|
||||
## @param diagnosticMode.command Command to override all containers in the statefulset
|
||||
##
|
||||
command:
|
||||
- sleep
|
||||
## @param diagnosticMode.args Args to override all containers in the deployment
|
||||
## @param diagnosticMode.args Args to override all containers in the statefulset
|
||||
##
|
||||
args:
|
||||
- infinity
|
||||
|
||||
## @section Zookeeper chart parameters
|
||||
##
|
||||
## @section ZooKeeper chart parameters
|
||||
|
||||
## Bitnami Zookeeper image version
|
||||
## Bitnami ZooKeeper image version
|
||||
## ref: https://hub.docker.com/r/bitnami/zookeeper/tags/
|
||||
## @param image.registry ZooKeeper image registry
|
||||
## @param image.repository ZooKeeper image repository
|
||||
## @param image.tag ZooKeeper Image tag (immutable tags are recommended)
|
||||
## @param image.tag ZooKeeper image tag (immutable tags are recommended)
|
||||
## @param image.pullPolicy ZooKeeper image pull policy
|
||||
## @param image.pullSecrets Specify docker-registry secret names as an array
|
||||
## @param image.debug Specify if debug values should be set
|
||||
@@ -72,7 +75,7 @@ diagnosticMode:
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/zookeeper
|
||||
tag: 3.7.0-debian-10-r264
|
||||
tag: 3.7.0-debian-10-r265
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
||||
@@ -87,10 +90,32 @@ image:
|
||||
##
|
||||
pullSecrets: []
|
||||
## Set to true if you would like to see extra information on logs
|
||||
## It turns BASH and/or NAMI debugging in the image
|
||||
##
|
||||
debug: false
|
||||
## @param tickTime Basic time unit in milliseconds used by ZooKeeper for heartbeats
|
||||
## Authentication parameters
|
||||
##
|
||||
auth:
|
||||
## @param auth.enabled Enable ZooKeeper auth. It uses SASL/Digest-MD5
|
||||
##
|
||||
enabled: false
|
||||
## @param auth.clientUser User that will use ZooKeeper clients to auth
|
||||
##
|
||||
clientUser: ""
|
||||
## @param auth.clientPassword Password that will use ZooKeeper clients to auth
|
||||
##
|
||||
clientPassword: ""
|
||||
## @param auth.serverUsers Comma, semicolon or whitespace separated list of user to be created
|
||||
## Specify them as a string, for example: "user1,user2,admin"
|
||||
##
|
||||
serverUsers: ""
|
||||
## @param auth.serverPasswords Comma, semicolon or whitespace separated list of passwords to assign to users when created
|
||||
## Specify them as a string, for example: "pass4user1, pass4user2, pass4admin"
|
||||
##
|
||||
serverPasswords: ""
|
||||
## @param auth.existingSecret Use existing secret (ignores previous passwords)
|
||||
##
|
||||
existingSecret: ""
|
||||
## @param tickTime Basic time unit (in milliseconds) used by ZooKeeper for heartbeats
|
||||
##
|
||||
tickTime: 2000
|
||||
## @param initLimit ZooKeeper uses to limit the length of time the ZooKeeper servers in quorum have to connect to a leader
|
||||
@@ -108,175 +133,197 @@ snapCount: 100000
|
||||
## @param maxClientCnxns Limits the number of concurrent connections that a single client may make to a single member of the ZooKeeper ensemble
|
||||
##
|
||||
maxClientCnxns: 60
|
||||
## @param fourlwCommandsWhitelist A list of comma separated Four Letter Words commands to use
|
||||
##
|
||||
fourlwCommandsWhitelist: srvr, mntr, ruok
|
||||
## @param listenOnAllIPs Allow Zookeeper to listen for connections from its peers on all available IP addresses
|
||||
##
|
||||
listenOnAllIPs: false
|
||||
## @param allowAnonymousLogin Allow to accept connections from unauthenticated users
|
||||
##
|
||||
allowAnonymousLogin: true
|
||||
autopurge:
|
||||
## @param autopurge.snapRetainCount Retains the snapRetainCount most recent snapshots and the corresponding transaction logs and deletes the rest
|
||||
##
|
||||
snapRetainCount: 3
|
||||
## @param autopurge.purgeInterval The time interval in hours for which the purge task has to be triggered
|
||||
## Set to a positive integer (1 and above) to enable the auto purging
|
||||
##
|
||||
purgeInterval: 0
|
||||
## @param maxSessionTimeout Maximum session timeout in milliseconds that the server will allow the client to negotiate
|
||||
## @param maxSessionTimeout Maximum session timeout (in milliseconds) that the server will allow the client to negotiate
|
||||
## Defaults to 20 times the tickTime
|
||||
##
|
||||
maxSessionTimeout: 40000
|
||||
auth:
|
||||
## @param auth.existingSecret Use existing secret (ignores previous password)
|
||||
##
|
||||
existingSecret: ""
|
||||
## @param auth.enabled Enable Zookeeper auth. It uses SASL/Digest-MD5
|
||||
##
|
||||
enabled: false
|
||||
## @param auth.clientUser User that will use ZooKeeper clients to auth
|
||||
##
|
||||
clientUser: ""
|
||||
## @param auth.clientPassword Password that will use ZooKeeper clients to auth
|
||||
##
|
||||
clientPassword: ""
|
||||
## @param auth.serverUsers Comma, semicolon or whitespace separated list of user to be created
|
||||
## Specify them as a string, for example: "user1,user2,admin"
|
||||
##
|
||||
serverUsers: ""
|
||||
## @param auth.serverPasswords Comma, semicolon or whitespace separated list of passwords to assign to users when created
|
||||
## Specify them as a string, for example: "pass4user1, pass4user2, pass4admin"
|
||||
##
|
||||
serverPasswords: ""
|
||||
## @param heapSize Size in MB for the Java Heap options (Xmx and XMs)
|
||||
## This env var is ignored if Xmx an Xms are configured via JVMFLAGS
|
||||
## @param heapSize Size (in MB) for the Java Heap options (Xmx and Xms)
|
||||
## This env var is ignored if Xmx an Xms are configured via `jvmFlags`
|
||||
##
|
||||
heapSize: 1024
|
||||
## @param logLevel Log level for the Zookeeper server. ERROR by default
|
||||
## Have in mind if you set it to INFO or WARN the ReadinessProve will produce a lot of logs
|
||||
## @param fourlwCommandsWhitelist A list of comma separated Four Letter Words commands that can be executed
|
||||
##
|
||||
logLevel: ERROR
|
||||
## @param dataLogDir Data log directory. Specifying this option will direct zookeeper to write the transaction log to the dataLogDir rather than the dataDir.
|
||||
## This allows a dedicated log device to be used, and helps avoid competition between logging and snaphots.
|
||||
## Example:
|
||||
## dataLogDir: /bitnami/zookeeper/dataLog
|
||||
##
|
||||
dataLogDir: ""
|
||||
## @param jvmFlags Default JVMFLAGS for the ZooKeeper process
|
||||
##
|
||||
jvmFlags: ""
|
||||
## @param config Configure ZooKeeper with a custom zoo.cfg file
|
||||
##
|
||||
config: ""
|
||||
## @param namespaceOverride Namespace for ZooKeeper resources
|
||||
##
|
||||
namespaceOverride: ""
|
||||
## @param hostAliases Deployment pod host aliases
|
||||
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
|
||||
##
|
||||
hostAliases: []
|
||||
|
||||
## @section Statefulset parameters
|
||||
##
|
||||
|
||||
## Extra volumes and extra volume mounts allows you to mount other volumes
|
||||
## Example Use Cases: mount certificates to enable tls
|
||||
## @param extraVolumes Extra volumes
|
||||
## e.g:
|
||||
## extraVolumes:
|
||||
## - name: zookeeper-keystore
|
||||
## secret:
|
||||
## defaultMode: 288
|
||||
## secretName: zookeeper-keystore
|
||||
## - name: zookeeper-trustsore
|
||||
## secret:
|
||||
## defaultMode: 288
|
||||
## secretName: zookeeper-truststore
|
||||
##
|
||||
extraVolumes: []
|
||||
## @param extraVolumeMounts Mount extra volume(s)
|
||||
## e.g:
|
||||
## - name: zookeeper-keystore
|
||||
## mountPath: /certs/keystore
|
||||
## readOnly: true
|
||||
## - name: zookeeper-truststore
|
||||
## mountPath: /certs/truststore
|
||||
## readOnly: true
|
||||
##
|
||||
extraVolumeMounts: []
|
||||
## @param updateStrategy StatefulSet controller supports automated updates. There are two valid update strategies: `RollingUpdate` and `OnDelete`
|
||||
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
|
||||
##
|
||||
updateStrategy: RollingUpdate
|
||||
## Limits the number of pods of the replicated application that are down simultaneously from voluntary disruptions
|
||||
## The PDB will only be created if replicaCount is greater than 1
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions
|
||||
## @param podDisruptionBudget.maxUnavailable Max number of pods down simultaneously
|
||||
##
|
||||
podDisruptionBudget:
|
||||
maxUnavailable: 1
|
||||
## @param rollingUpdatePartition Partition update strategy
|
||||
## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions
|
||||
##
|
||||
rollingUpdatePartition: ""
|
||||
## @param podManagementPolicy StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: `OrderedReady` and `Parallel`
|
||||
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
|
||||
##
|
||||
podManagementPolicy: Parallel
|
||||
## @param replicaCount Number of ZooKeeper nodes
|
||||
##
|
||||
replicaCount: 1
|
||||
|
||||
## @param containerPort ZooKeeper port
|
||||
##
|
||||
containerPort: 2181
|
||||
|
||||
## @param tlsContainerPort ZooKeeper TLS port
|
||||
##
|
||||
tlsContainerPort: 3181
|
||||
|
||||
## @param followerContainerPort ZooKeeper follower port
|
||||
##
|
||||
followerContainerPort: 2888
|
||||
## @param electionContainerPort ZooKeeper election port
|
||||
##
|
||||
electionContainerPort: 3888
|
||||
|
||||
fourlwCommandsWhitelist: srvr, mntr, ruok
|
||||
## @param minServerId Minimal SERVER_ID value, nodes increment their IDs respectively
|
||||
## Servers increment their ID starting at this minimal value.
|
||||
## E.g., with `minServerId=10` and 3 replicas, server IDs will be 10, 11, 12 for z-0, z-1 and z-2 respectively.
|
||||
##
|
||||
minServerId: 1
|
||||
## Zookeeper Pod Security Context
|
||||
## @param podSecurityContext.enabled Enable security context (ZooKeeper master pod)
|
||||
## @param podSecurityContext.fsGroup Group ID for the container (ZooKeeper master pod)
|
||||
## @param listenOnAllIPs Allow ZooKeeper to listen for connections from its peers on all available IP addresses
|
||||
##
|
||||
listenOnAllIPs: false
|
||||
## Ongoing data directory cleanup configuration
|
||||
##
|
||||
autopurge:
|
||||
## @param autopurge.snapRetainCount The most recent snapshots amount (and corresponding transaction logs) to retain
|
||||
##
|
||||
snapRetainCount: 3
|
||||
## @param autopurge.purgeInterval The time interval (in hours) for which the purge task has to be triggered
|
||||
## Set to a positive integer to enable the auto purging
|
||||
##
|
||||
purgeInterval: 0
|
||||
## @param logLevel Log level for the ZooKeeper server. ERROR by default
|
||||
## Have in mind if you set it to INFO or WARN the ReadinessProve will produce a lot of logs
|
||||
##
|
||||
logLevel: ERROR
|
||||
## @param jvmFlags Default JVM flags for the ZooKeeper process
|
||||
##
|
||||
jvmFlags: ""
|
||||
## @param dataLogDir Dedicated data log directory
|
||||
## This allows a dedicated log device to be used, and helps avoid competition between logging and snapshots.
|
||||
## E.g.
|
||||
## dataLogDir: /bitnami/zookeeper/dataLog
|
||||
##
|
||||
dataLogDir: ""
|
||||
## @param configuration Configure ZooKeeper with a custom zoo.cfg file
|
||||
## e.g:
|
||||
## configuration: |-
|
||||
## deploy-working-dir=/bitnami/geode/data
|
||||
## log-level=info
|
||||
## ...
|
||||
##
|
||||
configuration: ""
|
||||
## @param existingConfigmap The name of an existing ConfigMap with your custom configuration for ZooKeeper
|
||||
## NOTE: When it's set the `configuration` parameter is ignored
|
||||
##
|
||||
existingConfigmap: ""
|
||||
## @param extraEnvVars Array with extra environment variables to add to ZooKeeper nodes
|
||||
## e.g:
|
||||
## extraEnvVars:
|
||||
## - name: FOO
|
||||
## value: "bar"
|
||||
##
|
||||
extraEnvVars: []
|
||||
## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars for ZooKeeper nodes
|
||||
##
|
||||
extraEnvVarsCM: ""
|
||||
## @param extraEnvVarsSecret Name of existing Secret containing extra env vars for ZooKeeper nodes
|
||||
##
|
||||
extraEnvVarsSecret: ""
|
||||
## @param command Override default container command (useful when using custom images)
|
||||
##
|
||||
command:
|
||||
- /scripts/setup.sh
|
||||
## @param args Override default container args (useful when using custom images)
|
||||
##
|
||||
args: []
|
||||
|
||||
## @section Statefulset parameters
|
||||
|
||||
## @param replicaCount Number of ZooKeeper nodes
|
||||
##
|
||||
replicaCount: 1
|
||||
## @param containerPorts.client ZooKeeper client container port
|
||||
## @param containerPorts.tls ZooKeeper TLS container port
|
||||
## @param containerPorts.follower ZooKeeper follower container port
|
||||
## @param containerPorts.election ZooKeeper election container port
|
||||
##
|
||||
containerPorts:
|
||||
client: 2181
|
||||
tls: 3181
|
||||
follower: 2888
|
||||
election: 3888
|
||||
## Configure extra options for ZooKeeper containers' liveness, readiness and startup probes
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
|
||||
## @param livenessProbe.enabled Enable livenessProbe on ZooKeeper containers
|
||||
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
|
||||
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
|
||||
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
|
||||
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
|
||||
## @param livenessProbe.successThreshold Success threshold for livenessProbe
|
||||
## @param livenessProbe.probeCommandTimeout Probe command timeout for livenessProbe
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
probeCommandTimeout: 2
|
||||
## @param readinessProbe.enabled Enable readinessProbe on ZooKeeper containers
|
||||
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
|
||||
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
|
||||
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
|
||||
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
|
||||
## @param readinessProbe.successThreshold Success threshold for readinessProbe
|
||||
## @param readinessProbe.probeCommandTimeout Probe command timeout for readinessProbe
|
||||
##
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
probeCommandTimeout: 2
|
||||
## @param startupProbe.enabled Enable startupProbe on ZooKeeper containers
|
||||
## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
|
||||
## @param startupProbe.periodSeconds Period seconds for startupProbe
|
||||
## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
|
||||
## @param startupProbe.failureThreshold Failure threshold for startupProbe
|
||||
## @param startupProbe.successThreshold Success threshold for startupProbe
|
||||
##
|
||||
startupProbe:
|
||||
enabled: false
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 1
|
||||
failureThreshold: 15
|
||||
successThreshold: 1
|
||||
## @param customLivenessProbe Custom livenessProbe that overrides the default one
|
||||
##
|
||||
customLivenessProbe: {}
|
||||
## @param customReadinessProbe Custom readinessProbe that overrides the default one
|
||||
##
|
||||
customReadinessProbe: {}
|
||||
## @param customStartupProbe Custom startupProbe that overrides the default one
|
||||
##
|
||||
customStartupProbe: {}
|
||||
## @param lifecycleHooks for the ZooKeeper container(s) to automate configuration before or after startup
|
||||
##
|
||||
lifecycleHooks: {}
|
||||
## ZooKeeper resource requests and limits
|
||||
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
|
||||
## @param resources.limits The resources limits for the ZooKeeper containers
|
||||
## @param resources.requests.memory The requested memory for the ZooKeeper containers
|
||||
## @param resources.requests.cpu The requested cpu for the ZooKeeper containers
|
||||
##
|
||||
resources:
|
||||
limits: {}
|
||||
requests:
|
||||
memory: 256Mi
|
||||
cpu: 250m
|
||||
## Configure Pods Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
|
||||
## @param podSecurityContext.enabled Enabled ZooKeeper pods' Security Context
|
||||
## @param podSecurityContext.fsGroup Set ZooKeeper pod's Security Context fsGroup
|
||||
##
|
||||
podSecurityContext:
|
||||
enabled: true
|
||||
fsGroup: 1001
|
||||
## Zookeeper container Security Context
|
||||
## Configure Container Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
|
||||
## @param containerSecurityContext.enabled Enable container Security Context
|
||||
## @param containerSecurityContext.runAsUser User ID for the container
|
||||
## @param containerSecurityContext.runAsNonRoot Avoid running as root User
|
||||
## @param containerSecurityContext.enabled Enabled ZooKeeper containers' Security Context
|
||||
## @param containerSecurityContext.runAsUser Set ZooKeeper containers' Security Context runAsUser
|
||||
## @param containerSecurityContext.runAsNonRoot Set ZooKeeper containers' Security Context runAsNonRoot
|
||||
##
|
||||
containerSecurityContext:
|
||||
enabled: true
|
||||
runAsUser: 1001
|
||||
runAsNonRoot: true
|
||||
## @param initContainers Extra init container to add to the statefulset
|
||||
## Example:
|
||||
## initContainers:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
## @param hostAliases ZooKeeper pods host aliases
|
||||
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
|
||||
##
|
||||
initContainers: []
|
||||
hostAliases: []
|
||||
## @param podLabels Extra labels for ZooKeeper pods
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
##
|
||||
podLabels: {}
|
||||
## @param podAnnotations Annotations for ZooKeeper pods
|
||||
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
|
||||
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
|
||||
##
|
||||
@@ -321,14 +368,10 @@ tolerations: []
|
||||
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
|
||||
##
|
||||
topologySpreadConstraints: {}
|
||||
## @param podLabels ZooKeeper pod labels
|
||||
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
## @param podManagementPolicy StatefulSet controller supports relax its ordering guarantees while preserving its uniqueness and identity guarantees. There are two valid pod management policies: `OrderedReady` and `Parallel`
|
||||
## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
|
||||
##
|
||||
podLabels: {}
|
||||
## @param podAnnotations ZooKeeper Pod annotations
|
||||
## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
##
|
||||
podAnnotations: {}
|
||||
podManagementPolicy: Parallel
|
||||
## @param priorityClassName Name of the existing priority class to be used by ZooKeeper pods, priority class needs to be created beforehand
|
||||
## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
|
||||
##
|
||||
@@ -337,125 +380,41 @@ priorityClassName: ""
|
||||
## https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
|
||||
##
|
||||
schedulerName: ""
|
||||
## Configure resource requests and limits
|
||||
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
|
||||
## @param resources.requests [object] The requested resources for the container
|
||||
## @param updateStrategy.type ZooKeeper statefulset strategy type
|
||||
## @param updateStrategy.rollingUpdate ZooKeeper statefulset rolling update configuration parameters
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
|
||||
##
|
||||
resources:
|
||||
requests:
|
||||
memory: 256Mi
|
||||
cpu: 250m
|
||||
## Configure extra options for liveness probe
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
|
||||
## @param livenessProbe.enabled Enable livenessProbe
|
||||
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
|
||||
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
|
||||
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
|
||||
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
|
||||
## @param livenessProbe.successThreshold Success threshold for livenessProbe
|
||||
## @param livenessProbe.probeCommandTimeout Probe command timeout for livenessProbe
|
||||
updateStrategy:
|
||||
type: RollingUpdate
|
||||
rollingUpdate: {}
|
||||
## @param extraVolumes Optionally specify extra list of additional volumes for the ZooKeeper pod(s)
|
||||
## Example Use Case: mount certificates to enable TLS
|
||||
## e.g:
|
||||
## extraVolumes:
|
||||
## - name: zookeeper-keystore
|
||||
## secret:
|
||||
## defaultMode: 288
|
||||
## secretName: zookeeper-keystore
|
||||
## - name: zookeeper-truststore
|
||||
## secret:
|
||||
## defaultMode: 288
|
||||
## secretName: zookeeper-truststore
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
probeCommandTimeout: 2
|
||||
## Configure extra options for readiness probe
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
|
||||
## @param readinessProbe.enabled Enable readinessProbe
|
||||
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
|
||||
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
|
||||
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
|
||||
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
|
||||
## @param readinessProbe.successThreshold Success threshold for readinessProbe
|
||||
## @param readinessProbe.probeCommandTimeout Probe command timeout for readinessProbe
|
||||
extraVolumes: []
|
||||
## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the ZooKeeper container(s)
|
||||
## Example Use Case: mount certificates to enable TLS
|
||||
## e.g:
|
||||
## extraVolumeMounts:
|
||||
## - name: zookeeper-keystore
|
||||
## mountPath: /certs/keystore
|
||||
## readOnly: true
|
||||
## - name: zookeeper-truststore
|
||||
## mountPath: /certs/truststore
|
||||
## readOnly: true
|
||||
##
|
||||
readinessProbe:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
successThreshold: 1
|
||||
probeCommandTimeout: 2
|
||||
## @param customLivenessProbe Override default liveness probe
|
||||
##
|
||||
customLivenessProbe: {}
|
||||
## @param customReadinessProbe Override default readiness probe
|
||||
##
|
||||
customReadinessProbe: {}
|
||||
|
||||
## @section Traffic Exposure parameters
|
||||
##
|
||||
|
||||
## Kubernetes configuration
|
||||
## For minikube, set this to NodePort, elsewhere use LoadBalancer
|
||||
##
|
||||
service:
|
||||
## @param service.type Kubernetes Service type
|
||||
##
|
||||
type: ClusterIP
|
||||
## @param service.loadBalancerIP Load balancer IP for the Zookeper Service (optional, cloud specific)
|
||||
## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
|
||||
##
|
||||
loadBalancerIP: ""
|
||||
## @param service.port ZooKeeper port
|
||||
##
|
||||
port: 2181
|
||||
## @param service.followerPort ZooKeeper follower port
|
||||
##
|
||||
followerPort: 2888
|
||||
## @param service.electionPort ZooKeeper election port
|
||||
##
|
||||
electionPort: 3888
|
||||
## @param service.nodePorts [object] Specify the nodePort value for the LoadBalancer and NodePort service types.
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
||||
##
|
||||
nodePorts:
|
||||
client: ""
|
||||
clientTls: ""
|
||||
## @param service.publishNotReadyAddresses If the ZooKeeper headless service should publish DNS records for not ready pods
|
||||
##
|
||||
publishNotReadyAddresses: true
|
||||
## @param service.tlsClientPort Service port for tls client connections
|
||||
## Previously service.tls.service_port
|
||||
##
|
||||
tlsClientPort: 3181
|
||||
## @param service.disableBaseClientPort Remove client port from service definitions.
|
||||
##
|
||||
disableBaseClientPort: false
|
||||
## @param service.annotations Annotations for the Service
|
||||
## Previously service.tls.disable_base_client_port
|
||||
##
|
||||
annotations: {}
|
||||
## @param service.headless.annotations Annotations for the Headless Service
|
||||
##
|
||||
headless:
|
||||
annotations: {}
|
||||
## Service account for Zookeeper to use.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
|
||||
##
|
||||
serviceAccount:
|
||||
## @param serviceAccount.create Enable creation of ServiceAccount for Zookeeper pod
|
||||
##
|
||||
create: false
|
||||
## @param serviceAccount.name The name of the ServiceAccount to use.
|
||||
## If not set and create is true, a name is generated using the common.names.fullname template
|
||||
##
|
||||
name: ""
|
||||
## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
|
||||
## Can be set to false if pods using this serviceAccount do not need to use K8s API
|
||||
##
|
||||
automountServiceAccountToken: true
|
||||
## Network policies
|
||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
|
||||
## @param sidecars Extra containers to the pod
|
||||
## For example:
|
||||
extraVolumeMounts: []
|
||||
## @param sidecars Add additional sidecar containers to the ZooKeeper pod(s)
|
||||
## e.g:
|
||||
## sidecars:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
@@ -463,8 +422,97 @@ serviceAccount:
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
sidecars: []
|
||||
## @param initContainers Add additional init containers to the ZooKeeper pod(s)
|
||||
## Example:
|
||||
## initContainers:
|
||||
## - name: your-image-name
|
||||
## image: your-image
|
||||
## imagePullPolicy: Always
|
||||
## ports:
|
||||
## - name: portname
|
||||
## containerPort: 1234
|
||||
##
|
||||
initContainers: []
|
||||
## ZooKeeper Pod Disruption Budget
|
||||
## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
|
||||
## @param pdb.create Deploy a pdb object for the ZooKeeper pod
|
||||
## @param pdb.minAvailable Minimum available ZooKeeper replicas
|
||||
## @param pdb.maxUnavailable Maximum unavailable ZooKeeper replicas
|
||||
##
|
||||
pdb:
|
||||
create: false
|
||||
minAvailable: ""
|
||||
maxUnavailable: 1
|
||||
|
||||
## @section Traffic Exposure parameters
|
||||
|
||||
service:
|
||||
## @param service.type Kubernetes Service type
|
||||
##
|
||||
type: ClusterIP
|
||||
## @param service.ports.client ZooKeeper client service port
|
||||
## @param service.ports.tls ZooKeeper TLS service port
|
||||
## @param service.ports.follower ZooKeeper follower service port
|
||||
## @param service.ports.election ZooKeeper election service port
|
||||
##
|
||||
ports:
|
||||
client: 2181
|
||||
tls: 3181
|
||||
follower: 2888
|
||||
election: 3888
|
||||
## Node ports to expose
|
||||
## NOTE: choose port between <30000-32767>
|
||||
## @param service.nodePorts.client Node port for clients
|
||||
## @param service.nodePorts.tls Node port for TLS
|
||||
##
|
||||
nodePorts:
|
||||
client: ""
|
||||
tls: ""
|
||||
## @param service.disableBaseClientPort Remove client port from service definitions.
|
||||
##
|
||||
disableBaseClientPort: false
|
||||
## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
|
||||
## Values: ClientIP or None
|
||||
## ref: https://kubernetes.io/docs/user-guide/services/
|
||||
##
|
||||
sessionAffinity: None
|
||||
## @param service.clusterIP ZooKeeper service Cluster IP
|
||||
## e.g.:
|
||||
## clusterIP: None
|
||||
##
|
||||
clusterIP: ""
|
||||
## @param service.loadBalancerIP ZooKeeper service Load Balancer IP
|
||||
## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
|
||||
##
|
||||
loadBalancerIP: ""
|
||||
## @param service.loadBalancerSourceRanges ZooKeeper service Load Balancer sources
|
||||
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
|
||||
## e.g:
|
||||
## loadBalancerSourceRanges:
|
||||
## - 10.10.10.0/24
|
||||
##
|
||||
loadBalancerSourceRanges: []
|
||||
## @param service.externalTrafficPolicy ZooKeeper service external traffic policy
|
||||
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
|
||||
##
|
||||
externalTrafficPolicy: Cluster
|
||||
## @param service.annotations Additional custom annotations for ZooKeeper service
|
||||
##
|
||||
annotations: {}
|
||||
## @param service.extraPorts Extra ports to expose in the ZooKeeper service (normally used with the `sidecar` value)
|
||||
##
|
||||
extraPorts: []
|
||||
## @param service.headless.annotations Annotations for the Headless Service
|
||||
## @param service.headless.publishNotReadyAddresses If the ZooKeeper headless service should publish DNS records for not ready pods
|
||||
##
|
||||
headless:
|
||||
publishNotReadyAddresses: true
|
||||
annotations: {}
|
||||
## Network policies
|
||||
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
##
|
||||
networkPolicy:
|
||||
## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
|
||||
##
|
||||
@@ -475,26 +523,45 @@ networkPolicy:
|
||||
##
|
||||
allowExternal: true
|
||||
|
||||
## @section Persistence parameters
|
||||
##
|
||||
## @section Other Parameters
|
||||
|
||||
## Zookeeper data Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
## Service account for ZooKeeper to use.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
|
||||
##
|
||||
serviceAccount:
|
||||
## @param serviceAccount.create Enable creation of ServiceAccount for ZooKeeper pod
|
||||
##
|
||||
create: false
|
||||
## @param serviceAccount.name The name of the ServiceAccount to use.
|
||||
## If not set and create is true, a name is generated using the common.names.fullname template
|
||||
##
|
||||
name: ""
|
||||
## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
|
||||
## Can be set to false if pods using this serviceAccount do not need to use K8s API
|
||||
##
|
||||
automountServiceAccountToken: true
|
||||
## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
## @section Persistence parameters
|
||||
|
||||
## Enable persistence using Persistent Volume Claims
|
||||
## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
|
||||
##
|
||||
persistence:
|
||||
## @param persistence.existingClaim Provide an existing `PersistentVolumeClaim`
|
||||
## If defined, PVC must be created manually before volume will be bound
|
||||
## The value is evaluated as a template
|
||||
##
|
||||
existingClaim: ""
|
||||
## @param persistence.enabled Enable Zookeeper data persistence using PVC
|
||||
## @param persistence.enabled Enable ZooKeeper data persistence using PVC. If false, use emptyDir
|
||||
##
|
||||
enabled: true
|
||||
## @param persistence.existingClaim Name of an existing PVC to use (only when deploying a single replica)
|
||||
##
|
||||
existingClaim: ""
|
||||
## @param persistence.storageClass PVC Storage Class for ZooKeeper data volume
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
storageClass: ""
|
||||
## @param persistence.accessModes PVC Access modes
|
||||
@@ -507,7 +574,7 @@ persistence:
|
||||
## @param persistence.annotations Annotations for the PVC
|
||||
##
|
||||
annotations: {}
|
||||
## @param persistence.selector Selector to match an existing Persistent Volume for Zookeeper's data PVC
|
||||
## @param persistence.selector Selector to match an existing Persistent Volume for ZooKeeper's data PVC
|
||||
## If set, the PVC can't have a PV dynamically provisioned for it
|
||||
## E.g.
|
||||
## selector:
|
||||
@@ -515,16 +582,18 @@ persistence:
|
||||
## app: my-app
|
||||
##
|
||||
selector: {}
|
||||
## Persistence for a dedicated data log directory
|
||||
##
|
||||
dataLogDir:
|
||||
## @param persistence.dataLogDir.size PVC Storage Request for ZooKeeper's Data log directory
|
||||
## @param persistence.dataLogDir.size PVC Storage Request for ZooKeeper's dedicated data log directory
|
||||
##
|
||||
size: 8Gi
|
||||
## @param persistence.dataLogDir.existingClaim Provide an existing `PersistentVolumeClaim` for Zookeeper's Data log directory
|
||||
## @param persistence.dataLogDir.existingClaim Provide an existing `PersistentVolumeClaim` for ZooKeeper's data log directory
|
||||
## If defined, PVC must be created manually before volume will be bound
|
||||
## The value is evaluated as a template
|
||||
##
|
||||
existingClaim: ""
|
||||
## @param persistence.dataLogDir.selector Selector to match an existing Persistent Volume for Zookeeper's Data log PVC
|
||||
## @param persistence.dataLogDir.selector Selector to match an existing Persistent Volume for ZooKeeper's data log PVC
|
||||
## If set, the PVC can't have a PV dynamically provisioned for it
|
||||
## E.g.
|
||||
## selector:
|
||||
@@ -537,10 +606,10 @@ persistence:
|
||||
##
|
||||
|
||||
## Init containers parameters:
|
||||
## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
|
||||
## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
|
||||
##
|
||||
volumePermissions:
|
||||
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
|
||||
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
|
||||
##
|
||||
enabled: false
|
||||
## @param volumePermissions.image.registry Init container volume-permissions image registry
|
||||
@@ -552,7 +621,7 @@ volumePermissions:
|
||||
image:
|
||||
registry: docker.io
|
||||
repository: bitnami/bitnami-shell
|
||||
tag: 10-debian-10-r311
|
||||
tag: 10-debian-10-r312
|
||||
pullPolicy: IfNotPresent
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
@@ -562,9 +631,14 @@ volumePermissions:
|
||||
## - myRegistryKeySecretName
|
||||
##
|
||||
pullSecrets: []
|
||||
## @param volumePermissions.resources Init container resource requests/limit
|
||||
## Init container resource requests and limits
|
||||
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
|
||||
## @param volumePermissions.resources.limits Init container volume-permissions resource limits
|
||||
## @param volumePermissions.resources.requests Init container volume-permissions resource requests
|
||||
##
|
||||
resources: {}
|
||||
resources:
|
||||
limits: {}
|
||||
requests: {}
|
||||
## Init container' Security Context
|
||||
## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
|
||||
## and not the below volumePermissions.containerSecurityContext.runAsUser
|
||||
@@ -576,25 +650,25 @@ volumePermissions:
|
||||
## @section Metrics parameters
|
||||
##
|
||||
|
||||
## Zookeeper Prometheus Exporter configuration
|
||||
## ZooKeeper Prometheus Exporter configuration
|
||||
##
|
||||
metrics:
|
||||
## @param metrics.enabled Enable prometheus to access zookeeper metrics endpoint
|
||||
## @param metrics.enabled Enable Prometheus to access ZooKeeper metrics endpoint
|
||||
##
|
||||
enabled: false
|
||||
## @param metrics.containerPort Zookeeper Prometheus Exporter container port
|
||||
## @param metrics.containerPort ZooKeeper Prometheus Exporter container port
|
||||
##
|
||||
containerPort: 9141
|
||||
## Service configuration
|
||||
##
|
||||
service:
|
||||
## @param metrics.service.type Zookeeper Prometheus Exporter service type
|
||||
## @param metrics.service.type ZooKeeper Prometheus Exporter service type
|
||||
##
|
||||
type: ClusterIP
|
||||
## @param metrics.service.port Prometheus metrics service port
|
||||
## @param metrics.service.port ZooKeeper Prometheus Exporter service port
|
||||
##
|
||||
port: 9141
|
||||
## @param metrics.service.annotations [object] Annotations for the Zookeeper to auto-discover the metrics endpoint
|
||||
## @param metrics.service.annotations [object] Annotations for Prometheus to auto-discover the metrics endpoint
|
||||
##
|
||||
annotations:
|
||||
prometheus.io/scrape: "true"
|
||||
@@ -603,7 +677,7 @@ metrics:
|
||||
## Prometheus Operator ServiceMonitor configuration
|
||||
##
|
||||
serviceMonitor:
|
||||
## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
|
||||
## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
|
||||
##
|
||||
enabled: false
|
||||
## @param metrics.serviceMonitor.namespace Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)
|
||||
@@ -611,14 +685,10 @@ metrics:
|
||||
namespace: ""
|
||||
## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
|
||||
## e.g:
|
||||
## interval: 10s
|
||||
##
|
||||
interval: ""
|
||||
## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
|
||||
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
|
||||
## e.g:
|
||||
## scrapeTimeout: 10s
|
||||
##
|
||||
scrapeTimeout: ""
|
||||
## @param metrics.serviceMonitor.additionalLabels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
|
||||
@@ -626,9 +696,6 @@ metrics:
|
||||
additionalLabels: {}
|
||||
## @param metrics.serviceMonitor.selector Prometheus instance selector labels
|
||||
## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
|
||||
## e.g:
|
||||
## selector:
|
||||
## prometheus: my-prometheus
|
||||
##
|
||||
selector: {}
|
||||
## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
|
||||
@@ -637,33 +704,35 @@ metrics:
|
||||
## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
|
||||
##
|
||||
metricRelabelings: []
|
||||
## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
|
||||
##
|
||||
honorLabels: false
|
||||
## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
|
||||
##
|
||||
jobLabel: ""
|
||||
## Prometheus Operator PrometheusRule configuration
|
||||
##
|
||||
prometheusRule:
|
||||
## @param metrics.prometheusRule.enabled if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
|
||||
## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
|
||||
##
|
||||
enabled: false
|
||||
## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
|
||||
##
|
||||
namespace: ""
|
||||
## @param metrics.prometheusRule.selector Prometheus instance selector labels
|
||||
## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
|
||||
## e.g:
|
||||
## selector:
|
||||
## prometheus: my-prometheus
|
||||
## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
|
||||
##
|
||||
selector: {}
|
||||
## @param metrics.prometheusRule.rules Prometheus Rule definitions
|
||||
## - alert: ZookeeperSyncedFollowers
|
||||
additionalLabels: {}
|
||||
## @param metrics.prometheusRule.rules PrometheusRule definitions
|
||||
## - alert: ZooKeeperSyncedFollowers
|
||||
## annotations:
|
||||
## message: The number of synced followers for the leader node in Zookeeper deployment my-release is less than 2. This usually means that some of the Zookeeper nodes aren't communicating properly. If it doesn't resolve itself you can try killing the pods (one by one).
|
||||
## message: The number of synced followers for the leader node in ZooKeeper deployment my-release is less than 2. This usually means that some of the ZooKeeper nodes aren't communicating properly. If it doesn't resolve itself you can try killing the pods (one by one).
|
||||
## expr: max(synced_followers{service="my-release-metrics"}) < 2
|
||||
## for: 5m
|
||||
## labels:
|
||||
## severity: critical
|
||||
## - alert: ZookeeperOutstandingRequests
|
||||
## - alert: ZooKeeperOutstandingRequests
|
||||
## annotations:
|
||||
## message: The number of outstanding requests for Zookeeper pod {{ $labels.pod }} is greater than 10. This can indicate a performance issue with the Pod or cluster a whole.
|
||||
## message: The number of outstanding requests for ZooKeeper pod {{ $labels.pod }} is greater than 10. This can indicate a performance issue with the Pod or cluster a whole.
|
||||
## expr: outstanding_requests{service="my-release-metrics"} > 10
|
||||
## for: 5m
|
||||
## labels:
|
||||
@@ -681,11 +750,11 @@ tls:
|
||||
## @param tls.client.enabled Enable TLS for client connections
|
||||
##
|
||||
enabled: false
|
||||
## @param tls.client.autoGenerated Generate automatically self-signed TLS certificates for Zookeeper client communications
|
||||
## @param tls.client.autoGenerated Generate automatically self-signed TLS certificates for ZooKeeper client communications
|
||||
## Currently only supports PEM certificates
|
||||
##
|
||||
autoGenerated: false
|
||||
## @param tls.client.existingSecret Name of the existing secret containing the TLS certificates for Zookeper client communications
|
||||
## @param tls.client.existingSecret Name of the existing secret containing the TLS certificates for ZooKeeper client communications
|
||||
##
|
||||
existingSecret: ""
|
||||
## @param tls.client.keystorePath Location of the KeyStore file used for Client connections
|
||||
@@ -710,7 +779,7 @@ tls:
|
||||
## @param tls.quorum.autoGenerated Create self-signed TLS certificates. Currently only supports PEM certificates.
|
||||
##
|
||||
autoGenerated: false
|
||||
## @param tls.quorum.existingSecret Name of the existing secret containing the TLS certificates for Zookeper quorum protocol
|
||||
## @param tls.quorum.existingSecret Name of the existing secret containing the TLS certificates for ZooKeeper quorum protocol
|
||||
##
|
||||
existingSecret: ""
|
||||
## @param tls.quorum.keystorePath Location of the KeyStore file used for Quorum protocol
|
||||
@@ -728,23 +797,11 @@ tls:
|
||||
## @param tls.quorum.truststorePassword Password to access TrustStore if needed
|
||||
##
|
||||
truststorePassword: ""
|
||||
## We usually recommend not to specify default resources and to leave this as a conscious
|
||||
## choice for the user. This also increases chances charts run on environments with little
|
||||
## resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
## Init container resource requests and limits
|
||||
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
|
||||
## @param tls.resources.limits The resources limits for the TLS init container
|
||||
## @param tls.resources.requests The requested resources for the TLS init container
|
||||
##
|
||||
resources:
|
||||
## Example:
|
||||
## limits:
|
||||
## cpu: 100m
|
||||
## memory: 128Mi
|
||||
##
|
||||
limits: {}
|
||||
## Examples:
|
||||
## requests:
|
||||
## cpu: 100m
|
||||
## memory: 128Mi
|
||||
##
|
||||
requests: {}
|
||||
|
||||
Reference in New Issue
Block a user