2015-07-22 19 views
5

Vorrei accedere a OpenShift e API Kubernetes da un pod per interrogare e modificare gli oggetti nell'applicazione a cui appartiene il pod.Come ottenere lo spazio dei nomi da dentro un pod in OpenShift?

Nella documentazione (https://docs.openshift.org/latest/dev_guide/service_accounts.html) ho trovato questa descrizione su come accedere alle API:

$ TOKEN="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" 

$ curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ 
"https://openshift.default.svc.cluster.local/oapi/v1/users/~" \ 
-H "Authorization: Bearer $TOKEN" 

Il problema è quando io per esempio voglio per accedere a un pod, ho bisogno di sapere lo spazio dei nomi che sono in:

https://openshift.default.svc.cluster.local/oapi/v1/namespaces/${namespace}/pods

l'unico modo che ho trovato finora è di presentare lo spazio dei nomi come variabile di ambiente, ma vorrei che non richiedono all'utente di immettere tali informazioni.

risposta

8

È possibile ottenere lo spazio dei nomi del pod automaticamente compilato come variabile di ambiente utilizzando downward API.

0

Ho trovato una soluzione tracciando ciò che fa la console web.

mi è permesso di chiedere l'elenco di progetti senza dover rigths cluster admin il seguente url:

https://openshift.default.svc.cluster.local/oapi/v1/projects 

solo i progetti che ho diritti di sono elencati, e quindi è possibile determinare il progetto corrente il cui nome è anche lo spazio dei nomi.

Mi piacerebbe se ci fosse una soluzione più semplice, ma questo funziona.

+1

Utilizzare l'API verso il basso per popolare la variabile di ambiente ... non si può presumere che si disponga dei diritti per leggere gli elenchi di progetti da un pod –

8

Almeno in kubernetes 1.5.3 Posso anche vedere lo spazio dei nomi in /var/run/secrets/kubernetes.io/serviceaccount/namespace.

Problemi correlati