我目前正在寻找以编程方式管理Kubernetes集群(eks)的最佳方法。我遇到了一个python Kubernetes客户端,在那里我能够加载本地配置,然后创建一个名称空间。
我正在运行一个jenkins作业,我希望它创建一个命名空间,角色,角色绑定,作为。我已经设法创建了命名空间,但在理解如何调用函数来创建新角色,新角色绑定方面遇到了困难。
下面是使用k8 python客户端创建名称空间的代码片段:
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()
如果你能支持我
1条答案
按热度按时间ecbunoof1#
您最有可能使用RbacAuthorizationV1Api,然后可以调用
create_namespaced_role
和create_namespaced_role_binding
来生成所需的代码。代码段可能如下所示
一些更有用的例子here。