helmrelease

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2026 License: AGPL-3.0 Imports: 12 Imported by: 0

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) (blocked []manifest.NamedResource, ready bool)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL