2017-01-27 3 views
0

Je joue avec le compte API et service REST openshift dans le but de configurer quelque chose pour automatiser partiellement l'administration de openshift via des appels REST. Actuellement encore sur Openshift 3.1.Openshift 3.1: Liste des projets d'un compte service en utilisant REST - retourne la liste vide

Où j'en suis arrivé: J'ai réussi à créer un compte de service, lui donner accès et l'utiliser pour les appels REST. Je ne peux pas, cependant, lui faire avoir une liste de projets.

# 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": [] 
} 

Je ne comprends pas wy ma liste de projets est encore vide. J'ai essayé d'ajouter le serviceaccount à plusieurs autres projets, mais la liste reste vide.

Répondre

2

Vous êtes très proche de le résoudre. L'utilisateur que vous avez utilisé pour votre politique doit contenir un espace de noms:

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

Ceci est l'espace de noms du projet dans lequel le robot a été créé. Dans votre premier oc describe serviceaccount robot l'espace de noms default est utilisé.

Aussi, je vois que vous récupérez un secret du compte de service de cloudforms, mais je suppose que c'est juste une faute de frappe.

Voir aussi plus de docs à ce sujet: OpenShift Origin ServiceAccounts

+0

Alors que je pensais que je l'avais fait essayé (j'avais parlé avec un collègue dans l'intervalle, qui a souligné la même chose), j'avais encore un s après serviceaccounts supplémentaire. Correction qui l'a réparé. Merci! – HSquirrel