[英]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 ->> 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 ->> 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.