Google 容器构建器,为新分支创建新命名空间
Google container builder, create new namespace for new branch
我正在尝试开发我的自动化构建。
所以我们想要实现的是,每当开发人员将代码推送到一个新分支时,它都会根据该分支名称在 kubernetes 中创建一个新的命名空间。然后我将在该命名空间中进行所有部署。
创建命名空间的最佳方式是什么?
- name: 'gcr.io/cloud-builders/kubectl'
args:
- 'create'
- 'namespace'
- '${BRANCH_NAME}
命名空间存在时会出现问题。所以,我打算改用文件,然后我可以通过
应用它
- name: 'gcr.io/cloud-builders/kubectl'
args:
- 'apply'
- '-f'
- 'filename.yaml'
这里是 filename.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
我正在尝试开发我的自动化构建。
所以我们想要实现的是,每当开发人员将代码推送到一个新分支时,它都会根据该分支名称在 kubernetes 中创建一个新的命名空间。然后我将在该命名空间中进行所有部署。
创建命名空间的最佳方式是什么?
- name: 'gcr.io/cloud-builders/kubectl'
args:
- 'create'
- 'namespace'
- '${BRANCH_NAME}
命名空间存在时会出现问题。所以,我打算改用文件,然后我可以通过
应用它 - name: 'gcr.io/cloud-builders/kubectl'
args:
- 'apply'
- '-f'
- 'filename.yaml'
这里是 filename.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