我正在尝试开发自动化构建。
所以我们想要实现的是,只要开发人员将代码推送到新分支,它就会根据该分支名称在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>}'
现在我的问题是,如果我采用第二种方法,如何传递这个分支名称。如果我采用第一种方法,我不知道如何检查名称空间是否存在。
请帮忙。
感谢。
答案 0 :(得分:1)
第二种方法
假设您使用了以下Student.select(:id, "CONCAT(first_name,' ',last_name) as name").find(201410204)
2.4.1 :073 > Student.select(:id, "CONCAT(first_name,' ',last_name) as name").find(23000)
Student Load (0.9ms) SELECT "students"."id", CONCAT(first_name,' ',last_name) as name FROM "students" WHERE "students"."id" = $1 LIMIT $2 [["id", 23000], ["LIMIT", 1]]
=> #<Student id: 23000, name: "Joe Blow">
文件
filename.yaml
这里,apiVersion: v1
kind: Namespace
metadata:
name: $BRANCH
是你YAML中的ENV变量
现在你需要用ENV值替换这个变量。
$BRANCH