k8s-pulse/helm-chart/INSTALL.md

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