gpt4 book ai didi

python - 如何使用python kubernetes-client获取给定资源对应的YAML文件

转载 作者:行者123 更新时间:2023-12-03 08:10:41 26 4
gpt4 key购买 nike

使用 kubectl,我知道如果我想查看特定资源 YAML 文件,我可以运行下面的命令

kubectl -n <some namespace> get <some resource> <some resource name> -o yaml

如何使用 python 的 kubernetes-client 获取相同的数据?到目前为止我发现的所有内容都只讨论从给定的 yaml 文件创建资源。

查看 docs ,我注意到每种资源类型通常都有一个 get_api_resources() 函数,该函数返回 V1ApiResourceList ,其中每一项都是 V1ApiResource 。我希望有一种方法可以通过使用 V1ApiResource 对象来获取资源的 yaml 输出,但看起来并不是这样。

大家有什么建议吗?这可以通过 kubernetes-client API 实现吗?

最佳答案

如果您查看对象上可用的方法,例如:

>>> import kubernetes.config
>>> client = kubernetes.config.new_client_from_config()
>>> core = kubernetes.client.CoreV1Api(client)
>>> res = core.read_namespace('kube-system')
>>> dir(res)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_api_version', '_kind', '_metadata', '_spec', '_status', 'api_version', 'attribute_map', 'discriminator', 'kind', 'local_vars_configuration', 'metadata', 'openapi_types', 'spec', 'status', 'to_dict', 'to_str']

...您会看到有一个 to_dict 方法。返回对象为一个字典,然后您可以将其序列化为 YAML 或 JSON 或无论如何:

>>> import yaml
>>> print(yaml.safe_dump(res.to_dict()))
api_version: v1
kind: Namespace
metadata:
[...]

关于python - 如何使用python kubernetes-client获取给定资源对应的YAML文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70946978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com