Skip to content

pmmoss/terraform-hcp-org-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HCP Terraform Org Config

This repo contains org/project configuration (tfvars) and a thin wrapper that invokes the reusable onboarding module. Use this to scale many orgs/projects by editing only tfvars, while pinning a module version.

Layout

  • main.tf: module wrapper
  • variables.tf: input declarations
  • versions.tf: Terraform version pin
  • tfvars/examples/*.tfvars: example org configurations

Usage

terraform init
terraform plan  -var-file=tfvars/examples/viking-poc.tfvars
terraform apply -var-file=tfvars/examples/viking-poc.tfvars

Auth

  • Use terraform login or set TFE_TOKEN.

Notes

  • Pin the module source to a tag/commit for stability.
  • Do not store secrets in tfvars; use HCP Terraform variables for sensitive data.

Requirements

Name Version
terraform >= 1.6.0
terraform >= 1.6.0
tfe ~> 0.58.0

Providers

No providers.

Modules

Name Source Version
hcp_onboarding ../terraform-hcp-workspace-config n/a

Resources

No resources.

Inputs

Name Description Type Default Required
create_projects If true, create TFE projects. If false, look up existing projects by name. bool true no
create_teams If true, create TFE teams. If false, look up existing teams by name. bool true no
environments List of environments (e.g., ['dev', 'staging', 'prod']) list(string) n/a yes
organization_name Name of the HCP Terraform organization string n/a yes
projects_config Declarative configuration for projects, workspaces, and team access (passed to module)
map(object({
workspaces = map(object({
per_environment = optional(bool, true)
apps = optional(list(string), [])
environments = optional(list(string), null)
team_access = optional(map(object({
access = string
permissions = optional(object({
runs = optional(string)
run_tasks = optional(bool)
sentinel_mocks = optional(string)
state_versions = optional(string)
variables = optional(string)
workspace_locking = optional(bool)
}))
})), {})
}))
team_access = optional(map(object({ access = string })), {})
}))
n/a yes
teams_config Teams to create and their optional org-level permissions
map(object({
visibility = optional(string, "organization")
organization_access = optional(object({
manage_projects = optional(bool)
manage_workspaces = optional(bool)
manage_teams = optional(bool)
read_projects = optional(bool)
read_workspaces = optional(bool)
}))
}))
{} no

Outputs

No outputs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages