OpenShift模版(Template)- DevOps偷懒专用一个OpenShift模版是为了偷懒而生的工具。是不是听起来特别像程序员能干出来的事儿?
- 模版结构
- OpenShift提供的模版
- 创建模版
- 使用模版
模板描述了一组参数化的 对象, 通常可以用YAML或者JSON的格式来写。OpenShift平台使用模版中的对象列表创建 对象,例如服务(service)、路由(route)构建配置(BuildConfig)和部署配置(DeploymentConfig)。
PS:我们以YAML格式的模版为例。
模版结构- apiVersion: template.openshift.io/v1:版本
- kind: Template:类型。
- labels:xxx:标签。用来标记模版和用模版生成的对象,主要是便于管理,比如可以通过oc delete all -l app=myfullstack来删除所有标签为app=myfullstack的对象,比如路由,服务等
- metadata:元数据,包括模版的名字(name),所在项目名称(namespace),对模版的描述(annotations:... descriptions)
- parameters:参数。可以类比作函数的输入变量
- objects:对象列表。例如服务(service)、路由(route)构建配置(BuildConfig)和部署配置(DeploymentConfig)。创建这些对象的时候通常会用到参数中值。
对象列表中的每个对象都拥有以下属性:
- apiVersion:版本号,比如v1
- kind:类型。可能的值有BuildConfig,Service等
- spec:规范
OpenShift其实已经提供了许多有用的模版。比如cakephp-mysql-example模版可以用来创建一个带MySQL数据库的php的应用。
oc get templates -n openshift
寻找有php的模版:
oc get templates -n openshift | grep php
查看某模板介绍:
oc describe template cakephp-mysql-example -n openshift
查看某模板全部内容,以YAML的格式打印在命令行中:
oc get template cakephp-mysql-example -n openshift -o yaml
或者直接存成yaml文件查看
oc get template cakephp-mysql-example -n openshift -o yaml > cakephp-mysql-example.yaml
列出模版所需参数:
oc process --parameters cakephp-mysql-example -n openshift创建模版
用YAML文件新建模版到当前的项目中:
oc create -f my-template.yaml -n my-project
其中的YAML模版文件,你可以手动写,或者从当前项目中的对象抽取出来:
oc get all -o yaml > my-template.yaml使用模版
使用YAML中定义的模版:
oc process -f my-template.yaml PARM1=VALUE1 PARM2=VALUE2 | oc create -
使用项目中已有的模版:
oc process my-template PARM1=VALUE1 PARM2=VALUE2 | oc create -
或:
oc new-app --template=my-template -p PARM1=VALUE1 -p PARM2=VALUE2



