首页 > 解决方案 > 通过 jenkins 在 GitLab 中为每个分支/拉取请求动态创建 K8s (AKS) 命名空间

问题描述

我们有 Azure Kubernetes + Jenkins + GitLab 的环境。使用 GitLab 上的合并请求后的现有设置,在 Jenkins 中触发构建,并将 Pod 部署在 Azure K8s (AKS) 上。现在我们需要为每个分支测试所有拉取请求和 uri 的动态命名空间。稍后,一旦它被合并,我们必须删除那些动态命名空间。您能否通过设置或方法指导我实现这一目标。

标签: azure-aks

解决方案


kubectl 是你要走的路。您只需要创建一个具有唯一哈希的命名空间和/或部署(您可以从 PR 的 git commit 哈希中提取):

kubectl create namespace NAMESPACE_NAME_COMMIT_HASH

我很确定您可以通过在名称中生成具有唯一提交哈希的部署+服务+入口并在管道末尾删除它们来使用单个测试命名空间来满足您的所有要求。测试命名空间中不会发生冲突,除非您的 pod 没有在它们之间发起某种命名空间内通信,例如集群等。


推荐阅读