Openshift:可靠的Kubernetes发行版

OpenShift容器中读取Project信息

2020-12-15  本文已影响0人  潘晓华Michael
OpenShift容器中读取Project信息

背景

在日常运维管理中,经常需要获取OpenShift集群资源的信息,甚至创建、编辑或删除资源。我们都很清楚,使用oc命令就能够非常方便地完成这些操作。但是有时,我们希望通过调用接口来实现,以便于与其它组件或者应用进行集成。那么我们该如何做呢?本篇就以读取Project信息为例,展示如何通过HTTP请求操作OpenShift的资源。

操作

  1. 首先需要创建具有读取Project信息权限的clusterrole project_view
$ cat <<EOF | oc create -f -
apiVersion: authorization.openshift.io/v1
kind: ClusterRole
metadata:
  name: project_view
rules:
- apiGroups:
  - project.openshift.io
  resources:
  - projects
  verbs:
  - get
EOF
  1. 为需要调用的应用POD添加获取Project信息的权限
$ oc adm policy add-cluster-role-to-user project_view -z default

为所有应用授予获取Project信息的权限

$ oc adm policy add-cluster-role-to-group project_view system:serviceaccounts
  1. 通过发送serviceaccount认证信息,应用Pod实例中便可通过HTTP请求获取Project信息
$ TOKEN=$(cat /run/secrets/kubernetes.io/serviceaccount/token)
$ CACERT=/run/secrets/kubernetes.io/serviceaccount/ca.crt
$ PROJECT_OBJ=$(curl -s -H "Authorization: bearer $TOKEN") --caert $CACERT https://openshift.default.svc/api/project.openshift.io/v1/projects/$NAMESPACE)
$ PROJEXT_UUID=$(echo $PROJECT_OJB | jq --raw-output .metadata.uid)
  1. 完成
上一篇下一篇

猜你喜欢

热点阅读