-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: generalized architecture, webhook auto-apply ADR, Vault ADR
- docs/README.md: high-level index with reading paths by use case - docs/HOW-IT-WORKS.md: reframe from two-product to single Proposer + webhook auto-apply; remove executor SC product framing - docs/decisions/001-webhook-auto-apply.md: status Proposed → Accepted; update context and consequences to reflect removal of executor SC product - docs/decisions/002-vault-aws-secrets-engine.md: new ADR for Vault AWS Secrets Engine; dynamic cross-account credentials; per-product IAM scope via Proposer terraform apply; account baseline prerequisite pattern - docs/generalized-terraform-product-architecture.md: new - docs/template-management.md: Executor flow, .sc-automation.yml schema - docs/repo-vars-and-secrets.md: CodeBuild environmentVariablesOverride pattern - docs/workflow-flowcharts.md: Mermaid diagrams for propose/apply flows - docs/fleet-governance-at-scale.md: new - docs/service-catalog-census-integration.md: new - docs/cross-account-visibility.md: new
- Loading branch information
Dave Arnold
committed
May 19, 2026
1 parent
b67df30
commit 7a537eb
Showing
11 changed files
with
2,560 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,145 @@ | ||
| # sc-lambda-ghactions Documentation | ||
|
|
||
| This directory contains the design, operating model, and rollout guidance for | ||
| `sc-lambda-ghactions` — the centralized Lambda + CodeBuild system that provisions | ||
| and manages Terraform-backed account repo changes through AWS Service Catalog. | ||
|
|
||
| ## What This System Does | ||
|
|
||
| At a high level, the platform supports this workflow: | ||
|
|
||
| 1. A user launches a Service Catalog product | ||
| 2. CloudFormation invokes a centralized Lambda in `csvd-dev` | ||
| 3. The Lambda validates inputs and starts a CodeBuild build | ||
| 4. CodeBuild clones a template repo, renders Terraform/HCL/YAML content, and opens a PR | ||
| 5. After merge, the executor path can run Terraform against the target workload | ||
| 6. CSVD can also operate the full managed fleet centrally | ||
|
|
||
| ## How to Read This Documentation | ||
|
|
||
| This doc set currently contains both: | ||
|
|
||
| - **Current or near-term implementation guidance** for the CodeBuild-based rollout | ||
| - **Proposed design evolution** for auto-apply, generalized product types, and fleet-scale operations | ||
|
|
||
| Because of that, the best entry point depends on what you need. | ||
|
|
||
| ## Recommended Reading Paths | ||
|
|
||
| ### 1. "I need the quickest overview" | ||
|
|
||
| Start with: | ||
|
|
||
| - [HOW-IT-WORKS.md](HOW-IT-WORKS.md) — end-to-end explanation of the proposer/executor model, the main infrastructure components, and the current CodeBuild execution flow | ||
| - [workflow-flowcharts.md](workflow-flowcharts.md) — visual walkthrough of provisioning, apply-on-merge, and fleet update flows | ||
|
|
||
| ### 2. "I need to understand the target generalized architecture" | ||
|
|
||
| Start with: | ||
|
|
||
| - [generalized-terraform-product-architecture.md](generalized-terraform-product-architecture.md) — explains how the system expands from EKS-only into a reusable pattern for any Terraform workload | ||
| - [template-management.md](template-management.md) — explains how template repos, Jinja2 rendering, `.sc-automation.yml`, and repo injection work | ||
| - [repo-vars-and-secrets.md](repo-vars-and-secrets.md) — explains how SSM and Secrets Manager values are injected into CodeBuild builds | ||
|
|
||
| ### 3. "I need to onboard a new Service Catalog product" | ||
|
|
||
| Read in this order: | ||
|
|
||
| - [generalized-terraform-product-architecture.md](generalized-terraform-product-architecture.md) — required moving parts for a new `product_type` | ||
| - [template-management.md](template-management.md) — template repo structure and rendering expectations | ||
| - [service-catalog-census-integration.md](service-catalog-census-integration.md) — how to register the product in `terraform-service-catalog-census` | ||
| - [repo-vars-and-secrets.md](repo-vars-and-secrets.md) — how product-scoped configuration and secrets reach the build | ||
|
|
||
| ### 4. "I need to understand operations and governance at scale" | ||
|
|
||
| Start with: | ||
|
|
||
| - [fleet-governance-at-scale.md](fleet-governance-at-scale.md) — the `terraform-sc-fleet` operating model, workload inventory structure, maintenance windows, and governance controls | ||
| - [cross-account-visibility.md](cross-account-visibility.md) — hub-and-spoke IAM model and options for centralized visibility across accounts | ||
| - [workflow-flowcharts.md](workflow-flowcharts.md) — visual summary of fleet-wide operations | ||
|
|
||
| ### 5. "I need to understand the webhook auto-apply proposal" | ||
|
|
||
| Read: | ||
|
|
||
| - [decisions/001-webhook-auto-apply.md](decisions/001-webhook-auto-apply.md) — ADR for triggering executor builds automatically from GitHub Enterprise webhook events | ||
| - [workflow-flowcharts.md](workflow-flowcharts.md) — flow-level view of the apply-on-merge path | ||
| - [template-management.md](template-management.md) — `.sc-automation.yml` schema and executor behavior | ||
|
|
||
| ## Document Guide | ||
|
|
||
| ### Core system overview | ||
|
|
||
| - [HOW-IT-WORKS.md](HOW-IT-WORKS.md) | ||
| - Best for understanding the end-to-end proposer/executor model | ||
| - Covers the centralized Lambda, CodeBuild projects, SC products, and step-by-step runtime behavior | ||
| - Use this as the main operational baseline | ||
|
|
||
| - [workflow-flowcharts.md](workflow-flowcharts.md) | ||
| - Best for stakeholder demos and quick architectural orientation | ||
| - Includes flows for provisioning, apply-on-merge, and fleet-wide updates | ||
|
|
||
| ### Generalization and product onboarding | ||
|
|
||
| - [generalized-terraform-product-architecture.md](generalized-terraform-product-architecture.md) | ||
| - Explains how the platform generalizes to any Terraform workload | ||
| - Defines the core onboarding units: template repo, Jinja2 templates, Pydantic model, CFN product template, census registration | ||
|
|
||
| - [template-management.md](template-management.md) | ||
| - Canonical guide for template repo usage | ||
| - Covers full-repo vs subdirectory templates, Jinja2 rendering, `.sc-automation.yml`, proposer behavior, and executor re-rendering into existing account repos | ||
|
|
||
| - [repo-vars-and-secrets.md](repo-vars-and-secrets.md) | ||
| - Canonical guide for runtime config injection | ||
| - Covers AWS Parameter Store layout, Secrets Manager layout, Lambda IAM, and CodeBuild `environmentVariablesOverride` | ||
|
|
||
| - [service-catalog-census-integration.md](service-catalog-census-integration.md) | ||
| - Canonical guide for enterprise product registration | ||
| - Covers central vs StackSet vs census-managed resources, launch roles, portfolio/product YAML, and rollout into `terraform-service-catalog-census` | ||
|
|
||
| ### Operations, governance, and visibility | ||
|
|
||
| - [fleet-governance-at-scale.md](fleet-governance-at-scale.md) | ||
| - Defines the `terraform-sc-fleet` model for operating many workloads across many repos | ||
| - Covers workload entry files, account repo layout, update scripts, maintenance windows, CODEOWNERS, and branch protection | ||
|
|
||
| - [cross-account-visibility.md](cross-account-visibility.md) | ||
| - Covers read-only access patterns for viewing managed resources across accounts | ||
| - Describes the hub-and-spoke IAM role chain and Resource Explorer-first UI approach | ||
|
|
||
| ### Architecture decisions | ||
|
|
||
| - [decisions/001-webhook-auto-apply.md](decisions/001-webhook-auto-apply.md) | ||
| - ADR for the proposed webhook-triggered executor path | ||
| - Useful for understanding why the manual post-merge step should disappear and how `.sc-automation.yml` participates in the design | ||
|
|
||
| ## Suggested Canonical Interpretation | ||
|
|
||
| Where multiple docs overlap, use this interpretation: | ||
|
|
||
| - [HOW-IT-WORKS.md](HOW-IT-WORKS.md) is the best **runtime/system overview** | ||
| - [template-management.md](template-management.md) is the best **template repo and account repo injection** reference | ||
| - [repo-vars-and-secrets.md](repo-vars-and-secrets.md) is the best **config/secrets injection** reference | ||
| - [service-catalog-census-integration.md](service-catalog-census-integration.md) is the best **enterprise rollout** reference | ||
| - [fleet-governance-at-scale.md](fleet-governance-at-scale.md) is the best **day-2 fleet operations** reference | ||
| - [decisions/001-webhook-auto-apply.md](decisions/001-webhook-auto-apply.md) is the best **design rationale** for auto-apply on merge | ||
|
|
||
| ## Current Gaps and Notes | ||
|
|
||
| This doc set is now broad enough to explain: | ||
|
|
||
| - how template repos are leveraged | ||
| - how rendered content is injected into new and existing account repos | ||
| - how CodeBuild receives configuration and secrets | ||
| - how new products are registered in Census | ||
| - how CSVD governs and operates the resulting fleet | ||
|
|
||
| A few documents are still explicitly marked **Proposed** or **Draft**, so treat them as design intent unless and until the code and deployment match them. | ||
|
|
||
| ## If You Only Read Three Docs | ||
|
|
||
| Read these first: | ||
|
|
||
| 1. [HOW-IT-WORKS.md](HOW-IT-WORKS.md) | ||
| 2. [template-management.md](template-management.md) | ||
| 3. [service-catalog-census-integration.md](service-catalog-census-integration.md) |
Oops, something went wrong.