2017-01-27 43 views
0

我正在玩openshift REST api和服務帳戶,目標是設置一些通過REST調用來部分自動管理openshift。 目前仍在Openshift 3.1。Openshift 3.1:使用REST列出serviceaccount的項目 - 返回空列表

我到目前爲止的位置: 我設法創建了一個serviceaccount,給它訪問並將其用於REST調用。但是,我不能讓它有一個項目清單。

# account exists with name robot in namespace default 
$ oc describe serviceaccount robot 
Name:   robot 
Namespace:  default 
Labels:   <none> 
... 

# tried a couple of approaches for granting access: 
$ oc policy add-role-to-user admin system:serviceaccounts:robot -n default 
$ oc policy add-role-to-user admin robot -n default 
$ oc policy add-role-to-user admin system:serviceaccounts:default:robot -n default 


# get token en do REST call 
$ SECRET=`oc describe serviceaccount robot | grep -i tokens | awk '{print $2}'` 
$ TOKEN=`oc describe secret $SECRET | grep -i ^token | awk '{print $2}'` 
$ curl -X GET -H "Authorization: Bearer $TOKEN" https://$OPENSHIFT_HOSTNAME/oapi/v1/projects --insecure 
{ 
    "kind": "ProjectList", 
    "apiVersion": "v1", 
    "metadata": { 
    "selfLink": "/oapi/v1/projects" 
    }, 
    "items": [] 
} 

我不明白我的項目清單仍然是空的。我嘗試將serviceaccount添加到多個其他項目,但列表保持空白。

回答

2

你非常接近解決它。你用你的策略的用戶需要包含一個命名空間:

$ oc policy add-role-to-user admin system:serviceaccount:default:robot -n default 

這是其中robot已創建項目的命名空間。在您的第一個oc describe serviceaccount robot中使用命名空間default

此外,我看到你檢索cloudforms服務帳戶的祕密,但我想這只是一個錯字。

參見更多文檔看:OpenShift Origin ServiceAccounts

+0

雖然我認爲我實際上已經試過這(我曾與在此期間,一個同事誰指出,同樣的事情談過),我仍然有serviceaccounts後,一個額外秒。修復它修復它。謝謝! – HSquirrel