Skip to content

[summit-2026] Replace main with Summit 2026 GitOps template#1

Open
stencell wants to merge 66 commits intomainfrom
summit-2026
Open

[summit-2026] Replace main with Summit 2026 GitOps template#1
stencell wants to merge 66 commits intomainfrom
summit-2026

Conversation

@stencell
Copy link
Contributor

Summary

  • Introduce the three-layer bootstrap architecture (cluster/infra, cluster/platform, tenant) as the new standard, replacing the flat structure on main
  • Rename reference_workloads_library/workloads_library/ throughout (root, template subdirectories, all git.path values)
  • Overhaul all documentation: TLDR-first structure, minimal prose, detail moved into inline comments
  • Add CLAUDE.md files at repo root, cluster/, and tenant/ for AI-assisted development context
  • Add heavily-commented values.yaml files across all three layers explaining every key, the deployer.* injection, platformValues passthrough, and infra/platform workload pairs

Changes

Structural

Change Detail
reference_workloads_library/workloads_library/ All three directories renamed; git paths updated in both bootstrap values.yaml files
New CLAUDE.md (root) Architecture overview, deployment mechanism, value flow, AppProjects, CI inventory, add-workload checklist
New cluster/CLAUDE.md Infra/platform specifics, platformValues forwarding, sync policy, how to add workloads
New tenant/CLAUDE.md Three example patterns, ArgoCD project vs. namespace distinction, provision data labels, namespace naming

Documentation

File Change
START_HERE.md Full rewrite — TLDR + quick reference table + repo layout
cluster/START_HERE.md Full rewrite — TLDR catalog snippets, trimmed prose
tenant/START_HERE.md Full rewrite — TLDR per pattern, minimal prose
docs/enabling-workloads.md Full rewrite — TLDR-first, references inline comments
docs/release_notes.md New v0.7 entry added

Values files (inline comments added)

  • cluster/infra/bootstrap/values.yaml — documents deployer injection, platformValues passthrough, infra/platform pairs
  • cluster/platform/bootstrap/values.yaml — documents how values arrive from infra, operator dependencies
  • tenant/bootstrap/values.yaml — documents three examples, namespace requirements, catalog usage

AgnosticV impact

One existing CI needs a path update when this merges to main:

  • agd_v2/ocp-gitops-example-infra: repo_path: "infra/bootstrap""cluster/infra/bootstrap"

The tenant path (tenant/bootstrap) is unchanged and works for all other CIs.

sborenst and others added 30 commits March 18, 2026 14:40
- Removed editor/IDE artifacts: .claude/, .nvim.lua, CLAUDE.md
- Removed root-level _tenant.tpl (unreferenced Helm helper)
- Removed ocpOps lab: tenant/labs/ocpOps/, application-ocpops-lab.yaml,
  and labs.ocpOps block from tenant/bootstrap/values.yaml
- Added docs/release_notes.md to track changes from upstream

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mple3-helm-parameterized

All references updated across chart files, Application templates, values, and
resource names inside each chart. Also fixed a pre-existing bug in example2
where configmap-provisiondata referenced a non-existent .Values.myapp.tenantName
(now uses .Values.tenant.name).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
bootstrap/scratch/, infra/bootstrap/scratch/ (and nested keycloak-realm/scratch/)
contained draft/reference material not deployed by any active template.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CLAUDE.md was AI assistant instructions with no runtime purpose.
values-lab-hello-world.yaml was orphaned — unreachable by Files.Get
from the bootstrap chart (lives outside the chart directory).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
application-example2-helm-basic.yaml → example2-application-helm-basic.yaml
application-example3-helm-parameterized.yaml → example3-application-helm-parameterized.yaml

