---
apiVersion: batch/v1
kind: Job
metadata:
  name: forgejo-config
  namespace: gitea
spec:
  template:
    metadata:
      generateName: forgejo-config-
    spec:
      restartPolicy: OnFailure
      containers:
        - name: push
          image: docker.io/library/ubuntu:22.04
          env:
            - name: FORGEJO_USER
              valueFrom:
                secretKeyRef:
                  name: forgejo-access-token
                  key: forgejo_username
            - name: FORGEJO_TOKEN
              valueFrom:
                secretKeyRef:
                  name: forgejo-access-token
                  key: forgejo_token
          command: ["/bin/bash", "-c"]
          args:
            - |
              #! /bin/bash

              apt -qq update
              apt -qq install git wget -y
              if [[ "$(uname -m)" == "x86_64" ]]; then
                wget https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_linux_amd64
                install yq_linux_amd64 /usr/local/bin/yq
                rm yq_linux_amd64
              else
                wget https://github.com/mikefarah/yq/releases/download/v4.44.3/yq_linux_arm64
                install yq_linux_arm64 /usr/local/bin/yq
                rm yq_linux_arm64
              fi

              git config --global user.email "bot@bots.de"
              git config --global user.name "giteaAdmin"
              
              git clone https://${FORGEJO_USER}:${FORGEJO_TOKEN}@gitea.factory.c-one-infra.de/giteaAdmin/edfbuilder.git
              cd edfbuilder
              yq eval ".gitea.oauth = [
                {
                  \"name\": \"Keycloak\",
                  \"provider\": \"openidConnect\",
                  \"existingSecret\": \"auth-generic-oauth-secret\",
                  \"autoDiscoverUrl\": \"https://factory.c-one-infra.de/keycloak/realms/cnoe/.well-known/openid-configuration\"
                }
              ] |
                (.gitea.oauth[] | .name) |= (. style=\"single\")
                |
                (.gitea.oauth[] | .provider) |= (. style=\"single\")
                |
                (.gitea.oauth[] | .existingSecret) |= (. style=\"single\")
                |
                (.gitea.oauth[] | .autoDiscoverUrl) |= (. style=\"single\")
              " -i stacks/core/forgejo/values.yaml

              yq eval '.gitea.config.oauth2_client = 
                {
                  "ENABLE_AUTO_REGISTRATION" : true,
                  "ACCOUNT_LINKING" : "auto"
                }
              ' -i stacks/core/forgejo/values.yaml
              
              git add stacks/core/forgejo/values.yaml
              git commit -m "adds Forgejo SSO config"
              git push
  backoffLimit: 99