Commit e3379a2
authored
Pattern A: Flux HelmRelease GitOps migration (closes GH013) (#1089)
Closes #1088.
WHY
---
The deploy-azd.yml `commit-rendered-manifests` job pushed bot-generated
manifests directly to refs/heads/main. The `main-governance-baseline`
ruleset (id 14638366) rejects this push with GH013, blocking every
deploy after PRs merge. Bypass-actor and orphan-branch alternatives
were rejected as anti-patterns.
WHAT
----
Roll out Pattern A (Flux HelmRelease + in-cluster Helm rendering) to
all 27 AKS services. The helm-controller renders the chart in-cluster
on every reconciliation, so no rendered YAML lives in git and no
workflow ever pushes back to main.
CHANGES
-------
- 24 new HelmRelease YAMLs in .kubernetes/releases/agents/ + 1 in
.kubernetes/releases/crud/. Generator preserves every env var,
resource limit, AGC route, command/args override, and UAMI binding
from the previously deployed cluster state. Skips the 3 already-
migrated services (ecommerce-catalog-search, truth-enrichment,
truth-hitl).
- .kubernetes/releases/agents/kustomization.yaml updated to list all
26 agent HelmReleases.
- .kubernetes/releases/crud/kustomization.yaml created listing the
crud-service HelmRelease.
- Bicep fluxConfig switched from `.kubernetes/rendered/{crud,agents}`
to `.kubernetes/releases/{crud,agents}`. CRUD reconciles first;
agents depend on it.
- deploy-azd.yml: removed `commit-rendered-manifests` job and rewired
`wait-flux-reconciliation` to depend on deploy-crud / deploy-agents
directly. Renamed misleading "for Flux commit" artifact step labels
to "for verification" since these artifacts now feed only the
prompt-verification flow.
- ADR-017 amended with Phase 2 completion notes and Phase 2b plan
(Flux ImageUpdateAutomation with PR bridge for image tag updates).
VALIDATION
----------
- All 27 HelmReleases pass `helm template` against
.kubernetes/chart (validate_helmreleases.py)
- `kubectl kustomize .kubernetes/releases/agents` resolves 26
HelmReleases; `.kubernetes/releases/crud` resolves 1
- scripts/ci/validate_k8s_name_length.py: passes
- Workflow YAML parses cleanly (yaml.safe_load)
KNOWN GAP (Phase 2b, separate epic)
------------------------------------
After merge, `azd deploy` continues to kubectl-apply new image tags.
Within 5 min Flux can revert to the older tag committed in the
HelmRelease YAML. HelmRelease tags here reflect the currently-deployed
images at PR time, so the first reconciliation after Bicep redeploy
is a no-op. Phase 2b closes the loop with Flux
ImageRepository/ImagePolicy/ImageUpdateAutomation and a PR-bridge for
protected branches.1 parent 811fdbe commit e3379a2
29 files changed
Lines changed: 2649 additions & 87 deletions
File tree
- .github/workflows
- .kubernetes/releases
- agents
- crud
- docs/architecture/adrs
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2057 | 2057 | | |
2058 | 2058 | | |
2059 | 2059 | | |
2060 | | - | |
| 2060 | + | |
2061 | 2061 | | |
2062 | 2062 | | |
2063 | 2063 | | |
| |||
2710 | 2710 | | |
2711 | 2711 | | |
2712 | 2712 | | |
2713 | | - | |
| 2713 | + | |
2714 | 2714 | | |
2715 | 2715 | | |
2716 | 2716 | | |
2717 | 2717 | | |
2718 | 2718 | | |
2719 | 2719 | | |
2720 | 2720 | | |
2721 | | - | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
2722 | 2731 | | |
2723 | 2732 | | |
2724 | 2733 | | |
2725 | | - | |
2726 | | - | |
2727 | 2734 | | |
2728 | 2735 | | |
2729 | | - | |
2730 | | - | |
2731 | | - | |
2732 | | - | |
2733 | | - | |
2734 | | - | |
2735 | | - | |
2736 | | - | |
2737 | | - | |
2738 | | - | |
2739 | | - | |
2740 | | - | |
2741 | | - | |
2742 | | - | |
2743 | | - | |
2744 | | - | |
2745 | | - | |
2746 | | - | |
2747 | | - | |
2748 | | - | |
2749 | | - | |
2750 | | - | |
2751 | | - | |
2752 | | - | |
2753 | | - | |
2754 | | - | |
2755 | | - | |
2756 | | - | |
2757 | | - | |
2758 | | - | |
2759 | | - | |
2760 | | - | |
2761 | | - | |
2762 | | - | |
2763 | | - | |
2764 | | - | |
2765 | | - | |
2766 | | - | |
2767 | | - | |
2768 | | - | |
2769 | | - | |
2770 | | - | |
2771 | | - | |
2772 | | - | |
2773 | | - | |
2774 | | - | |
2775 | | - | |
2776 | | - | |
2777 | | - | |
2778 | | - | |
2779 | | - | |
2780 | | - | |
2781 | | - | |
2782 | | - | |
2783 | | - | |
2784 | | - | |
2785 | | - | |
2786 | | - | |
2787 | | - | |
2788 | | - | |
2789 | | - | |
2790 | | - | |
2791 | | - | |
2792 | | - | |
2793 | | - | |
2794 | | - | |
2795 | | - | |
2796 | | - | |
2797 | | - | |
2798 | 2736 | | |
2799 | 2737 | | |
2800 | 2738 | | |
| |||
4203 | 4141 | | |
4204 | 4142 | | |
4205 | 4143 | | |
4206 | | - | |
4207 | 4144 | | |
4208 | 4145 | | |
4209 | 4146 | | |
| |||
4299 | 4236 | | |
4300 | 4237 | | |
4301 | 4238 | | |
4302 | | - | |
4303 | 4239 | | |
4304 | 4240 | | |
4305 | 4241 | | |
| |||
Lines changed: 5 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1218 | 1218 | | |
1219 | 1219 | | |
1220 | 1220 | | |
1221 | | - | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
1222 | 1224 | | |
1223 | 1225 | | |
1224 | 1226 | | |
| |||
1239 | 1241 | | |
1240 | 1242 | | |
1241 | 1243 | | |
1242 | | - | |
| 1244 | + | |
1243 | 1245 | | |
1244 | 1246 | | |
1245 | 1247 | | |
1246 | 1248 | | |
1247 | 1249 | | |
1248 | 1250 | | |
1249 | 1251 | | |
1250 | | - | |
| 1252 | + | |
1251 | 1253 | | |
1252 | 1254 | | |
1253 | 1255 | | |
| |||
Lines changed: 105 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
Lines changed: 105 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
0 commit comments