Constant K8S_CLUSTER_UID

Source
pub const K8S_CLUSTER_UID: &str = "k8s.cluster.uid";
Expand description

A pseudo-ID for the cluster, set to the UID of the kube-system namespace.

§Notes

K8s doesn’t have support for obtaining a cluster ID. If this is ever added, we will recommend collecting the k8s.cluster.uid through the official APIs. In the meantime, we are able to use the uid of the kube-system namespace as a proxy for cluster ID. Read on for the rationale.

Every object created in a K8s cluster is assigned a distinct UID. The kube-system namespace is used by Kubernetes itself and will exist for the lifetime of the cluster. Using the uid of the kube-system namespace is a reasonable proxy for the K8s ClusterID as it will only change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are UUIDs as standardized by ISO/IEC 9834-8 and ITU-T X.667. Which states:

] If generated according to one of the mechanisms defined in Rec. ] ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be ] different from all other UUIDs generated before 3603 A.D., or is ] extremely likely to be different (depending on the mechanism chosen).

Therefore, UIDs between clusters should be extremely unlikely to conflict.

§Examples

  • "218fc5a9-a5f1-4b54-aa05-46717d0ab26d"