hpa-primitive

command
v0.5.1 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

HPA Primitive Example

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

  • Base Construction: Initializing an HPA with a scale target ref, min/max replicas, and labels.
  • Feature Mutations: Applying version-gated or conditional changes (CPU metrics, memory metrics, scaling behavior) using the Mutator.
  • Operational Status: Reporting HPA health based on ScalingActive and AbleToScale conditions.
  • Suspension (Delete): Demonstrating delete-on-suspend behavior — the HPA is removed during suspension to prevent it from scaling the target back up.
  • 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: CPU metric, memory metric, and scale behavior feature mutations.
  • resources/: Contains the central NewHPAResource factory that assembles all features using the hpa.Builder.
  • main.go: A standalone entry point that demonstrates a reconciliation loop using a fake client.

Running the Example

You can run this example directly using go run:

go run examples/hpa-primitive/main.go

This will:

  1. Initialize a fake Kubernetes client.
  2. Create an ExampleApp owner object.
  3. Reconcile the ExampleApp components through multiple spec changes.
  4. Print the resulting status conditions and HPA state.

Documentation

Overview

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

Directories

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

Jump to

Keyboard shortcuts

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