-
Notifications
You must be signed in to change notification settings - Fork 40
59 lines (57 loc) · 2.18 KB
/
terraform-iac-apply.yaml
File metadata and controls
59 lines (57 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
name: Apply Infrastructure via Terraform
on:
workflow_dispatch:
jobs:
terraform:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.0.8
- name: Add dotenv
run: |
cat << EOF > .env
ASTRA_DB_CLIENT_ID=${{ secrets.ASTRA_DB_CLIENT_ID }}
ASTRA_DB_CLIENT_SECRET=${{ secrets.ASTRA_DB_CLIENT_SECRET }}
AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}
BUCKET_NAME=${{ secrets.BUCKET_NAME }}
ENDPOINT_URL=${{ secrets.ENDPOINT_URL }}
REGION_NAME=${{ secrets.REGION_NAME }}
GIT_CRYPT_KEY=${{ secrets.GIT_CRYPT_KEY }}
EOF
- name: Create Terraform Backend
run: |
cat << EOF > iac/backend
skip_credentials_validation = true
skip_region_validation = true
bucket = "cfe-ai-as-an-api"
key = "ai-as-an-api.tfstate"
region = "${{ secrets.REGION_NAME }}"
endpoint = "us-southeast-1.linodeobjects.com"
access_key = "${{ secrets.AWS_ACCESS_KEY_ID }}"
secret_key = "${{ secrets.AWS_SECRET_ACCESS_KEY }}"
EOF
- name: Create Terraform Backend
run: |
cat << EOF > iac/terraform.tfvars
linode_api_token="${{ secrets.LINODE_API_TOKEN }}"
root_user_pw="${{ secrets.LINODE_INSTANCE_USER_PW }}"
node_count="${{ secrets.TERRAFORM_NODE_COUNT }}"
git_repo="${{ secrets.TERRAFORM_GIT_REPO }}"
commit_id="${GITHUB_SHA::5}${{ github.run_attempt }}"
EOF
- name: Terraform Init
run: terraform -chdir=./iac init -backend-config=backend
- name: Terraform Validate
id: validate
run: terraform validate -no-color
- name: Terraform Refresh
run: terraform -chdir=./iac refresh
- name: Apply Changes
run: terraform -chdir=./iac apply -auto-approve
- name: Update Nodebalancer
run: terraform -chdir=./iac apply -auto-approve -replace="linode_instance.pycfeai"