2026-04-15 15:41:40 +03:00

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`