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/ce/self-host/deploy-helm.mdx
+230Lines changed: 230 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -186,6 +186,236 @@ description: "Learn how to use Helm chart to install Digger on your Kubernetes c
186
186
- Select which repositories the app can access
187
187
</Step>
188
188
189
+
<Steptitle="Create Action Secrets with cloud credentials">
190
+
In GitHub repository settings, go to Secrets and Variables - Actions. Create the following secrets:
191
+
192
+
<Tabs>
193
+
<Tabtitle="AWS">
194
+
-`AWS_ACCESS_KEY_ID`
195
+
- `AWS_SECRET_ACCESS_KEY`
196
+
197
+
You can also [use OIDC](/ce/cloud-providers/authenticating-with-oidc-on-aws) for AWS authentication.
198
+
</Tab>
199
+
<Tabtitle="GCP">
200
+
- `GCP_CREDENTIALS` - contents of your GCP Service Account Key json file
201
+
202
+
You can also [use OIDC](/gcp/federated-oidc-access/) for GCP authentication.
203
+
</Tab>
204
+
<Tabtitle="Azure">
205
+
- `AZURE_CLIENT_ID` - Your Azure App Registration Client ID
206
+
- `AZURE_TENANT_ID` - Your Azure Tenant ID
207
+
- `AZURE_SUBSCRIPTION_ID` - Your Azure Subscription ID
208
+
209
+
You'll need to configure OIDC authentication by setting up federated credentials in your Azure App Registration. See [Azure OIDC setup](/ce/azure-specific/azure) for details.
210
+
</Tab>
211
+
</Tabs>
212
+
</Step>
213
+
214
+
<Steptitle="Create digger.yml">
215
+
This file contains Digger configuration and needs to be placed at the root level of your repository:
216
+
217
+
<Tabs>
218
+
<Tabtitle="Terraform / OpenTofu">
219
+
Assuming your terraform code is in the `prod` directory:
220
+
221
+
```
222
+
projects:
223
+
- name: production
224
+
dir: prod
225
+
```
226
+
</Tab>
227
+
<Tabtitle="Terragrunt Generated">
228
+
For Terragrunt monorepos with many modules, use the blocks syntax to automatically generate projects:
229
+
230
+
```yaml
231
+
generate_projects:
232
+
blocks:
233
+
- block_name: dev
234
+
terragrunt: true
235
+
root_dir: "dev/"
236
+
workflow: default
237
+
- block_name: staging
238
+
terragrunt: true
239
+
root_dir: "staging/"
240
+
workflow: default
241
+
- block_name: prod
242
+
terragrunt: true
243
+
root_dir: "prod/"
244
+
workflow: default
245
+
246
+
workflows:
247
+
default:
248
+
plan:
249
+
steps:
250
+
- init
251
+
- plan
252
+
apply:
253
+
steps:
254
+
- init
255
+
- apply
256
+
```
257
+
258
+
This approach automatically discovers all Terragrunt modules under each directory and creates projects for them.
259
+
</Tab>
260
+
</Tabs>
261
+
</Step>
262
+
263
+
<Steptitle="Create Github Actions workflow file">
264
+
Place it at `.github/workflows/digger_workflow.yml` (name is important!)
265
+
266
+
<Tabs>
267
+
<Tabtitle="AWS">
268
+
```yaml
269
+
name: Digger Workflow
270
+
271
+
on:
272
+
workflow_dispatch:
273
+
inputs:
274
+
spec:
275
+
required: true
276
+
run_name:
277
+
required: false
278
+
279
+
run-name: '${{inputs.run_name}}'
280
+
281
+
jobs:
282
+
digger-job:
283
+
runs-on: ubuntu-latest
284
+
permissions:
285
+
contents: write # required to merge PRs
286
+
actions: write # required for plan persistence
287
+
id-token: write # required for workload-identity-federation
288
+
pull-requests: write # required to post PR comments
289
+
issues: read # required to check if PR number is an issue or not
290
+
statuses: write # required to validate combined PR status
0 commit comments