Kubernetes python API获取CRD的实例



我目前正在使用Kubernetes的Python API,我必须:

  • 检索自定义资源名称FADepl的实例。

  • 编辑该实例的值。

在终端中,我会简单地用kubectl get fadepl列出所有FADepls,然后用kubectl edit fadepl <fadepl_name>编辑正确的一个。我检查了Python的K8s API,但找不到我需要的东西。这是我可以用API做的事情吗?

提前谢谢!

你说得对。使用get_namespaced_custom_object可以检索实例。此方法返回命名空间范围的自定义对象。默认情况下,它使用同步HTTP请求。

由于该方法的输出返回一个对象,您可以简单地使用replace_cluster_custom_object替换它。

您可以在这里找到实现示例。

另请参阅Python的API参考的完整列表。

您可以使用kubernetes.client.CustomObjectsApi.中的list_cluster_custom_object方法

假设我需要从calico项目中获得所有calico全局网络集实例,这些实例是CRD。

因此,首先,我们需要使用kubectl检索一些crd数据,如下所示:

# get api group, version and plural
> kubectl api-resources -o wide | grep globalnetworkset
globalnetworksets  crd.projectcalico.org/v1  false  GlobalNetworkSet
---------------    -------------------  --
`plural`             api group       v

考虑到这一点,我们实现了list_cluster_custom_object

from kubernetes.client import CustomObjectsApi
group = "crd.projectcalico.org"
v = "v1"
plural = "globalnetworksets"
global_network_sets = CustomObjectsApi.list_cluster_custom_object(group, v, plural)

我找到了get_namespaced_custom_object调用,它应该可以完成

最新更新