k8s-pulse/helm-chart/INSTALL.md

80 lines
2.4 KiB
Markdown
Raw Normal View History

2026-07-24 11:17:10 +00:00
# k8s-pulse Helm Chart
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
This Helm chart provides a production-ready Kubernetes deployment for **k8s-pulse**, a Python web application that visualizes cluster metrics and resource usage.
2026-07-24 00:15:19 +00:00
## Prerequisites
2026-07-24 11:17:10 +00:00
- A running Kubernetes cluster (v1.19+ recommended).
- [Helm v3](https://helm.sh/) installed.
- (Optional) Metrics Server installed in your cluster for detailed container CPU & memory usage.
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
## Quick Start
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
### 1. Install the Chart
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
To install the chart with default release name `k8s-pulse`:
```bash
helm install k8s-pulse ./helm-chart
2026-07-24 00:15:19 +00:00
```
2026-07-24 11:17:10 +00:00
### 2. Custom Configuration
You can override default settings by passing a custom `values.yaml` file or using `--set`:
2026-07-24 00:15:19 +00:00
```bash
2026-07-24 11:17:10 +00:00
helm install k8s-pulse ./helm-chart -f custom-values.yaml
2026-07-24 00:15:19 +00:00
```
2026-07-24 11:17:10 +00:00
Example: Enable Ingress and change image tag:
2026-07-24 00:15:19 +00:00
```bash
2026-07-24 11:17:10 +00:00
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"
2026-07-24 00:15:19 +00:00
```
2026-07-24 11:17:10 +00:00
### 3. Upgrade the Release
2026-07-24 00:15:19 +00:00
```bash
2026-07-24 11:17:10 +00:00
helm upgrade k8s-pulse ./helm-chart
2026-07-24 00:15:19 +00:00
```
2026-07-24 11:17:10 +00:00
### 4. Uninstall
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
```bash
helm uninstall k8s-pulse
```
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
## Configuration Parameters
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
| 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` |
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
## RBAC Requirements
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
`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`.
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
## Verification
2026-07-24 00:15:19 +00:00
2026-07-24 11:17:10 +00:00
Check the deployment status:
2026-07-24 00:15:19 +00:00
```bash
2026-07-24 11:17:10 +00:00
kubectl get pods -l app.kubernetes.io/name=k8s-pulse
kubectl get svc -l app.kubernetes.io/name=k8s-pulse
2026-07-24 00:15:19 +00:00
```