video-iac/k8s/README.md

1.4 KiB

Kubernetes Configuration

This directory contains Kubernetes manifests and configuration for the video infrastructure.

Managing CRDs

The file all-crds.yaml contains all Custom Resource Definitions (CRDs) required by the monitoring stack (Prometheus Operator).

When to update CRDs

You should regenerate all-crds.yaml by running scripts/update-crds.sh when:

  1. Upgrading the kube-prometheus-stack Helm chart: If you bump the chart version in k8s/monitoring/Chart.yaml and update the dependencies, you must also update the CRDs to match the new version.

  2. Missing CRD fields: If you encounter errors like field not declared in schema during ArgoCD syncs, it likely means the installed CRDs are outdated.

  3. Apply the CRDs: Since Helm does not manage CRD upgrades, you must apply the updated CRDs manually. You may need --force-conflicts if ArgoCD previously managed these resources:

    kubectl apply --server-side --force-conflicts -f k8s/all-crds.yaml
    
  4. Commit and Push: Commit the updated k8s/all-crds.yaml to the repository.

    git add k8s/all-crds.yaml
    git commit -m "Update Prometheus CRDs"
    git push
    

How to update

Run the update script from the repository root:

./scripts/update-crds.sh

This script extracts the CRDs from the local kube-prometheus-stack chart package and concatenates them into k8s/all-crds.yaml.