You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/2.0/docs/accountfactory/installation/index.md
+3-6Lines changed: 3 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,18 +7,15 @@ Account Factory is automatically integrated into [new Pipelines root repositorie
7
7
By default, Account Factory includes the following components:
8
8
9
9
- 📋 An HTML form for generating workflow inputs: `.github/workflows/account-factory-inputs.html`
10
-
10
+
11
11
- 🏭 A workflow for generating new requests: `.github/workflows/account-factory.yml`
12
-
12
+
13
13
- 🗃️ A root directory for tracking account requests: `_new-account-requests`
14
-
14
+
15
15
- ⚙️ A YAML file for tracking account names and IDs: `accounts.yml`
16
16
17
17
For detailed instructions on using these components, refer to the [Vending a New AWS Account Guide](/2.0/docs/accountfactory/guides/vend-aws-account).
18
18
19
19
## Configuring account factory
20
20
21
21
Account Factory is fully operational for vending new accounts without requiring any configuration changes. However, a [comprehensive reference for all configuration options is available here](/2.0/reference/accountfactory/configurations), allowing you to customize values and templates for generating Infrastructure as Code (IaC) for new accounts.
Gruntwork Pipelines requires authentication with GitHub/GitLab to perform various functions, including:
4
-
* Downloading Gruntwork code, such as the Pipelines binary and Terraform modules, from the `gruntwork-io` GitHub organization.
5
-
* Interacting with your repositories, such as:
6
-
* Creating pull requests.
7
-
* Commenting on pull requests.
8
-
* Creating new repositories via Account Factory.
9
-
* Updating repository settings, such as enforcing branch protection, via Account Factory.
4
+
5
+
- Downloading Gruntwork code, such as the Pipelines binary and Terraform modules, from the `gruntwork-io` GitHub organization.
6
+
- Interacting with your repositories, such as:
7
+
- Creating pull requests.
8
+
- Commenting on pull requests.
9
+
- Creating new repositories via Account Factory.
10
+
- Updating repository settings, such as enforcing branch protection, via Account Factory.
10
11
11
12
Gruntwork provides two authentication methods: a [GitHub App](/2.0/docs/pipelines/installation/viagithubapp.md) and CI Users ([Machine Users](/2.0/docs/pipelines/installation/viamachineusers.md)) with personal access tokens for Pipelines.
12
13
@@ -15,11 +16,14 @@ Both approaches support the core functionality of Pipelines. However, the GitHub
15
16
## Summary of authentication mechanisms for GitHub
16
17
17
18
**Advantages of the GitHub App**:
19
+
18
20
- Simplified setup process.
19
21
- Access to enhanced features and functionality.
20
22
- Improved user experience during regular operations.
21
23
- Reduced maintenance, as there is no need to install, maintain, or rotate powerful tokens.
22
24
23
25
**Advantages of Machine Users**:
26
+
24
27
- Compatibility with on-premises GitHub Enterprise installations that cannot interact with third-party servers (e.g., Gruntwork's backend).
25
28
- Provides a fallback solution to ensure Pipelines continue functioning in the unlikely event of an outage affecting the Gruntwork-hosted backend that powers the GitHub App.
29
+
- Allows GitLab customers to download the Pipelines binary from GitLab CI Pipelines.
Copy file name to clipboardExpand all lines: docs/2.0/docs/pipelines/installation/viagithubapp.md
+15-11Lines changed: 15 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,7 @@ The [Gruntwork.io GitHub App](https://github.com/apps/gruntwork-io) is a [GitHub
13
13
At this time Gruntwork does not provide an app for GitLab, this page is only relevant for Gruntwork Pipelines users installing in GitHub.
14
14
15
15
:::
16
+
16
17
## Overview
17
18
18
19
There are three major components to keep in mind when working with the Gruntwork.io GitHub App:
@@ -28,6 +29,7 @@ The Gruntwork.io GitHub App is the principal that Gruntwork products will utiliz
28
29
#### Required Permissions
29
30
30
31
As of 2024/09/10, the Gruntwork.io GitHub App requests the following permissions:
32
+
31
33
-**Read access to Actions**: Allows the app to read GitHub Actions artifacts.
32
34
-**Write access to Administration**: Allows the app to create new repositories, and add teams as collaborators to repositories.
33
35
-**Write access to Contents**: Allows the app to read and write repository contents.
@@ -40,13 +42,15 @@ As of 2024/09/10, the Gruntwork.io GitHub App requests the following permissions
40
42
41
43
Gruntwork.io requests all of these permissions because it requires them for different operations. Unfortunately, the way GitHub apps work prevents us from requesting permissions on a more granular basis. Know that the GitHub App Service will scope down its permissions whenever possible to the minimum required for the operation at hand.
42
44
43
-
The level of granularity available to customers when configuring the GitHub App installation is to either install the app on a per-repository basis or on an entire organization. Our recommendation is as follows:
45
+
The level of granularity available to customers when configuring the GitHub App installation is to either install the app on a per-repository basis or on an entire organization. Our recommendation is as follows for Account Factory customers:
46
+
47
+
- For non-enterprise customers, allow the app for `infrastructure-live-root` repository and (if in-use) `infrastructure-live-access-control` and `infrastructure-catalog`.
44
48
45
-
* For non-enterprise customers, allow the app for `infrastructure-live-root` repository and (if in-use) `infrastructure-live-access-control` and `infrastructure-catalog`.
46
-
* For enterprise customers, allow the app to have access to the entire organization.
49
+
- For enterprise customers, allow the app to have access to the entire organization.
47
50
48
-
The reasoning for requiring entire-organization access for enterprise customers is that if you are using Account Factory to create delegated repositories then Account Factory will be creating, and then immediately modifying, new repositories in automated flows, which means it needs access to new repos as soon as they are created which is only possible with entire organization permission.
51
+
For non-Account Factory customers, we recommend installing the app on a per-repository basis.
49
52
53
+
The reasoning for requiring entire-organization access for enterprise customers is that if you are using Account Factory to create delegated repositories then Account Factory will be creating, and then immediately modifying, new repositories in automated flows, which means it needs access to new repos as soon as they are created which is only possible with entire organization permission.
50
54
51
55
If you are unsure how to proceed here, reach out to Gruntwork Support for guidance.
52
56
@@ -108,7 +112,7 @@ The GitHub App Service is used by two major clients:
108
112
109
113
2.**Gruntwork Pipelines**
110
114
111
-
The main client for the Gruntwork.io App, and where most of the value is derived. Pipelines uses the GitHub App Service to acquire the relevant access for interacting with GitHub resources on behalf of the user. Access control rules are enforced here to ensure that only the level of access required, and explicitly specified in the Gruntwork Developer Portal can be used by Pipelines to interact with GitHub resources on behalf of the user.
115
+
The main client for the Gruntwork.io App, and where most of the value is derived. Pipelines uses the GitHub App Service to acquire the relevant access for interacting with GitHub resources on behalf of the user. Access control rules are enforced here to ensure that only the level of access required (and explicitly specified in the Gruntwork Developer Portal) can be used by Pipelines to interact with GitHub resources on behalf of the user.
112
116
113
117
For example, while the Gruntwork.io GitHub App does have permissions to create new repositories, Pipelines will only do so if a workflow originating from a configured `infrastructure-live-root` repository requests it.
114
118
@@ -118,19 +122,19 @@ The availability of the Gruntwork.io GitHub App is something Gruntwork will ende
118
122
119
123
Any downtime of Gruntwork services will not impact the ability of your team to manage infrastructure using Gruntwork products.
120
124
121
-
####App Only Features
125
+
### App Only Features
122
126
123
127
The following features of the Gruntwork.io GitHub App will be unavailable during downtime:
124
128
125
129
-**GitHub App Linking**: In order to link a Gruntwork.io GitHub App installation to the [Gruntwork Developer Portal](https://app.gruntwork.io), the service backing the GitHub app must be available and operating correctly.
126
130
-**Gruntwork Pipelines Comments**: While Pipelines will allow for IaC updates in a degraded state without the availability of the GitHub App, comments are a feature that rely on the availability of the app for the best experience.
127
131
-**Gruntwork Pipelines Drift Detection**: Drift detection requires the availability of the GitHub App to function correctly.
128
132
129
-
####Fallback
133
+
### Fallback
130
134
131
-
In order to ensure that the availability of the Gruntwork.io GitHub App is not something that can impair the ability of users to drive infrastructure updates, the legacy mechanism of authenticating with GitHub using [Machine users](/2.0/docs/pipelines/installation/viamachineusers.md) is still supported.
135
+
In order to ensure that the availability of the Gruntwork.io GitHub App is not something that can impair the ability of users to drive infrastructure updates, users can also authenticate with GitHub using [Machine users](/2.0/docs/pipelines/installation/viamachineusers.md).
132
136
133
-
Configuring the `PIPELINES_READ_TOKEN`, `INFRA_ROOT_WRITE_TOKEN` and `ORG_REPO_ADMIN_TOKEN` where necessary (following the documentation linked above) will result in Pipelines using the legacy mechanism to authenticate with GitHub, rather than the Gruntwork.io GitHub App.
137
+
Configuring the `PIPELINES_READ_TOKEN`, `INFRA_ROOT_WRITE_TOKEN` and `ORG_REPO_ADMIN_TOKEN` where necessary (following the documentation linked above) will result in Pipelines using the machine users mechanism to authenticate with GitHub, rather than the Gruntwork.io GitHub App.
134
138
135
139
Using these fallback tokens will ensure that Pipelines can continue to perform operations like:
136
140
@@ -160,7 +164,7 @@ To install the Gruntwork.io GitHub App in your organization follow these steps.
160
164
161
165
## Configuration
162
166
163
-
<h3>Infrastructure Live Root Repositories</h3>
167
+
### Infrastructure Live Root Repositories
164
168
165
169
DevOps Foundations treats certain repositories as especially privileged in order to perform critical operations like vending new AWS accounts and creating new repositories. These repositories are called "infrastructure live root repositories" and you can configure them in the [GitHub Account section](https://app.gruntwork.io/account?scroll_to=github-app) for your organization in the Gruntwork developer portal **if you are a designated administrator**.
166
170
@@ -174,7 +178,7 @@ For more information, see the [relevant architecture documentation](/2.0/docs/pi
174
178
175
179
## Frequently Asked Questions
176
180
177
-
####How do I find my Gruntwork.io GitHub App installation ID?
181
+
### How do I find my Gruntwork.io GitHub App installation ID?
178
182
179
183
You can find the installation ID of the Gruntwork.io GitHub App in the URL of the installation page.
0 commit comments