Feature/helm (#3296)
* fix inconsistent volume names and init container
* package names and spacing fix
* fix string comparison init container
could have also used double brackets
* fix prometheus stats provider class name
* add prometheus, kubectlImage and storageClassName
* add template for kubectl image:version
* add prometheus and storageClassName template logic
* add storageClassName template logic to zookeeper
* fix typo in zookeeper.yaml storageClass logic
* remove quotes from prometheus bool comparison
diff --git a/deploy/kubernetes/helm/templates/bookie.yaml b/deploy/kubernetes/helm/templates/bookie.yaml
index 15294e6..fecc7f1 100644
--- a/deploy/kubernetes/helm/templates/bookie.yaml
+++ b/deploy/kubernetes/helm/templates/bookie.yaml
@@ -42,7 +42,11 @@
BK_zkServers: {{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.clientPort }}
BK_autoRecoveryDaemonEnabled: "true"
# TODO: Issue 458: https://github.com/apache/bookkeeper/issues/458
- #BK_statsProviderClass: org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
+ {{- if eq .Values.bookkeeper.prometheus.enabled true }}
+ BK_enableStatistics: "true"
+ BK_enableTaskExecutionStats: "true"
+ BK_statsProviderClass: org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
+ {{- end }}
---
## BookKeeper servers need to access the local disks and the pods
@@ -107,8 +111,8 @@
- -c
- >-
while true; do
- status=$(echo ruok | nc {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }});
- writestatus=$(echo isro | nc {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }})
+ status=$(echo ruok | nc -w 3 {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }});
+ writestatus=$(echo isro | nc -w 3 {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }})
if [ "$status" = "imok" ] && [ "$writestatus" = "rw" ]; then
break;
fi;
@@ -162,6 +166,9 @@
component: {{ .Release.Name }}-bookkeeper
spec:
accessModes: [ "ReadWriteOnce" ]
+ {{- if ne .Values.bookkeeper.storageClassName "none" }}
+ storageClassName: {{ .Values.bookkeeper.storageClassName }}
+ {{- end }}
resources:
requests:
storage: {{ $bookieJournalCapacity }}
@@ -173,6 +180,9 @@
component: {{ .Release.Name }}-bookkeeper
spec:
accessModes: [ "ReadWriteOnce" ]
+ {{- if ne .Values.bookkeeper.storageClassName "none" }}
+ storageClassName: {{ .Values.bookkeeper.storageClassName }}
+ {{- end }}
resources:
requests:
storage: {{ $bookieStorageCapacity }}
diff --git a/deploy/kubernetes/helm/templates/tools.yaml b/deploy/kubernetes/helm/templates/tools.yaml
index cc2dbeb..91f4f06 100644
--- a/deploy/kubernetes/helm/templates/tools.yaml
+++ b/deploy/kubernetes/helm/templates/tools.yaml
@@ -158,7 +158,7 @@
- configMapRef:
name: {{ .Release.Name }}-tools-config
- name: kubectl-proxy
- image: heron/kubectl:latest
+ image: {{ .Values.kubectlImage }}
command: ["sh", "-c"]
args:
- >
diff --git a/deploy/kubernetes/helm/templates/zookeeper.yaml b/deploy/kubernetes/helm/templates/zookeeper.yaml
index 3a0d842..4e4f5b2 100644
--- a/deploy/kubernetes/helm/templates/zookeeper.yaml
+++ b/deploy/kubernetes/helm/templates/zookeeper.yaml
@@ -146,6 +146,9 @@
name: datadir
spec:
accessModes: [ "ReadWriteOnce" ]
+ {{- if ne .Values.zookeeper.storageClassName "none" }}
+ storageClassName: {{ .Values.zookeeper.storageClassName }}
+ {{- end }}
resources:
requests:
storage: {{ .Values.zookeeper.storage }}
diff --git a/deploy/kubernetes/helm/values.yaml.template b/deploy/kubernetes/helm/values.yaml.template
index 5fc2a15..e934867 100644
--- a/deploy/kubernetes/helm/values.yaml.template
+++ b/deploy/kubernetes/helm/values.yaml.template
@@ -29,6 +29,7 @@
# Heron image to use
image: heron/heron:VERSION
+kubectlImage: heron/kubectl:latest
# Heron image pull policy
imagePullPolicy: IfNotPresent
@@ -68,6 +69,11 @@
bookkeeper:
image: apache/bookkeeper:4.7.3
imagePullPolicy: IfNotPresent
+
+ # set storageClassName to "none" to not use storageClassName
+ storageClassName: "none"
+ prometheus:
+ enabled: false
zookeeper:
enabled: true
@@ -98,3 +104,5 @@
enabled: false
runAsUser: 1000
fsGroup: 1000
+ # set storageClassName to "none" to not use storageClassName
+ storageClassName: "none"