我目前正在使用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调用,它应该可以完成