我正在尝试对我安装在集群中的 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 中可用?如果是这样,我该如何提取它?
如果没有,我在哪里可以找到所需的信息(例如应该是什么基地)?
我也不太清楚,但我想你可能想要这样的东西:
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 )