trivy_activar.sh

#!/usr/bin/env bash
# Reactiva Trivy Operator con la configuración de poca carga de seguridad/trivy-operator.yaml.
#
#   ./scripts/trivy_activar.sh          actualiza CRDs y release, y espera a que arranque
#   ./scripts/trivy_activar.sh parar    lo vuelve a parar al momento (si carga demasiado un nodo)
#   ./scripts/trivy_activar.sh estado   pods, escaneos en curso e informes
set -euo pipefail

NS=trivy-system
RELEASE=trivy-operator
CHART=aqua/trivy-operator
VERSION=0.37.0
RAIZ="$(cd "$(dirname "$0")/.." && pwd)"

estado() {
  kubectl -n "$NS" get pods -o wide
  echo
  echo "Escaneos en curso: $(kubectl -n "$NS" get jobs --no-headers 2>/dev/null | wc -l)"
  echo "Informes de vulnerabilidades: $(kubectl get vulnerabilityreports.aquasecurity.github.io -A --no-headers 2>/dev/null | wc -l)"
}

case "${1:-activar}" in
  activar)
    echo "1/3 CRDs del chart $VERSION (Helm no las actualiza solo)"
    TMP=$(mktemp -d)
    helm repo update aqua >/dev/null
    helm pull "$CHART" --version "$VERSION" -d "$TMP" --untar
    kubectl apply --server-side --force-conflicts -f "$TMP/trivy-operator/crds/" >/dev/null
    rm -rf "$TMP"

    echo "2/3 helm upgrade $VERSION con seguridad/trivy-operator.yaml"
    helm -n "$NS" upgrade "$RELEASE" "$CHART" --version "$VERSION" \
      -f "$RAIZ/seguridad/trivy-operator.yaml" --wait --timeout 10m >/dev/null

    echo "3/3 Reiniciar el operador (solo lee su configuración al arrancar) y estado"
    kubectl -n "$NS" rollout restart deploy/trivy-operator >/dev/null
    kubectl -n "$NS" rollout status deploy/trivy-operator --timeout=5m
    kubectl -n "$NS" rollout status statefulset/trivy-server --timeout=10m
    estado
    echo
    echo "✓ Trivy activo. El primer escaneo completo tarda unas horas (uno a la vez)."
    echo "  Si un nodo se carga demasiado: ./scripts/trivy_activar.sh parar"
    ;;
  parar)
    kubectl -n "$NS" scale deploy/trivy-operator --replicas=0
    kubectl -n "$NS" delete jobs --all --wait=false
    echo "✓ Trivy parado (el servidor y los informes se conservan)"
    ;;
  estado) estado ;;
  *) sed -n '2,7p' "$0"; exit 64 ;;
esac