βΈοΈ KubeNidra Helm Charts
Installation
This guide walks you through installing KubeNidra using Helm charts in your Kubernetes cluster.
Prerequisites
Before installing KubeNidra, ensure you have:
- Kubernetes Cluster: Version 1.19+ with RBAC enabled
- Helm: Version 3.0+ installed and configured
- kubectl: Configured to communicate with your cluster
- Ingress Controller: If you plan to use ingress (nginx, traefik, etc.)
- Prometheus: For metrics collection (optional but recommended)
Quick Installation
1. Add the Helm Repository
helm repo add kubenidra https://kulbirsaini.github.io/kubenidra
helm repo update2. Install with Default Values
helm install kubenidra kubenidra/kubenidra \
--namespace kubenidra \
--create-namespace3. Verify Installation
# Check all resources
kubectl get all -n kubenidra
# Check pods status
kubectl get pods -n kubenidra
# Check services
kubectl get svc -n kubenidraCustom Installation
1. Download and Customize Values
# Download the default values
helm show values kubenidra/kubenidra > my-values.yaml
# Edit the values file
vim my-values.yaml2. Install with Custom Values
helm install kubenidra kubenidra/kubenidra \
--namespace kubenidra \
--create-namespace \
-f my-values.yamlComponent-Specific Installation
Install Only Specific Components
You can enable/disable components by modifying the values:
# values.yaml
agent:
enabled: true
api:
enabled: true
cli:
enabled: false # Disable CLI
manager:
enabled: trueInstall with Custom Images
# values.yaml
agent:
image:
repository: your-registry/kubenidra-agent
tag: v1.0.0
api:
image:
repository: your-registry/kubenidra-api
tag: v1.0.0Post-Installation Steps
1. Configure Ingress (if enabled)
Ensure your ingress controller is properly configured and can reach the KubeNidra services.
2. Set Up Authentication
The API component will automatically generate JWT signing keys. For production, consider providing your own:
api:
secret:
enabled: true
signingKey: "your-base64-encoded-key"3. Configure Prometheus Integration
If using Prometheus, update the agent configuration:
agent:
config:
prometheus:
endpoint: "http://your-prometheus:9090"Verification
Check Component Status
# Check deployments
kubectl get deployments -n kubenidra
# Check services
kubectl get svc -n kubenidra
# Check ingress
kubectl get ingress -n kubenidra
# Check RBAC
kubectl get clusterrole,clusterrolebinding -l app.kubernetes.io/name=kubenidraTest API Access
# Port forward to API service
kubectl port-forward -n kubenidra svc/kubenidra-api-svc 1881:1881
# Test API endpoint
curl http://localhost:1881/healthzTest Manager UI
# Port forward to manager service
kubectl port-forward -n kubenidra svc/kubenidra-manager-svc 8080:80
# Open browser to http://localhost:8080Troubleshooting
Common Issues
- Image Pull Errors: Ensure your cluster has access to the container registry
- RBAC Issues: Verify that RBAC is enabled and service accounts are created
- Ingress Not Working: Check ingress controller configuration and hostnames
- Resource Limits: Adjust resource requests/limits if pods are failing to start
Debug Commands
# Check pod logs
kubectl logs -n kubenidra deployment/kubenidra-agent
kubectl logs -n kubenidra deployment/kubenidra-api
# Check events
kubectl get events -n kubenidra --sort-by='.lastTimestamp'
# Check configmaps
kubectl describe configmap -n kubenidraUninstallation
To remove KubeNidra:
helm uninstall kubenidra -n kubenidra
# Remove the namespace (optional)
kubectl delete namespace kubenidraNote: This will remove all KubeNidra resources. Workload hibernation states will be preserved in the cluster.