Pre-requisites¶
Install these before Installation. Missing any item usually shows up as empty recommendations, failing health checks, or webhook errors.
Cluster and tooling¶
| Requirement | Notes |
|---|---|
| Kubernetes 1.33+ | In-place pod resource updates are part of the design; older versions are unsupported. PSI-aware optimization requires 1.34+; see Prometheus section below. |
| kubectl | Configured for the target cluster context. |
| Helm 3 | For installing the official chart (OCI registry). |
Prometheus¶
CruiseKube reads container and node metrics (usage, throttling, PSI where exposed, etc.) from Prometheus.
- You may use an existing Prometheus or install one via Helm (given below).
- Set
CRUISEKUBE_DEPENDENCIES_INCLUSTER_PROMETHEUSURL(or equivalent) to a URL reachable from the controller pods (in-cluster Service URL, notlocalhost).
Optional: install Prometheus via Helm
If you do not already have Prometheus, you can add kube-prometheus-stack. A second install can fail if Prometheus already exists in the namespace—reuse the existing instance instead.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--create-namespace \
--set alertmanager.enabled=false \
--set grafana.enabled=false \
--set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
PSI (Pressure Stall Indicator): CruiseKube’s algorithm is built around PSI-aware CPU reasoning on clusters that expose the right metrics (Kubernetes 1.34+ PSI story). If PSI is absent, behavior degrades toward usage-only signals—still useful, but not identical to a full PSI deployment. See Algorithm.
PostgreSQL¶
CruiseKube persists workload statistics, recommendations, and per-workload overrides in a database.
- Option A: Bitnami PostgreSQL subchart official Helm chart (
postgresql.enabled=true), is enabled by default. - Option B: Use your own Postgres and set
global.postgresql.auth.*(host, port, user, password, database) per Helm chart reference.
Network and RBAC¶
- Controller and webhook must reach kube-apiserver, Prometheus, and PostgreSQL.
- The chart installs RBAC and MutatingWebhookConfiguration resources; ensure your GitOps / policy engines allow them.
What you do not need (for a minimal install)¶
- Grafana (optional for you; not required by CruiseKube).
- A separate metrics long-term store (CruiseKube queries Prometheus directly).