Repositories aus GitLab Enterprise Edition in einem privaten Netzwerk erstellen

Mit Cloud Build können Sie Trigger erstellen, um Builds aus Repositories zu erstellen gehostet auf GitLab Enterprise Edition, mit denen Sie Builds als Reaktion auf Ereignisse wie Commit-Pushes oder Zusammenführungsanfragen, die mit Ihrem GitLab Enterprise Edition-Repository verknüpft sind.

Auf dieser Seite wird erläutert, wie Sie die Triggerfunktion in einem GitLab aktivieren Enterprise Edition-Instanz, wenn Ihre Instanz in einem privaten Netzwerk gehostet wird.

Hinweise

  • Enable the Cloud Build, Secret Manager, Compute Engine, and Service Networking APIs.

    Enable the APIs

Repositories aus der GitLab Enterprise Edition in einem privaten Netzwerk erstellen

Wenn Ihre GitLab Enterprise Edition-Instanz nur innerhalb eines VPC-Netzwerk müssen Sie ein Service Directory-Dienst und Build mit privaten Pools. Die Projekt, das Ihr VPC-Netzwerk enthält, kann sich in einem anderen als das, das Ihren Service Directory-Dienst enthält. Prüfen Sie anhand der folgenden Anleitung, ob Ihre Instanz erreichbar ist, bevor Sie Trigger erstellen:

  1. Aktivieren Sie die Service Directory API.

  2. Sie müssen die Rolle IAM-Administrator des Projekts für das Google Cloud-Projekt haben, in dem Sie den Service Directory-Dienst erstellen möchten. Weitere Informationen zum IAM-Rollen, siehe Zugriff auf Cloud Build-Ressourcen konfigurieren

  3. So richten Sie einen Service Directory-Dienst ein:

    1. Namespace konfigurieren für Ihr Google Cloud-Projekt.

      Die in Ihrem Namespace angegebene Region muss mit der Region übereinstimmen, in der Cloud Build-Hostverbindung angeben.

    2. Konfigurieren Sie einen Dienst in Ihrem Namespace.

    3. Endpunkt konfigurieren für Ihren registrierten Dienst.

      Sie müssen eine interne IP-Adresse verwenden und eine HTTPS-Portnummer angeben, damit Cloud Build Ihre Service.

    Weitere Informationen zum Konfigurieren des privaten Netzwerkzugriffs finden Sie unter Privaten Netzwerkzugriff konfigurieren. Service Directory bietet auch eine Integration in Dienste. wie Load-Balancer und Google Kubernetes Engine (GKE). Weitere Informationen finden Sie unter Service Directory und Load Balancing oder Service Directory für GKE.

  4. Gewähren Sie dem Cloud Build-Dienst-Agent Zugriff auf Service Directory:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding  PROJECT_ID_CONTAINING_SERVICE_DIRECTORY \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.viewer"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die ID Ihres Cloud Build-Projekts.
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY ist die ID Ihres Google Cloud-Projekt, das Ihr Service Directory enthält.
  5. Gewähren Sie dem Cloud Build-Dienst-Agent Zugriff auf VPC-Netzwerkressourcen:

    export PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
    export CLOUD_BUILD_SERVICE_AGENT="service-$PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding PROJECT_ID_CONTAINING_NETWORK_RESOURCE \
       --member="serviceAccount:$CLOUD_BUILD_SERVICE_AGENT" \
       --role="roles/servicedirectory.pscAuthorizedService"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist Ihre Cloud Build-Projekt-ID.
    • PROJECT_ID_CONTAINING_NETWORK_RESOURCE ist die ID Ihres Google Cloud-Projekt, das Ihre Netzwerkressource enthält.
  6. Verwenden Sie private Pools, um Ihre Builds auszuführen. Wenn Sie noch keinen privaten Pool erstellt haben, lesen Sie den Hilfeartikel Neuen privaten Pool erstellen.

  7. Folgen Sie der Anleitung, um GitLab Enterprise Edition-Trigger erstellen zum Erstellen von Repositories, die auf einer GitLab Enterprise Edition-Instanz gehostet werden.

    Wenn Sie beim Verbinden Ihres GitLab Enterprise Edition-Hosts mit Cloud Build ein selbstsigniertes oder privates Zertifikat verwenden, müssen Sie den Host-URI als Subject Alternative Name (SAN) Ihres Zertifikats festlegen.

Der GitLab Enterprise Edition-Trigger ruft jetzt gemäß Ihrer Konfiguration automatisch Builds auf Ihrer GitLab Enterprise Edition-Instanz auf.

Mit Service Directory Hosts außerhalb von Google Cloud erreichen

Service Directory verwendet den IP-Adressbereich 35.199.192.0/19, um Ihren Host außerhalb von Google Cloud verbinden. Sie müssen diesen Bereich eine Zulassungsliste in Ihrer Firewall. Außerdem muss Ihr privates Netzwerk so konfiguriert sein, dass dieser Bereich über die Cloud VPN- oder Cloud Interconnect-Verbindung weitergeleitet wird.

Wenn für Ihre Verbindung ein Cloud Router verwendet wird, können Sie die Verbindung so konfigurieren, dass der Bereich mit Ihrem privaten Netzwerk kommuniziert.

Weitere Informationen finden Sie unter Zugriff auf private Netzwerke konfigurieren.

Mit Cloud Load Balancing Hosts außerhalb von Google Cloud erreichen

Wenn Sie mit Ihrer Netzwerkkonfiguration den IP-Adressbereich 35.199.192.0/19 des Serviceverzeichnisses nicht an Cloud VPN oder Cloud Interconnect weiterleiten können, können Sie mithilfe von Cloud Load Balancing einen Load Balancer erstellen, der den Traffic an Ihren Host weiterleitet.

Verwenden Sie beim Erstellen des Service Directory-Endpunkts Die IP-Adresse der Weiterleitungsregel des Load-Balancers anstelle der IP-Adresse Adresse Ihres Hosts. Sie können beim Erstellen des Endpunkts einen internen HTTPS-Load Balancer oder einen internen TCP-Load Balancer (Transmission Control Protocol) verwenden.

Beachten Sie beim Erstellen eines TCP-Load Balancers Folgendes:

  • Um Ihren Host zu erreichen, ist nur eine Netzwerk-Endpunktgruppe (NEG) mit Hybridkonnektivität erforderlich.
  • Der TCP-Load Balancer benötigt keinen unverschlüsselten privaten Schlüssel für Ihr SSL-Zertifikat.
  • Für Ihre Cloud VPN-Einrichtung muss Cloud Router mit globalem dynamischem Routing verwendet werden. Wenn Ihr Cloud VPN statisches Routing verwendet, können Sie einen Proxy, der stattdessen Cloud Service Mesh verwendet. Weitere Informationen finden Sie unter Netzwerk einrichten Edge-Dienste für Hybrid Bereitstellungen.

Weitere Informationen zum Erstellen eines HTTPS-Load Balancers finden Sie unter Internen Application Load Balancer mit Hybridkonnektivität einrichten. Weitere Informationen zum Erstellen eines TCP-Load Balancers finden Sie unter Regionalen internen Proxy-Network Load Balancer mit Hybridkonnektivität einrichten.

Datenfreigabe

Anhand der Daten, die von Cloud Build an GitLab Enterprise Edition gesendet werden, können Sie Trigger nach Namen erkennen und Build-Ergebnisse in Ihren GitLab Enterprise Edition-Repositories aufrufen.

Die folgenden Daten werden zwischen Cloud Build und der GitLab Enterprise Edition geteilt:

  • Google Cloud-Projekt-ID
  • Triggername

Nächste Schritte