Developer Documentation

April 18, 2026 ยท View on GitHub

This documentation is for developers and contributors who want to understand the Kepler Operator codebase, contribute code, or maintain the project.

Looking to use Kepler Operator? See the User Guides instead.

Audience

This documentation is for:

  • Contributors adding features or fixing bugs
  • Maintainers managing releases and project infrastructure
  • Developers wanting to understand internal architecture
  • Anyone building on or extending Kepler Operator

Code Organization

๐Ÿ  kepler-operator
โ”‚
โ”œโ”€โ”€ .github          ๐Ÿ‘ˆ  โš™๏ธ  GitHub Actions workflows and CI/CD
โ”‚   โ””โ”€โ”€ workflows
โ”‚
โ”œโ”€โ”€ api              ๐Ÿ‘ˆ  ๐Ÿ“‹ Kubernetes API types
โ”‚   โ””โ”€โ”€ v1alpha1        CRDs (Kepler, PowerMonitor, etc)
โ”‚
โ”œโ”€โ”€ bundle           ๐Ÿ‘ˆ  ๐Ÿ“ฆ Autogenerated OLM bundle
โ”‚   โ”œโ”€โ”€ manifests
โ”‚   โ”œโ”€โ”€ metadata
โ”‚   โ””โ”€โ”€ tests
โ”‚
โ”œโ”€โ”€ cmd              ๐Ÿ‘ˆ  ๐Ÿš€ Main entrypoint
โ”‚   โ””โ”€โ”€ main.go         Operator manager CLI
โ”‚
โ”œโ”€โ”€ config           ๐Ÿ‘ˆ  โš™๏ธ  Kustomize configs (source of truth for manifests)
โ”‚   โ”œโ”€โ”€ certmanager     Cert-manager for webhooks
โ”‚   โ”œโ”€โ”€ crd             CRD definitions
โ”‚   โ”œโ”€โ”€ default         Main kustomization overlays
โ”‚   โ”œโ”€โ”€ manager         Manager deployment config
โ”‚   โ”œโ”€โ”€ manifests       OLM bundle kustomization
โ”‚   โ”œโ”€โ”€ network-policy  Network policies
โ”‚   โ”œโ”€โ”€ prometheus      ServiceMonitor configs
โ”‚   โ”œโ”€โ”€ rbac            RBAC resources
โ”‚   โ”œโ”€โ”€ samples      ๐Ÿ‘ˆ Sample CRs for users
โ”‚   โ”œโ”€โ”€ scorecard       Operator scorecard tests
โ”‚   โ””โ”€โ”€ webhook         Webhook configurations
โ”‚
โ”œโ”€โ”€ docs
โ”‚   โ”œโ”€โ”€ design       ๐Ÿ‘ˆ  ๐Ÿ“ Architecture and design docs
โ”‚   โ”œโ”€โ”€ developer    ๐Ÿ‘ˆ  ๐Ÿ‘ฉโ€๐Ÿ’ป Developer/contributor guides
โ”‚   โ”œโ”€โ”€ logo            Project logos and assets
โ”‚   โ””โ”€โ”€ user         ๐Ÿ‘ˆ  ๐Ÿ“– User guides and documentation
โ”‚
โ”œโ”€โ”€ hack             ๐Ÿ‘ˆ  ๐Ÿ› ๏ธ  Development scripts and tools
โ”‚   โ”œโ”€โ”€ crds            CRD utilities
โ”‚   โ”œโ”€โ”€ dashboard       Grafana dashboard assets
โ”‚   โ”œโ”€โ”€ helm            Helm chart tooling and validation
โ”‚   โ”œโ”€โ”€ monitoring      Monitoring setup scripts
โ”‚   โ””โ”€โ”€ reports         Report generation utilities
โ”‚
โ”œโ”€โ”€ internal         ๐Ÿ‘ˆ  ๐Ÿ”’ Private application code
โ”‚   โ”œโ”€โ”€ config          Operator configuration management
โ”‚   โ””โ”€โ”€ controller      Reconciler implementations
โ”‚
โ”œโ”€โ”€ manifests        ๐Ÿ‘ˆ  ๐Ÿ“ฆ Distribution manifests
โ”‚   โ””โ”€โ”€ helm            Helm chart for operator deployment
โ”‚
โ”œโ”€โ”€ must-gather      ๐Ÿ‘ˆ  ๐Ÿ” Debugging and diagnostics collection
โ”‚
โ”œโ”€โ”€ pkg              ๐Ÿ‘ˆ  ๐Ÿ“š Public reusable packages
โ”‚   โ”œโ”€โ”€ components      Component manifest builders (PowerMonitor, etc)
โ”‚   โ”œโ”€โ”€ reconciler      Generic reconciliation framework
โ”‚   โ”œโ”€โ”€ utils           Utility functions (k8s, test helpers)
โ”‚   โ””โ”€โ”€ version         Version information
โ”‚
โ””โ”€โ”€ tests            ๐Ÿ‘ˆ  ๐Ÿงช Test suites
    โ”œโ”€โ”€ e2e             End-to-end tests
    โ”œโ”€โ”€ testdata        Test fixtures and data
    โ””โ”€โ”€ utils           Test utilities and helpers

How do I get started?

Developer Guides