name: Deploy DNS Records on: push: branches: [main] paths: [records.yaml] jobs: deploy: runs-on: self-hosted steps: - uses: actions/checkout@v4 - name: Setup kubeconfig run: | mkdir -p ~/.kube echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config chmod 600 ~/.kube/config - name: Install kubectl run: | if ! command -v kubectl &>/dev/null; then curl -sLO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" sudo install kubectl /usr/local/bin/kubectl fi kubectl version --client - name: Generate and apply CoreDNS configmap run: | chmod +x generate.sh ./generate.sh records.yaml > /tmp/coredns-custom.yaml echo "--- Generated configmap ---" cat /tmp/coredns-custom.yaml echo "--- Applying ---" kubectl apply -f /tmp/coredns-custom.yaml kubectl rollout restart deployment/coredns -n kube-system kubectl rollout status deployment/coredns -n kube-system --timeout=60s echo "DNS records applied successfully"