最近开始使用kopf。这很棒!!一般来说也是一种新的 k8s...
我有一个非常简单的场景。两个crd,父项和子项...首先创建父项。子对象是稍后创建的,但不是由父对象创建的...有没有办法让子对象使用 kopf.adopt() 方法让父实例“采用/拥有”自己。
它将极大地简化甚至消除我的级联删除代码。
或者有没有办法使用k8s客户端将ownerReference添加到现有的自定义对象元数据?
提前致谢...
经过一番黑客攻击后,我想出了一些代码:
merge_patch = {
"metadata": {
"ownerReferences": [
{
"apiVersion": "siccat.com/v1",
"blockOwnerDeletion": True,
"kind": "Parent",
"name": parent_box.metadata.name,
"uid": parent_box.metadata.uid
}
]}
}
api.patch_namespaced_custom_object(namespace=namespace, name=name,
group="siccat.com",
version="v1",
plural="children",
body=merge_patch)
本质上是在创建事件处理程序中执行修补程序...
这可以实现级联删除...
想知道是否有更好的方法来完成同样的事情?