statefulset-primitive

command
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

README

StatefulSet Primitive Example

This example demonstrates the usage of the statefulset primitive within the operator component framework. It shows how to manage a Kubernetes StatefulSet as a component of a larger application, utilizing features like:

  • Base Construction: Initializing a StatefulSet with basic metadata, spec, and volume claim templates.
  • Feature Mutations: Applying version-gated or conditional changes (sidecars, env vars, annotations) using the Mutator.
  • Custom Status Handlers: Overriding the default logic for determining readiness (via ConvergingStatus and the WithCustomConvergeStatus builder hook) and health assessment during rollouts (GraceStatus).
  • Custom Suspension: Extending the default suspension logic (scaling to 0) with additional mutations.
  • Data Extraction: Harvesting information from the reconciled resource.

Directory Structure

  • app/: Defines the mock ExampleApp CRD and the controller that uses the component framework.
  • features/: Contains modular feature definitions:
    • mutations.go: sidecar injection, env vars, and version-based image updates.
    • handlers.go: custom status and suspension handlers.
  • resources/: Contains the central NewStatefulSetResource factory that assembles all features using the statefulset.Builder.
  • main.go: A standalone entry point that demonstrates a single reconciliation loop using a fake client.

Running the Example

You can run this example directly using go run:

go run examples/statefulset-primitive/main.go

This will:

  1. Initialize a fake Kubernetes client.
  2. Create an ExampleApp owner object.
  3. Reconcile the ExampleApp components.
  4. Print the resulting status conditions.

Documentation

Overview

Package main is the entry point for the statefulset primitive example.

Directories

Path Synopsis
Package app provides a sample controller using the statefulset primitive.
Package app provides a sample controller using the statefulset primitive.
Package features provides sample features for the statefulset primitive.
Package features provides sample features for the statefulset primitive.
Package resources provides resource implementations for the statefulset primitive example.
Package resources provides resource implementations for the statefulset primitive example.

Jump to

Keyboard shortcuts

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