2015-07-22 16 views
5

Tôi muốn truy cập vào OpenShift và Kubernetes API từ bên trong một nhóm để truy vấn và sửa đổi các đối tượng trong ứng dụng mà nhóm thuộc về.Làm thế nào để có được không gian tên từ bên trong một nhóm trong OpenShift?

Trong tài liệu hướng dẫn (https://docs.openshift.org/latest/dev_guide/service_accounts.html) Tôi tìm thấy mô tả này về cách truy cập các 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" 

Vấn đề là khi tôi ví dụ muốn truy cập một pod, tôi cần phải biết namespace Tôi trong:

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

cách duy nhất tôi tìm thấy cho đến nay là để nộp namespace như là một biến môi trường, nhưng tôi muốn không yêu cầu người dùng nhập thông tin đó.

Trả lời

8

Bạn có thể lấy không gian tên của nhóm được tự động điền dưới dạng biến môi trường sử dụng downward API.

0

Tôi đã tìm thấy giải pháp bằng cách lần theo những gì mà bảng điều khiển web thực hiện.

tôi được phép yêu cầu danh sách dự án mà không cần phải rigths cụm-admin vào url sau:

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

Chỉ những dự án mà tôi có quyền được liệt kê, và sau đó chúng ta có thể xác định dự án hiện tại mà tên cũng là không gian tên.

Rất thích nếu có giải pháp dễ dàng hơn, nhưng cách này hiệu quả.

+1

Sử dụng API hướng xuống để điền biến môi trường ... bạn không thể giả định bạn sẽ có quyền đọc danh sách dự án từ trong nhóm –

8

Ít nhất trong kubernetes 1.5.3 Tôi cũng có thể thấy không gian tên trong /var/run/secrets/kubernetes.io/serviceaccount/namespace.

Các vấn đề liên quan