Rook will set up some environment variables to tell us what pod, pod
namespace, and physical host we are running on. If we see them, set
'hostname' according to the hardware host, and include the pod info
in our metadata.
This allows the usual host-based logic on Ceph to work correctly, like
placing OSDs automatically in the CRUSH map.
Signed-off-by: Sage Weil <sage@redhat.com>
(*m)["hostname"] = u.nodename;
(*m)["arch"] = u.machine;
}
+
+ // but wait, am i in a container?
+ if (const char *pod_name = getenv("POD_NAME")) {
+ (*m)["pod_name"] = pod_name;
+ if (const char *node_name = getenv("NODE_NAME")) {
+ (*m)["container_hostname"] = u.nodename;
+ (*m)["hostname"] = node_name;
+ }
+ }
+ if (const char *ns = getenv("POD_NAMESPACE")) {
+ (*m)["pod_namespace"] = ns;
+ }
+
#ifdef __APPLE__
// memory
{