app

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package app provides a sample controller demonstrating data extraction and guards.

Index

Constants

This section is empty.

Variables

View Source
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.

Jump to

Keyboard shortcuts

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