paltiverse-actions/.github/workflows/palcloud-terraform-deploy.yml

42 lines
1.4 KiB
YAML

on:
workflow_call:
inputs:
terraform-directory:
type: string
default: terraform
variable-map:
type: string
default: "{}"
secrets:
PALTIVERSE_K8S:
required: true
TAILSCALE_TOKEN:
required: true
jobs:
deploy-palcloud-terraform:
runs-on: ubuntu-latest
container: alpine:3
env: ${{ fromJSON(inputs.variable-map) }}
steps:
- name: Install Alpine dependencies
run: apk add nodejs npm git
- name: Install Terraform
uses: https://gitea.palk.me/paltiverse/paltiverse-actions-setup-terraform@0.0.2
- name: Connect to Paltiverse and configure kubectl
uses: https://gitea.palk.me/paltiverse/paltiverse-actions-kubectl@1.0.3
id: kubectl
with:
tailscale-token: ${{ secrets.TAILSCALE_TOKEN }}
k8s-config: ${{ secrets.PALTIVERSE_K8S }}
- uses: actions/checkout@v4
- name: Initialise Terraform (download providers)
run: terraform init
working-directory: ${{ inputs.terraform-directory }}
- name: Apply Terraform plan
run: terraform apply -auto-approve -lock-timeout=30s
working-directory: ${{ inputs.terraform-directory }}
env:
HTTP_PROXY: ${{ steps.kubectl.outputs.http-proxy }}
HTTPS_PROXY: ${{ steps.kubectl.outputs.http-proxy }}
TF_VAR_kube_config_path: ${{ steps.kubectl.outputs.k8s-config-path }}