2017-01-27 3 views
0

私はREST呼び出しによるオープンシフトの管理を部分的に自動化する何かをセットアップする目標を持って、オープンシフトREST APIとサービスアカウントで遊んでいます。 現在のところまだOpenshift 3.1です。Openshift 3.1:RESTを使用してサービスアカウントのプロジェクトを一覧表示 - 空のリストを返します

これまでのところ: 私は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

関連する問題