美文网首页Openshift:可靠的Kubernetes发行版
OpenShift容器中读取Project信息

OpenShift容器中读取Project信息

作者: 潘晓华Michael | 来源:发表于2020-12-15 19:41 被阅读0次
    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. 完成

    相关文章

      网友评论

        本文标题:OpenShift容器中读取Project信息

        本文链接:https://www.haomeiwen.com/subject/ttosvktx.html