【发布时间】:2022-11-29 15:02:31
【问题描述】:
我目前正在寻找以编程方式管理 Kubernetes 集群 (eks) 的最佳方式。我遇到了一个 python Kubernetes 客户端,我可以在其中加载本地配置,然后创建一个命名空间。
我正在运行一个 jenkins 作业,我希望它创建一个名称空间、角色、角色绑定等。我设法创建了命名空间,但无法理解如何调用该函数来创建新角色、新角色绑定。
这是使用 k8 python 客户端创建命名空间的 sn-p:
from kubernetes import dynamic, config
from kubernetes import client as k8s_client
from kubernetes.client import api_client
import time, sys
def create_namespace(namespace_api, name):
namespace_manifest = {
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {"name": name, "resourceversion": "v1"},
}
namespace_api.create(body=namespace_manifest)
def delete_namespace(namespace_api, name):
namespace_api.delete(name=name)
def main():
# Load local config
client = dynamic.DynamicClient(
api_client.ApiClient(configuration=config.load_incluster_config())
)
namespace_api = client.resources.get(api_version="v1", kind="Namespace")
# Creating a namespace
namespace_name = sys.argv[1]
create_namespace(namespace_api, namespace_name)
time.sleep(4)
print("\n[INFO] namespace: " + namespace_name + " created")
if __name__ == '__main__':
main()
我将不胜感激任何支持
【问题讨论】:
标签: python kubernetes client programmatically k8s-serviceaccount