GUIDE
Déploiement air-gap
Installer et exploiter Aegis Vetis sur un site sans accès Internet : bundle, mirror, vérification offline.
- Mis à jour
- 2026-05-09
Déploiement air-gap
Ce guide concerne uniquement les sites sans accès Internet sortant.
Si votre site peut joindre registry.aegis-vetis.io, suivez plutôt
Quick start ou Installation — le
flux Harbor (helm pull oci://registry.aegis-vetis.io/...) est plus
simple et ne nécessite ni bundle ni binaire aegisctl.
Aegis Vetis est conçu pour fonctionner sur un site souverain coupé
d’Internet, soit pour l’installation seule, soit pour l’exploitation
complète. Le bundle air-gap est un tarball self-contained qui inclut
toutes les images, le chart Helm et le binaire aegisctl nécessaire
à son import. Vous le recevez par lien sécurisé à la finalisation de
votre commande (option air-gap).
Dans la suite de ce guide,
harbor.corp.localdésigne votre propre registre Harbor interne dans le site air-gap, où le bundle est importé. Pas notre Harbor publicregistry.aegis-vetis.io.
1. Modes air-gap supportés
| Mode | Description | Supporté |
|---|---|---|
| Install offline | Bundle d’images et de chart à transférer ; exploitation online ensuite | Oui |
| Runtime offline | Le Control Plane fonctionne sans Internet ; les agents joignent le Control Plane sur le réseau privé interne | Oui |
| Disconnected total | Aucun lien clusters ↔ Control Plane, export manuel | Sur la roadmap |
2. Pré-requis
- Un registre d’images interne accessible depuis le cluster cible : Harbor, Quay, Distribution, Nexus, GitLab Registry, etc.
- Un moyen de transfert physique sécurisé entre le site connecté et le site air-gap (USB chiffré, courrier interne signé).
cosigninstallé côté site air-gap pour vérifier la signature du bundle avant import.helm≥ 3.14 etkubectlcôté admin.
3. Construire le bundle (côté connecté)
Aegis Vetis fournit un CLI aegisctl qui produit un bundle OCI
self-contained.
aegisctl bundle build \
--version 0.30.0 \
--output aegis-vetis-0.30.0-airgap.tar.zst
Le bundle contient :
aegis-vetis-0.30.0-airgap.tar.zst
├── images/ # OCI layout — toutes les images requises
├── charts/ # aegis-vetis + aegis-vetis-cluster + dépendances
├── policies/ # bundle Kyverno baseline
├── frameworks/ # mappings YAML CIS / NIS2 / SecNumCloud
├── docs/ # extraits de cette documentation
├── manifest.json # liste images + sha256 + tags
└── manifest.json.sig # signature Cosign détachée
Le SHA-256 du tarball complet et la signature détachée sont publiés sur la page de release. Conservez la clé publique Cosign avec votre archivage de release pour pouvoir vérifier des bundles historiques.
4. Vérifier le bundle (côté air-gap)
Avant tout import, vérifier la signature :
aegisctl bundle verify aegis-vetis-0.30.0-airgap.tar.zst \
--pubkey aegis-cosign-release.pub
# → Verified OK · 47 images · sha256: 3f...
La commande contrôle :
- la signature Cosign du
manifest.json, - la cohérence des SHA-256 de chaque image listée dans le manifest par rapport au contenu du tarball,
- l’absence de référence externe (toutes les images doivent être satisfiables depuis le bundle).
5. Importer le bundle
aegisctl bundle import aegis-vetis-0.30.0-airgap.tar.zst \
--target-registry harbor.corp.local \
--target-project aegis-vetis
L’import :
- extrait les images vers
harbor.corp.local/aegis-vetis/*; - ré-signe les images avec une clé locale si demandé
(
--resign --cosign-key local-cosign.key) ; - publie les charts dans le repository Helm OCI cible.
Les charts deviennent installables depuis l’OCI :
helm pull oci://harbor.corp.local/aegis-vetis/aegis-vetis \
--version 0.30.0
6. Installer
values-airgap.yaml minimal :
global:
imageRegistry: harbor.corp.local
imagePullSecrets:
- name: harbor-pull
airGap: true # désactive les appels sortants (Rekor, télémétrie)
api:
ingress:
enabled: true
hostname: aegis.corp.local
Puis :
helm install aegis ./charts/aegis-vetis-0.30.0.tgz \
-n aegis-vetis --create-namespace \
-f values-airgap.yaml \
--wait --timeout=10m
L’enrôlement de cluster suit la procédure standard (Installation §7) — l’agent joint le Control Plane sur le réseau privé interne.
7. Mises à jour offline
Chaque release Aegis Vetis publie un nouveau bundle. Le workflow est identique :
# Site connecté
aegisctl bundle build --version 0.31.0 \
--output aegis-vetis-0.31.0-airgap.tar.zst
# Transfert physique sécurisé
# Site air-gap
aegisctl bundle verify aegis-vetis-0.31.0-airgap.tar.zst
aegisctl bundle import aegis-vetis-0.31.0-airgap.tar.zst \
--target-registry harbor.corp.local
helm upgrade aegis ./charts/aegis-vetis-0.31.0.tgz \
-n aegis-vetis -f values-airgap.yaml \
--reset-then-reuse-values
Les migrations PostgreSQL sont exécutées automatiquement par un Job d’upgrade ; aucune intervention manuelle n’est requise tant que la mise à jour reste sur une release majeure.
8. Limites
- Le bundle est généré manuellement pour le moment ; un pipeline de publication automatique est sur la roadmap.
- Rekor (transparency log Sigstore) n’est pas inclus offline ; la vérification Cosign reste clé-pinnée (la clé publique est livrée avec la release et archivée par le client).
- Le mode “totalement déconnecté” — cluster client sans aucun lien vers le Control Plane, avec export manuel des preuves — figure sur la roadmap mais n’est pas couvert par cette version.
9. Aller plus loin
- Architecture — modes de connectivité supportés.
- Installation — procédure online complète.
- Conformité — vérification offline des rapports PDF avec Cosign.