diff --git a/.gitea/workflows/staging.yml b/.gitea/workflows/staging.yml index 266a6a0..f54c5e6 100644 --- a/.gitea/workflows/staging.yml +++ b/.gitea/workflows/staging.yml @@ -14,31 +14,39 @@ jobs: with: submodules: true - - name: Delete alte Staging VM (via Proxmox API) - run: | - # Alte CT 200 via Proxmox API löschen (falls existiert) - VMID="200" - NODE="${{ secrets.PROXMOX_NODE }}" - - # Token encoding für Basic Auth - TOKEN="${{ secrets.PROXMOX_TOKEN_ID }}:${{ secrets.PROXMOX_TOKEN_SECRET }}" - TOKEN_B64=$(echo -n "$TOKEN" | base64 -w 0) - - # Delete LXC Container (ignore errors wenn nicht existiert) - curl -k -X DELETE \ - -H "Authorization: Basic $TOKEN_B64" \ - "${{ secrets.PROXMOX_HOST }}/api2/json/nodes/$NODE/lxc/$VMID" \ - || true - - # Warte kurz bis VM weg ist - sleep 5 - - - name: Terraform Init & Apply (Staging LXC erstellen) + - name: Terraform Init & Clean Deploy (alte VM importieren & zerstören) working-directory: terraform run: | terraform init - # Neue Staging VM erstellen + # Versuche alte VM zu importieren (falls existiert) + terraform import -auto-approve \ + -var="proxmox_host=${{ secrets.PROXMOX_HOST }}" \ + -var="proxmox_token_id=${{ secrets.PROXMOX_TOKEN_ID }}" \ + -var="proxmox_token_secret=${{ secrets.PROXMOX_TOKEN_SECRET }}" \ + -var="proxmox_node=${{ secrets.PROXMOX_NODE }}" \ + -var="lxc_bridge=vmbr2" \ + -var="staging_ip=${{ secrets.STAGING_IP }}" \ + -var="staging_gw=${{ secrets.STAGING_GW }}" \ + -var="ssh_public_key=${{ secrets.DEPLOY_SSH_PUBKEY }}" \ + -var="ssh_private_key=${{ secrets.DEPLOY_SSH_KEY }}" \ + proxmox_lxc.staging "200" \ + 2>/dev/null || true + + # Alte VM zerstören + terraform destroy -auto-approve \ + -var="proxmox_host=${{ secrets.PROXMOX_HOST }}" \ + -var="proxmox_token_id=${{ secrets.PROXMOX_TOKEN_ID }}" \ + -var="proxmox_token_secret=${{ secrets.PROXMOX_TOKEN_SECRET }}" \ + -var="proxmox_node=${{ secrets.PROXMOX_NODE }}" \ + -var="lxc_bridge=vmbr2" \ + -var="staging_ip=${{ secrets.STAGING_IP }}" \ + -var="staging_gw=${{ secrets.STAGING_GW }}" \ + -var="ssh_public_key=${{ secrets.DEPLOY_SSH_PUBKEY }}" \ + -var="ssh_private_key=${{ secrets.DEPLOY_SSH_KEY }}" \ + || true + + # Neue saubere VM erstellen terraform apply -auto-approve \ -var="proxmox_host=${{ secrets.PROXMOX_HOST }}" \ -var="proxmox_token_id=${{ secrets.PROXMOX_TOKEN_ID }}" \