diff --git a/README.md b/README.md
index 353833bfe..4f96cb9f5 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,8 @@
-
-# github-action-atmos-terraform-plan [![Latest Release](https://img.shields.io/github/release/cloudposse/github-action-atmos-terraform-plan.svg)](https://github.com/cloudposse/github-action-atmos-terraform-plan/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com)
+# github-action-atmos-terraform-plan
+
-[![README Header][readme_header_img]][readme_header_link]
-
-[![Cloud Posse][logo]](https://cpco.io/homepage)
-
- [logo]: https://cloudposse.com/logo-300x69.svg
- [docs]: https://cpco.io/docs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=docs
- [website]: https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=website
- [github]: https://cpco.io/github?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=github
- [jobs]: https://cpco.io/jobs?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=jobs
- [hire]: https://cpco.io/hire?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=hire
- [slack]: https://cpco.io/slack?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=slack
- [twitter]: https://cpco.io/twitter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=twitter
- [office_hours]: https://cloudposse.com/office-hours?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=office_hours
- [newsletter]: https://cpco.io/newsletter?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=newsletter
- [email]: https://cpco.io/email?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=email
- [commercial_support]: https://cpco.io/commercial-support?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=commercial_support
- [we_love_open_source]: https://cpco.io/we-love-open-source?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=we_love_open_source
- [terraform_modules]: https://cpco.io/terraform-modules?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=terraform_modules
- [readme_header_img]: https://cloudposse.com/readme/header/img
- [readme_header_link]: https://cloudposse.com/readme/header/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=readme_header_link
- [readme_footer_img]: https://cloudposse.com/readme/footer/img
- [readme_footer_link]: https://cloudposse.com/readme/footer/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=readme_footer_link
- [readme_commercial_support_img]: https://cloudposse.com/readme/commercial-support/img
- [readme_commercial_support_link]: https://cloudposse.com/readme/commercial-support/link?utm_source=github&utm_medium=readme&utm_campaign=cloudposse/github-action-atmos-terraform-plan&utm_content=readme_commercial_support_link
- [beacon]: https://ga-beacon.cloudposse.com/UA-76589703-4/cloudposse/github-action-atmos-terraform-plan?pixel&cs=github&cm=readme&an=github-action-atmos-terraform-plan
-
+Copyright Β© 2017-2024 [Cloud Posse, LLC](https://cpco.io/copyright)
+
+
+
+
+
diff --git a/README.yaml b/README.yaml
index dd8a3ad49..21f21d506 100644
--- a/README.yaml
+++ b/README.yaml
@@ -55,26 +55,30 @@ usage: |-
### Config
- The action expects the atmos gitops configuration file to be present in the repository in `./.github/config/atmos-gitops.yaml`.
+ The action expects the atmos configuration file `atmos.yaml` to be present in the repository and contains.
The config should have the following structure:
```yaml
- atmos-version: 1.45.3
- atmos-config-path: ./rootfs/usr/local/etc/atmos/
- terraform-state-bucket: cptest-core-ue2-auto-gitops
- terraform-state-table: cptest-core-ue2-auto-gitops
- terraform-state-role: arn:aws:iam::xxxxxxxxxxxx:role/cptest-core-ue2-auto-gitops-gha
- terraform-plan-role: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
- terraform-apply-role: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
- terraform-version: 1.5.2
- aws-region: us-east-2
- enable-infracost: false
- sort-by: .stack_slug
- group-by: .stack_slug | split("-") | [.[0], .[2]] | join("-")
+ integrations:
+ github:
+ gitops:
+ terraform-version: 1.5.2
+ infracost-enabled: false
+ storage:
+ region: us-east-2
+ bucket: cptest-core-ue2-auto-gitops
+ table: cptest-core-ue2-auto-gitops-plan-storage
+ role: arn:aws:iam::xxxxxxxxxxxx:role/cptest-core-ue2-auto-gitops-gha
+ role:
+ plan: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ apply: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ matrix:
+ sort-by: .stack_slug
+ group-by: .stack_slug | split("-") | [.[0], .[2]] | join("-")
```
-
+
> [!IMPORTANT]
- > **Please note!** the `terraform-state-*` parameters refer to the S3 Bucket and corresponding meta storage DynamoDB table used to store the Terraform Plan files, and not the "Terraform State". These parameters will be renamed in a subsequent release.
+ > **Please note!** the action works only with `atmos >= 1.63.0`. If you are using `atmos < 1.63.0` please use `v2` of the action.
### Workflow example
@@ -102,19 +106,111 @@ usage: |-
runs-on: ubuntu-latest
steps:
- name: Plan Atmos Component
- uses: cloudposse/github-action-atmos-terraform-plan@v1
+ uses: cloudposse/github-action-atmos-terraform-plan@v2
with:
component: "foobar"
stack: "plat-ue2-sandbox"
- component-path: "components/terraform/s3-bucket"
- terraform-plan-role: "arn:aws:iam::111111111111:role/acme-core-gbl-identity-gitops"
- terraform-state-bucket: "acme-core-ue2-auto-gitops"
- terraform-state-role: "arn:aws:iam::999999999999:role/acme-core-ue2-auto-gitops-gha"
- terraform-state-table: "acme-core-ue2-auto-gitops"
- aws-region: "us-east-2"
-
+ atmos-config-path: ./atmos.yaml
+ atmos-version: 1.63.0
+ ```
+
+ ### Migrating from `v1` to `v2`
+
+ `v2` works only with `atmos >= 1.63.0`
+
+ `v2` drops `install-terraform` input because terraform is not required for affected stacks call
+
+ `v2` drop `atmos-gitops-config-path` input and `./.github/config/atmos-gitops.yaml` config. Now you have to use GitHub actions inputs and `atmos.yaml` to specify that configuration.
+
+ The following configuration fields now moved to GitHub action inputs with the same names
+
+ | name |
+ |-------------------------|
+ | `atmos-version` |
+ | `atmos-config-path` |
+
+
+ The following configuration fields are now moved to `atmos.yaml`
+
+ | name | path in `atmos.yaml` |
+ |--------------------------|-------------------------------------------------|
+ | `aws-region` | `integrations.github.gitops.storage.region` |
+ | `terraform-state-bucket` | `integrations.github.gitops.storage.bucket` |
+ | `terraform-state-table` | `integrations.github.gitops.storage.table` |
+ | `terraform-state-role` | `integrations.github.gitops.storage.role` |
+ | `terraform-plan-role` | `integrations.github.gitops.role.plan` |
+ | `terraform-apply-role` | `integrations.github.gitops.role.apply` |
+ | `terraform-version` | `integrations.github.gitops.terraform-version` |
+ | `enable-infracost` | `integrations.github.gitops.infracost-enabled` |
+ | `sort-by` | `integrations.github.gitops.matrix.sort-by` |
+ | `group-by` | `integrations.github.gitops.matrix.group-by` |
+
+
+ If you want `v2` having the same behaviour as `v1` you should have
+
+ `atmos.yaml`
+ ```yaml
+ ...
+
+ integrations:
+ github:
+ gitops:
+ terraform-version: 1.5.2
+ infracost-enabled: false
+ storage:
+ region: us-east-2
+ bucket: cptest-core-ue2-auto-gitops
+ table: cptest-core-ue2-auto-gitops-plan-storage
+ role: arn:aws:iam::xxxxxxxxxxxx:role/cptest-core-ue2-auto-gitops-gha
+ role:
+ plan: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ apply: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ matrix:
+ sort-by: .stack_slug
+ group-by: .stack_slug | split("-") | [.[0], .[2]] | join("-")
+
+ ...
```
+ `.github/workflows/main.yaml`
+ ```yaml
+ - name: Plan Atmos Component
+ uses: cloudposse/github-action-atmos-terraform-plan@v2
+ with:
+ component: "foobar"
+ stack: "plat-ue2-sandbox"
+ atmos-config-path: ./atmos.yaml
+ atmos-version: 1.63.0
+ ```
+
+ same behaviour as
+
+ `./.github/config/atmos-gitops.yaml`
+ ```yaml
+ atmos-version: 1.45.3
+ atmos-config-path: ./rootfs/usr/local/etc/atmos/
+ terraform-state-bucket: cptest-core-ue2-auto-gitops
+ terraform-state-table: cptest-core-ue2-auto-gitops
+ terraform-state-role: arn:aws:iam::xxxxxxxxxxxx:role/cptest-core-ue2-auto-gitops-gha
+ terraform-plan-role: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ terraform-apply-role: arn:aws:iam::yyyyyyyyyyyy:role/cptest-core-gbl-identity-gitops
+ terraform-version: 1.5.2
+ aws-region: us-east-2
+ enable-infracost: false
+ sort-by: .stack_slug
+ group-by: .stack_slug | split("-") | [.[0], .[2]] | join("-")
+ ```
+
+ `.github/workflows/main.yaml`
+ ```yaml
+ - name: Plan Atmos Component
+ uses: cloudposse/github-action-atmos-terraform-plan@v1
+ with:
+ component: "foobar"
+ stack: "plat-ue2-sandbox"
+ atmos-gitops-config-path: ./.github/config/atmos-gitops.yaml
+ ```
+
### Migrating from `v1` to `v2`
1. `v2` drops the `component-path` variable and instead fetches if directly from the [`atmos.yaml` file](https://atmos.tools/cli/configuration/) automatically. Simply remove the `component-path` argument from your invocations of the `cloudposse/github-action-atmos-terraform-plan` action.
diff --git a/docs/github-action.md b/docs/github-action.md
index 77158bc09..26c44b7db 100644
--- a/docs/github-action.md
+++ b/docs/github-action.md
@@ -4,7 +4,8 @@
| Name | Description | Default | Required |
|------|-------------|---------|----------|
-| atmos-gitops-config-path | The path to the atmos-gitops.yaml file | ./.github/config/atmos-gitops.yaml | false |
+| atmos-config-path | The path to the atmos.yaml file | N/A | true |
+| atmos-version | The version of atmos to install | >= 1.63.0 | false |
| branding-logo-image | Branding logo image url | https://cloudposse.com/logo-300x69.svg | false |
| branding-logo-url | Branding logo url | https://cloudposse.com/ | false |
| component | The name of the component to plan. | N/A | true |