47 lines
1.8 KiB
Markdown
47 lines
1.8 KiB
Markdown
# Prometheus Operator CRDs
|
|
|
|
This directory contains the CustomResourceDefinitions (CRDs) for the Prometheus Operator.
|
|
|
|
## Why Separate CRDs?
|
|
|
|
These CRDs are managed separately from the main `kube-prometheus-stack` Helm chart to avoid:
|
|
|
|
1. **Large Annotation Error**: Helm stores the full manifest in annotations, which can exceed Kubernetes' 262144-byte limit for CRDs
|
|
2. **CRD Installation Race Conditions**: Ensures CRDs are installed before any resources that depend on them
|
|
|
|
## Deployment Method
|
|
|
|
These CRDs are **manually deployed** using kubectl server-side apply:
|
|
|
|
```bash
|
|
kubectl apply --server-side=true --force-conflicts -f manifests/prometheus-operator-crds/
|
|
```
|
|
|
|
**Note**: Server-side apply is required to bypass the annotation size limit that affects large CRDs.
|
|
|
|
## CRDs Included
|
|
|
|
- `crd-alertmanagerconfigs.yaml` - AlertmanagerConfig resources
|
|
- `crd-alertmanagers.yaml` - Alertmanager resources
|
|
- `crd-podmonitors.yaml` - PodMonitor resources
|
|
- `crd-probes.yaml` - Probe resources
|
|
- `crd-prometheusagents.yaml` - PrometheusAgent resources
|
|
- `crd-prometheuses.yaml` - Prometheus resources
|
|
- `crd-prometheusrules.yaml` - PrometheusRule resources
|
|
- `crd-scrapeconfigs.yaml` - ScrapeConfig resources
|
|
- `crd-servicemonitors.yaml` - ServiceMonitor resources
|
|
- `crd-thanosrulers.yaml` - ThanosRuler resources
|
|
|
|
## Updating CRDs
|
|
|
|
When updating the `kube-prometheus-stack` chart version:
|
|
|
|
1. Copy the new CRDs from `charts/kube-prometheus-stack/charts/crds/crds/` to this directory
|
|
2. Reapply them: `kubectl apply --server-side=true --force-conflicts -f manifests/prometheus-operator-crds/`
|
|
3. Then update the main stack via ArgoCD
|
|
|
|
## Related Configuration
|
|
|
|
- Main stack values: `manifests/kube-prometheus-stack/values.yaml` has `crds.enabled: false`
|
|
- Main ArgoCD app: `argocd-apps/kube-prometheus-stack.yaml`
|