π» KubeNidra CLI
Configuration
The KubeNidra CLI uses Kubernetes configuration and supports various connection options. This guide covers all configuration aspects including kubeconfig setup, authentication, and command-line options.
Kubeconfig Configuration
The CLI uses the standard Kubernetes client configuration system.
Default Kubeconfig Location
# Default locations (in order of precedence)
~/.kube/config
$KUBECONFIG environment variable
--kubeconfig flagSetting Kubeconfig
# Use specific kubeconfig file
kubenidra --kubeconfig /path/to/kubeconfig enable deployment my-app -n test
# Set via environment variable
export KUBECONFIG=/path/to/kubeconfig
kubenidra enable deployment my-app -n test
# Use short flag
kubenidra -k /path/to/kubeconfig enable deployment my-app -n testNamespace Configuration
Explicit Namespace
# Specify namespace for each command
kubenidra -n development enable deployment my-app
kubenidra --namespace production status deployment my-appCross-Namespace Operations
# Work across multiple namespaces
kubenidra -n development enable deployment dev-app
kubenidra -n staging enable deployment staging-app
kubenidra -n production enable deployment prod-appRBAC Requirements
The CLI requires specific permissions to manage workloads:
Minimum Required Permissions
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kubenidra-cli
rules:
# Read workloads
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets", "replicasets"]
verbs: ["get", "list", "watch"]
# Update workloads (for annotations)
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets", "replicasets"]
verbs: ["update", "patch"]
# Read namespaces
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["get", "list"]Testing Permissions
# Test if you can update deployments
kubectl auth can-i update deployments --namespace development
# Test if you can patch deployments
kubectl auth can-i patch deployments --namespace development
# Test if you can list deployments
kubectl auth can-i list deployments --namespace developmentCommand-Line Options
Global Flags
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--kubeconfig | -k | string | ~/.kube/config | Path to kubeconfig file |
--namespace | -n | string | Kubernetes namespace |
Command-Specific Flags
Enable Command
kubenidra enable <workload-type> <workload-name> -n <namespace>
Flags:
-s, --schedule string Wake schedule (e.g., '9:00-17:00,mon-fri')Override Command
kubenidra override <workload-type> <workload-name> -n <namespace>
Flags:
-d, --duration string Override duration (e.g., '2h', '30m'). Permanent if not specified.Schedule Command
kubenidra schedule <workload-type> <workload-name> -n <namespace>
Flags:
-s, --schedule string Wake schedule (e.g., '9:00-17:00,mon-fri') (required)