Jonathan Rose
02/20/2026, 6:22 PMErik Osterman (Cloud Posse)
02/20/2026, 6:25 PMErik Osterman (Cloud Posse)
02/20/2026, 6:25 PMJonathan Rose
02/20/2026, 6:28 PMJonathan Rose
02/20/2026, 6:29 PMErik Osterman (Cloud Posse)
02/20/2026, 6:40 PMErik Osterman (Cloud Posse)
02/20/2026, 6:40 PMJonathan Rose
02/20/2026, 6:44 PMJonathan Rose
02/20/2026, 6:55 PMimport:
- catalog/github/repository/defaults
components:
terraform:
github/repository/atmos:
metadata:
inherits:
- github/repository
vars:
name: iac-atmos-github-repository
description: Template repository for Atmos-based projects
is_template: true
github/repository/dotnet:
metadata:
inherits:
- github/repository
vars:
name: dotnet-github-repository
description: Template repository for dotnet-based projects
is_template: true
github/repository/java:
metadata:
inherits:
- github/repository
vars:
name: java-github-repository
description: Template repository for java-based projects
is_template: true
github/repository/nodejs:
metadata:
inherits:
- github/repository
vars:
name: nodejs-github-repository
description: Template repository for nodejs-based projects
is_template: true
github/repository/python:
metadata:
inherits:
- github/repository
vars:
name: python-github-repository
description: Template repository for python-based projects
is_template: true
github/repository/terraform:
metadata:
inherits:
- github/repository
vars:
name: iac-terraform-github-repository
description: Template repository for Terraform-based projects
is_template: trueJonathan Rose
02/20/2026, 6:56 PMErik Osterman (Cloud Posse)
02/20/2026, 10:05 PMErik Osterman (Cloud Posse)
02/20/2026, 10:05 PMErik Osterman (Cloud Posse)
02/20/2026, 10:05 PMErik Osterman (Cloud Posse)
02/20/2026, 10:06 PMJonathan Rose
02/20/2026, 10:08 PMname appears to be prefixed with {namespace}-{tenant}-environment}-{stage} (same as .atmos_stack) which isn't necessarily how I want to name my resources in GitHub. Any way around this? For example, if I set name to iac-atmos-github-repository, I want the repository name to be that as isErik Osterman (Cloud Posse)
02/20/2026, 10:45 PMErik Osterman (Cloud Posse)
02/20/2026, 10:45 PMErik Osterman (Cloud Posse)
02/20/2026, 10:45 PMErik Osterman (Cloud Posse)
02/20/2026, 10:47 PMErik Osterman (Cloud Posse)
02/20/2026, 10:48 PMErik Osterman (Cloud Posse)
02/20/2026, 10:48 PMgithub/repository/terraform:
metadata:
inherits:
- github/repository
vars:
name: iac-terraform-github-repository
description: Template repository for Terraform-based projects
is_template: trueErik Osterman (Cloud Posse)
02/20/2026, 10:48 PMgithub/repository/terraformErik Osterman (Cloud Posse)
02/20/2026, 10:48 PMErik Osterman (Cloud Posse)
02/20/2026, 10:50 PMgithub/repository/iac-terraform-github-repository:
metadata:
inherits:
- github/repository
vars:
name: iac-terraform-github-repository
description: Template repository for Terraform-based projects
is_template: true
or
iac-terraform-github-repository:
metadata:
inherits:
- github/repository
vars:
name: '{{ .atmos_component }}'
description: Template repository for Terraform-based projects
is_template: trueJonathan Rose
03/05/2026, 5:18 PMvars:
namespace: cfsb
tenant: gh
environment: template
stage: repos
import:
- catalog/github/repository/defaults
components:
terraform:
github/repository:
vars:
is_template: true
teams: {}
template/atmos:
metadata:
inherits: [github/repository]
vars:
description: Template Repository for Atmos projects
name: iac-atmos
template/dotnet:
metadata:
inherits: [github/repository]
vars:
description: Template Repository for .NET projects
name: dotnet
template/java:
metadata:
inherits: [github/repository]
vars:
description: Template Repository for Java projects
name: java
template/python:
metadata:
inherits: [github/repository]
vars:
description: Template Repository for Python projects
name: python
template/terraform:
metadata:
inherits: [github/repository]
vars:
description: Template Repository for Terraform projects
name: iac-terraform
if I run atmos tf plan template/atmos -s cfsb-gh-template-repos, I see this:
# github_repository.default[0] will be created
+ resource "github_repository" "default" {
+ allow_auto_merge = false
+ allow_forking = (known after apply)
+ allow_merge_commit = true
+ allow_rebase_merge = true
+ allow_squash_merge = true
+ allow_update_branch = false
+ archive_on_destroy = false
+ archived = false
+ auto_init = false
+ default_branch = (known after apply)
+ delete_branch_on_merge = true
+ description = "Template Repository for Atmos projects"
+ etag = (known after apply)
+ fork = "false"
+ full_name = (known after apply)
+ git_clone_url = (known after apply)
+ has_discussions = false
+ has_issues = false
+ has_projects = false
+ has_wiki = false
+ html_url = (known after apply)
+ http_clone_url = (known after apply)
+ id = (known after apply)
+ ignore_vulnerability_alerts_during_read = false
+ is_template = true
+ merge_commit_message = "PR_BODY"
+ merge_commit_title = "PR_TITLE"
+ name = "cfsb-template-repos-iac-atmos"
+ node_id = (known after apply)
+ primary_language = (known after apply)
+ private = (known after apply)
+ repo_id = (known after apply)
+ source_owner = (known after apply)
+ source_repo = (known after apply)
+ squash_merge_commit_message = "PR_BODY"
+ squash_merge_commit_title = "PR_TITLE"
+ ssh_clone_url = (known after apply)
+ svn_url = (known after apply)
+ topics = (known after apply)
+ visibility = "internal"
+ vulnerability_alerts = true
+ web_commit_signoff_required = false
+ security_and_analysis (known after apply)
}
the core problem is that the code to manage the above is in the same code base used to deploy self-hosted runners. the expectation is that the name of the repo should be exactly what i have in the stack and not be prefixed with anything (repo names should be atmos agnostic)Jonathan Rose
03/05/2026, 6:03 PMErik Osterman (Cloud Posse)
03/06/2026, 2:37 AMErik Osterman (Cloud Posse)
03/06/2026, 2:38 AMErik Osterman (Cloud Posse)
03/06/2026, 2:39 AMvars:
namespace: cfsb
tenant: gh
environment: template
stage: reposErik Osterman (Cloud Posse)
03/06/2026, 2:40 AMJonathan Rose
03/06/2026, 2:57 AMErik Osterman (Cloud Posse)
03/06/2026, 3:08 AMErik Osterman (Cloud Posse)
03/06/2026, 3:11 AMJonathan Rose
03/06/2026, 1:03 PMErik Osterman (Cloud Posse)
03/06/2026, 1:10 PMErik Osterman (Cloud Posse)
03/06/2026, 1:10 PMErik Osterman (Cloud Posse)
03/06/2026, 1:11 PMErik Osterman (Cloud Posse)
03/06/2026, 1:11 PMErik Osterman (Cloud Posse)
03/06/2026, 1:11 PMJonathan Rose
03/06/2026, 1:28 PMErik Osterman (Cloud Posse)
03/06/2026, 1:31 PMname_template: '{{ list .vars.namespace .vars.stage .vars.environment .vars.name | compact | join "-" }}'Erik Osterman (Cloud Posse)
03/06/2026, 1:31 PMDan Miller (Cloud Posse)
03/06/2026, 2:14 PMvar.repository.name
components:
terraform:
my-foo-app:
metadata:
component: github-repository
vars:
repository:
name: my-foo-appJonathan Rose
03/06/2026, 2:15 PMDan Miller (Cloud Posse)
03/06/2026, 2:15 PMDan Miller (Cloud Posse)
03/06/2026, 2:16 PMmodule "repository" {
source = "cloudposse/repository/github"
version = "1.1.0"
enabled = local.enabled
name = var.repository.name
...
}Jonathan Rose
03/06/2026, 2:17 PMatmos
╭─────────────────────────────────────────────╮
│ │
│ Commands │ Stacks Components
│ │
│ 14 items │ 1 item 5 items
│ │
│ > terraform plan │ > deploy/templates > dotnet
│ terraform apply │ iac-atmos
│ terraform destroy │ iac-terraform
│ terraform init │ java
│ terraform output │ python
│ terraform clean │
│ terraform workspace │
│ terraform refresh │
│ terraform show │
│ terraform validate │
│ terraform shell │
│ validate component │
│ describe component │
│ describe dependents │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰─────────────────────────────────────────────╯
↑/k up / filter enter execute
↓/j down esc clear filter esc/ctrl+c quit
←/h left tab flip stacks/components
INFO Executing command="atmos terraform plan dotnet --stack deploy/templates"
Error
Error: stack name pattern must be provided in 'stacks.name_pattern' config or 'ATMOS_STACKS_NAME_PATTERN' ENV variableDan Miller (Cloud Posse)
03/06/2026, 2:17 PMJonathan Rose
03/06/2026, 2:17 PMDan Miller (Cloud Posse)
03/06/2026, 2:17 PMINFO Executing command="atmos terraform plan dotnet --stack deploy/templates"
Error
Error: stack name pattern must be provided in 'stacks.name_pattern' config or 'ATMOS_STACKS_NAME_PATTERN' ENV variable
I believe this is an Atmos YAML issue, not related to the component necessarilyJonathan Rose
03/06/2026, 2:17 PMDan Miller (Cloud Posse)
03/06/2026, 2:17 PMDan Miller (Cloud Posse)
03/06/2026, 2:18 PMstacks.name_pattern?Jonathan Rose
03/06/2026, 2:19 PMJonathan Rose
03/06/2026, 2:19 PMmodule.this.id as a prefixDan Miller (Cloud Posse)
03/06/2026, 2:20 PMJonathan Rose
03/06/2026, 2:20 PMimport:
- mixins/providers/aws
- mixins/providers/github
components:
terraform:
github/repository:
backend_type: s3
backend:
s3:
acl: "bucket-owner-full-control"
encrypt: true
key: "terraform.tfstate"
region: "us-east-1"
use_lockfile: true
workspace_key_prefix: "github"
metadata:
component: terraform-github-repository
type: abstract # ensures this component cannot be used as a standalone item in a stack
settings:
validation:
github/repository:
schema_type: jsonschema
schema_path: "github/repository/defaults.json"
description: Validate 'github/repository' component variables using JSON Schema
vars:
allow_squash_merge: true
default_branch: main
delete_branch_on_merge: true
enabled: true
rulesets:
main_branch_protection:
name: main_branch_protection
enforcement: active
target: branch
conditions:
ref_name:
include:
- "~DEFAULT_BRANCH"
rules:
deletion: true
non_fast_forward: true
pull_request:
required_approving_review_count: 1
required_status_checks:
required_check:
- context: "ci/build"
strict_required_status_checks_policy: true
squash_merge_commit_message: PR_BODY
tags:
Terraform: "cloudposse/terraform-github-repository/v1.1.0"
visibility: internalDan Miller (Cloud Posse)
03/06/2026, 2:21 PMDan Miller (Cloud Posse)
03/06/2026, 2:22 PMJonathan Rose
03/06/2026, 2:22 PMDan Miller (Cloud Posse)
03/06/2026, 2:25 PMDan Miller (Cloud Posse)
03/06/2026, 2:25 PMDan Miller (Cloud Posse)
03/06/2026, 2:28 PMJonathan Rose
03/06/2026, 2:31 PMDan Miller (Cloud Posse)
03/06/2026, 2:34 PMJonathan Rose
03/06/2026, 2:36 PMmodules.this.id produced by the context.tf file as a prefix to all repo namesJonathan Rose
03/06/2026, 2:37 PMDan Miller (Cloud Posse)
03/06/2026, 2:37 PMJonathan Rose
03/06/2026, 2:38 PMDan Miller (Cloud Posse)
03/06/2026, 2:46 PMmodule "repository" {
source = "cloudposse/repository/github"
version = "1.1.0"
enabled = local.enabled
# keep this
name = var.repository_name
# delete this:
context = module.this.context
...
}Jonathan Rose
03/06/2026, 2:47 PMDan Miller (Cloud Posse)
03/06/2026, 2:47 PMJonathan Rose
03/06/2026, 2:47 PMJonathan Rose
03/06/2026, 2:49 PMDan Miller (Cloud Posse)
03/06/2026, 2:55 PMvar.name
3. That same component call to the module intentionally does not set var.context. Therefore, the ID is always just the nameErik Osterman (Cloud Posse)
03/06/2026, 2:55 PMJonathan Rose
03/06/2026, 2:55 PMErik Osterman (Cloud Posse)
03/06/2026, 3:04 PMJonathan Rose
03/06/2026, 3:05 PMErik Osterman (Cloud Posse)
03/06/2026, 3:06 PMJonathan Rose
03/06/2026, 3:07 PMErik Osterman (Cloud Posse)
03/06/2026, 3:23 PMJonathan Rose
03/06/2026, 3:24 PMErik Osterman (Cloud Posse)
03/06/2026, 3:29 PMDan Miller (Cloud Posse)
03/06/2026, 3:33 PMErik Osterman (Cloud Posse)
03/06/2026, 3:36 PMgenerate block he can use to replace providers?Dan Miller (Cloud Posse)
03/06/2026, 3:36 PMDan Miller (Cloud Posse)
03/06/2026, 3:38 PMJonathan Rose
03/06/2026, 6:14 PMimport:
- mixins/providers
components:
terraform:
github/repository:
backend_type: s3
backend:
s3:
acl: "bucket-owner-full-control"
encrypt: true
key: "terraform.tfstate"
region: "us-east-1"
use_lockfile: true
workspace_key_prefix: "github"
metadata:
type: abstract # ensures this component cannot be used as a standalone item in a stack
# settings:
# validation:
# github/repository:
# schema_type: jsonschema
# schema_path: "github/repository/defaults.json"
# description: Validate 'github/repository' component variables using JSON Schema
source:
uri: <http://github.com/cloudposse-terraform-components/aws-github-repository//src|github.com/cloudposse-terraform-components/aws-github-repository//src>
excluded_paths:
- "**/providers.tf"
version: v0.3.0
vars:
owner: cfsbny
region: us-east-1
repository:
allow_merge_commit: true
allow_squash_merge: true
allow_rebase_merge: true
allow_auto_merge: false
auto_init: true
default_branch: main
delete_branch_on_merge: true
gitignore_template: TeX
license_template: GPL-3.0
squash_merge_commit_message: PR_BODY
visibility: internalJonathan Rose
03/06/2026, 6:14 PM<http://providers.tf|providers.tf> when using JIT vendoringJonathan Rose
03/06/2026, 6:15 PMDan Miller (Cloud Posse)
03/06/2026, 6:16 PMauto_generate_files: true
https://atmos.tools/stacks/generate#auto-generationJonathan Rose
03/06/2026, 6:23 PMJonathan Rose
03/06/2026, 6:24 PMDan Miller (Cloud Posse)
03/06/2026, 6:24 PMJonathan Rose
03/06/2026, 6:25 PMsource:
uri: <http://github.com/cloudposse-terraform-components/aws-github-repository//src|github.com/cloudposse-terraform-components/aws-github-repository//src>
excluded_paths:
- "**/providers.tf"
version: v0.3.0
excluded_paths not being honored...