Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Simplify Module Interface and Implement Call Notes Improvements
Summary
This PR implements the interface simplification and architectural improvements discussed in the September 15, 2025 call notes between David Arnold and Matthew Morgan. The primary goals were to reduce complexity for end users, consolidate naming conventions, and establish better defaults management.
π― Key Improvements
Interface Simplification
namevariable now controls both repository and cluster names (eliminatingcluster_config.cluster_name)Architecture Changes
defaults.tf- Centralized all module defaults including EKS sizing, organization settings, and repository templatesaccount_name+environment_abbrEnhanced Artifacts
config.jsongeneration - Each repository now includes a complete configuration artifact preserving exactly what was used to create that clusterπ§ Technical Changes
Variables Cleanup (
variables.tf)repository_templateandrepository_template_owner(now in defaults)aws_profilefromcluster_config(dynamically generated)enable_all_modules(defaults to true)organizationandgithub_server_urlcluster_configobject to only include user-configurable valuesNew Defaults Management (
defaults.tf)"${account_name}-${environment_abbr}"Template Updates (
main.tf)config.jsonto rendered files as complete configuration artifactExamples Update
examples/basic/main.tfto use simplified interfaceorganizationandgithub_server_urlparametersπ Call Notes Alignment
This implementation directly addresses the feedback from the September 15th call:
ποΈ Before/After Comparison
Before (Complex Interface)
After (Simplified Interface)
π§ͺ Testing
config.jsonπ Generated Artifacts
The module now generates a complete
config.jsonartifact in each repository:{ "environment": "dev", "region": "us-gov-east-1", "cluster_dir": "eks-test-cluster", "enable_all_modules": true, "account": { "account_name": "csvd-dev-ew", "aws_account_id": "229685449397", "aws_profile": "csvd-dev-ew-dev", // Dynamically generated "environment_abbr": "dev" }, "vpc": { "vpc_name": "vpc3-csvd-dev", "vpc_domain_name": "dev.inf.csp1.census.gov" }, "cluster": { "cluster_name": "eks-test-cluster", "cluster_mailing_list": "david.j.arnold.jr@census.gov", "eks_instance_disk_size": 200, // From defaults "eks_ng_desired_size": 3, // From defaults "eks_ng_max_size": 10, // From defaults "eks_ng_min_size": 3, // From defaults "organization": "census:ocio:csvd", "finops_project_name": "csvd_platformbaseline", // From defaults "finops_project_number": "fs0000000078", // From defaults "finops_project_role": "csvd_platformbaseline_app", // From defaults "tags": { /* user-provided tags */ } }, "modules": { /* module enablement settings */ } }π Impact
config.jsonserves as complete record of cluster configurationπ Related Work
terraform-eks-workspacefor multi-cluster managementdocs/callnote-09152025-implementation.mdβ Checklist
π― Next Steps
terraform-eks-workspacesetup for managing multiple clustersThis PR implements the architectural improvements discussed in the September 15, 2025 call between David Arnold and Matthew Morgan, focusing on interface simplification and better defaults management.