git - Google 容器构建器,为新分支创建新命名空间

标签 git namespaces kubernetes google-container-builder

我正在尝试开发我的自动化构建。

所以我们想要实现的是,每当开发人员将代码推送到新分支时,它都会根据该分支名称在 kubernetes 中创建一个新的命名空间。然后我将在该命名空间中进行所有部署。

创建命名空间的最佳方法是什么?

 - name: 'gcr.io/cloud-builders/kubectl'
   args:
     - 'create'
     - 'namespace'
     - '${BRANCH_NAME}

存在命名空间时会出现问题。所以,我打算改用文件,然后我可以通过
 - name: 'gcr.io/cloud-builders/kubectl'
   args:
     - 'apply'
     - '-f'
     - 'filename.yaml'

这是文件名.yaml:
apiVersion: v1
kind: Namespace
metadata:
  name: '${<BRANCH>}'

现在我的问题是,如果我采用第二种方法,如何传递这个分支名称。如果我采用第一种方法,我不知道如何检查命名空间是否存在。

请帮忙。

谢谢。

最佳答案

第二种方法

可以说,您正在使用以下 filename.yaml文件

apiVersion: v1
kind: Namespace
metadata:
  name: $BRANCH

在这里,$BRANCH是 YAML 中的 ENV 变量

现在你需要用 ENV 值替换这个变量。
$ export BRANCH="demo"; cat filename.yaml | envsubst | kubectl create -f -
namespace "demo" created

关于git - Google 容器构建器,为新分支创建新命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553984/

相关文章:

git - 在 git 中,您可以查看文件移动后应用于文件的旧提交吗?

python - 打印函数的局部变量名称和值

namespaces - 在 Racket 中,嵌套函数定义不需要 "local"吗?

angular - 在AWS中将前端连接到后端

git - 为什么 Git 使用类似 "origin foo"、 "remotes/origin/foo"和 "origin/foo"等易混淆的名称?

linux - 如何前后同步我的本地存储库和我的实时网站? git

javascript - 如何解决 Git 和 pdfmake-chinese 字体的问题?

linux - 是否有任何标准机制或约定来防止 Bash 环境变量名称冲突?

kubernetes - Jenkins-X 的 Helm 图表?

kubernetes - 无法访问 Knative 中的私有(private)注册表