Skip to content

Commit 17c014b

Browse files
committed
support getCRD
1 parent 1658996 commit 17c014b

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

src/main/java/io/github/kubesys/client/utils/KubeUtil.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ public static JsonNode toBinding(String podName, String podNamespace, String hos
5454
return binding;
5555
}
5656

57+
/**
58+
* json必须符合Kubernetes的CRD规范,这里不考虑异常情况
59+
* https://kubernetes.io/docs/concepts/overview/working-with-objects/
60+
*
61+
* @param crd Kubernetes的CRD
62+
* @return 其中一个APIVERSION
63+
*/
64+
public static String getCrdGroup(JsonNode crd) {
65+
return crd.get(KubernetesConstants.KUBE_SPEC)
66+
.get(KubernetesConstants.KUBE_SPEC_GROUP)
67+
.asText();
68+
}
69+
5770
/**
5871
* json必须符合Kubernetes的CRD规范,这里不考虑异常情况
5972
* https://kubernetes.io/docs/concepts/overview/working-with-objects/
@@ -116,6 +129,20 @@ public static String getFullkind(JsonNode json) {
116129
KubernetesConstants.KUBE_VALUE_SPLIT + kind;
117130
}
118131

132+
/**
133+
* json必须符合Kubernetes规范,这里不考虑异常情况
134+
* https://kubernetes.io/docs/concepts/overview/working-with-objects/
135+
*
136+
* @param json Kubernetes对应kind的apiVersion
137+
* @return fullkind
138+
*/
139+
public static String getCRDFullkind(JsonNode json) {
140+
String group = getCrdGroup(json);
141+
String kind = getCrdKind(json);
142+
return group.length() == 0 ? kind : group +
143+
KubernetesConstants.KUBE_VALUE_SPLIT + kind;
144+
}
145+
119146
/**
120147
* 不考虑apiVersion为空或者不符合Kuberneres资源定义的的情况
121148
* 否则抛出异常

0 commit comments

Comments
 (0)