Skip to content

hyperfleet-sentinel

Kubernetes service that polls the HyperFleet API for cluster and nodepool updates, makes orchestration decisions via CEL-based decision logic, and publishes CloudEvents to message brokers. Stateless, horizontally scalable via label-based sharding, delegates all state persistence to the API.

Quick Start

Deploy the Full Stack

Sentinel requires a running message broker and HyperFleet API as well as adapters. The hyperfleet-infra repository provides a one-command setup that deploys the complete HyperFleet stack including pre-configured adapters:

CommandWhat it deploys
make local-up-gcpGKE cluster + images + API + adapters + Maestro
make install-hyperfleetEverything on an existing K8s cluster using RabbitMQ (no GCP needed)
make install-adaptersInstall sample HyperFleet Adapters only
make install-apiInstall sample HyperFleet API only
helm install rabbitmq ./helm/rabbitmqInstall a simple RabbitMQ instance
make statusVerify the deployment

Make sure you define the following environment variables:

  • HELMFILE_ENV: accepted values: kind, gcp
  • NAMESPACE: namespace where HyperFleet components will be deployed
  • REGISTRY: The registry namespace from which to pull the images. quay.io/openshift-hyperfleet for released images
  • API_IMAGE_TAG: image tag for hyperfleet-api container image
  • SENTINEL_IMAGE_TAG: image tag for hyperfleet-sentinel container image
  • ADAPTER_IMAGE_TAG: image tag for hyperfleet-adapter container image

See hyperfleet-infra for required environment variables and full instructions.

Try Locally

make generate && make build
export BROKER_RABBITMQ_URL="amqp://guest:guest@localhost:5672/"export HYPERFLEET_BROKER_TOPIC=hyperfleet-dev-clusters
./bin/sentinel serve --config=configs/dev-example.yaml

See the Development Guide for full setup instructions.

Documentation

For Operators (deploying and running Sentinel)

GuideDescription
Deployment GuideHelm deployment, broker setup, examples
Helm Values ReferenceComplete chart values
Configuration ReferenceYAML schema, CLI flags, env vars
Operator GuideDecision engine, CEL expressions, concepts
ScalingHorizontal sharding patterns
Resource SizingCPU/memory at scale

For SREs (monitoring and operations)

GuideDescription
MetricsMetric catalog, PromQL examples, Grafana
AlertsAlert rules, severity, response
RunbookReliability features, health checks, failure recovery

For Developers

GuideDescription
Development GuideSetup, build, test, run locally
CONTRIBUTING.mdCommit standards, PR workflow
Integration TestsTestcontainer setup

Architecture

ResourceDescription
HyperFleet ArchitectureSystem design
HyperFleet API SpecAPI contract
Broker LibraryMessaging abstraction
InfrastructureDeployment automation

CLI Reference

CommandDescription
sentinel serve --config config.yamlRun the service
sentinel config-dump --config config.yamlPrint merged configuration
sentinel versionPrint version, commit, build date

Run sentinel serve --help for the full flag list.

Contributing

See CONTRIBUTING.md and Development Guide.

Repository Access

All members of the hyperfleet team have write access to this repository.

  1. Verify you're a member of the openshift-hyperfleet organization
  2. Confirm you're added to the hyperfleet team
  3. Code reviews and approvals are managed through the OWNERS file

For access issues, contact a repository administrator or organization owner.

About

HyperFleet Sentinel Operator - Kubernetes operator that polls HyperFleet API, makes orchestration decisions, and publishes events. Features configurable backoff strategies, horizontal sharding via SentinelConfig CRD, and broker abstraction (GCP Pub/Sub, RabbitMQ, Stub). Centralized reconciliation logic.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages