diff --git a/myorg-assistant/cronjobs/git-sync.yaml b/myorg-assistant/cronjobs/git-sync.yaml index c4d4dba..a470152 100644 --- a/myorg-assistant/cronjobs/git-sync.yaml +++ b/myorg-assistant/cronjobs/git-sync.yaml @@ -24,6 +24,47 @@ spec: restartPolicy: OnFailure imagePullSecrets: - name: gitea-registry + initContainers: + - name: git-clone + image: alpine/git:latest + command: + - sh + - -c + - | + # Normalize the repo URL host to the correct Gitea subdomain. + # The GIT_REPO_URL secret historically contained gitea.rogi.casa, + # which 526s through Cloudflare; the working subdomain is git.rogi.casa. + export GIT_REPO_URL="$(echo "${GIT_REPO_URL}" | sed -E 's#https?://[^/@]+@?gitea\.rogi\.casa#https://'"${GIT_USERNAME}"':'"${GIT_TOKEN}"'@git.rogi.casa#')" + if [ ! -d /data/myorg/.git ]; then + echo "Cloning repository from ${GIT_REPO_URL}..." + git clone ${GIT_REPO_URL} /data/myorg + cd /data/myorg + git config user.name "${GIT_USERNAME}" + git config user.email "${GIT_USERNAME}@rogi.casa" + git config credential.helper store + echo "https://${GIT_USERNAME}:${GIT_TOKEN}@git.rogi.casa" > ~/.git-credentials + else + echo "Repository already exists, skipping clone." + fi + env: + - name: GIT_REPO_URL + valueFrom: + secretKeyRef: + name: myorg-assistant-secret + key: GIT_REPO_URL + - name: GIT_USERNAME + valueFrom: + secretKeyRef: + name: myorg-assistant-secret + key: GIT_USERNAME + - name: GIT_TOKEN + valueFrom: + secretKeyRef: + name: myorg-assistant-secret + key: GIT_TOKEN + volumeMounts: + - name: myorg-data + mountPath: /data/myorg containers: - name: git-sync image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf