Files
2026-03-09 20:21:35 -05:00

34 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
# CRD versions (override via env vars for upgrades)
PROMETHEUS_OPERATOR_VERSION="${PROMETHEUS_OPERATOR_VERSION:-v0.76.0}"
GATEWAY_API_VERSION="${GATEWAY_API_VERSION:-v1.2.0}"
echo "=== Bootstrap: Installing required CRDs ==="
# Install Prometheus Operator CRDs (required before helmfile diff can run)
echo "Installing Prometheus Operator CRDs (${PROMETHEUS_OPERATOR_VERSION})..."
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/${PROMETHEUS_OPERATOR_VERSION}/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
echo "✅ Prometheus Operator CRDs installed successfully"
# Install Kyverno CRDs (required for PolicyReport resources)
echo ""
echo "Installing Kyverno PolicyReport CRDs..."
kubectl apply --server-side -f https://raw.githubusercontent.com/kubernetes-sigs/wg-policy-prototypes/master/policy-report/crd/v1beta1/wgpolicyk8s.io_clusterpolicyreports.yaml 2>/dev/null || echo "PolicyReport CRDs may already exist or URL changed - Kyverno will install them"
kubectl apply --server-side -f https://raw.githubusercontent.com/kubernetes-sigs/wg-policy-prototypes/master/policy-report/crd/v1beta1/wgpolicyk8s.io_policyreports.yaml 2>/dev/null || echo "PolicyReport CRDs may already exist or URL changed - Kyverno will install them"
echo "✅ Kyverno PolicyReport CRDs installed (or will be installed by Kyverno chart)"
# Install Gateway API CRDs (required for Istio ambient waypoint proxies)
echo ""
echo "Installing Gateway API CRDs (required for Istio ambient waypoint proxies)..."
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/${GATEWAY_API_VERSION}/standard-install.yaml
echo "✅ Gateway API CRDs installed successfully"