Aller au contenu principal

Installer en airgap avec KOTS sur un cluster existant

Introduction

Avis de dépréciation

Cette méthode d'installation sera dépréciée et non supportée après la version de juin 2026 (version 2026.6.0). Veuillez utiliser l'installation Helm sur un cluster existant à la place.

⚠️ Utilisez l'installation Helm sur un cluster existant sauf indication contraire.

Ce guide couvre l'installation de GitGuardian dans des environnements air-gapped en utilisant KOTS (Kubernetes Off-The-Shelf) sur un cluster Kubernetes existant. Dans les environnements air-gapped, il n'y a pas de connectivité internet directe, donc cette méthode d'installation nécessite de télécharger les bundles GitGuardian depuis internet sur une machine séparée, puis de les transférer dans votre environnement isolé.

Prérequis

Infrastructure requise

  1. Cluster Kubernetes : Un cluster Kubernetes en cours d'exécution dans votre environnement isolé. Consultez les exigences système pour plus de détails. Pour les clusters OpenShift, consultez les directives d'installation OpenShift.

  2. Base de données PostgreSQL : Une instance PostgreSQL externe avec les extensions requises installées. Consultez la configuration de la base de données pour les détails de configuration.

  3. Instance Redis : Une instance Redis dédiée. Consultez les exigences système pour les détails de configuration.

  4. Registre d'images privé : Un registre de conteneurs privé accessible depuis votre cluster Kubernetes pour héberger les images GitGuardian.

