Skip to content

Commit

Permalink
feature: Support GitHub app for VCS connections, solve deprecation wa…
Browse files Browse the repository at this point in the history
…rning (#70)

feature: Support GitHub app for VCS connections, solve deprecation warnings
  • Loading branch information
marwinbaumannsbp authored Jan 10, 2025
1 parent ccb5708 commit 131f583
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 8 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,23 +48,23 @@ The above custom role is similar to the "write" pre-existing role, but blocks ac
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.0 |
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 |
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0.0 |
| <a name="requirement_tfe"></a> [tfe](#requirement\_tfe) | >= 0.51.0 |
| <a name="requirement_tfe"></a> [tfe](#requirement\_tfe) | >= 0.61.0 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_random"></a> [random](#provider\_random) | >= 3.0.0 |
| <a name="provider_tfe"></a> [tfe](#provider\_tfe) | >= 0.51.0 |
| <a name="provider_tfe"></a> [tfe](#provider\_tfe) | >= 0.61.0 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| <a name="module_tfe-workspace"></a> [tfe-workspace](#module\_tfe-workspace) | schubergphilis/mcaf-workspace/tfe | ~> 2.0 |
| <a name="module_tfe-workspace"></a> [tfe-workspace](#module\_tfe-workspace) | schubergphilis/mcaf-workspace/tfe | ~> 2.1.0 |
| <a name="module_workspace_iam_role"></a> [workspace\_iam\_role](#module\_workspace\_iam\_role) | schubergphilis/mcaf-role/aws | ~> 0.4.0 |
| <a name="module_workspace_iam_role_oidc"></a> [workspace\_iam\_role\_oidc](#module\_workspace\_iam\_role\_oidc) | schubergphilis/mcaf-role/aws | ~> 0.4.0 |
| <a name="module_workspace_iam_user"></a> [workspace\_iam\_user](#module\_workspace\_iam\_user) | schubergphilis/mcaf-user/aws | ~> 0.4 |
| <a name="module_workspace_iam_user"></a> [workspace\_iam\_user](#module\_workspace\_iam\_user) | schubergphilis/mcaf-user/aws | ~> 0.4.0 |

## Resources

Expand All @@ -86,7 +86,6 @@ The above custom role is similar to the "write" pre-existing role, but blocks ac
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_name"></a> [name](#input\_name) | A name for the Terraform workspace | `string` | n/a | yes |
| <a name="input_oauth_token_id"></a> [oauth\_token\_id](#input\_oauth\_token\_id) | The OAuth token ID of the VCS provider | `string` | n/a | yes |
| <a name="input_terraform_organization"></a> [terraform\_organization](#input\_terraform\_organization) | The Terraform Enterprise organization to create the workspace in | `string` | n/a | yes |
| <a name="input_agent_pool_id"></a> [agent\_pool\_id](#input\_agent\_pool\_id) | Agent pool ID, requires "execution\_mode" to be set to agent | `string` | `null` | no |
| <a name="input_agent_role_arns"></a> [agent\_role\_arns](#input\_agent\_role\_arns) | IAM role ARNs used by Terraform Cloud Agent to assume role in the created account | `list(string)` | `null` | no |
Expand All @@ -102,8 +101,10 @@ The above custom role is similar to the "write" pre-existing role, but blocks ac
| <a name="input_description"></a> [description](#input\_description) | A description for the workspace | `string` | `null` | no |
| <a name="input_execution_mode"></a> [execution\_mode](#input\_execution\_mode) | Which execution mode to use | `string` | `"remote"` | no |
| <a name="input_file_triggers_enabled"></a> [file\_triggers\_enabled](#input\_file\_triggers\_enabled) | Whether to filter runs based on the changed files in a VCS push | `bool` | `true` | no |
| <a name="input_github_app_installation_id"></a> [github\_app\_installation\_id](#input\_github\_app\_installation\_id) | The GitHub App installation ID to use | `string` | `null` | no |
| <a name="input_global_remote_state"></a> [global\_remote\_state](#input\_global\_remote\_state) | Allow all workspaces in the organization to read the state of this workspace | `bool` | `null` | no |
| <a name="input_notification_configuration"></a> [notification\_configuration](#input\_notification\_configuration) | Notification configuration, using name as key and config as value | <pre>map(object({<br> destination_type = string<br> enabled = optional(bool, true)<br> url = string<br> triggers = optional(list(string), [<br> "run:created",<br> "run:planning",<br> "run:needs_attention",<br> "run:applying",<br> "run:completed",<br> "run:errored",<br> ])<br> }))</pre> | `{}` | no |
| <a name="input_oauth_token_id"></a> [oauth\_token\_id](#input\_oauth\_token\_id) | The OAuth token ID of the VCS provider | `string` | `null` | no |
| <a name="input_oidc_settings"></a> [oidc\_settings](#input\_oidc\_settings) | OIDC settings to use if "auth\_method" is set to "iam\_role\_oidc" | <pre>object({<br> audience = optional(string, "aws.workload.identity")<br> provider_arn = string<br> site_address = optional(string, "app.terraform.io")<br> })</pre> | `null` | no |
| <a name="input_path"></a> [path](#input\_path) | Path in which to create the IAM role or user | `string` | `null` | no |
| <a name="input_permissions_boundary_arn"></a> [permissions\_boundary\_arn](#input\_permissions\_boundary\_arn) | ARN of the policy that is used to set the permissions boundary for the IAM role or IAM user | `string` | `null` | no |
Expand Down
5 changes: 3 additions & 2 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ locals {

module "tfe-workspace" {
source = "schubergphilis/mcaf-workspace/tfe"
version = "~> 2.0"
version = "~> 2.1.0"

name = var.name
agent_pool_id = var.execution_mode == "agent" ? var.agent_pool_id : null
Expand All @@ -23,6 +23,7 @@ module "tfe-workspace" {
description = var.description
execution_mode = var.execution_mode
file_triggers_enabled = var.file_triggers_enabled
github_app_installation_id = var.repository_identifier != null ? var.github_app_installation_id : null
global_remote_state = var.global_remote_state
notification_configuration = var.notification_configuration
oauth_token_id = var.repository_identifier != null ? var.oauth_token_id : null
Expand Down Expand Up @@ -83,7 +84,7 @@ module "workspace_iam_user" {
count = var.auth_method == "iam_user" ? 1 : 0

source = "schubergphilis/mcaf-user/aws"
version = "~> 0.4"
version = "~> 0.4.0"

name = var.username
path = var.path
Expand Down
7 changes: 7 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ variable "file_triggers_enabled" {
description = "Whether to filter runs based on the changed files in a VCS push"
}

variable "github_app_installation_id" {
type = string
default = null
description = "The GitHub App installation ID to use"
}

variable "global_remote_state" {
type = bool
default = null
Expand Down Expand Up @@ -135,6 +141,7 @@ variable "notification_configuration" {

variable "oauth_token_id" {
type = string
default = null
description = "The OAuth token ID of the VCS provider"
}

Expand Down
2 changes: 1 addition & 1 deletion versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ terraform {
}
tfe = {
source = "hashicorp/tfe"
version = ">= 0.51.0"
version = ">= 0.61.0"
}
}
}

0 comments on commit 131f583

Please sign in to comment.