Skip to content

Commit d86c62c

Browse files
authored
Merge pull request #1 from gruntwork-io/44-tg-engine
Terraform engine initial implementation
2 parents 424eec2 + 8e5dfbf commit d86c62c

File tree

18 files changed

+1333
-0
lines changed

18 files changed

+1333
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: Bug report
3+
about: Create a bug report to help us improve the Terragrunt Terraform IAC Engine.
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
## Describe the bug
11+
12+
A clear and concise description of what the bug is.
13+
14+
## Steps To Reproduce
15+
16+
Steps to reproduce the behavior, code snippets and examples which can be used to reproduce the issue.
17+
18+
```hcl
19+
// paste code snippets here
20+
```
21+
22+
## Expected behavior
23+
24+
A clear and concise description of what you expected to happen.
25+
26+
## Nice to haves
27+
28+
- [ ] Terminal output
29+
- [ ] Screenshots
30+
31+
## Versions
32+
33+
- Terragrunt version:
34+
- Terraform Engine version:
35+
- OpenTofu/Terraform version:
36+
- Environment details (Ubuntu 20.04, Windows 10, etc.):
37+
38+
## Additional context
39+
40+
Add any other context about the problem here.
41+

.github/ISSUE_TEMPLATE/02-rfc.yml

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# Inspired by:
2+
# - The previous RFC template.
3+
# - the OpenTofu RFC template: https://raw.githubusercontent.com/opentofu/opentofu/main/.github/ISSUE_TEMPLATE/rfc.yml
4+
# - The Terragrunt RFC template: https://raw.githubusercontent.com/gruntwork-io/terragrunt/master/.github/ISSUE_TEMPLATE/02-rfc.yml
5+
6+
name: RFC
7+
description: Submit a Request For Comments (RFC).
8+
labels: ["rfc", "pending-decision"]
9+
body:
10+
- type: markdown
11+
attributes:
12+
value: |
13+
# Request For Comments
14+
15+
This form will guide you through the process for submitting a Request For Comments (RFC) for a change.
16+
17+
## Before you start
18+
19+
- Make sure you search for an issue that would already cover your RFC in the [issues tab](https://github.com/gruntwork-io/terragrunt/issues?q=is%3Aissue).
20+
- Search through [Terragrunt documentation](https://terragrunt.gruntwork.io/docs/) to see if your RFC is already supported.
21+
22+
## After you submit
23+
24+
- Share your RFC with your community for feedback and reactions! The more activity and feedback you get, the more likely it is to be reviewed by the maintainers.
25+
- If your RFC has enough traction, it will be reviewed by the maintainers and a decision will be made.
26+
- Once a decision is made, one of two things will happen:
27+
1. If the RFC is accepted, the `pending-decision` label will be replaced with the `accepted` label. At this stage, pull requests can be submitted by maintainers or the community to implement the RFC, with a description including `Closes #<RFC number>`.
28+
2. If the RFC is rejected, the `pending-decision` label will be replaced with the `rejected` label. The maintainers will provide a reason for the rejection. If applicable, it might be made clear that a new RFC with changes is welcome.
29+
30+
- type: textarea
31+
id: summary
32+
attributes:
33+
label: Summary
34+
description: A brief summary of the RFC.
35+
validations:
36+
required: true
37+
38+
- type: textarea
39+
id: motivation
40+
attributes:
41+
label: Motivation
42+
description: What is the problem you're trying to solve? What are the goals you're trying to achieve?
43+
validations:
44+
required: true
45+
46+
- type: textarea
47+
id: proposal
48+
attributes:
49+
label: Proposal
50+
description: |
51+
In a manner that is as specific as possible, describe the proposal you have in mind. This should include:
52+
- As minimally technical a description of the proposal as possible.
53+
- An explanation of how the proposal addresses the motivation above.
54+
- Examples of how the proposal might present itself to a user if implemented.
55+
validations:
56+
required: true
57+
58+
- type: textarea
59+
id: technical-details
60+
attributes:
61+
label: Technical Details
62+
description: |
63+
Provide technical details for the proposal. This should include:
64+
- List of components that will be affected by the proposal.
65+
- How those components will be affected.
66+
- Any documentation that will help in understanding or developing a solution to the proposal.
67+
validations:
68+
required: true
69+
70+
- type: textarea
71+
id: press-release
72+
attributes:
73+
label: Press Release
74+
description: If this RFC were implemented, how would you describe it to the community in a mock press release?
75+
validations:
76+
required: true
77+
78+
- type: textarea
79+
id: drawbacks
80+
attributes:
81+
label: Drawbacks
82+
description: What are the drawbacks of the proposal, if any?
83+
validations:
84+
required: false
85+
86+
- type: textarea
87+
id: alternatives
88+
attributes:
89+
label: Alternatives
90+
description: What are the alternatives to the proposal, if any?
91+
validations:
92+
required: false
93+
94+
- type: textarea
95+
id: migration-strategy
96+
attributes:
97+
label: Migration Strategy
98+
description: If this proposal requires a migration strategy for existing code bases, what is it?
99+
validations:
100+
required: false
101+
102+
- type: textarea
103+
id: unresolved-questions
104+
attributes:
105+
label: Unresolved Questions
106+
description: |
107+
What parts of the proposal are still unresolved?
108+
- Is there anything that you're unsure about?
109+
- Are there any questions that you have that you haven't answered yet?
110+
- Would you like to encourage feedback on any particular part of the proposal you haven't fully fleshed out?
111+
validations:
112+
required: false
113+
114+
- type: textarea
115+
id: references
116+
attributes:
117+
label: References
118+
description: |
119+
Are there any references that should be linked here?
120+
- Links to other RFCs, issues, or documentation.
121+
validations:
122+
required: false
123+
124+
- type: textarea
125+
id: poc-pull-request
126+
attributes:
127+
label: Proof of Concept Pull Request
128+
description: If you have a proof of concept or an in-draft pull request that demonstrates the proposal, please link it here.
129+
validations:
130+
required: false
131+
132+
- type: checkboxes
133+
id: support
134+
attributes:
135+
label: Support Level
136+
description: Please let us know if you are a paying customer. This helps us prioritize RFCs that are important to our customers.
137+
options:
138+
- label: I have Terragrunt Enterprise Support
139+
required: false
140+
- label: I am a paying Gruntwork customer
141+
required: false
142+
143+
- type: input
144+
id: customer-name
145+
attributes:
146+
label: Customer Name
147+
description: If you are a paying Gruntwork customer, please provide your name.
148+
validations:
149+
required: false
150+

.github/pull_request_template.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!-- Prepend '[WIP]' to the title if this PR is still a work-in-progress. Remove it when it is ready for review! -->
2+
3+
## Description
4+
5+
Fixes #000.
6+
7+
<!-- Description of the changes introduced by this PR. -->
8+
9+
## TODOs
10+
11+
Read the [Gruntwork contribution guidelines](https://gruntwork.notion.site/Gruntwork-Coding-Methodology-02fdcd6e4b004e818553684760bf691e).
12+
13+
- [ ] Update the docs.
14+
- [ ] Run the relevant tests successfully, including pre-commit checks.
15+
- [ ] Ensure any 3rd party code adheres with our [license policy](https://www.notion.so/gruntwork/Gruntwork-licenses-and-open-source-usage-policy-f7dece1f780341c7b69c1763f22b1378) or delete this line if its not applicable.
16+
- [ ] Include release notes. If this PR is backward incompatible, include a migration guide.
17+
18+
## Release Notes (draft)
19+
20+
<!-- One-line description of the PR that can be included in the final release notes. -->
21+
Added / Removed / Updated [X].
22+
23+
### Migration Guide
24+
25+
<!-- Important: If you made any backward incompatible changes, then you must write a migration guide! -->
26+

.gon_amd64.hcl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# See https://github.com/gruntwork-io/terraform-aws-ci/blob/main/modules/sign-binary-helpers/
2+
# for further instructions on how to sign the binary + submitting for notarization.
3+
4+
source = ["./bin/terragrunt-iac-engine-terraform_darwin_amd64"]
5+
6+
bundle_id = "io.gruntwork.app.terragrunt"
7+
8+
apple_id {
9+
username = "[email protected]"
10+
}
11+
12+
sign {
13+
application_identity = "Developer ID Application: Gruntwork, Inc."
14+
}
15+
16+
zip {
17+
output_path = "terragrunt-iac-engine-terraform_amd64.zip"
18+
}

.gon_arm64.hcl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# See https://github.com/gruntwork-io/terraform-aws-ci/blob/main/modules/sign-binary-helpers/
2+
# for further instructions on how to sign the binary + submitting for notarization.
3+
4+
source = ["./bin/terragrunt-iac-engine-terraform_darwin_arm64"]
5+
6+
bundle_id = "io.gruntwork.app.terragrunt"
7+
8+
apple_id {
9+
username = "[email protected]"
10+
}
11+
12+
sign {
13+
application_identity = "Developer ID Application: Gruntwork, Inc."
14+
}
15+
16+
zip {
17+
output_path = "terragrunt-iac-engine-terraform_arm64.zip"
18+
}

CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
* @denis256 @levkohimins @yhakbar
2+

CONTRIBUTING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Contributing
2+
3+
As a component in the Terragrunt ecosystem, contribution largely follows the guidelines set forth in [Terragrunt documentation](https://terragrunt.gruntwork.io/docs/community/contributing/).
4+
5+
If you would like to contribute to the Terragrunt Engine, please follow the guidelines below:
6+
7+
1. Create an issue or an RFC to discuss the proposed changes.
8+
2. Fork the repository.
9+
3. Update documentation as appropriate based on the changes you would like to introduce.
10+
4. Make your changes.
11+
5. Run linters, tests and formatters.
12+
6. Create a pull request.
13+
14+
Note that the maintainers of Terragrunt will do their best to review your pull request in a timely manner, but it may take some time to get a response. We appreciate your patience.
15+
16+
If possible, highlight the importance of your pull request to the broader Terragrunt community in the pull request description, and encourage the community to participate in the discussion.
17+

0 commit comments

Comments
 (0)