Rancher client-python使用文档

1,116 阅读3分钟

因为近期工作需要,又想偷懒,所有翻看了rancher的python-client写个工具,下面是对官文的补充和一些自己的用到的地方,

安装

pip install git+https://github.com/rancher/client-python.git@master

例子

  • 连接rancher
import rancher

auto_client = rancher.Client(url='https://localhost:8443/v3', access_key='<some valid access key>', secret_key='<some valid secret key>')
  • 用户相关
# 查询所有用户
auto_client.list_user(me='true')

# 创建用户
auto_client.create_user(username='user1', password='Password1')

# 更新用户信息
user = client.by_id_user('user-xyz123')
client.update(user, description='A user')

# 删除用户lemon-123
user = client.by_id_user('lemon-123')
client.delete(user)

#
user = client.by_id_user('user-xyz123')
user.clusterRoleTemplateBindings()

  • 集群
auto_client.list_cluster()
auto_client.by_id_cluster('c-ndjss')

  • 项目相关
# 创建项目
project = auto_client.create_project(name="test-project", clusterId="local")
project.setpodsecuritypolicytemplate(podSecurityPolicyTemplateId="my-pspt")


# 获取所有项目
auto_client.list_project()
# 获取指定项目
auto_client.by_id_project('c-ndjsa:p-dshaj')

  • 流水线相关
# 设置参数
project.pipelineExecutions(limit=10000, pipelineId='p-jkjh2:p-9hsjh')


# 获取指定流水线(p-8uhjk:p-adsaw)
prooject = client.by_id_project("c-ajhsd:p-dhsaj")
for pipeline in project.pipelines().data:
    if pipeline.id == "p-8uhjk:p-adsaw":
        print('++++++++++')
        print(pipeline)
        # print(pipeline.actions.run)
        # 部署一个应用,分支为uat
        pip_now = client.action(obj=pipeline, action_name="run", branch="uat")
        # 流水线执行id
        print(pip_now.id)
        
        
 # 获取项目所有的流水线
prooject = client.by_id_project("c-aybhk:p-8uhjk")
pipelines = project.pipelines().data

# 获取项目已触发的流水线信息
prooject = client.by_id_project("c-aybhk:p-8uhjk")
pipelines_end = project.pipelineExecutions().data

API

获取集群相关信息

将下面的url转换为对应的函数,也可以直接通过url获取数据。

"authConfigs": "…/v3/authconfigs",
"catalogs": "…/v3/catalogs",
"cisBenchmarkVersions": "…/v3/cisbenchmarkversions",
"cisConfigs": "…/v3/cisconfigs",
"cloudCredentials": "…/v3/cloudcredentials",
"clusterAlertGroups": "…/v3/clusteralertgroups",
"clusterAlertRules": "…/v3/clusteralertrules",
"clusterAlerts": "…/v3/clusteralerts",
"clusterCatalogs": "…/v3/clustercatalogs",
"clusterLoggings": "…/v3/clusterloggings",
"clusterMonitorGraphs": "…/v3/clustermonitorgraphs",
"clusterRegistrationTokens": "…/v3/clusterregistrationtokens",
"clusterRoleTemplateBindings": "…/v3/clusterroletemplatebindings",
"clusterScans": "…/v3/clusterscans",
"clusterTemplateRevisions": "…/v3/clustertemplaterevisions",
"clusterTemplates": "…/v3/clustertemplates",
"clusters": "…/v3/clusters",
"composeConfigs": "…/v3/composeconfigs",
"dynamicSchemas": "…/v3/dynamicschemas",
"etcdBackups": "…/v3/etcdbackups",
"features": "…/v3/features",
"globalRoleBindings": "…/v3/globalrolebindings",
"globalRoles": "…/v3/globalroles",
"groupMembers": "…/v3/groupmembers",
"groups": "…/v3/groups",
"kontainerDrivers": "…/v3/kontainerdrivers",
"ldapConfigs": "…/v3/ldapconfigs",
"managementSecrets": "…/v3/managementsecrets",
"monitorMetrics": "…/v3/monitormetrics",
"multiClusterAppRevisions": "…/v3/multiclusterapprevisions",
"multiClusterApps": "…/v3/multiclusterapps",
"nodeDrivers": "…/v3/nodedrivers",
"nodePools": "…/v3/nodepools",
"nodeTemplates": "…/v3/nodetemplates",
"nodes": "…/v3/nodes",
"notifiers": "…/v3/notifiers",
"podSecurityPolicyTemplateProjectBindings": "…/v3/podsecuritypolicytemplateprojectbindings",
"podSecurityPolicyTemplates": "…/v3/podsecuritypolicytemplates",
"preferences": "…/v3/preferences",
"principals": "…/v3/principals",
"projectAlertGroups": "…/v3/projectalertgroups",
"projectAlertRules": "…/v3/projectalertrules",
"projectAlerts": "…/v3/projectalerts",
"projectCatalogs": "…/v3/projectcatalogs",
"projectLoggings": "…/v3/projectloggings",
"projectMonitorGraphs": "…/v3/projectmonitorgraphs",
"projectNetworkPolicies": "…/v3/projectnetworkpolicies",
"projectRoleTemplateBindings": "…/v3/projectroletemplatebindings",
"projects": "…/v3/projects",
"rkeAddons": "…/v3/rkeaddons",
"rkeK8sServiceOptions": "…/v3/rkek8sserviceoptions",
"rkeK8sSystemImages": "…/v3/rkek8ssystemimages",
"roleTemplates": "…/v3/roletemplates",
"root": "…/v3",
"self": "…/v3",
"settings": "…/v3/settings",
"subscribe": "…/v3/subscribe",
"templateVersions": "…/v3/templateversions",
"templates": "…/v3/templates",
"tokens": "…/v3/tokens",
"users": "…/v3/users"

