πŸ’€ KubeNidra
πŸ’» KubeNidra CLI

Command Reference

This page provides a complete reference for all KubeNidra CLI commands, their syntax, options, and examples.

Global Flags

All commands support these global flags:

FlagShortDescription
--kubeconfig-kPath to kubeconfig file
--namespace-nKubernetes namespace

Core Commands

Enable

Enables KubeNidra for a workload.

kubenidra enable <workload-type> <workload-name> -n <namespace> [flags]

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Flags:

  • --schedule, -s: Wake schedule (e.g., '9:00-17:00,mon-fri')

Examples:

# Enable with default settings
kubenidra enable deployment my-app -n test

# Enable with wake schedule
kubenidra enable deployment my-app -n test --schedule "09:00-17:00,mon-fri"

# Enable in statefulset
kubenidra enable statefulset database -n production --schedule "08:00-18:00,mon-fri;22:00-03:00,sun"

What it does:

  • Adds kubenidra/enabled: "true" annotation
  • Optionally sets kubenidra/wake-schedule annotation
  • Validates schedule format if provided

Disable

Disables KubeNidra for a workload.

kubenidra disable <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Disable KubeNidra
kubenidra disable deployment my-app -n test

# Disable KubeNidra
kubenidra disable statefulset database -n production

What it does:

  • Removes all KubeNidra annotations
  • Restores workload to normal Kubernetes behavior

Snooze

Manually snoozes a workload.

kubenidra snooze <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Manually snooze
kubenidra snooze deployment my-app -n test

# Snooze statefulset
kubenidra snooze statefulset database -n production

What it does:

  • Adds kubenidra/snooze-now: "true" annotation
  • Triggers immediate snooze operation by the agent
  • Checks if workload is already snoozed

Wake

Wakes up a snoozed workload.

kubenidra wake <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Wake up workload
kubenidra wake deployment my-app -n test

# Wake statefulset
kubenidra wake statefulset database -n production

What it does:

  • Adds kubenidra/wake-now: "true" annotation
  • Triggers immediate wake operation by the agent
  • Checks if KubeNidra is enabled

Advanced Control Commands

Override

Sets manual override to disable automatic behavior.

kubenidra override <workload-type> <workload-name> -n <namespace> [flags]

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Flags:

  • --duration, -d: Override duration (e.g., '2h', '30m'). Permanent if not specified.

Examples:

# Permanent override
kubenidra override deployment my-app -n test

# Temporary override (2 hours)
kubenidra override deployment my-app -n test --duration 2h

# Temporary override (30 minutes)
kubenidra override deployment my-app -n test -d 30m

What it does:

  • Sets kubenidra/manual-override: "true" for permanent override
  • Sets kubenidra/manual-override-until for time-based override
  • Prevents automatic snooze/wake operations

Clear Override

Clears manual override and restores automatic behavior.

kubenidra clear-override <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Clear override
kubenidra clear-override deployment my-app -n test

# Clear override for statefulset
kubenidra clear-override statefulset database -n production

What it does:

  • Removes kubenidra/manual-override and kubenidra/manual-override-until annotations
  • Restores automatic KubeNidra behavior

Pin

Pins workload in its current state (active or snoozed).

kubenidra pin <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Pin in current state
kubenidra pin deployment my-app -n test

# Pin statefulset
kubenidra pin statefulset database -n production

What it does:

  • Sets kubenidra/pin-state to "active" or "snoozed" based on current state
  • Prevents state changes until unpinned
  • Checks if already pinned

Unpin

Removes pin and restores normal KubeNidra behavior.

kubenidra unpin <workload-type> <workload-name> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Examples:

# Remove pin
kubenidra unpin deployment my-app -n test

# Unpin statefulset
kubenidra unpin statefulset database -n production

What it does:

  • Removes kubenidra/pin-state annotation
  • Restores normal KubeNidra behavior
  • Checks if workload is pinned

Configuration Commands

Schedule

Updates wake schedule for a workload.

kubenidra schedule <workload-type> <workload-name> -n <namespace> [flags]

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: Name of the workload

Flags:

  • --schedule, -s: Wake schedule (e.g., '9:00-17:00,mon-fri') (required)

Examples:

# Update schedule
kubenidra schedule deployment my-app -n test --schedule "09:00-17:00,mon-fri"

# Update schedule
kubenidra schedule statefulset database -n production -s "08:00-18:00,mon-sun"

# Multiple time ranges
kubenidra schedule deployment my-app -n test -s "09:00-17:00,mon-wed,fri;08:00-18:00,thu"

What it does:

  • Updates kubenidra/wake-schedule annotation
  • Validates schedule format
  • Requires KubeNidra to be enabled

Monitoring Commands

Status

Shows detailed status report for a workload.

kubenidra status <workload-type> -n <namespace> [workload-name]

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)
  • workload-name: (Optional) Specific workload name

Examples:

# Status of specific workload
kubenidra status deployment my-app -n test

# Status of statefulset
kubenidra status statefulset database -n production

Output includes:

  • Current state (Active/Snoozed)
  • Replica count
  • Wake schedule
  • Manual override status
  • Pin state
  • Operation history
  • Backoff status

List Status

Lists all KubeNidra-enabled workloads in a namespace with detailed status report.

kubenidra list-status <workload-type> -n <namespace>

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)

Examples:

# List status of all enabled deployments
kubenidra list-status deployment -n test

# List statefulset
kubenidra list-status statefulset -n production

Output includes:

  • Current state (Active/Snoozed)
  • Replica count
  • Wake schedule
  • Manual override status
  • Pin state
  • Operation history
  • Backoff status

List Enabled

Lists all KubeNidra-enabled workloads.

kubenidra list-enabled <workload-type> [-n <namespace>]

Arguments:

  • workload-type: Type of workload (deployment, statefulset, daemonset, replicaset)

Examples:

# List all enabled deployments in all namespaces
kubenidra list-enabled deployment

# List all enabled statefulsets in a specific namespace
kubenidra list-status statefulset -n production

Output includes:

  • Workload status (Active/Snoozed)
  • Namespace and name
  • Wake schedule (if set)

Schedule Format Reference

Basic Format

time-range,days[;time-range,days]

Examples:

"09:00-17:00,mon-fri"     # Weekdays 9 AM to 5 PM
"08:00-18:00,mon-sun"     # Every day 8 AM to 6 PM
"22:00-03:00,fri-mon"     # Weekend nights

Multiple Ranges

range1;range2;range3

Examples:

"09:00-17:00,mon-wed,fri;08:00-18:00,thu"  # Different hours for Thursday
"09:00-17:00,mon-fri;10:00-16:00,sat-sun"  # Weekend hours

Time Format

  • 24-hour format: HH:MM-HH:MM
  • Hours: 00-23
  • Minutes: 00-59

Day Format

  • Single day: mon, tue, wed, thu, fri, sat, sun
  • Day ranges: mon-fri, sat-sun
  • Multiple days: mon,wed,fri
  • All week: mon-sun