[bitnami/zookeeper] allow for overriding namespace in zookeeper helm chart (#3881)

* allow for overriding namespace in zookeeper helm chart

* Bumped chart version

* Fixed typo

* Renamed namespace to namespaceOverride, extracted namespace logic to template, found a few missed namespace references

* renamed namespaceOverride template

* Update bitnami/zookeeper/Chart.yaml

Co-authored-by: Daniel Arteaga <dani8art.da@gmail.com>

Co-authored-by: Daniel Arteaga <dani8art.da@gmail.com>
This commit is contained in:
Monica Ruttle
2020-10-07 09:40:23 -04:00
committed by GitHub
parent 2e5f7fcf5b
commit 01b135961a
16 changed files with 37 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
apiVersion: v1
name: zookeeper
version: 5.21.9
version: 5.22.0
appVersion: 3.6.2
description: A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services for distributed applications.
keywords:

View File

@@ -96,6 +96,7 @@ The following tables lists the configurable parameters of the ZooKeeper chart an
| `jvmFlags` | Default JVMFLAGS for the ZooKeeper process | `nil` |
| `config` | Configure ZooKeeper with a custom zoo.conf file | `nil` |
| `dataLogDir` | Data log directory | `""` |
| `namespaceOverride` | Namespace for ZooKeeper resources. Overrides the release namespace. | The Release Namespace |
### Statefulset parameters

View File

@@ -19,32 +19,32 @@
ZooKeeper can be accessed via port 2181 on the following DNS name from within your cluster:
{{ template "zookeeper.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}
{{ template "zookeeper.fullname" . }}.{{ template "zookeeper.namespace" . }}.svc.{{ .Values.clusterDomain }}
To connect to your ZooKeeper server run the following commands:
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ template "zookeeper.name" . }},app.kubernetes.io/instance={{ .Release.Name }},app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
export POD_NAME=$(kubectl get pods --namespace {{ template "zookeeper.namespace" . }} -l "app.kubernetes.io/name={{ template "zookeeper.name" . }},app.kubernetes.io/instance={{ .Release.Name }},app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
kubectl exec -it $POD_NAME -- zkCli.sh
To connect to your ZooKeeper server from outside the cluster execute the following commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "zookeeper.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ template "zookeeper.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}")
export NODE_PORT=$(kubectl get --namespace {{ template "zookeeper.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "zookeeper.fullname" . }})
zkCli.sh $NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "zookeeper.fullname" . }}'
Watch the status with: 'kubectl get svc --namespace {{ template "zookeeper.namespace" . }} -w {{ template "zookeeper.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "zookeeper.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
export SERVICE_IP=$(kubectl get svc --namespace {{ template "zookeeper.namespace" . }} {{ template "zookeeper.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
zkCli.sh $SERVICE_IP:2181
{{- else if contains "ClusterIP" .Values.service.type }}
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "zookeeper.fullname" . }} 2181:2181 &
kubectl port-forward --namespace {{ template "zookeeper.namespace" . }} svc/{{ template "zookeeper.fullname" . }} 2181:2181 &
zkCli.sh 127.0.0.1:2181
{{- end }}

View File

@@ -210,3 +210,14 @@ but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Return ZooKeeper Namespace to use
*/}}
{{- define "zookeeper.namespace" -}}
{{- if .Values.namespaceOverride }}
{{- .Values.namespaceOverride -}}
{{- else }}
{{- .Release.Namespace -}}
{{- end }}
{{- end -}}

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "zookeeper.tplValue" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ template "zookeeper.fullname" . }}-metrics
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
app.kubernetes.io/component: zookeeper
{{- if .Values.commonLabels }}

View File

@@ -3,7 +3,7 @@ kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: {{ include "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "zookeeper.tplValue" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}

View File

@@ -4,7 +4,7 @@ apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: {{ template "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
app.kubernetes.io/component: zookeeper
{{- if .Values.commonLabels }}

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: Secret
metadata:
name: {{ template "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "zookeeper.tplValue" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}

View File

@@ -3,7 +3,7 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "zookeeper.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
role: zookeeper
{{- if .Values.commonLabels }}

View File

@@ -34,5 +34,5 @@ spec:
{{- end }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
- {{ template "zookeeper.namespace" . }}
{{- end }}

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ template "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
app.kubernetes.io/component: zookeeper
role: zookeeper
@@ -139,7 +139,7 @@ spec:
{{- $replicaCount := int .Values.replicaCount }}
{{- $followerPort := int .Values.service.followerPort }}
{{- $electionPort := int .Values.service.electionPort }}
{{- $releaseNamespace := .Release.Namespace }}
{{- $releaseNamespace := include "zookeeper.namespace" . }}
{{- $zookeeperFullname := include "zookeeper.fullname" . }}
{{- $zookeeperHeadlessServiceName := printf "%s-%s" $zookeeperFullname "headless" | trunc 63 }}
{{- $clusterDomain := .Values.clusterDomain }}

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ template "zookeeper.fullname" . }}-headless
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
app.kubernetes.io/component: zookeeper
{{- if .Values.commonLabels }}

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: {{ template "zookeeper.fullname" . }}
namespace: {{ .Release.Namespace }}
namespace: {{ template "zookeeper.namespace" . }}
labels: {{- include "zookeeper.labels" . | nindent 4 }}
app.kubernetes.io/component: zookeeper
{{- if .Values.commonLabels }}

View File

@@ -199,6 +199,9 @@ dataLogDir: ""
##
# config:
## Namespace for ZooKeeper resources
# namespaceOverride:
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##

View File

@@ -198,6 +198,9 @@ dataLogDir: ""
##
# config:
## Namespace for ZooKeeper resources
# namespaceOverride:
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##