52 lines
2.0 KiB
YAML
52 lines
2.0 KiB
YAML
{{- if .Values.initJob.enabled }}
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: {{ include "unifi.credentials.name" . }}
|
|
labels:
|
|
{{- include "unifi.labels" . | nindent 4 }}
|
|
spec:
|
|
template:
|
|
metadata:
|
|
name: {{ include "unifi.credentials.name" . }}
|
|
labels:
|
|
app.kubernetes.io/name: {{ include "unifi.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
spec:
|
|
restartPolicy: OnFailure
|
|
containers:
|
|
- name: mongo-init
|
|
image: "{{ .Values.initJob.image.repository }}:{{ .Values.initJob.image.tag }}"
|
|
imagePullPolicy: {{ .Values.initJob.image.pullPolicy }}
|
|
envFrom:
|
|
- secretRef:
|
|
name: {{ include "unifi.credentials.name.secret" . }}
|
|
command:
|
|
- bash
|
|
- -c
|
|
- |
|
|
# Wait until MongoDB is ready
|
|
until mongosh "mongodb://$MONGO_ROOT_USERNAME:$MONGO_ROOT_PASSWORD@{{ .Values.mongo.hostname }}:{{ .Values.mongo.port }}/admin" --eval "db.adminCommand('ping')" > /dev/null 2>&1; do
|
|
echo "Waiting for MongoDB..."
|
|
sleep 5
|
|
done
|
|
|
|
mongosh "mongodb://$MONGO_ROOT_USERNAME:$MONGO_ROOT_PASSWORD@{{ .Values.mongo.hostname }}:{{ .Values.mongo.port }}/admin" --eval "
|
|
db = db.getSiblingDB('admin');
|
|
if (!db.getUser('{{ .Values.mongo.username }}')) {
|
|
print('Creating user: {{ .Values.mongo.username }}');
|
|
db.createUser({
|
|
user: '{{ .Values.mongo.username }}',
|
|
pwd: '{{ .Values.mongo.password }}',
|
|
roles: [
|
|
{ db: '{{ .Values.mongo.database }}', role: 'dbOwner' },
|
|
{ db: '{{ .Values.mongo.database }}_stat', role: 'dbOwner' },
|
|
{ db: '{{ .Values.mongo.database }}_audit', role: 'dbOwner' }
|
|
]
|
|
});
|
|
} else {
|
|
print('User already exists, skipping');
|
|
}
|
|
"
|
|
{{- end }}
|