{{- if .Values.initJob.enabled }} apiVersion: batch/v1 kind: Job metadata: name: {{ include "nominatim.initJobName" . }} namespace: {{ .Values.global.namespace }} labels: {{- include "nominatim.labels" . | nindent 4 }} app.kubernetes.io/component: data-init spec: ttlSecondsAfterFinished: {{ .Values.initJob.ttlSecondsAfterFinished }} template: metadata: labels: app.kubernetes.io/name: {{ include "nominatim.initJobName" . }} app.kubernetes.io/component: data-init spec: restartPolicy: OnFailure containers: - name: nominatim-import image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - sh - -c - | set -e echo "Checking if Nominatim database is already initialized..." if psql -lqt | cut -d \| -f 1 | grep -qw nominatim; then echo "Nominatim database already exists. Skipping import." exit 0 fi echo "Downloading Spain OSM data..." wget -O /tmp/spain-latest.osm.pbf "${NOMINATIM_PBF_URL}" echo "Importing OSM data into Nominatim (this may take 30-60 minutes)..." nominatim import --osm-file /tmp/spain-latest.osm.pbf echo "Building search indices..." nominatim refresh --website --importance echo "Nominatim initialization complete!" volumeMounts: - name: nominatim-data mountPath: /var/lib/postgresql - name: nominatim-flatnode mountPath: /nominatim-flatnode env: - name: NOMINATIM_PBF_URL valueFrom: configMapKeyRef: name: {{ include "nominatim.configMapName" . }} key: NOMINATIM_PBF_URL - name: NOMINATIM_IMPORT_STYLE valueFrom: configMapKeyRef: name: {{ include "nominatim.configMapName" . }} key: NOMINATIM_IMPORT_STYLE - name: NOMINATIM_THREADS valueFrom: configMapKeyRef: name: {{ include "nominatim.configMapName" . }} key: NOMINATIM_THREADS - name: NOMINATIM_FLATNODE_FILE valueFrom: configMapKeyRef: name: {{ include "nominatim.configMapName" . }} key: NOMINATIM_FLATNODE_FILE resources: {{- toYaml .Values.initJob.resources | nindent 10 }} volumes: - name: nominatim-data persistentVolumeClaim: claimName: {{ include "nominatim.dataPvcName" . }} - name: nominatim-flatnode persistentVolumeClaim: claimName: {{ include "nominatim.flatnodePvcName" . }} {{- end }}