获取项目相关信息

将下面的url转换为对应的函数,也可以直接通过url获取数据。

"alertmanagers": "…/v3/projects/c-dsak:p-78jkk/alertmanagers",
"appRevisions": "…/v3/projects/c-dsak:p-78jkk/apprevisions",
"apps": "…/v3/projects/c-dsak:p-78jkk/apps",
"basicAuths": "…/v3/projects/c-dsak:p-78jkk/basicauths",
"certificates": "…/v3/projects/c-dsak:p-78jkk/certificates",
"configMaps": "…/v3/projects/c-dsak:p-78jkk/configmaps",
"cronJobs": "…/v3/projects/c-dsak:p-78jkk/cronjobs",
"daemonSets": "…/v3/projects/c-dsak:p-78jkk/daemonsets",
"deployments": "…/v3/projects/c-dsak:p-78jkk/deployments",
"destinationRules": "…/v3/projects/c-dsak:p-78jkk/destinationrules",
"dnsRecords": "…/v3/projects/c-dsak:p-78jkk/dnsrecords",
"dockerCredentials": "…/v3/projects/c-dsak:p-78jkk/dockercredentials",
"gateways": "…/v3/projects/c-dsak:p-78jkk/gateways",
"horizontalPodAutoscalers": "…/v3/projects/c-dsak:p-78jkk/horizontalpodautoscalers",
"ingresses": "…/v3/projects/c-dsak:p-78jkk/ingresses",
"jobs": "…/v3/projects/c-dsak:p-78jkk/jobs",
"namespacedBasicAuths": "…/v3/projects/c-dsak:p-78jkk/namespacedbasicauths",
"namespacedCertificates": "…/v3/projects/c-dsak:p-78jkk/namespacedcertificates",
"namespacedDockerCredentials": "…/v3/projects/c-dsak:p-78jkk/namespaceddockercredentials",
"namespacedSecrets": "…/v3/projects/c-dsak:p-78jkk/namespacedsecrets",
"namespacedServiceAccountTokens": "…/v3/projects/c-dsak:p-78jkk/namespacedserviceaccounttokens",
"namespacedSshAuths": "…/v3/projects/c-dsak:p-78jkk/namespacedsshauths",
"persistentVolumeClaims": "…/v3/projects/c-dsak:p-78jkk/persistentvolumeclaims",
"pipelineExecutions": "…/v3/projects/c-dsak:p-78jkk/pipelineexecutions",
"pipelineSettings": "…/v3/projects/c-dsak:p-78jkk/pipelinesettings",
"pipelines": "…/v3/projects/c-dsak:p-78jkk/pipelines",
"podSecurityPolicyTemplateProjectBindings": "…/v3/projects/c-dsak:p-78jkk/podsecuritypolicytemplateprojectbindings",
"pods": "…/v3/projects/c-dsak:p-78jkk/pods",
"projectAlertGroups": "…/v3/projects/c-dsak:p-78jkk/projectalertgroups",
"projectAlertRules": "…/v3/projects/c-dsak:p-78jkk/projectalertrules",
"projectAlerts": "…/v3/projects/c-dsak:p-78jkk/projectalerts",
"projectCatalogs": "…/v3/projects/c-dsak:p-78jkk/projectcatalogs",
"projectLoggings": "…/v3/projects/c-dsak:p-78jkk/projectloggings",
"projectMonitorGraphs": "…/v3/projects/c-dsak:p-78jkk/projectmonitorgraphs",
"projectNetworkPolicies": "…/v3/projects/c-dsak:p-78jkk/projectnetworkpolicies",
"projectRoleTemplateBindings": "…/v3/projects/c-dsak:p-78jkk/projectroletemplatebindings",
"prometheusRules": "…/v3/projects/c-dsak:p-78jkk/prometheusrules",
"prometheuses": "…/v3/projects/c-dsak:p-78jkk/prometheuses",
"remove": "…/v3/projects/c-dsak:p-78jkk",
"replicaSets": "…/v3/projects/c-dsak:p-78jkk/replicasets",
"replicationControllers": "…/v3/projects/c-dsak:p-78jkk/replicationcontrollers",
"secrets": "…/v3/projects/c-dsak:p-78jkk/secrets",
"self": "…/v3/projects/c-dsak:p-78jkk",
"serviceAccountTokens": "…/v3/projects/c-dsak:p-78jkk/serviceaccounttokens",
"serviceMonitors": "…/v3/projects/c-dsak:p-78jkk/servicemonitors",
"services": "…/v3/projects/c-dsak:p-78jkk/services",
"sourceCodeCredentials": "…/v3/projects/c-dsak:p-78jkk/sourcecodecredentials",
"sourceCodeProviderConfigs": "…/v3/projects/c-dsak:p-78jkk/sourcecodeproviderconfigs",
"sourceCodeProviders": "…/v3/projects/c-dsak:p-78jkk/sourcecodeproviders",
"sourceCodeRepositories": "…/v3/projects/c-dsak:p-78jkk/sourcecoderepositories",
"sshAuths": "…/v3/projects/c-dsak:p-78jkk/sshauths",
"statefulSets": "…/v3/projects/c-dsak:p-78jkk/statefulsets",
"subscribe": "…/v3/projects/c-dsak:p-78jkk/subscribe",
"templates": "…/v3/projects/c-dsak:p-78jkk/templates",
"update": "…/v3/projects/c-dsak:p-78jkk",
"virtualServices": "…/v3/projects/c-dsak:p-78jkk/virtualservices",
"workloads": "…/v3/projects/c-dsak:p-78jkk/workloads"

参考

rancher-client-python github

官方文档