用于OpenShift API的Python客户端如何执行oc登录?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (191)

我已经安装了这个pythonAPI:

https://github.com/openshift/openshift-restclient-python

我试图了解如何使用它进行基本操作,这是我通常在命令行上使用打开的Shift客户端所做的操作,例如:

oc login [my-openshift-instance]
oc project [my-project]

但我似乎无法在上面的API中找到这些基本操作。该API是为其他目的而设计的,还是我错过了这些调用?

我试过:

from openshift import client, config
config.load_kube_config()
oapi = client.OapiApi()
project_list = oapi.list_project()
for project in project_list.items:
    print (project.metadata.name)

但它不允许我指定打开的Shift实例和用户/PASS。

提问于
用户回答回答于

这主要遵循动态客户端使用的内容,但我使用kubernetes.config.new_client_from_config()(以支持多个客户端),其中配置文件名是/root/.kube/config中的open shift配置:

$ python
Python 2.7.13 (default, Jul 18 2017, 09:17:00) 
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> import kubernetes
>>> import openshift.dynamic
>>> import yaml

>>> k8s_client = kubernetes.config.new_client_from_config('config/k8s.10.150.114.10.config')
>>> dyn_client = openshift.dynamic.DynamicClient(k8s_client)
>>> v1_services = dyn_client.resources.get(api_version='extensions/v1beta1', kind='Deployment')

>>> service_data = yaml.load(open('squawker_stage.yaml'))

>>> print service_data
{'kind': 'Deployment', 'spec': {'template': {'spec': {'containers': 
[{'image': 'docker.com/lrmcfarland/squawker', 'name': 'squawker', 
'ports': [{'containerPort': 8000}]}]}, 'metadata': {'labels': {'app': 
'squawker'}}}, 'replicas': 3}, 'apiVersion': 'extensions/v1beta1', 
'metadata': {'namespace': 'squawker-staging', 'name': 'squawker'}}

此时,我需要在GUI中创建项目squawker阶段,但将其保留为空。我仍然在阅读详细的手册,如何在这里这样做,并将更新这一点:

>>> resp = v1_services.create(body=service_data, namespace='squawker-staging')

>>> print(resp.metadata)
{u'creationTimestamp': u'2018-06-28T18:23:14Z',
 u'generation': 1,
 u'labels': {u'app': u'squawker'},
 u'name': u'squawker',
 u'namespace': u'squawker-staging',
 u'resourceVersion': u'1855021',
 u'selfLink': u'/apis/extensions/v1beta1/namespaces/squawker- 
 staging/deployments/squawker',
 u'uid': u'5268fa31-7b00-11e8-9e65-005056887570'}

扫码关注云+社区

领取腾讯云代金券