Aegis Vetis home

GUIDE

Quick start — première démo en 15 minutes

Installer Aegis Vetis sur un cluster Kubernetes local, bloquer un pod non conforme et télécharger un rapport PDF signé.

Last updated
2026-05-09

The English translation of the documentation is in progress. For the moment, the content below is in French — switch to the French version for the canonical reading experience.

Quick start

Cet exercice vise un platform engineer qui découvre Aegis Vetis. À l’issue des 15 minutes, vous aurez :

  1. Vu un cluster Kubernetes apparaître dans le Control Plane.
  2. Bloqué un pod non conforme à l’admission.
  3. Téléchargé un rapport de conformité PDF signé.

Pour un déploiement en production, suivre la procédure d’installation complète.

Pré-requis

  • kubectl ≥ 1.28
  • helm ≥ 3.14
  • (recommandé) cosign ≥ 2.4 pour vérifier les signatures d’images
  • Un cluster Kubernetes local : kind ≥ 0.23, k3s ≥ 1.30 ou minikube.
  • 4 vCPU et 4 Gi de RAM disponibles, 8 Gi recommandés.
  • Accès sortant à registry.aegis-vetis.io (ou bundle air-gap si site sans Internet — voir Air-gap).
  • Vos credentials Aegis Vetis : token Harbor robot$aegis-vetis+client-pull reçu par email à la finalisation de votre commande (voir Installation §0).
kind create cluster --name aegis-quickstart --image kindest/node:v1.30.0
kubectl cluster-info

Étape 1 — Installer le Control Plane

export HARBOR_TOKEN='<le-token-reçu-par-email>'
VERSION=0.1.0    # adapter à la dernière release annoncée

# Login Harbor + pull du chart
helm registry login registry.aegis-vetis.io \
  -u 'robot$aegis-vetis+client-pull' -p "$HARBOR_TOKEN"
helm pull oci://registry.aegis-vetis.io/aegis-vetis/aegis-vetis \
  --version "$VERSION" --untar

# Pull secret Kubernetes pour que les pods puissent tirer les images
kubectl create namespace aegis-vetis
kubectl create secret docker-registry aegis-vetis-pull \
  --namespace aegis-vetis \
  --docker-server=registry.aegis-vetis.io \
  --docker-username='robot$aegis-vetis+client-pull' \
  --docker-password="$HARBOR_TOKEN" \
  --docker-email='ops@your-company.tld'

# Install
helm install aegis ./aegis-vetis \
  --namespace aegis-vetis \
  --set global.imageRegistry=registry.aegis-vetis.io/aegis-vetis \
  --set 'global.imagePullSecrets[0].name=aegis-vetis-pull' \
  --set api.adminBootstrap.email=admin@example.com \
  --set api.adminBootstrap.password='ChangeMe!42' \
  --wait --timeout=10m

Quotez le username avec des simples quotes : le $ fait partie du nom du robot Harbor, pas une variable shell.

(Optionnel, recommandé) Vérifier les signatures avant l’install :

curl -fsSL https://aegis-vetis.io/cosign.pub -o cosign.pub
for IMAGE in api worker agent frontend operator; do
  cosign verify --key cosign.pub \
    "registry.aegis-vetis.io/aegis-vetis/${IMAGE}:${VERSION}"
done

Ouvrir l’UI :

kubectl port-forward -n aegis-vetis svc/aegis-frontend 8080:80

Naviguer vers http://localhost:8080 et se connecter avec les identifiants fournis ci-dessus.

Le Control Plane embarque par défaut une base PostgreSQL. Pour la production, externalisez-la — voir Installation §6.

Étape 2 — Enrôler le cluster

Dans l’UI, Clusters → New cluster génère un token bootstrap à usage unique. Copier la commande affichée et l’exécuter sur le cluster cible :

helm install aegis-cluster aegis-vetis/aegis-vetis-cluster \
  --namespace aegis-system --create-namespace \
  --set controlPlaneURL=http://aegis-api.aegis-vetis.svc:8080 \
  --set bootstrapToken=eyJh...

Le cluster apparaît Active dans l’UI sous une minute. C’est la première promesse — Voir.

Étape 3 — Bloquer un pod non conforme

Activer l’enforcement sur les policies baseline depuis l’UI (Policies → Apply baseline → Enforce), puis tenter un déploiement volontairement vulnérable :

kubectl apply -f - <<'EOF'
apiVersion: v1
kind: Pod
metadata:
  name: privileged-demo
  namespace: default
spec:
  containers:
    - name: app
      image: nginx:latest
      securityContext: { privileged: true }
EOF
Error from server: admission webhook "validate.kyverno.svc" denied the
request: privileged containers are not allowed (policy: disallow-privileged).

L’UI affiche immédiatement la violation sous Violations et le score de conformité est mis à jour. C’est la deuxième promesse — Contrôler.

Étape 4 — Télécharger un rapport signé

Dans l’UI : Reports → Generate report → CIS Kubernetes Benchmark.

Le rapport est rendu en moins d’une minute, signé via Cosign et téléchargeable au format PDF. La page de garde porte un hash SHA-256 et la signature détachée. C’est la troisième promesse — Prouver.

Pour vérifier la signature hors-ligne :

curl -sO http://localhost:8080/api/v1/reports/cosign.pub
cosign verify-blob \
  --key cosign.pub \
  --signature aegis-report-<id>.pdf.sig \
  aegis-report-<id>.pdf

Et après ?

Pour désinstaller la démo :

helm uninstall aegis -n aegis-vetis
helm uninstall aegis-cluster -n aegis-system
kind delete cluster --name aegis-quickstart