Aller au contenu principal

Proxy HTTP

GitGuardian vous permet de configurer un proxy HTTP pour le trafic sortant de l'application.

Cela inclut le trafic vers les services comme Replicated, Docker, les intégrations de messagerie et autres connexions externes. Pour plus de détails, consultez notre page Prérequis réseau.

attention
  • Vous devez ajouter 127.0.0.1,10.0.0.0/8 à la liste des exceptions de proxy NO_PROXY pour permettre le trafic local et interne au cluster de passer le proxy (remplacez 10.0.0.0/8 par votre sous-réseau interne).
  • Vérifiez que les FQDN du proxy sont résolvables et accessibles depuis votre cluster Kubernetes.
  • La spécification du mot de passe dans les URL de proxy est prise en charge.
  • GitGuardian peut être déployé avec des proxys HTTP et HTTPS. Pour le proxy HTTPS, il peut être nécessaire d'ajouter une autorité de certification (CA) pour que le certificat SSL du proxy soit considéré de confiance. Ce processus garantit une communication sécurisée et fiable entre l'application et le proxy. Pour plus d'informations, consultez la section CA personnalisée.

Installation via Helm

Pour configurer un proxy pour le trafic HTTP(s) sortant, mettez à jour votre fichier values Helm en conséquence. Si vous utilisez une autorité de certification (CA) personnalisée, assurez-vous qu'elle est configurée à la fois sous replicated.privateCASecret et dans la configuration de l'application sous tls.customCa. Pour plus de détails, consultez la documentation Custom CA.

info

À partir de la version 2025.5.0, les URL de proxy sont toujours stockées comme Secret.

Avec un secret existant

info

Le secret doit être présent avant l'installation de GitGuardian.

L'exemple suivant définira les clés http_proxy et https_proxy du Secret Kubernetes gim-proxy.

proxy:
noProxyHostNames:
- 127.0.0.1
- 10.0.0.0/8
existingSecret: 'gim-proxy'
existingSecretKeys:
httpProxyUrl: 'http_proxy' # Secret should contain: http://username:password@proxy.company.com:8080
httpsProxyUrl: 'https_proxy' # Secret should contain: https://username:password@proxy.company.com:8080

replicated:
privateCASecret: # optional if you are using a custom CA
name: custom-ca-secret-name
key: 'custom-ca.pem'
extraEnv:
- name: NO_PROXY
valueFrom:
configMapKeyRef:
name: gim-config
key: 'NO_PROXY'
- name: HTTP_PROXY
valueFrom:
secretKeyRef:
name: 'gim-proxy'
key: 'http_proxy' # Example: http://username:password@proxy.company.com:8080
- name: HTTPS_PROXY
valueFrom:
secretKeyRef:
name: 'gim-proxy'
key: 'https_proxy' # Example: https://username:password@proxy.company.com:8080

Avec des values inline

info

Lors de l'utilisation de cette méthode, le chart GitGuardian gérera pour vous le Secret Kubernetes contenant les URL de proxy.

proxy:
httpProxyUrl: 'http://proxy:8080'
httpsProxyUrl: 'http://proxy:8080'
noProxyHostNames:
- 127.0.0.1
- 10.0.0.0/8

Installation via KOTS

Dans la console d'administration KOTS, vous pouvez configurer la ou les URL pour le trafic HTTP(s) sortant vers votre serveur proxy :

Services and components

Spécifique au cluster Embedded

Pour les installations cluster embedded, une configuration de proxy supplémentaire peut être requise au niveau cluster pour gérer les pulls d'images de conteneurs et les communications de niveau système.

info

La configuration proxy au niveau du cluster embedded gère le trafic de niveau système (pulls d'images de conteneurs, communications API Kubernetes), tandis que la configuration proxy au niveau application décrite ci-dessus gère le trafic de l'application GitGuardian (intégrations, notifications, etc.). Les deux peuvent être nécessaires selon votre environnement.

Pour la méthode d'installation cluster embedded, vous pouvez configurer les paramètres de proxy lors de l'installation.

Pour configurer un proxy HTTP sans authentification durant l'installation :

LICENSE_ID=your_license
curl -f https://replicated.app/embedded/gitguardian/stable -H "Authorization: $LICENSE_ID" -o gitguardian.tgz
tar -xvzf gitguardian.tgz
sudo ./gitguardian install --license license.yaml \
--http-proxy http://proxy.example.com:8080 \
--https-proxy http://proxy.example.com:8080

Lors de l'utilisation d'un proxy nécessitant une authentification, vous pouvez inclure les identifiants dans l'URL du proxy :

sudo ./gitguardian install --license license.yaml \
--http-proxy http://username:password@proxy.example.com:8080 \
--https-proxy http://username:password@proxy.example.com:8080

Cependant, certains composants Kubernetes ne prennent pas en charge les proxys authentifiés. Si vous rencontrez des problèmes avec les pulls d'images de conteneurs (comme des erreurs ImagePullBackOff), vous devrez peut-être appliquer la solution de contournement décrite ci-dessous.

Solution de contournement pour les problèmes de proxy authentifié

Le cluster embedded crée la configuration proxy dans /etc/systemd/system/k0scontroller.service.d/http-proxy.conf. Pour contourner les problèmes d'authentification :

  1. Localisez le fichier de configuration proxy :

    sudo cat /etc/systemd/system/k0scontroller.service.d/http-proxy.conf
  2. Éditez le fichier pour préfixer les variables d'environnement avec CONTAINERD_ :

    sudo vi /etc/systemd/system/k0scontroller.service.d/http-proxy.conf
  3. Modifiez le fichier pour qu'il ressemble à ceci :

    [Service]
    Environment="CONTAINERD_HTTP_PROXY=http://username:password@proxy.example.com:8080"
    Environment="CONTAINERD_HTTPS_PROXY=http://username:password@proxy.example.com:8080"
    Environment="CONTAINERD_NO_PROXY=localhost,127.0.0.1,.cluster.local,.svc,10.244.0.0/16"
  4. Redémarrez le service k0s controller :

    sudo systemctl daemon-reload
    sudo systemctl restart k0scontroller
  5. Vérifiez la configuration proxy en vérifiant que les pods peuvent puller des images et que la connectivité externe fonctionne :

    sudo ./gitguardian shell
    kubectl get pods -A
    kubectl run test-pod --image=curlimages/curl --rm -it --restart=Never -- curl -I https://www.gitguardian.com