Exigences supplémentaires

  1. Fichier de licence (pour l'installation KOTS) : Téléchargez votre licence GitGuardian depuis le portail. Consultez la gestion des licences pour les instructions.

  2. Accès réseau : Assurez-vous que votre environnement isolé répond aux exigences réseau.

  3. Nom de domaine : Un nom de domaine pleinement qualifié (FQDN) pour accéder à l'application. Consultez les exigences système.

Exigences

Avant de démarrer l'installation, assurez-vous de consulter les exigences système et réseau, et de télécharger votre licence.

Installation

Télécharger et installer la KOTS Admin Console

Tout d'abord, installez le plugin kubectl KOTS sur votre machine :

curl https://kots.io/install | bash

Ensuite, vous devez télécharger le dernier bundle pour la KOTS Admin Console. Il y a deux endroits pour le télécharger. Le premier et celui recommandé est le portail de téléchargement où vous pouvez également télécharger votre licence et le bundle de l'application. Le second est les release assets sur GitHub. Dans les deux cas, assurez-vous de correspondre à la version du plugin KOTS installée localement. Vous pouvez la vérifier en exécutant :

kubectl kots version

RBAC de l'application Kubernetes

La console d'administration KOTS aura un contrôle total sur toutes les ressources de tous les namespaces du cluster. Plus d'informations dans la documentation Replicated.

Si vous n'êtes pas cluster-admin dans votre cluster Kubernetes ou que vous ne souhaitez pas accorder à la console d'administration KOTS de telles permissions étendues, vous devrez appliquer la configuration ci-dessous dans votre namespace cible <gitguardian_namespace> :

Rôles RBAC pour l'installation KOTS
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kotsadm
namespace: <gitguardian_namespace>
labels:
kots.io/backup: velero
kots.io/kotsadm: 'true'

---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: kotsadm-role
namespace: <gitguardian_namespace>
labels:
kots.io/backup: velero
kots.io/kotsadm: 'true'
rules:
- apiGroups: ['']
resources:
[
'configmaps',
'persistentvolumeclaims',
'pods',
'secrets',
'services',
'limitranges',
'serviceaccounts',
]
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['apps']
resources:
[
'daemonsets',
'deployments',
'deployments/scale',
'replicasets',
'statefulsets',
]
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['batch']
resources: ['jobs', 'cronjobs']
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['networking.k8s.io', 'extensions']
resources: ['ingresses', 'networkpolicies']
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['policy']
resources: ['poddisruptionbudgets']
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['']
resources: ['namespaces', 'endpoints']
verbs: ['get']
- apiGroups: ['authorization.k8s.io']
resources: ['selfsubjectaccessreviews', 'selfsubjectrulesreviews']
verbs: ['create']
- apiGroups: ['rbac.authorization.k8s.io']
resources: ['roles', 'rolebindings']
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['']
resources: ['pods/log', 'pods/exec']
verbs: ['get', 'list', 'watch', 'create']
- apiGroups: ['batch']
resources: ['jobs/status']
verbs: ['get', 'list', 'watch']
- apiGroups: ['monitoring.coreos.com']
resources: ['servicemonitors']
verbs: ['get', 'list', 'watch', 'create', 'update', 'patch', 'delete']
- apiGroups: ['']
resources: ['events']
verbs: ['list']

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kotsadm-rolebinding
namespace: <gitguardian_namespace>
labels:
kots.io/backup: velero
kots.io/kotsadm: 'true'
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kotsadm-role
subjects:
- kind: ServiceAccount
name: kotsadm

Téléverser les images de l'Admin Console vers le registre privé

Maintenant, vous devez téléverser ces images dans votre registre en utilisant un utilisateur ayant un accès en écriture à votre registre interne :

kubectl kots admin-console push-images ./kotsadm.tar.gz \
${private.registry.host}/gitguardian \
--registry-username ${rw-username} \
--registry-password ${rw-password}

Le nom d'utilisateur et le mot de passe pour le registre ne sont stockés nulle part.

Installer la KOTS Admin Console

Enfin, vous pouvez exécuter la commande d'installation pour la KOTS Admin Console.

Si vous êtes cluster-admin :

kubectl kots install gitguardian \
--kotsadm-namespace gitguardian \
--kotsadm-registry ${private.registry.host} \
--registry-username ${ro-username} \
--registry-password ${ro-password}

Si vous n'êtes pas cluster-admin (et que vous avez appliqué la configuration RBAC ci-dessus) :

kubectl kots install --ensure-rbac=false gitguardian \
--kotsadm-namespace gitguardian \
--kotsadm-registry ${private.registry.host} \
--registry-username ${ro-username} \
--registry-password ${ro-password}

Un secret Kubernetes sera utilisé pour stocker ces identifiants.

Vous serez invité à choisir un mot de passe pour accéder à la KOTS Admin Console si aucun n'a été fourni lors de l'installation.

Un port-forward automatique est lancé, vous pouvez maintenant accéder à la KOTS Admin Console sur http://localhost:8800.

astuce

KOTS Admin Console

Par défaut, elle est accessible sur http://localhost:8800 en utilisant cette commande kubectl kots admin-console --namespace=<namespace>, qui est un wrapper autour de kubectl port-forward. Vous pouvez configurer un ingress si vous souhaitez un endpoint public.

Télécharger le bundle de l'application

Tout d'abord, vous devrez télécharger la licence et le bundle de l'application depuis le portail de téléchargement. Le nom de fichier du bundle de l'application doit se terminer par .airgap.

Download portal airgap embedded

Transférez à la fois le fichier de licence et le bundle de l'application vers votre environnement airgap où vous pouvez accéder à la KOTS Admin Console.

Configuration de l'application

Une fois la KOTS Admin Console en cours d'exécution et que vous avez téléversé le bundle de l'admin console, vous pouvez procéder à la configuration de l'application :

  1. Saisissez le mot de passe fourni à la fin de l'installation du cluster.

Admin console password

  1. Téléversez la licence téléchargée sur le portail (voir les instructions pour télécharger le fichier de licence).

License upload

  1. Configurez l'application. Vous devez remplir tous les champs obligatoires :

    • Application Hostname : Saisissez le nom de domaine pleinement qualifié (FQDN) pour l'application GitGuardian.
    • Admin User Fields : Ces champs sont utilisés pour créer le premier utilisateur GitGuardian. Vous devrez changer le mot de passe lors de la première connexion.
    • Databases : Vous devez sélectionner un PostgreSQL et un Redis externes, voir Configurer votre base de données. Lorsque vous utilisez Redis Sentinel pour la haute disponibilité, assurez-vous que le mot de passe du master Redis correspond à celui du sentinel Redis et que vous utilisez le bon port Sentinel (par défaut : 26379).

Admin console application configuration

Les options de configuration supplémentaires incluent :

  • Scaling : Ajustez le nombre de réplicas pour chaque composant de l'application. Pour plus de détails, visitez la page Scaling.
  • Prometheus : Activez un exporter pour Prometheus.
  • Ingress TLS Certificate : Ceci concerne l'application GitGuardian. Vous pouvez soit utiliser des certificats auto-signés générés automatiquement, soit téléverser les vôtres. Pour les certificats auto-signés ou de CA privée, désactivez la vérification SSL pour le webhook GitHub. Apprenez-en plus sur la page Configurer les certificats TLS.
  • Load Balancer : Le type de Service peut être modifié de ClusterIP à LoadBalancer si nécessaire.
  • Custom Certificate Authority : Fournissez une CA personnalisée si nécessaire.
  • HTTP(s) Proxy : Consultez la section proxy si nécessaire.
  1. Vérifiez si les preflight checks passent.
Exigences

Les preflight checks sont essentiels pour une installation réussie. Les règles suivantes s'appliquent :

  • Échecs des preflight checks : Si les preflight checks échouent, l'installation ne doit pas continuer tant que l'environnement cible ne répond pas à toutes les exigences. Veuillez contacter notre équipe support si nécessaire.
  • ⚠️ Avertissements des preflight checks : Si les preflight checks renvoient des avertissements, l'installation peut se poursuivre, mais il est recommandé de traiter ces avertissements pour vous conformer à nos recommandations.

Admin console preflights

  1. Lancement

La première installation de l'application nécessite quelques minutes pour créer tous les objets de la base de données. Une fois le processus terminé, vous pourrez vous connecter au dashboard en utilisant l'utilisateur administrateur que vous avez défini.

Enregistrer la clé de chiffrement des données

attention

GitGuardian chiffre toutes les informations sensibles dans la base de données en utilisant une clé de chiffrement (alias Django Secret Key). En cas de reprise après sinistre, cette clé sera nécessaire pour restaurer vos données.

Vous devez l'enregistrer et la conserver dans un endroit sécurisé. Utilisez la commande suivante pour afficher la clé :

kubectl get secrets gim-secrets --namespace=<namespace> -o jsonpath='{.data.DJANGO_SECRET_KEY}' | base64 -d

Si nécessaire, spécifiez le namespace Kubernetes avec --namespace (le namespace par défaut est utilisé si non spécifié).

Dépannage

Si vous rencontrez des problèmes durant l'installation, vous pouvez générer un support bundle pour permettre à l'équipe GitGuardian de diagnostiquer et résoudre les problèmes plus efficacement. Consultez la documentation du support bundle pour des instructions détaillées.

Prochaines étapes

Après une installation réussie :

  • Accédez à votre instance GitGuardian via le hostname configuré
  • Connectez-vous avec les identifiants administrateur que vous avez définis (changez le mot de passe temporaire à la première connexion)
  • Configurez les paramètres d'e-mail pour les notifications
  • Mettez en place l'intégration SSO et SCIM (optionnel)
  • Intégrez vos premiers dépôts pour démarrer la détection des secrets