kind: pipeline name: Serverctl steps: - name: terraform plan image: alpine environment: HCLOUD_TOKEN: from_secret: serverctl_hcloud_token ACCESS_KEY: from_secret: serverctl_access_key SECRET_KEY: from_secret: serverctl_secret_key SSH_ZIP_KEY: from_secret: serverctl_ssh_zip_key HCLOUD_SSH_KEY_ID: from_secret: serverctl_hcloud_ssh_key_id commands: - apk --update add curl zip ansible python3 - cd infrastructure && ./unzip-ssh-keys.sh "$SSH_ZIP_KEY" && cd .. - curl --silent --output terraform.zip "https://releases.hashicorp.com/terraform/1.1.6/terraform_1.1.6_linux_amd64.zip" - unzip terraform.zip ; rm -f terraform.zip; chmod +x terraform - mkdir -p ${HOME}/bin ; export PATH=${PATH}:${HOME}/bin; mv terraform ${HOME}/bin/ - terraform -v - cd infrastructure/create-resources - terraform init -backend-config="access_key=$ACCESS_KEY" -backend-config="secret_key=$SECRET_KEY" - terraform validate - terraform apply -auto-approve -var "hcloud_token=$HCLOUD_TOKEN" -var "pvt_key=../ssh_keys/id_ed25519" -var "pub_key=../ssh_keys/id_ed25519.pub" -var "hcloud_serverctl_ssh_key_id=$HCLOUD_SSH_KEY_ID" - cd ansible - /usr/bin/ansible-playbook -u root --key-file '../../ssh_keys/id_ed25519' -e 'pub_key=../../ssh_keys/id_ed25519.pub' site.yml