Ensures examples sort in order and the ArgoCD kind is descriptive
rather than a confusing prefix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both templates previously rendered unconditionally. Added
{{ if .Values.<example>.enabled }} guard to each and defaulted
enabled: false in values.yaml so they must be explicitly enabled
in the catalog helm values.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
If the catalog fails to pass a namespace for example3, it would silently
deploy to the 'default' namespace. Using a clearly invalid placeholder
causes ArgoCD to fail loudly instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renamed example1-inline-resource.yaml to example1-inline-resource-pod.yaml
and added example1-inline-resource-service.yaml and
example1-inline-resource-route.yaml. All three share the enabled gate.
Route hostname: example1-inline-resource-<tenant>.<domain>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Route hostname: example2-helm-basic-<tenant>.<domain>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Root doc covers the three-layer architecture overview; tenant doc
includes file tree, bootstrap chart explanation, all three example
patterns with AgnosticV catalog snippets.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tenant/START_HERE.md gets a linked table of contents (GitHub anchor
style) and inline file links throughout the prose. Root START_HERE.md
gets linked chart paths in the Quick Reference table.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Stripped architecture overview and Quick Reference table; replaced with
a TODO to write the full overview once all layers are complete. Only
the tenant layer link remains.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tion

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sborenst and others added 30 commits March 18, 2026 18:11
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rkloads

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…cations

- gitlab: add missing git: defaults (repoURL/targetRevision were empty)
- gitlab: replace hardcoded path: gitlab with {{ .Values.gitlab.git.path }}
- webterminal: replace hardcoded path: webterminal with {{ .Values.webterminal.git.path }}
- rhoai: add missing syncPolicy (automated, syncOptions, retry)
- OAuthAccountOperator: fix .Values.userOperator references to .Values.OAuthAccountOperator
- OAuthAccountOperator: remove prune: true, add retry block for consistency

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- gitlab: remove gotchas about hardcoded path and missing git defaults (fixed in eacd234)
- webterminal: remove gotcha about hardcoded path (fixed in eacd234)
- rhoai: remove gotcha about missing syncPolicy (fixed in eacd234)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ice, -route)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Removed bootstrap/ (old top-level bootstrap chart with stale paths, unused)
- Removed README.old.adoc (original upstream README)
- Removed cluster/platform/README.adoc (Keycloak docs with stale paths and references to deleted tools/)
- Replaced .gitignore contents (was referencing unrelated repos) with standard patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moved 16 unused workloads (7 infra, 9 platform) from cluster/ to
reference_workloads_library/ and updated all path references in both
bootstrap values.yaml files. Active workloads (defaultStorageclass,
platform bootstrap, platformExampleSharedGitlab, keycloak) unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moved unused workload entries to the bottom of both infra and platform
bootstrap values.yaml files with a comment marking them as reference
workloads library entries. Alphabetized the reference section. No
functional change — YAML key order does not affect Helm behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Moved 7 infra and 9 platform Application templates for unused workloads
into templates/reference_workloads_library/ subdirectories. Helm recurses
into subdirectories so behavior is unchanged. Keeps active templates
visually separate from reference library entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Documents how to pass information back to the deployer via the
configmap-cluster-provisiondata.yaml ConfigMap so it appears in RHDP.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Conditionally includes gitlab_url in the provision data ConfigMap when
platformExampleSharedGitlab is enabled via platformValues. Uses safe
nil-guarded check since platformValues defaults to {}.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nd provision data

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Documents the cluster layer: bootstrap chain, infra/platform split,
active workloads, catalog control via platformValues, provision data,
and reference workloads library.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Renamed reference_workloads_library/ -> workloads_library/ throughout:
  root directory, templates/ subdirs in both bootstrap charts, and all
  git.path values in infra and platform bootstrap values.yaml files
- Rewrote all values.yaml files with heavy inline comments explaining
  every key, the deployer injection, platformValues passthrough, and
  infra/platform workload pairs
- Rewrote all START_HERE.md files (root, cluster/, tenant/) with
  TLDR-first structure and minimal prose; moved detail into inline comments
- Rewrote docs/enabling-workloads.md as a concise TLDR-first reference
- Added CLAUDE.md at repo root, cluster/, and tenant/ with dense technical
  context for AI-assisted development: deployment mechanism, value flow,
  app-of-apps pattern, provision data, AppProjects, and checklists
- Added v0.7 entry to docs/release_notes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants