79 lines
1.9 KiB
Markdown
79 lines
1.9 KiB
Markdown
|
|
# K8sMonitor Helm Chart
|
||
|
|
|
||
|
|
This Helm chart provides a standardized way to deploy the **K8sMonitor** python web application on a Kubernetes cluster.
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
- A running Kubernetes cluster.
|
||
|
|
- [Helm](https://helm.sh/) installed on your local machine or CI/CD runner.
|
||
|
|
- Access to a container registry where the `python-web-app` image is stored (if using a custom image).
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
### 1. Prepare the Configuration
|
||
|
|
The default configuration can be found in `values.yaml`. You can override any value here before installing or pass them via `--set` or `-f <file>`.
|
||
|
|
|
||
|
|
Example of modifying ingress annotations:
|
||
|
|
```yaml
|
||
|
|
ingress:
|
||
|
|
annotations:
|
||
|
|
cert-manager.io/cluster-issuer: "letsencrypt-prod"
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Install the Chart
|
||
|
|
To install the chart using the default values:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
helm install k8smonitor ./helm-chart
|
||
|
|
```
|
||
|
|
|
||
|
|
To install with a custom values file:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
helm install k8smonitor ./helm-chart -f custom-values.yaml
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Upgrade the Chart
|
||
|
|
To update your installation with newer configuration or version:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
helm upgrade k8smonitor ./helm-chart
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration Options
|
||
|
|
|
||
|
|
| Value | Description | Default |
|
||
|
|
|------|-------------|---------|
|
||
|
|
| `replicaCount` | Number of desired pods | 2 |
|
||
|
|
| `image.repository` | The Docker image to pull | python-web-app |
|
||
|
|
| `service.port` | The port the service listens on | 80 |
|
||
|
|
| `ingress.enabled` | Enable or disable Ingress | true |
|
||
|
|
| `persistence.size` | Size of the PersistentVolumeClaim | 1Gi |
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
Once installed, you can check the status of your deployment:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# List all pods for the app
|
||
|
|
kubectl get pods -l app=k8smonitor
|
||
|
|
|
||
|
|
# Check the service
|
||
|
|
kubectl get svc k8smonitor
|
||
|
|
|
||
|
|
# Check the ingress
|
||
|
|
kubectl get ingress k8smonitor
|
||
|
|
```
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
If the pod is not running, check the logs:
|
||
|
|
```bash
|
||
|
|
kubectl logs -l app=k8smonitor
|
||
|
|
```
|
||
|
|
|
||
|
|
Check for events in the namespace:
|
||
|
|
```bash
|
||
|
|
kubectl get events --sort-by=.metadata.creationTimestamp
|
||
|
|
```
|