Skip to content

feat(flux): define HelmRelease retry defaults and drift detection once as components - #204

Merged
devantler merged 2 commits into
mainfrom
claude/helmrelease-components-68
Sep 27, 2026
Merged

devantler merged 2 commits into
mainfrom
claude/helmrelease-components-68

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Agentic Engineer

Why

Every chart the template installs repeats the same retry settings, so a new chart can easily miss them. Nothing notices when a chart's resource is deleted or edited by hand, so a platform can look healthy while part of it is gone. The reference platform already solves both once, centrally; new platforms built from this template did not get that.

What

The retry settings and drift detection are now defined once and applied to every chart in every environment, and the copies inside each chart are gone. Flux now restores a chart's resource that is deleted or changed out of band, while leaving alone the fields other controllers legitimately change at runtime. The docs describe the new shared pieces.

Fixes #68

…e as components

Every provider layer that renders HelmReleases now applies two shared Kustomize
components: the install/upgrade remediation block the flux best-practice policy
requires, and drift detection with the runtime-owned fields ignored. The
remediation block is removed from each HelmRelease, which inherits it instead.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-27T16:58:55.070954Z e6ba1e2 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecf781f519

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

… the provider layers

A consumer of a single base now gets the retry defaults and drift detection
too, instead of depending on every provider layer to import them. Also records
why the whole webhooks list is ignored: a JSON Pointer cannot select one field
in every array entry.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. You're on a roll.

Reviewed commit: e6ba1e2090

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Agentic Engineer

Readiness at e6ba1e209066779aab27ca062a1426182f06f8de: all three conditions met.

  • Tested: every check at this head passes. The in-repo System Test is skipped by design in the template repository itself, so static validation is the full surface here. Locally at this head: ksail workload validate passes for both ksail.yaml and ksail.prod.yaml, and the shared-policy, recommended-labels and observability-option scripts all pass.
  • Reviewed: Codex is green at this exact head ("Didn't find any major issues", reviewed commit e6ba1e2090). Both earlier findings are resolved: one fixed (the components are now wired per base), one refuted with the reason recorded in the component.
  • Evaluated as a user (an operator adopting the template): I rendered all 14 provider layers (docker and hetzner × controllers, infrastructure, apps, both Coroot profiles and recommended-labels) and compared them with current main. The only change is driftDetection on each HelmRelease; non-HelmRelease objects are byte-identical, and every HelmRelease still carries the same install/upgrade remediation. A lone base rendered on its own (cert-manager) now carries both, which is the case the second finding was about. Negative control: a layer without the component loses remediation on all 3 of its HelmReleases.

Promoting and merging at this head.

@devantler
devantler marked this pull request as ready for review September 27, 2026 17:06
@devantler
devantler requested a review from a team as a code owner September 27, 2026 17:06
@devantler
devantler merged commit cd30b88 into main Sep 27, 2026
17 checks passed
@devantler
devantler deleted the claude/helmrelease-components-68 branch September 27, 2026 17:06
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.

Factor HelmRelease defaults and drift detection into k8s/bases/components/ like the platform

1 participant