GistPin uses a private Terraform module registry backed by AWS CodeArtifact for versioned, access-controlled module distribution.
- Registry backend: AWS CodeArtifact (
gistpindomain,terraform-modulesrepository) - Module directory:
infrastructure/terraform/modules/ - Publish trigger: Git tag matching
tf-module/v*
-
Obtain an auth token:
export TF_REGISTRY_TOKEN=$(aws codeartifact get-authorization-token \ --domain gistpin --query authorizationToken --output text)
-
Reference the module in Terraform:
module "eks" { source = "<registry-endpoint>/eks" version = "1.2.0" }
-
Create or update your module under
infrastructure/terraform/modules/<name>/. -
Ensure all variables and outputs are documented.
-
Tag the commit:
git tag tf-module/v1.0.0 git push origin tf-module/v1.0.0
The
publish-module.ymlCI workflow validates, generates docs, and publishes automatically.
Modules follow semantic versioning: MAJOR.MINOR.PATCH.
| Change type | Version bump |
|---|---|
| Breaking change to interface | MAJOR |
| New optional variable | MINOR |
| Bug fix, no interface change | PATCH |
Access is restricted to the AWS account root and roles listed in registry-config.tf.
New teams must request access via the infrastructure team.
| Module | Description | Latest |
|---|---|---|
eks |
EKS cluster with managed node groups | 1.0.0 |
rds |
RDS PostgreSQL with parameter groups | 1.0.0 |
vpc |
VPC with public/private subnets | 1.0.0 |