From f79a7b59222adab27ef7ee9b22a796a6042bf718 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Thu, 30 Jan 2025 16:25:08 -0500 Subject: [PATCH 01/10] Bucket name & cluster name updated --- terraform/terraform.tf | 4 ++-- terraform/variables.tf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/terraform/terraform.tf b/terraform/terraform.tf index 67b75c673..9356091d1 100644 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -27,9 +27,9 @@ terraform { } backend "s3" { - bucket = "gitopsterrastate" + bucket = "terraform-gitops-98" key = "terraform.tfstate" - region = "us-east-2" + region = "us-east-1" } required_version = "~> 1.6.3" diff --git a/terraform/variables.tf b/terraform/variables.tf index a41d982a0..47c70efca 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -1,11 +1,11 @@ variable "region" { description = "AWS region" type = string - default = "us-east-2" + default = "us-east-1" } variable "clusterName" { description = "Name of the EKS cluster" type = string - default = "kitops-eks" + default = "gitops-eks" } From ca951ea4f2872fee9715a3ec38094f8ecd005acf Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Thu, 30 Jan 2025 19:36:14 -0500 Subject: [PATCH 02/10] staging workflow --- .github/workflows/terraform.yml | 59 +++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/terraform.yml diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml new file mode 100644 index 000000000..427b51dd5 --- /dev/null +++ b/.github/workflows/terraform.yml @@ -0,0 +1,59 @@ +name: "ashley gitops IAC" + +on: + push: + branches: + - main + - stage + paths: + - terraform/** # Adjust the path filter if you have specific files like *.tf + + pull_request: + branches: + - main + paths: + - terraform/** # Adjust the path filter if you have specific files like *.tf + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + BUCKET_TF_STATE: ${{ secrets.BUCKET_TF_STATE }} + AWS_REGION: us-east-1 + EKS_CLUSTER: gitops-eks + +jobs: + terraform: + name: "Apply Terraform 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 + + - 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 # Optional, remove if you don't want to continue on failure + + - name: Terraform plan status + if: steps.plan.outcome == 'failure' + run: exit 1 From e7870668dd35d955300ccf5050b75ee86614a819 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Thu, 30 Jan 2025 20:15:37 -0500 Subject: [PATCH 03/10] terraform config --- terraform/variables.tf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/terraform/variables.tf b/terraform/variables.tf index 47c70efca..b39b72e2e 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -9,3 +9,5 @@ variable "clusterName" { type = string default = "gitops-eks" } + +## \ No newline at end of file From e7b9a05f54b9c8c54e02a7c3bbb8ac4b95f9a06b Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Thu, 30 Jan 2025 20:20:40 -0500 Subject: [PATCH 04/10] updated version --- terraform/terraform.tf | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/terraform/terraform.tf b/terraform/terraform.tf index 9356091d1..6350d3de8 100644 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -32,8 +32,7 @@ terraform { region = "us-east-1" } - required_version = "~> 1.6.3" + required_version = "~> 1.6, >= 1.10" # Updated to allow Terraform >= 1.10 } -## -## -## + + From e80b4a04d9409675a44f7b8d98987bfc21c0ffb5 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Thu, 30 Jan 2025 20:27:33 -0500 Subject: [PATCH 05/10] test workflow --- terraform/terraform.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/terraform.tf b/terraform/terraform.tf index 6350d3de8..a286c0616 100644 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -32,7 +32,7 @@ terraform { region = "us-east-1" } - required_version = "~> 1.6, >= 1.10" # Updated to allow Terraform >= 1.10 + required_version = "~> 1.6, >= 1.10" # Updated to allow Terraform >= 1.10 } From 382a94920ec85012edea0c3494b837b2639f1a64 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Mon, 3 Feb 2025 14:24:26 -0500 Subject: [PATCH 06/10] added terraform apply step --- .github/workflows/terraform.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml index 427b51dd5..5059a285c 100644 --- a/.github/workflows/terraform.yml +++ b/.github/workflows/terraform.yml @@ -57,3 +57,24 @@ jobs: - 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 Creds + 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 }} + aws-region: ${{ env.AWS_REGION }} # Fixed the space issue here + + - name: Get kube config file + id: getconfig + 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 From 497b6b0642510d831a708930b06769e3f2b6ea3e Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Mon, 3 Feb 2025 14:26:53 -0500 Subject: [PATCH 07/10] stage test --- terraform/variables.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/terraform/variables.tf b/terraform/variables.tf index b39b72e2e..e3436dbff 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -10,4 +10,5 @@ variable "clusterName" { default = "gitops-eks" } +## ## \ No newline at end of file From 174c9c0f1fc08b86b2be044d0a3d787c43073d43 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Mon, 3 Feb 2025 15:13:17 -0500 Subject: [PATCH 08/10] stage test --- .github/workflows/terraform.yml | 80 --------------------------------- terraform/terraform.tf | 1 - 2 files changed, 81 deletions(-) diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml index 5059a285c..e69de29bb 100644 --- a/.github/workflows/terraform.yml +++ b/.github/workflows/terraform.yml @@ -1,80 +0,0 @@ -name: "ashley gitops IAC" - -on: - push: - branches: - - main - - stage - paths: - - terraform/** # Adjust the path filter if you have specific files like *.tf - - pull_request: - branches: - - main - paths: - - terraform/** # Adjust the path filter if you have specific files like *.tf - -env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - BUCKET_TF_STATE: ${{ secrets.BUCKET_TF_STATE }} - AWS_REGION: us-east-1 - EKS_CLUSTER: gitops-eks - -jobs: - terraform: - name: "Apply Terraform 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 - - - 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 # Optional, remove if you don't want to continue on failure - - - 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 Creds - 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 }} - aws-region: ${{ env.AWS_REGION }} # Fixed the space issue here - - - name: Get kube config file - id: getconfig - 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 diff --git a/terraform/terraform.tf b/terraform/terraform.tf index a286c0616..a331f04e6 100644 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -35,4 +35,3 @@ terraform { required_version = "~> 1.6, >= 1.10" # Updated to allow Terraform >= 1.10 } - From 41e2fe60f17d8c1f67c023857f01bb4d59d98a56 Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Mon, 3 Feb 2025 15:19:04 -0500 Subject: [PATCH 09/10] troubleshoot --- .github/workflows/terraform.yml | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml index e69de29bb..6b4be738d 100644 --- a/.github/workflows/terraform.yml +++ b/.github/workflows/terraform.yml @@ -0,0 +1,80 @@ +name: "ashley gitops IAC" + +on: + push: + branches: + - main + - stage + paths: + - terraform/** # Adjust the path filter if you have specific files like *.tf + + pull_request: + branches: + - main + paths: + - terraform/** # Adjust the path filter if you have specific files like *.tf + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + BUCKET_TF_STATE: ${{ secrets.BUCKET_TF_STATE }} + AWS_REGION: us-east-1 + EKS_CLUSTER: gitops-eks + +jobs: + terraform: + name: "Apply Terraform 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 + + - 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 # Optional, remove if you don't want to continue on failure + + - 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 }} + aws-region: ${{ env.AWS_REGION }} # Fixed the space issue here + + - name: Get kube config file + id: getconfig + 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 From 1ccf5c804606f9279e71f5f6e4deefeda2730bcf Mon Sep 17 00:00:00 2001 From: ashleypearl-web Date: Mon, 3 Feb 2025 15:21:42 -0500 Subject: [PATCH 10/10] stage test --- terraform/variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/variables.tf b/terraform/variables.tf index e3436dbff..de87577f1 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -11,4 +11,4 @@ variable "clusterName" { } ## -## \ No newline at end of file +#### \ No newline at end of file