Documentation
¶
Overview ¶
Package helmrelease implements the HelmReleaseController.
It listens for new HelmRelease objects and renders them via the helm SDK. The controller also maintains a chart-source index by listening for HelmRepository, OCIRepository, and GitRepository events: when an upstream source becomes Ready the helm client is told about it so subsequent template calls can resolve charts.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
*base.Controller
Helm *helm.Client
// Options applied to every template call.
Options helm.Options
// WipeSecrets controls whether secrets are wiped from rendered
// templates.
WipeSecrets bool
// contains filtered or unexported fields
}
Controller orchestrates HelmRelease reconciliation. Reconcile-shaping state (Filter, ParentOf) flows in via Configure exactly once before Start.
func New ¶
func New(s *store.Store, t *task.Service, h *helm.Client, opts helm.Options, wipeSecrets bool) *Controller
New constructs a HelmRelease controller.
func (*Controller) Configure ¶
func (c *Controller) Configure(opts ReconcileOptions)
Configure installs the post-bootstrap state. Panics if called after Start — encodes the invariant that reconcile-shaping config is read-only once dispatch begins.
func (*Controller) ReconcileNode ¶ added in v0.3.4
func (c *Controller) ReconcileNode(ctx context.Context, id manifest.NamedResource, drainLevel int) []manifest.NamedResource
ReconcileNode runs id's reconcile under the dag engine, returning the blocked dependency set (nil = terminalized) and whether id ended Ready. The orchestrator's scheduler Dispatcher calls this for HelmRelease nodes.
func (*Controller) Start ¶
func (c *Controller) Start(_ context.Context)
Start registers the listeners. The controller runs until Close. The HR controller only listens for HelmRelease and HelmChartSource (the chart-ref index) — source-kind events (HelmRepository, OCIRepository, GitRepository, Bucket, ExternalArtifact) are now consumed lazily by helm.Client through its SourceResolver against the canonical Store. One fewer push-registry to keep in sync.
type ReconcileOptions ¶
type ReconcileOptions struct {
base.Options
// AllowMissingSecrets omits non-optional valuesFrom refs that point
// at known live-cluster/generated data or fail to materialize offline.
AllowMissingSecrets bool
// Producers is the orchestrator-owned producer index (ExternalSecret /
// SealedSecret target → producer), shared with the source controller. A
// valuesFrom Secret with a declared producer is omitted even without
// AllowMissingSecrets. Nil is OK — no producer is ever known.
Producers *manifest.ProducerIndex
}
ReconcileOptions carries the post-bootstrap state the orchestrator wires onto the controller. base.Options holds the config common to every render controller (Filter / ParentOf — here resolving each HR to its enclosing KS, which reconcile depwaits on so cluster-KS spec patches land before the first helm.Template call — RenderTracker / Existence / PreflightFailure); AllowMissingSecrets and Producers are HelmRelease-specific.