2.4 KiB
2.4 KiB
k8s-pulse Helm Chart
This Helm chart provides a production-ready Kubernetes deployment for k8s-pulse, a Python web application that visualizes cluster metrics and resource usage.
Prerequisites
- A running Kubernetes cluster (v1.19+ recommended).
- Helm v3 installed.
- (Optional) Metrics Server installed in your cluster for detailed container CPU & memory usage.
Quick Start
1. Install the Chart
To install the chart with default release name k8s-pulse:
helm install k8s-pulse ./helm-chart
2. Custom Configuration
You can override default settings by passing a custom values.yaml file or using --set:
helm install k8s-pulse ./helm-chart -f custom-values.yaml
Example: Enable Ingress and change image tag:
helm install k8s-pulse ./helm-chart \
--set image.tag="1.0.0" \
--set ingress.enabled=true \
--set ingress.hosts[0].host="k8s-pulse.example.com"
3. Upgrade the Release
helm upgrade k8s-pulse ./helm-chart
4. Uninstall
helm uninstall k8s-pulse
Configuration Parameters
| Parameter | Description | Default |
|---|---|---|
replicaCount |
Number of application replicas | 1 |
image.repository |
Docker image repository | k8s-pulse |
image.tag |
Docker image tag | latest |
image.pullPolicy |
Image pull policy | IfNotPresent |
service.type |
Kubernetes service type | ClusterIP |
service.port |
Service port exposed | 80 |
service.targetPort |
Container application port | 5000 |
rbac.create |
Create ClusterRole & ClusterRoleBinding for K8s API access | true |
serviceAccount.create |
Create ServiceAccount for the deployment | true |
serviceAccount.name |
Explicit ServiceAccount name | "" |
ingress.enabled |
Enable Ingress resource | false |
resources |
Pod CPU/Memory resource limits & requests | { limits: { cpu: 200m, memory: 256Mi }, requests: { cpu: 100m, memory: 128Mi } } |
persistence.enabled |
Enable optional PersistentVolumeClaim | false |
RBAC Requirements
k8s-pulse requires read access to cluster nodes, pods, and metrics.k8s.io custom objects. By default, rbac.create: true creates a ClusterRole and ClusterRoleBinding bound to the pod's ServiceAccount.
Verification
Check the deployment status:
kubectl get pods -l app.kubernetes.io/name=k8s-pulse
kubectl get svc -l app.kubernetes.io/name=k8s-pulse