agora/contoso_motors/charts/influxdb/templates/influxdb-setup.yaml (46 lines of code) (raw):
apiVersion: batch/v1
kind: Job
metadata:
name: bash-influx-setup-job
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: "influxdb"
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "15"
spec:
template:
spec:
containers:
- name: bash-job
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
command: ["/bin/bash", "-c"]
args:
- |
#!/bin/bash
sleep 5
# Run the influx setup command and capture any output and error
output=$(influx setup --host http://influxdb.contoso-motors.svc.cluster.local:8086 --bucket manufacturing --org InfluxData --password $(cat /etc/secrets/password) --username admin --token secret-token --force 2>&1)
# If the command was successful, print the output and exit
if [ $? -eq 0 ]; then
echo "$output"
exit 0
fi
# If the command failed, check if it's because the instance is already set up
if echo "$output" | grep -q "Error: instance has already been set up"; then
echo "InfluxDB is already set up."
exit 0
else
# If the command failed for any other reason, print the output and exit with a failure status
echo "$output"
exit 1
fi
volumeMounts:
- name: influxdb
mountPath: /etc/secrets
readOnly: true
volumes:
- name: influxdb
secret:
secretName: influxdb-pass
restartPolicy: Never