簡體   English   中英

如何為gitlab組中的所有項目設置一個gitlab代理,將項目單獨部署到kuberenetes集群

[英]How to setup one gitlab agent for all projects in gitlab group to deploy projects separately to the kuberenetes cluster

通過使用 helm 命令和對每個項目的單獨名稱空間,我已將 gitlab 代理分別應用於 gitlab 組內每個項目的 kuberenetes 集群。 舉個例子...

我的 gitlab 組中有 2 個項目。 1.我的組/項目1 2.我的組/項目2

我像這樣使用 helm 命令...

  1. 對於項目 1 ->> helm upgrade --install gitlab-runner gitlab/gitlab-agent --namespace gitlab-agent-project-1 --create-namespace --set image.tag=v15.1.0 --set config.token =XXXXXXXX --set config.kasAddress=wss://kas.gitlab.com

  2. 對於項目 2 ->> helm upgrade --install gitlab-runner gitlab/gitlab-agent --namespace gitlab-agent-project-2 --create-namespace --set image.tag=v15.1.0 --set config.token =XXXXXXXX --set config.kasAddress=wss://kas.gitlab.com

這兩者之間唯一的區別是命名空間

所以我想問的是,這是執行此過程的最佳和正確方法嗎……我們不能對 gitlab 組內的所有項目使用一個 gitlab 代理,並且不能單獨將其用於 CICD kubernetes 部署嗎?

因為當我為每個代理應用單獨的代理時,會有 Pod 初始化。如果我有 100 個項目,我必須為這些代理提供 100 個 Pod IP 地址。

是的,您可以為 GitLab 組內的所有項目使用一個 GitLab 代理。 目前,我正在實施這個。

樹項目演示:

樹項目展示

在 GitLab 代理項目中,您定義.gitlab/agents/{agent-name}/config.yaml文件。 config.yaml文件中,將ci_access設置為 GitLab 組內的項目:

gitops:
  # Manifest projects are watched by the agent. Whenever a project changes,
  # GitLab deploys the changes using the agent.
  manifest_projects:
  - id: medai/vinlab/vinlab-testing/test-k8s-cicd/test-gitlab-agent
    default_namespace: gitlab-agent
ci_access:
   projects:
   - id: medai/vinlab/vinlab-testing/test-k8s-cicd/sample-go-service
   - id: medai/vinlab/vinlab-testing/test-k8s-cicd/api-test

從需要訪問 GitLab 代理的項目中,您需要use-context才能訪問gitlab-agent ,然后您可以執行您想要的某些操作。 例如,來自一個項目中gitlab-ci.yml文件的這段代碼:

deploy:
  stage: deploy
  image:
    name: bitnami/kubectl:latest
    entrypoint: ['']
  script:
    - kubectl config get-contexts
    - kubectl config use-context medai/vinlab/vinlab-testing/test-k8s-cicd/test-gitlab-agent:dev-agent-1
    - kubectl apply -f functional-tester.yaml --namespace vinlab-testing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM