概述
请思考以下场景:
你们已经有了一套发布平台,用于生产环境或者开发,测试,预发布和生产都已经在使用了,然后你也想推广容器平台,但是容器平台的界面和现有的发布平台是割裂的,而且现有的数据也没法用到容器平台,要怎么做才能实现两个平台的整合呢?
解决思路:
由于没有大规模使用过容器来跑业务应用,你希望把容器平台作为测试环境,那么你可以这样做,把生成Dockerfile和Template的界面移到发布平台,然后发布平台调用openshift API来实现整合。
本文就来讲讲如何调用openshift API 。
获取access token
详细请参考上一篇文章:Openshift API Token生成方法
新建项目
请求:
curl -k -v -XPOST \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
https://example.test.com:8443/apis/project.openshift.io/v1/projectrequests \
-d "{\"kind\":\"ProjectRequest\",\"apiVersion\":\"project.openshift.io/v1\",\"metadata\":{\"name\":\"project_name\",\"creationTimestamp\":null}}"
返回:
code: 201 #创建成功
code: 200 #ok
code: 202 #Accepted
code: 401 # unauthorized
删除项目
请求:
curl -k -v -XDELETE \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
https://example.test.com:8443/apis/project.openshift.io/v1/projects/project_name
返回:
code: 200 # 删除成功
body:
{
"kind":"Status",
"apiVersion":"v1",
"metadata":{},
"status":"Success"
}
code: 401 # unauthorized
code: 404 # Not Found
获取所有项目列表和每个项目中的发布实例名称
请求:
curl -k -v -XGET \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
https://example.test.com:8443/apis/apps.openshift.i