Skip to content

feat(deploy): give Unleash its own Argo Application (hybrid-Argo) - #346

Merged
izzywdev merged 1 commit into
masterfrom
feature/unleash-standalone-argo-app
Jul 21, 2026
Merged

feat(deploy): give Unleash its own Argo Application (hybrid-Argo)#346
izzywdev merged 1 commit into
masterfrom
feature/unleash-standalone-argo-app

Conversation

@izzywdev

Copy link
Copy Markdown
Owner

Summary

  • Unleash (self-hosted feature-flag server, family-hosted by FuzeFront) was fully implemented but folded into the umbrella fuzefront Helm chart/Argo Application. Per CLAUDE.md's hybrid-Argo rule, an independently-lifecycled service (external image, own release cadence) should get its own Argo Application — this PR does that extraction.
  • New standalone chart deploy/helm/unleash/ (Deployment + Service + optional admin Ingress, gated by unleash.enabled; pre-install DB-bootstrap Job) — templates copied verbatim from the umbrella chart's templates/unleash.yaml / templates/unleash-db-bootstrap-job.yaml.
  • New Argo Application deploy/argocd/applications/unleash.yaml (path: deploy/helm/unleash, values-prod.yaml, namespace: fuzefront, automated prune+selfHeal) — auto-discovered by the existing app-of-apps (deploy/argocd/app-of-apps.yaml recurses deploy/argocd/applications/).
  • Reuses the existing unleash-secrets SealedSecret (deploy/contabo/sealed/unleash-secrets.yaml, already sealed 2026-07-13) and the umbrella chart's fuzefront-secrets (Postgres superuser password) as-is — no new secrets sealed.
  • Removed the now-superseded unleash blocks from the umbrella fuzefront chart (templates/unleash.yaml, templates/unleash-db-bootstrap-job.yaml, and the unleash: values blocks in values.yaml/values-prod.yaml) so it no longer double-renders Unleash.
  • Still disabled by default (unleash.enabled: false in both values.yaml and values-prod.yaml) — go-live remains a deliberate GitOps flip in a deploy window, unchanged from before this PR.

Validation

  • helm lint deploy/helm/unleash -f deploy/helm/unleash/values-prod.yaml → 0 failed
  • helm lint deploy/helm/fuzefront -f deploy/helm/fuzefront/values-prod.yaml → 0 failed (umbrella still lints clean after Unleash extraction)
  • helm template both charts (enabled + disabled) — renders as expected; disabled = zero resources; umbrella no longer renders any Unleash resources
  • kubeconform -strict -ignore-missing-schemas: unleash chart → 3/3 valid; umbrella chart → 33/33 valid (3 skipped, expected for unschematized CRDs)

Test plan

  • CI gate workflows green on this PR
  • (Gated, not part of this PR) Confirm Argo picks up the new Application from app-of-apps and syncs it (no-op while enabled: false)
  • (Gated, not part of this PR) Go-live: flip unleash.enabled: true in deploy/helm/unleash/values-prod.yaml in a deploy window, after confirming unleash-secrets holds real (non-placeholder) values

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Unleash was fully implemented but folded into the umbrella `fuzefront`
chart/Argo Application. Per the hybrid-Argo standard, an
independently-lifecycled service (external image, own release cadence,
family-wide flag server FuzeFront hosts) gets its own Application.

- New standalone chart deploy/helm/unleash (Deployment+Service+optional
  admin Ingress, gated by unleash.enabled; pre-install DB-bootstrap Job),
  extracted verbatim from the umbrella chart's unleash.yaml /
  unleash-db-bootstrap-job.yaml templates.
- New Argo Application deploy/argocd/applications/unleash.yaml (path
  deploy/helm/unleash, values-prod.yaml, namespace fuzefront, automated
  prune+selfHeal) — discovered by the existing app-of-apps.
- Reuses the existing unleash-secrets SealedSecret and the umbrella
  chart's fuzefront-secrets (Postgres superuser password) as-is; no new
  secrets sealed.
- Removed the now-superseded unleash templates/values blocks from the
  umbrella fuzefront chart so it no longer double-renders Unleash.
- Still disabled by default (unleash.enabled: false) — go-live remains a
  deliberate flip in a deploy window, unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session-Id: f636c22e-1cd7-401e-8843-97e3e3a4ba01
@izzywdev izzywdev added the auto-merge Enable squash auto-merge once CI passes label Jul 21, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) July 21, 2026 15:14
@github-actions

Copy link
Copy Markdown
Contributor

Automated code review (gate-code-review)

Credit balance is too low

Report-only — this check never blocks merge.

@izzywdev
izzywdev merged commit 3823de8 into master Jul 21, 2026
48 checks passed
@izzywdev
izzywdev deleted the feature/unleash-standalone-argo-app branch July 21, 2026 15:22
@izzywdev
izzywdev restored the feature/unleash-standalone-argo-app branch July 27, 2026 11:46
@izzywdev
izzywdev deleted the feature/unleash-standalone-argo-app branch July 27, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-merge Enable squash auto-merge once CI passes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant