Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fluent-ci-templates/terragrunt-pipeline
A ready-to-use CI/CD Pipeline for managing your infrastructure with Terragrunt.
https://github.com/fluent-ci-templates/terragrunt-pipeline
cicd dagger deno terraform terragrunt typescript
Last synced: about 6 hours ago
JSON representation
A ready-to-use CI/CD Pipeline for managing your infrastructure with Terragrunt.
- Host: GitHub
- URL: https://github.com/fluent-ci-templates/terragrunt-pipeline
- Owner: fluent-ci-templates
- License: mit
- Created: 2023-08-07T15:55:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-05T16:51:48.000Z (3 months ago)
- Last Synced: 2024-08-05T19:43:43.529Z (3 months ago)
- Topics: cicd, dagger, deno, terraform, terragrunt, typescript
- Language: TypeScript
- Homepage:
- Size: 186 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Terragrunt Pipeline
[![fluentci pipeline](https://shield.fluentci.io/x/terragrunt_pipeline)](https://pkg.fluentci.io/terragrunt_pipeline)
![deno compatibility](https://shield.deno.dev/deno/^1.42)
[![dagger-min-version](https://shield.fluentci.io/dagger/v0.11.7)](https://dagger.io)
[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/terragrunt-pipeline)](https://codecov.io/gh/fluent-ci-templates/terragrunt-pipeline)A ready-to-use CI/CD Pipeline for managing your infrastructure with [Terragrunt](https://terragrunt.gruntwork.io/).
## 🚀 Usage
Run the following command in your project:
```bash
fluentci run terragrunt_pipeline
```Or, if you want to use it as a template:
```bash
fluentci init -t terragrunt
```This will create a `.fluentci` folder in your project.
Now you can run the pipeline with:
```bash
fluentci run .
```## Dagger Module
Use as a [Dagger](https://dagger.io) module:
```bash
dagger install github.com/fluent-ci-templates/terragrunt-pipeline@main
```## Environment variables
| Variable | Description |
| --------------------------- | -------------------------------------------------- |
| TERRAGRUNT_CONFIG | The path to the Terragrunt config file. Default is terragrunt.hcl. |
| TERRAGRUNT_DEBUG | Write terragrunt-debug.tfvars to working folder to help root-cause issues. |
| TERRAGRUNT_DISABLE_BUCKET_UPDATE | When this flag is set Terragrunt will not update the remote state bucket. |
| TERRAGRUNT_DOWNLOAD | The path where to download Terraform code. Default is .terragrunt-cache in the working directory. |
| TERRAGRUNT_EXCLUDE_DIR | Unix-style glob of directories to exclude when running *-all commands. |
| TERRAGRUNT_FAIL_ON_STATE_BUCKET_CREATION | When this flag is set Terragrunt will fail if the remote state bucket needs to be created. |
| TERRAGRUNT_FETCH_DEPENDENCY_OUTPUT_FROM_STATE | The option fetchs dependency output directly from the state file instead of init dependencies and running terraform on them. |
| TERRAGRUNT_IAM_ASSUME_ROLE_DURATION | Session duration for IAM Assume Role session. Can also be set via the TERRAGRUNT_IAM_ASSUME_ROLE_DURATION environment variable. |
| TERRAGRUNT_IAM_ASSUME_ROLE_SESSION_NAME | Name for the IAM Assummed Role session. Can also be set via TERRAGRUNT_IAM_ASSUME_ROLE_SESSION_NAME environment variable. |
| TERRAGRUNT_IAM_ROLE | Assume the specified IAM role before executing Terraform. Can also be set via the TERRAGRUNT_IAM_ROLE environment variable. |
| TERRAGRUNT_INCLUDE_EXTERNAL_DEPENDENCIES | *-all commands will include external dependencies |
| TERRAGRUNT_INCLUDE_MODULE_PREFIX | When this flag is set output from Terraform sub-commands is prefixed with module path. |
| TERRAGRUNT_LOG_LEVEL | Sets the logging level for Terragrunt. Supported levels: panic, fatal, error, warn, info, debug, trace. (default: info) |
| TERRAGRUNT_NO_AUTO_APPROVE | Don't automatically append -auto-approve to the underlying Terraform commands run with 'run-all'. (default: true) |
| TERRAGRUNT_NO_AUTO_INIT | Don't automatically run 'terraform init' during other terragrunt commands. You must run 'terragrunt init' manually. (default: true) |
| TERRAGRUNT_NO_AUTO_RETRY | Don't automatically re-run command in case of transient errors. (default: true) |
| TERRAGRUNT_NO_COLOR | If specified, Terragrunt output won't contain any color. |
| TERRAGRUNT_NON_INTERACTIVE | Assume "yes" for all prompts. |
| TERRAGRUNT_PARALLELISM | *-all commands parallelism set to at most N modules (default: 2147483647) |
| TERRAGRUNT_SOURCE | Download Terraform configurations from the specified source into a temporary folder, and run Terraform in that temporary folder. |
| TERRAGRUNT_SOURCE_MAP | Replace any source URL (including the source URL of a config pulled in with dependency blocks) that has root source with dest. |
| TERRAGRUNT_SOURCE_UPDATE | Delete the contents of the temporary folder to clear out any old, cached source code before downloading new source code into it. |
| TERRAGRUNT_TFPATH | Path to the Terraform binary. Default is terraform (on PATH). (default: terraform) |
| TERRAGRUNT_USE_PARTIAL_PARSE_CONFIG_CACHE | Enables caching of includes during partial parsing operations. Will also be used for the --terragrunt-iam-role option if provided. |
| TERRAGRUNT_WORKING_DIR | The path to the Terraform templates. Default is current directory. |## Jobs
| Job | Description |
| --------- | -------------------------------------- |
| validate | Validate the configuration files |
| apply | Apply infrastructure changes |```typescript
apply(
src: Directory | string,
tfVersion?: string
): Promisevalidate(
src: Directory | string,
tfVersion?: string
): Promise
```## Programmatic usage
You can also use this pipeline programmatically:
```ts
import { validate, apply } from "jsr:@fluentci/terragrunt";await validate(".");
await apply(".");
```