Skip to content

Commit b513fe4

Browse files
authored
Move plan tests to AWS CodeBuild (#152)
* Add plan test on CodeBuild * (to revert) remove changes filter * (to revert) allow running on current branch * (to revert) run assume role always * Fix terraform state s3 keys for ci tests * Add defaults for e2e * Fix bucket name * Debug clone version * Pass build version * Use actions env syntax * fixup! Use actions env syntax * fixup! fixup! Use actions env syntax * fixup! fixup! fixup! Use actions env syntax * Add input for amp monitoring * Update e2e cluster name * use credentials v2 * Cleanup * Add build badge * Revert triggers settings
1 parent eb5f294 commit b513fe4

File tree

9 files changed

+52
-24
lines changed

9 files changed

+52
-24
lines changed

.github/workflows/plan-examples.yml

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,29 +75,42 @@ jobs:
7575
- '*.tf'
7676
7777
- name: Configure AWS credentials from Test account
78-
uses: aws-actions/configure-aws-credentials@v1
78+
uses: aws-actions/configure-aws-credentials@v2
7979
if: steps.changes.outputs.src== 'true'
8080
with:
8181
role-to-assume: ${{ secrets.ROLE_TO_ASSUME }}
8282
aws-region: us-west-2
8383
role-duration-seconds: 3600
8484
role-session-name: GithubActions-Session
8585

86-
- name: Terraform Job
87-
uses: hashicorp/setup-terraform@v2
86+
- name: Terraform plan from CodeBuild
8887
if: steps.changes.outputs.src== 'true'
88+
uses: aws-actions/aws-codebuild-run-build@v1
89+
env:
90+
TF_VAR_aws_region: us-west-2
91+
TF_VAR_managed_grafana_workspace_id: ${{ secrets.GRAFANA_WORKSPACE_ID }}
92+
TF_VAR_eks_cluster_id: e2e-tests
93+
TF_VAR_managed_prometheus_workspace_ids: ${{ secrets.PROMETHEUS_WORKSPACE_ID }}
8994
with:
90-
terraform_version: 1.2.9
91-
92-
- if: steps.changes.outputs.src== 'true'
93-
run: terraform version
94-
95-
- name: Terraform Init
96-
if: steps.changes.outputs.src== 'true'
97-
run: terraform init -reconfigure
98-
working-directory: ${{ matrix.directory }}
99-
100-
- name: Terraform Plan
101-
if: steps.changes.outputs.src== 'true'
102-
working-directory: ${{ matrix.directory }}
103-
run: terraform plan -no-color
95+
project-name: terraform-plan
96+
disable-source-override: false
97+
env-vars-for-codebuild: |
98+
TF_VAR_aws_region,
99+
TF_VAR_managed_grafana_workspace_id,
100+
TF_VAR_eks_cluster_id,
101+
TF_VAR_managed_prometheus_workspace_ids
102+
buildspec-override: |
103+
version: 0.2
104+
phases:
105+
build:
106+
commands:
107+
- export TF_VAR_grafana_api_key="fakeapikey"
108+
- curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
109+
- sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
110+
- sudo apt-get update && sudo apt-get install terraform
111+
- terraform -version
112+
- aws --version
113+
- cd ${{ matrix.directory }}
114+
- sed -i 's/#//' versions.tf
115+
- terraform init
116+
- terraform plan

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# AWS Observability Accelerator for Terraform
22

33
[![pre-commit](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/pre-commit.yaml)
4+
[![plan-examples](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/plan-examples.yml/badge.svg)](https://github.com/aws-observability/terraform-aws-observability-accelerator/actions/workflows/plan-examples.yml)
45

56
Welcome to the AWS Observability Accelerator for Terraform!
67

examples/eks-cluster-with-vpc/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
variable "cluster_name" {
22
description = "Name of cluster - used by Terratest for e2e test automation"
33
type = string
4-
default = ""
4+
default = "eks-cluster-with-vpc"
55

66
validation {
77
# cluster name is used as prefix on eks_blueprint module and cannot be >25 characters

examples/eks-cluster-with-vpc/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ terraform {
2626

2727
# ## Used for end-to-end testing on project; update to suit your needs
2828
# backend "s3" {
29-
# bucket = "observability-accelerator-terraform-states"
29+
# bucket = "aws-observability-accelerator-terraform-states"
3030
# region = "us-west-2"
3131
# key = "e2e/eks-cluster-with-vpc/terraform.tfstate"
3232
# }

examples/existing-cluster-java/versions.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ terraform {
2626

2727
# ## Used for end-to-end testing on project; update to suit your needs
2828
# backend "s3" {
29-
# bucket = "observability-accelerator-terraform-states"
29+
# bucket = "aws-observability-accelerator-terraform-states"
3030
# region = "us-west-2"
31-
# key = "e2e/existing-cluster-with-base-and-infra/terraform.tfstate"
31+
# key = "e2e/existing-cluster-java/terraform.tfstate"
3232
# }
3333

3434
}

examples/existing-cluster-nginx/versions.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ terraform {
2626

2727
# ## Used for end-to-end testing on project; update to suit your needs
2828
# backend "s3" {
29-
# bucket = "observability-accelerator-terraform-states"
29+
# bucket = "aws-observability-accelerator-terraform-states"
3030
# region = "us-west-2"
31-
# key = "e2e/existing-cluster-with-base-and-infra/terraform.tfstate"
31+
# key = "e2e/existing-cluster-nginx/terraform.tfstate"
3232
# }
3333

3434
}

examples/existing-cluster-with-base-and-infra/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ terraform {
2626

2727
# ## Used for end-to-end testing on project; update to suit your needs
2828
# backend "s3" {
29-
# bucket = "observability-accelerator-terraform-states"
29+
# bucket = "aws-observability-accelerator-terraform-states"
3030
# region = "us-west-2"
3131
# key = "e2e/existing-cluster-with-base-and-infra/terraform.tfstate"
3232
# }

examples/managed-grafana-workspace/versions.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,11 @@ terraform {
77
version = ">= 4.0.0"
88
}
99
}
10+
11+
# ## Used for end-to-end testing on project; update to suit your needs
12+
# backend "s3" {
13+
# bucket = "aws-observability-accelerator-terraform-states"
14+
# region = "us-west-2"
15+
# key = "e2e/managed-grafana-workspace/terraform.tfstate"
16+
# }
1017
}

examples/managed-prometheus-monitoring/versions.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,11 @@ terraform {
1111
version = ">= 1.25.0"
1212
}
1313
}
14+
15+
# ## Used for end-to-end testing on project; update to suit your needs
16+
# backend "s3" {
17+
# bucket = "aws-observability-accelerator-terraform-states"
18+
# region = "us-west-2"
19+
# key = "e2e/managed-prometheus-monitoring/terraform.tfstate"
20+
# }
1421
}

0 commit comments

Comments
 (0)