charts/osdu-developer-init/templates/partition-init.yaml (233 lines of code) (raw):

{{- $enabled := eq (include "osdu-developer-init.isEnabled" .) "1" -}} {{- $namespace := .Release.Namespace -}} {{- if and $enabled .Values.jobs.partitionInit }} --- apiVersion: batch/v1 kind: Job metadata: name: partition-init namespace: {{ $namespace }} spec: ttlSecondsAfterFinished: 120 template: metadata: labels: azure.workload.identity/use: "true" spec: serviceAccountName: workload-identity-sa volumes: - name: script configMap: name: partition-init-script defaultMode: 0500 initContainers: - name: data-seed image: mcr.microsoft.com/azure-cli:cbl-mariner2.0 command: - script/init.sh volumeMounts: - name: script mountPath: "/script" env: - name: NAMESPACE value: {{ $namespace }} - name: AZURE_TENANT_ID value: {{ .Values.tenantId | quote }} - name: AZURE_AD_APPLICATION_ID value: {{ .Values.clientId | quote }} - name: PARTITION value: {{ .Values.partition | quote }} - name: SERVICE_BUS_NAME value: {{ .Values.serviceBus | quote }} containers: - name: sleep image: istio/base command: ["/bin/sleep", "10"] volumeMounts: # Ensure this container also mounts the volume if needed - name: script mountPath: "/script" restartPolicy: Never --- apiVersion: v1 kind: ConfigMap metadata: name: partition-init-script namespace: {{ $namespace }} data: partition.json: | { "properties": { "compliance-ruleset": { "value": "shared" }, "elastic-endpoint": { "sensitive": true, "value": "elastic-endpoint" }, "elastic-username": { "sensitive": true, "value": "elastic-username" }, "elastic-password": { "sensitive": true, "value": "elastic-password" }, "elastic-ssl-enabled": { "sensitive": false, "value": "false" }, "cosmos-connection": { "sensitive": true, "value": "cosmos-connection" }, "cosmos-endpoint": { "sensitive": true, "value": "cosmos-endpoint" }, "cosmos-primary-key": { "sensitive": true, "value": "cosmos-primary-key" }, "sb-connection": { "sensitive": true, "value": "sb-connection" }, "sb-namespace": { "sensitive": true, "value": "sb-namespace" }, "storage-account-key": { "sensitive": true, "value": "storage-key" }, "storage-account-name": { "sensitive": true, "value": "storage" }, "storage-account-blob-endpoint": { "sensitive": true, "value": "storage-account-blob-endpoint" }, "ingest-storage-account-name": { "sensitive": true, "value": "ingest-storage" }, "ingest-storage-account-key": { "sensitive": true, "value": "ingest-storage-key" }, "hierarchical-storage-account-name": { "sensitive": true, "value": "hierarchical-storage" }, "hierarchical-storage-account-key": { "sensitive": true, "value": "hierarchical-storage-key" }, "eventgrid-recordstopic": { "sensitive": true, "value": "eventgrid-recordstopic" }, "eventgrid-recordstopic-accesskey": { "sensitive": true, "value": "eventgrid-recordstopic-accesskey" }, "eventgrid-legaltagschangedtopic": { "sensitive": true, "value": "eventgrid-legaltagschangedtopic" }, "eventgrid-legaltagschangedtopic-accesskey": { "sensitive": true, "value": "eventgrid-legaltagschangedtopic-accesskey" }, "eventgrid-resourcegroup": { "sensitive": true, "value": "eventgrid-resourcegroup" }, "encryption-key-identifier": { "sensitive": true, "value": "encryption-key-identifier" }, "sdms-storage-account-name": { "sensitive": true, "value": "sdms-storage" }, "sdms-storage-account-key": { "sensitive": true, "value": "sdms-storage-key" }, "eventgrid-schemanotificationtopic": { "sensitive": true, "value": "eventgrid-schemachangedtopic" }, "eventgrid-schemanotificationtopic-accesskey": { "sensitive": true, "value": "eventgrid-schemachangedtopic-accesskey" }, "eventgrid-gsmtopic": { "sensitive": true, "value": "eventgrid-statuschangedtopic" }, "eventgrid-gsmtopic-accesskey": { "sensitive": true, "value": "eventgrid-statuschangedtopic-accesskey" }, "eventgrid-statuschangedtopic": { "sensitive": true, "value": "eventgrid-statuschangedtopic" }, "eventgrid-statuschangedtopic-accesskey": { "sensitive": true, "value": "eventgrid-statuschangedtopic-accesskey" }, "eventgrid-schemachangedtopic": { "sensitive": true, "value": "eventgrid-schemachangedtopic" }, "eventgrid-schemachangedtopic-accesskey": { "sensitive": true, "value": "eventgrid-schemachangedtopic-accesskey" }, "reservoir-connection": { "sensitive": true, "value": "reservoir-conn" }, "indexer-decimation-enabled": { "sensitive": false, "value": "true" } } } init.sh: | #!/usr/bin/env sh set -euo pipefail set -o nounset tdnf install -y curl jq echo "==================================================================" echo " Logging in using Workload Identity" echo "==================================================================" # Login using the federated token from the environment variable az login --federated-token "$(cat ${AZURE_FEDERATED_TOKEN_FILE})" \ --service-principal \ -u ${AZURE_CLIENT_ID} \ -t ${AZURE_TENANT_ID} # Get token with the correct application ID as resource TOKEN=$(az account get-access-token --resource "https://management.azure.com/" --query accessToken -o tsv) OUTPUT=$(curl -s -w "%{http_code}" --request POST \ --url http://partition.{{ $namespace }}/api/partition/v1/partitions/${PARTITION} \ --header "Host: partition.{{ $namespace }}" \ --header "accept: application/json" \ --header "content-type: application/json" \ --header "authorization: Bearer $TOKEN" \ --header "data-partition-id: ${PARTITION}" \ --data $(jq -c '.' /script/partition.json)) HTTP_STATUS_CODE=$(echo $OUTPUT | grep -oE '[0-9]{3}$') BODY=${OUTPUT%???} if [ "$HTTP_STATUS_CODE" == "201" ]; then echo "Success: $(echo "$BODY" | jq .)" elif [ "$HTTP_STATUS_CODE" == "409" ]; then echo "Item already exists: $(echo "$BODY" | jq .)" else echo "Error: Unexpected HTTP status code $HTTP_STATUS_CODE" echo "Response body: $BODY" exit 1 fi exit 0 {{- end }}