Documentation
¶
Overview ¶
Package app provides a sample controller demonstrating data extraction and guards.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AddToScheme = sharedapp.AddToScheme
AddToScheme registers the ExampleApp types with the given scheme.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Metrics component.Recorder
// NewConfigMapResource builds the ConfigMap and wires the data extractor.
// The extractor writes to dbHost so the Secret guard can read it.
NewConfigMapResource func(owner *ExampleApp, dbHost *string) (component.Resource, error)
// NewSecretResource builds the Secret with a guard that reads dbHost.
NewSecretResource func(owner *ExampleApp, dbHost *string) (component.Resource, error)
}
Controller reconciles an ExampleApp by managing a ConfigMap and a Secret within a single component. The ConfigMap exposes data via extraction, and the Secret is guarded until that data is available.
func (*Controller) BuildComponent ¶ added in v0.16.0
func (r *Controller) BuildComponent(owner *ExampleApp) (*component.Component, error)
BuildComponent assembles the database component: a ConfigMap registered before a Secret, both wired to a shared dbHost pointer. The ConfigMap extractor writes the pointer and the Secret guard reads it, so registration order matters. The controller and tests share this assembly so the reconciled component and the golden snapshot stay in lockstep.
func (*Controller) Reconcile ¶
func (r *Controller) Reconcile(ctx context.Context, owner *ExampleApp) (err error)
Reconcile builds and reconciles a component where the ConfigMap is registered before the Secret. Registration order matters: the guard on the Secret can only read data extracted by a preceding resource.
type ExampleApp ¶
type ExampleApp = sharedapp.ExampleApp
ExampleApp re-exports the shared CRD type so callers in this package need no import alias.
type ExampleAppList ¶
type ExampleAppList = sharedapp.ExampleAppList
ExampleAppList re-exports the shared list type.
type ExampleAppSpec ¶
type ExampleAppSpec = sharedapp.ExampleAppSpec
ExampleAppSpec re-exports the shared spec type.
type ExampleAppStatus ¶
type ExampleAppStatus = sharedapp.ExampleAppStatus
ExampleAppStatus re-exports the shared status type.