Key Features#
1. ClusterResourceSupervisor (Cluster-Scoped)#
The ClusterResourceSupervisor enables platform-level hibernation management across multiple namespaces or ArgoCD AppProjects. Ideal for cluster administrators and GitOps-driven environments.
✅ Key Features#
- Cluster-wide scope: Applies hibernation policies across the entire cluster.
- Flexible namespace targeting:
- Explicit list of namespace names (
names) - Dynamic selection via Kubernetes-standard label selectors (
matchLabelsandmatchExpressions)
- Explicit list of namespace names (
- ArgoCD integration:
- Target hibernation by ArgoCD AppProject names
- Specify the ArgoCD namespace where AppProjects reside
- Cron-based scheduling:
sleepSchedule: Cron expression to scale down workloadswakeSchedule(optional): Cron expression to restore workloads; if omitted, resources remain asleep
- Comprehensive status tracking:
currentStatus: Overall state (sleeping,running,error)watchedNamespaces/ignoreNamespaces: Lists of affected and excluded namespacessleepingNamespaces: Detailed records of scaled-down applications, including:- Namespace name
- Application kind (
DeploymentorStatefulSet) - Original replica count (for accurate restoration)
- Per-namespace and per-application status
nextReconcileTime: Predictable next action time (ISO 8601 datetime)
💡 Use Case: Enforce cost-saving hibernation for all
env=devnamespaces or all applications in theplatform-teamArgoCD AppProject.
2. ResourceSupervisor (Namespace-Scoped)#
The ResourceSupervisor provides self-service hibernation within a single namespace. Designed for application teams who want autonomy without cluster-wide permissions.
✅ Key Features#
- Namespace-scoped: Only affects resources in the same namespace where the CR is created.
- Simple configuration:
- Minimal spec with just a
scheduleblock - No need to manage namespace lists or label selectors
- Minimal spec with just a
- Cron-based scheduling:
sleepSchedule: Required cron expression to hibernate workloadswakeSchedule(optional): Cron expression to wake workloads; if not set, workloads stay asleep indefinitely
- Comprehensive status tracking:
currentStatus: Overall state (sleeping,running,error)nextReconcileTime: Predictable next action time (ISO 8601 datetime)sleepingApplications: Detailed records of scaled-down applications within its namespace, including:- Namespace name
- Application kind (
DeploymentorStatefulSet) - Original replica count (for accurate restoration)
- Per-namespace and per-application status
💡 Use Case: A development team creates a
ResourceSupervisorin theirmyapp-stagingnamespace to sleep workloads every night and wake them each morning.
🎯 When to Use Which?#
| Scenario | Recommended CRD |
|---|---|
| Cluster admin managing hibernation for many teams | ClusterResourceSupervisor |
| GitOps with ArgoCD AppProjects | ClusterResourceSupervisor |
| Team wants full control over their namespace | ResourceSupervisor |