diff --git a/src/Makefile b/src/Makefile index e4d535da..192e1af3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -63,7 +63,7 @@ install: metadatad export DISTRO PKG_NAME=stackdriver-metadata -PKG_VERSION=0.0.15 +PKG_VERSION=0.0.16 PKG_RELEASE=1 PKG_MAINTAINER=Stackdriver Engineering diff --git a/src/kubernetes.cc b/src/kubernetes.cc index 266bd452..3f57f2d1 100644 --- a/src/kubernetes.cc +++ b/src/kubernetes.cc @@ -53,7 +53,6 @@ constexpr const char kK8sContainerResourcePrefix[] = "k8s_container"; constexpr const char kK8sContainerNameResourcePrefix[] = "k8s_containerName"; constexpr const char kK8sPodResourcePrefix[] = "k8s_pod"; constexpr const char kK8sPodNameResourcePrefix[] = "k8s_podName"; -constexpr const char kK8sNodeResourcePrefix[] = "k8s_node"; constexpr const char kK8sNodeNameResourcePrefix[] = "k8s_nodeName"; constexpr const char kNodeSelectorPrefix[] = "?fieldSelector=spec.nodeName%3D"; @@ -167,6 +166,10 @@ json::value KubernetesReader::ComputePodAssociations(const json::Object* pod) ? top_level_controller->Get("kind") : "Pod"; + // TODO: What about pods that are not scheduled yet? + const json::Object* spec = pod->Get("spec"); + const std::string node_name = spec->Get("nodeName"); + return json::object({ {"version", json::string(kRawContentVersion)}, {"raw", json::object({ @@ -175,6 +178,7 @@ json::value KubernetesReader::ComputePodAssociations(const json::Object* pod) {"topLevelControllerType", json::string(top_level_kind)}, {"topLevelControllerName", json::string(top_level_name)}, })}, + {"nodeName", json::string(node_name)}, })}, }); } @@ -199,13 +203,9 @@ MetadataUpdater::ResourceMetadata KubernetesReader::GetPodMetadata( const std::string started_str = status->Get("startTime"); Timestamp started_at = rfc3339::FromString(started_str); - const json::Object* spec = pod->Get("spec"); - const std::string node_name = spec->Get("nodeName"); - const MonitoredResource k8s_pod("k8s_pod", { {"cluster_name", cluster_name}, {"namespace_name", namespace_name}, - {"node_name", node_name}, {"pod_name", pod_name}, {"location", zone}, }); @@ -267,9 +267,6 @@ MetadataUpdater::ResourceMetadata KubernetesReader::GetContainerMetadata( labels = metadata->Get("labels"); } - const json::Object* spec = pod->Get("spec"); - const std::string node_name = spec->Get("nodeName"); - const std::string container_name = container_spec->Get("name"); // TODO: find is_deleted. //const json::Object* state = container_status->Get("state"); @@ -278,7 +275,6 @@ MetadataUpdater::ResourceMetadata KubernetesReader::GetContainerMetadata( const MonitoredResource k8s_container("k8s_container", { {"cluster_name", cluster_name}, {"namespace_name", namespace_name}, - {"node_name", node_name}, {"pod_name", pod_name}, {"container_name", container_name}, {"location", zone}, @@ -381,7 +377,6 @@ KubernetesReader::GetPodAndContainerMetadata( const std::string pod_id = metadata->Get("uid"); const json::Object* spec = pod->Get("spec"); - const std::string node_name = spec->Get("nodeName"); const json::Object* status = pod->Get("status");