# O11y-Mixin Helm Chart

The `o11y-mixin` Helm chart consolidates observability infrastructure components, providing a unified way to deploy monitoring rules, service monitors, dashboards, and storage classes across multiple cloud providers and environments.

## Prerequisites

- Kubernetes 1.19+
- Helm 3.2.0+
- Prometheus Operator (for PrometheusRule resources)
- Grafana (for dashboard ConfigMaps, global mode only)

## Installation

### Basic Installation

```bash
# Install in regional mode for AWS
helm install o11y-mixin ./deployments/charts/o11y-mixin \
  --set global.mode=regional \
  --set global.vendor=aws \
  --set global.region=us-west-2 \
  --set global.cluster=my-cluster \
  --namespace self-monitoring \
  --create-namespace
```

### Global Configuration

| Parameter | Description | Default |
|-----------|-------------|---------|
| `global.mode` | Deployment mode (`global` or `regional`) | `regional` |
| `global.environment` | Environment (`dev`, `staging`, `prod`) | `prod` |
| `global.vendor` | Cloud vendor (`aws`, `gcp`, `azure`, `alicloud`) | `aws` |
| `global.region` | Cloud region | `us-west-2` |
| `global.logicalRegion` | Logical region name | `us-west-2` |
| `global.cluster` | Cluster name | `cluster-name` |
| `global.namespace` | Target namespace | `self-monitoring` |

### Component Configuration

| Parameter | Description | Default |
|-----------|-------------|---------|
| `components.rules.enabled` | Enable Prometheus rules | `true` |
| `components.monitors.enabled` | Enable service monitors (regional only) | `true` |
| `components.dashboards.enabled` | Enable Grafana dashboards (global only) | `true` |
| `components.storage.enabled` | Enable storage classes (regional only) | `true` |
| `extraRuleGroups` | Additional PrometheusRule groups appended to generated rules | `[]` |

### Storage Class Configuration

| Parameter | Description | Default |
|-----------|-------------|---------|
| `storageClass.name` | Storage class name | `prometheus-storage` |
| `storageClass.isDefault` | Set as default storage class | `false` |
| `storageClass.allowVolumeExpansion` | Allow volume expansion | `true` |
| `storageClass.reclaimPolicy` | Reclaim policy | `Delete` |
| `storageClass.parameters` | Cloud-specific storage parameters | `{}` |

## Development

### Testing Changes

```bash
# Lint the chart
helm lint ./deployments/charts/o11y-mixin

# Test template rendering
helm template test-release ./deployments/charts/o11y-mixin \
  --set global.vendor=aws \
  --set global.region=us-west-2 \
  --debug

# Package the chart
helm package ./deployments/charts/o11y-mixin
```
