Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions .github/workflows/terraform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#wokflow for Vprofile IAC
name: "Vprofile IAC"
on:
push:
branches:
- main
- stage
paths:
- "terraform/**"
pull_request:
branches:
- main
- stage
paths:
- "terraform/**"

env:
# Credentials for deployments to AWS
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_ID }}
# s3 bucket for the terraform state
BUCKET_TF_STATE: ${{ secrets.BUCKET_TF_STATE }}
AWS_REGION: us-east-2
EKS_CLUSTER: vprofile-eks

jobs:
terraform:
name: "Apply Terraform code Changes"
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: ./terraform

steps:
- name: "Checkout source code"
uses: actions/checkout@v4

- name: "Setup Terraform with specified version on the runner"
uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: 1.7.6
# cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
- name: "Terraform Init"
id: init
run: terraform init -backend-config="bucket=$BUCKET_TF_STATE"

- name: "Terraform Format"
id: fmt
run: terraform fmt -check

- name: "Terraform Validate"
id: validate
run: terraform validate

- name: "Terraform Plan"
id: plan
run: terraform plan -no-color -input=false -out planfile
continue-on-error: true

- name: "Terraform plan status"
if: steps.plan.outcome == 'failure'
run: exit 1

- name: "Terraform Apply"
id: apple
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: terraform apply -auto-approve -input=false -parallelism=1 planfile

- name: "Configure AWS credentials"
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}

- name: "Get Kube config file"
id: getkubeconfig
if: steps.apple.outcome == 'success'
run: aws eks update-kubeconfig --region ${{ env.AWS_REGION }} --name ${{ env.EKS_CLUSTER }}

- name: "Install Ingress controller"
if: steps.apple.outcome == 'success' && steps.getconfig.outcome == 'success'
run: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.3/deploy/static/provider/aws/deploy.yaml
4 changes: 2 additions & 2 deletions terraform/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ terraform {
}

backend "s3" {
bucket = "gitopsterrastate"
bucket = "vprofileactionsjhez03"
key = "terraform.tfstate"
region = "us-east-2"
}

required_version = "~> 1.6.3"
required_version = "~> 1.13.3"
}
##
##
Expand Down
6 changes: 5 additions & 1 deletion terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,9 @@ variable "region" {
variable "clusterName" {
description = "Name of the EKS cluster"
type = string
default = "kitops-eks"
default = "vprofile-eks"
}


##
###