由于工作原因,需要对openshift进行二次开发,初步研究了一下RESTful编程接口使用。
本部分内容包括golang和java两个版本,其中java版借鉴了开源项目 https://github.com/fabric8io/kubernetes-client ,目前是引用开源项目的jar包对openshift集群进行操作。
golang获取openshift token
package main
import (
"crypto/tls"
"fmt"
"net/http"
"encoding/base64"
"strings"
)
func main() {
const BEFORE_TOKEN, AFTER_TOKEN , AUTHORIZATION = "access_token=","&expires","Authorization"
const MASTER_URL = "https://master.example.com:8443"
const AUTHORIZE_PATH = "/oauth/authorize?response_type=token&client_id=openshift-challenging-client"
//base64加密账号密码
const username,password = "dev","dev"
credential := "Basic "+base64.StdEncoding.EncodeToString([]byte(username+":"+password))
//创建忽略证书的httpclient
tr := &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true},
}
client := &http.Client{
Transport: tr}
url := MASTER_URL+AUTHORIZE_PATH
request , err := http.NewRequest("GET", url, nil)
if err != nil {
// handle error
fmt.Println(err)
return
}
//Header添加账号密码信息
request.Header.Add(AUTHORIZATION, credential)
res, err := client.Do