summaryrefslogtreecommitdiffstats
path: root/kubernetes/common/music/charts/zookeeper/templates
diff options
context:
space:
mode:
authorNelson,Thomas(tn1381)(arthurdent3) <tn1381@att.com>2018-09-19 16:52:36 -0400
committerTschaen, Brendan <ctschaen@att.com>2018-10-26 19:08:42 +0000
commit4807fdfc7adf7945c31368e3b420dc853a29f4cd (patch)
tree5203c5f243ed1483f7ce314d3b680d803cdf9dbb /kubernetes/common/music/charts/zookeeper/templates
parenta3a690dc96c6e70ff84f7e22ba23ebd8349daa24 (diff)
Adding MUSIC Common charts
Includes: Cassandra 3.11 - Current Common cassandra is lacking security. Tomcat 8.5 - Docker Hub Zookeeper 3.4 - Chart from Incubator/Zookeeper - https://github.com/helm/charts/tree/master/incubator/zookeeper Fixed Issue with Zookeeper not starting. Was unable to write to pvc location. add copyright header to the files where it's missing remove all the trailing whitespaces bump charts version to 3.0.0 and also requirement chart to 3.0.0 Adding resource limits Update Music Chart.yaml to 3.0.0 Make recomended fixes due to resources bug. Updated port to 76 Update cassandra values. Add nodePortPrefixExt Fix Tomcat sevice Name. Update Names Add Readiness Image Update Service names Fix cassandra service Update tomcat chart Update job chart to incluede timeout. Update job chart to include delay for run Remove some unneded files and update tomcat helm readiness Replace removed files that were braking the jenkins build Made suggested changes Update Replication factor from 1 to 3,3 is default, 1 was set for testing. Move tag:version into image: Remove commented out values and aafAdminUrl Change-Id: I47eafae052cbe7355468655e5f8fcda8402bafd6 Issue-ID: MUSIC-99 Signed-off-by: Nelson,Thomas(tn1381)(arthurdent3) <tn1381@att.com> Signed-off-by: Thomas Nelson Jr arthuerdent3 <nelson24@att.com>
Diffstat (limited to 'kubernetes/common/music/charts/zookeeper/templates')
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/NOTES.txt7
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl32
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml19
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml62
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml17
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml21
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/service.yaml23
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml188
-rw-r--r--kubernetes/common/music/charts/zookeeper/templates/volumes.yaml25
9 files changed, 394 insertions, 0 deletions
diff --git a/kubernetes/common/music/charts/zookeeper/templates/NOTES.txt b/kubernetes/common/music/charts/zookeeper/templates/NOTES.txt
new file mode 100644
index 0000000000..4f7a27bd99
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/NOTES.txt
@@ -0,0 +1,7 @@
+Thank you for installing ZooKeeper on your Kubernetes cluster. More information
+about ZooKeeper can be found at https://zookeeper.apache.org/doc/current/
+
+Your connection string should look like:
+ {{ template "common.fullname" . }}-0.{{ template "common.fullname" . }}-headless:{{ .Values.service.ports.client.port }},{{ template "common.fullname" . }}-1.{{ template "common.fullname" . }}-headless:{{ .Values.service.ports.client.port }},...
+
+You can also use the client service {{ template "common.fullname" . }}:{{ .Values.service.ports.client.port }} to connect to an available ZooKeeper server.
diff --git a/kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl b/kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl
new file mode 100644
index 0000000000..1ef5353fa1
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/_helpers.tpl
@@ -0,0 +1,32 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "common.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "common.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- if contains $name .Release.Name -}}
+{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "zookeeper.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml b/kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml
new file mode 100644
index 0000000000..aeb9a2c031
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/config-jmx-exporter.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.exporters.jmx.enabled }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Release.Name }}-jmx-exporter
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+data:
+ config.yml: |-
+ hostPort: 127.0.0.1:{{ .Values.env.JMXPORT }}
+ lowercaseOutputName: {{ .Values.exporters.jmx.config.lowercaseOutputName }}
+ rules:
+{{ .Values.exporters.jmx.config.rules | toYaml | indent 6 }}
+ ssl: false
+ startDelaySeconds: {{ .Values.exporters.jmx.config.startDelaySeconds }}
+{{- end }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml b/kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml
new file mode 100644
index 0000000000..38592ddeac
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/job-chroots.yaml
@@ -0,0 +1,62 @@
+{{- if .Values.jobs.chroots.enabled }}
+{{- $root := . }}
+{{- $job := .Values.jobs.chroots }}
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ template "common.fullname" . }}-chroots
+ annotations:
+ "helm.sh/hook": post-install,post-upgrade
+ "helm.sh/hook-weight": "-5"
+ "helm.sh/hook-delete-policy": hook-succeeded
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ component: jobs
+ job: chroots
+spec:
+ activeDeadlineSeconds: {{ $job.activeDeadlineSeconds }}
+ backoffLimit: {{ $job.backoffLimit }}
+ completions: {{ $job.completions }}
+ parallelism: {{ $job.parallelism }}
+ template:
+ metadata:
+ labels:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
+ component: jobs
+ job: chroots
+ spec:
+ restartPolicy: {{ $job.restartPolicy }}
+ containers:
+ - name: main
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ command:
+ - /bin/bash
+ - -o
+ - pipefail
+ - -euc
+ {{- $port := .Values.service.ports.client.port }}
+ - >
+ sleep 15;
+ export SERVER={{ template "common.fullname" $root }}:{{ $port }};
+ {{- range $job.config.create }}
+ echo '==> {{ . }}';
+ echo '====> Create chroot if does not exist.';
+ zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} get {{ . }} 2>&1 >/dev/null | grep 'cZxid'
+ || zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} create {{ . }} "";
+ echo '====> Confirm chroot exists.';
+ zkCli.sh -server {{ template "common.fullname" $root }}:{{ $port }} get {{ . }} 2>&1 >/dev/null | grep 'cZxid';
+ echo '====> Chroot exists.';
+ {{- end }}
+ env:
+ {{- range $key, $value := $job.env }}
+ - name: {{ $key | upper | replace "." "_" }}
+ value: {{ $value | quote }}
+ {{- end }}
+ resources:
+{{ toYaml $job.resources | indent 12 }}
+{{- end -}}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml b/kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml
new file mode 100644
index 0000000000..7a9f3fe105
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/poddisruptionbudget.yaml
@@ -0,0 +1,17 @@
+apiVersion: policy/v1beta1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ template "common.fullname" . }}
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ component: server
+spec:
+ selector:
+ matchLabels:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
+ component: server
+{{ toYaml .Values.podDisruptionBudget | indent 2 }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml b/kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml
new file mode 100644
index 0000000000..70ebf6013e
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/service-headless.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "common.fullname" . }}-headless
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+spec:
+ clusterIP: None
+ ports:
+{{- range $key, $port := .Values.ports }}
+ - name: {{ $key }}
+ port: {{ $port.containerPort }}
+ targetPort: {{ $port.name }}
+ protocol: {{ $port.protocol }}
+{{- end }}
+ selector:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/service.yaml b/kubernetes/common/music/charts/zookeeper/templates/service.yaml
new file mode 100644
index 0000000000..6ac3066ecf
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/service.yaml
@@ -0,0 +1,23 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ .Values.service.name }}
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ annotations:
+{{- with .Values.service.annotations }}
+{{ toYaml . | indent 4 }}
+{{- end }}
+spec:
+ type: {{ .Values.service.type }}
+ ports:
+ {{- range $key, $value := .Values.service.ports }}
+ - name: {{ $key }}
+{{ toYaml $value | indent 6 }}
+ {{- end }}
+ selector:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml b/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
new file mode 100644
index 0000000000..1efd46657c
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/statefulset.yaml
@@ -0,0 +1,188 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+metadata:
+ name: {{ template "common.fullname" . }}
+ labels:
+ app: {{ template "common.name" . }}
+ chart: {{ .Chart.Name }}
+ release: {{ .Release.Name }}
+ heritage: {{ .Release.Service }}
+ component: server
+spec:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 1
+ podAffinityTerm:
+ labelSelector:
+ matchExpressions:
+ - key: app
+ operator: In
+ values:
+ - "{{ .Chart.Name }}"
+ serviceName: {{ template "common.fullname" . }}-headless
+ replicas: {{ .Values.replicaCount }}
+ terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }}
+ selector:
+ matchLabels:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
+ component: server
+ updateStrategy:
+{{ toYaml .Values.updateStrategy | indent 4 }}
+ template:
+ metadata:
+ labels:
+ app: {{ template "common.name" . }}
+ release: {{ .Release.Name }}
+ component: server
+ {{- if .Values.podLabels }}
+ ## Custom pod labels
+ {{- range $key, $value := .Values.podLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ annotations:
+ {{- if .Values.podAnnotations }}
+ ## Custom pod annotations
+ {{- range $key, $value := .Values.podAnnotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ spec:
+{{- if .Values.schedulerName }}
+ schedulerName: "{{ .Values.schedulerName }}"
+{{- end }}
+ securityContext:
+{{ toYaml .Values.securityContext | indent 8 }}
+ containers:
+
+ - name: zookeeper
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ command:
+ - /bin/bash
+ - -xec
+ - zkGenConfig.sh && exec zkServer.sh start-foreground
+ ports:
+{{- range $key, $port := .Values.ports }}
+ - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+{{- end }}
+ livenessProbe:
+{{ toYaml .Values.livenessProbe | indent 12 }}
+ readinessProbe:
+{{ toYaml .Values.readinessProbe | indent 12 }}
+ env:
+ - name: ZK_REPLICAS
+ value: {{ .Values.replicaCount | quote }}
+ {{- range $key, $value := .Values.env }}
+ - name: {{ $key | upper | replace "." "_" }}
+ value: {{ $value | quote }}
+ {{- end }}
+ resources:
+{{ include "common.resources" . }}
+ volumeMounts:
+ - name: zookeeper-data
+ mountPath: /var/lib/zookeeper
+
+{{- if .Values.exporters.jmx.enabled }}
+ - name: jmx-exporter
+ image: "{{ .Values.exporters.jmx.image.repository }}:{{ .Values.exporters.jmx.image.tag }}"
+ imagePullPolicy: {{ .Values.exporters.jmx.image.pullPolicy }}
+ ports:
+ {{- range $key, $port := .Values.exporters.jmx.ports }}
+ - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+ {{- end }}
+ livenessProbe:
+{{ toYaml .Values.exporters.jmx.livenessProbe | indent 12 }}
+ readinessProbe:
+{{ toYaml .Values.exporters.jmx.readinessProbe | indent 12 }}
+ env:
+ - name: SERVICE_PORT
+ value: {{ .Values.exporters.jmx.ports.jmxxp.containerPort | quote }}
+ {{- with .Values.exporters.jmx.env }}
+ {{- range $key, $value := . }}
+ - name: {{ $key | upper | replace "." "_" }}
+ value: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ resources:
+{{ toYaml .Values.exporters.jmx.resources | indent 12 }}
+ volumeMounts:
+ - name: config-jmx-exporter
+ mountPath: /opt/jmx_exporter/config.yml
+ subPath: config.yml
+{{- end }}
+
+{{- if .Values.exporters.zookeeper.enabled }}
+ - name: zookeeper-exporter
+ image: "{{ .Values.exporters.zookeeper.image.repository }}:{{ .Values.exporters.zookeeper.image.tag }}"
+ imagePullPolicy: {{ .Values.exporters.zookeeper.image.pullPolicy }}
+ args:
+ - -bind-addr=:{{ .Values.exporters.zookeeper.ports.zookeeperxp.containerPort }}
+ - -metrics-path={{ .Values.exporters.zookeeper.path }}
+ - -zookeeper=localhost:{{ .Values.ports.client.containerPort }}
+ - -log-level={{ .Values.exporters.zookeeper.config.logLevel }}
+ - -reset-on-scrape={{ .Values.exporters.zookeeper.config.resetOnScrape }}
+ ports:
+ {{- range $key, $port := .Values.exporters.zookeeper.ports }}
+ - name: {{ $key }}
+{{ toYaml $port | indent 14 }}
+ {{- end }}
+ livenessProbe:
+{{ toYaml .Values.exporters.zookeeper.livenessProbe | indent 12 }}
+ readinessProbe:
+{{ toYaml .Values.exporters.zookeeper.readinessProbe | indent 12 }}
+ env:
+ {{- range $key, $value := .Values.exporters.zookeeper.env }}
+ - name: {{ $key | upper | replace "." "_" }}
+ value: {{ $value | quote }}
+ {{- end }}
+ resources:
+{{ toYaml .Values.exporters.zookeeper.resources | indent 12 }}
+{{- end }}
+
+ {{- with .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml . | indent 8 }}
+ {{- end }}
+ {{- with .Values.affinity }}
+ affinity:
+{{ toYaml . | indent 8 }}
+ {{- end }}
+ {{- with .Values.tolerations }}
+ tolerations:
+{{ toYaml . | indent 8 }}
+ {{- end }}
+ {{- if (or .Values.exporters.jmx.enabled (not .Values.persistence.enabled)) }}
+ volumes:
+ {{- if .Values.exporters.jmx.enabled }}
+ - name: config-jmx-exporter
+ configMap:
+ name: {{ .Release.Name }}-jmx-exporter
+ {{- end }}
+ {{- if not .Values.persistence.enabled }}
+ - name: zookeeper-data
+ emptyDir: {}
+ {{- end }}
+ {{- end }}
+ {{- if .Values.persistence.enabled }}
+ volumeClaimTemplates:
+ - metadata:
+ name: zookeeper-data
+ labels:
+ app: {{ .Chart.Name }}
+ chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+ release: "{{ .Release.Name }}"
+ heritage: "{{ .Release.Service }}"
+ annotations:
+ volume.beta.kubernetes.io/storage-class: {{ .Values.persistence.storageClass }}
+ spec:
+ storageClassName: {{ .Values.persistence.storageClass }}
+ accessModes:
+ - {{ .Values.persistence.accessMode | quote }}
+ resources:
+ requests:
+ storage: {{ .Values.persistence.size | quote }}
+ {{- end }}
diff --git a/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml b/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml
new file mode 100644
index 0000000000..b0c05fdbfd
--- /dev/null
+++ b/kubernetes/common/music/charts/zookeeper/templates/volumes.yaml
@@ -0,0 +1,25 @@
+{{ if .Values.persistence.enabled }}
+{{- $root := . -}}
+{{ range $i, $e := until (atoi (quote $root.Values.replicaCount) | default 3) }}
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: {{ $root.Release.Name }}-{{ $root.Values.service.name }}-{{ $i }}
+ namespace: {{ $root.Release.Namespace }}
+ labels:
+ type: {{ $root.Values.persistence.storageType }}
+ app: {{ $root.Values.service.name }}
+ chart: {{ $root.Chart.Name }}-{{ $root.Chart.Version | replace "+" "_" }}
+ release: {{ $root.Release.Name }}
+ heritage: {{ $root.Release.Service }}
+spec:
+ capacity:
+ storage: {{ $root.Values.persistence.size }}
+ accessModes:
+ - {{ $root.Values.persistence.accessMode }}
+ hostPath:
+ path: {{ $root.Values.persistence.mountPath }}/{{ $root.Release.Name }}/{{ $root.Values.persistence.mountSubPath }}-{{$i}}
+ persistentVolumeReclaimPolicy: {{ $root.Values.persistence.volumeReclaimPolicy }}
+{{ end }}
+{{ end }}