42 lines
1.4 KiB
YAML
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 }}
|