如何内省检索到的 CRD 以设置 new_class 和 kr8s.get

问题描述 投票:0回答:1

我正在尝试对我安装在集群中的 CRD 执行 kr8s get 操作。我对 API 调用不太熟悉,并且很难弄清楚如何配置所有内容。我可以使用 get_crd 来检索 CRD,但我的 get 仍然无法正常工作。它看起来像这样:

mycrd = get_crd('mycrdnames')

MyClass = new_class(
        kind="mycrdname", 
        version="example.com",        
        namespaced=False,
        asyncio=True,
    )

myclass = MyClass({})

kc.get("mycrdnames/example.com", namespace="mynamespace", api=mycrd.api)

ValueError: Unknown API version, base must be specified.

我想知道:

  • 正确配置 new_class 和 get 调用所需的信息是否已在检索到的 CRD 中可用?如果是这样,我该如何提取它?

  • 如果没有,我在哪里可以找到所需的信息(例如应该是什么基地)?

kr8s
1个回答
0
投票

我也不太清楚,但我想你可能想要这样的东西:

kc.get("mycrdnames", "example.com/v1alpha1", namespace="mynamespace")

这将为您提供“我的命名空间”中匹配资源的列表。我在这里添加了一个版本,因为您还应该在 CRD 中定义版本字段。仅当您想创建该 CR 类型的实例时才需要使用

new_class
注册新类,但语法类似于:

import kr8s
from kr8s.objects import new_class

MyClass = new_class(
        kind="mycrdname", 
        version="example.com/v1alpha1",        
        namespaced=True,
        asyncio=False )
© www.soinside.com 2019 - 2024. All rights reserved.