From b1925fa38dc7f7ef42adb264adad890c3fed8e1f Mon Sep 17 00:00:00 2001 From: kooomix Date: Mon, 28 Nov 2022 09:18:43 +0200 Subject: [PATCH] Support in new host-scanner endpoint - cloudProviderInfo --- core/cautils/workloadmappingutils.go | 1 + core/pkg/hostsensorutils/hostsensorgetfrompod.go | 16 ++++++++++++++++ core/pkg/hostsensorutils/utils.go | 2 ++ core/pkg/resourcehandler/k8sresourcesutils.go | 2 ++ 4 files changed, 21 insertions(+) diff --git a/core/cautils/workloadmappingutils.go b/core/cautils/workloadmappingutils.go index ad9da781..f20bcafb 100644 --- a/core/cautils/workloadmappingutils.go +++ b/core/cautils/workloadmappingutils.go @@ -19,6 +19,7 @@ var ( "KubeletInfo", "KubeProxyInfo", "ControlPlaneInfo", + "CloudProviderInfo", } CloudResources = []string{ "ClusterDescribe", diff --git a/core/pkg/hostsensorutils/hostsensorgetfrompod.go b/core/pkg/hostsensorutils/hostsensorgetfrompod.go index a8074261..7036c051 100644 --- a/core/pkg/hostsensorutils/hostsensorgetfrompod.go +++ b/core/pkg/hostsensorutils/hostsensorgetfrompod.go @@ -135,6 +135,12 @@ func (hsh *HostSensorHandler) GetControlPlaneInfo() ([]hostsensor.HostSensorData return hsh.sendAllPodsHTTPGETRequest("/controlPlaneInfo", ControlPlaneInfo) } +// return list of KubeProxyInfo +func (hsh *HostSensorHandler) GetCloudProviderInfo() ([]hostsensor.HostSensorDataEnvelope, error) { + // loop over pods and port-forward it to each of them + return hsh.sendAllPodsHTTPGETRequest("/cloudProviderInfo", CloudProviderInfo) +} + // return list of KubeletCommandLine func (hsh *HostSensorHandler) GetKubeletCommandLine() ([]hostsensor.HostSensorDataEnvelope, error) { // loop over pods and port-forward it to each of them @@ -285,6 +291,16 @@ func (hsh *HostSensorHandler) CollectResources() ([]hostsensor.HostSensorDataEnv res = append(res, kcData...) } + // GetCloudProviderInfo + kcData, err = hsh.GetCloudProviderInfo() + if err != nil { + addInfoToMap(CloudProviderInfo, infoMap, err) + logger.L().Warning(err.Error()) + } + if len(kcData) > 0 { + res = append(res, kcData...) + } + logger.L().Debug("Done reading information from host scanner") return res, infoMap, nil } diff --git a/core/pkg/hostsensorutils/utils.go b/core/pkg/hostsensorutils/utils.go index ab7f1eea..3e630c7f 100644 --- a/core/pkg/hostsensorutils/utils.go +++ b/core/pkg/hostsensorutils/utils.go @@ -16,6 +16,7 @@ var ( KubeletInfo = "KubeletInfo" KubeProxyInfo = "KubeProxyInfo" ControlPlaneInfo = "ControlPlaneInfo" + CloudProviderInfo = "CloudProviderInfo" MapHostSensorResourceToApiGroup = map[string]string{ KubeletConfiguration: "hostdata.kubescape.cloud/v1beta0", @@ -28,6 +29,7 @@ var ( KubeletInfo: "hostdata.kubescape.cloud/v1beta0", KubeProxyInfo: "hostdata.kubescape.cloud/v1beta0", ControlPlaneInfo: "hostdata.kubescape.cloud/v1beta0", + CloudProviderInfo: "hostdata.kubescape.cloud/v1beta0", } ) diff --git a/core/pkg/resourcehandler/k8sresourcesutils.go b/core/pkg/resourcehandler/k8sresourcesutils.go index 98954cb9..a021bd95 100644 --- a/core/pkg/resourcehandler/k8sresourcesutils.go +++ b/core/pkg/resourcehandler/k8sresourcesutils.go @@ -23,6 +23,7 @@ var ( KubeletInfo = "KubeletInfo" KubeProxyInfo = "KubeProxyInfo" ControlPlaneInfo = "ControlPlaneInfo" + CloudProviderInfo = "CloudProviderInfo" MapResourceToApiGroup = map[string]string{ KubeletConfiguration: "hostdata.kubescape.cloud/v1beta0", @@ -35,6 +36,7 @@ var ( KubeletInfo: "hostdata.kubescape.cloud/v1beta0", KubeProxyInfo: "hostdata.kubescape.cloud/v1beta0", ControlPlaneInfo: "hostdata.kubescape.cloud/v1beta0", + CloudProviderInfo: "hostdata.kubescape.cloud/v1beta0", } MapResourceToApiGroupVuln = map[string][]string{ ImageVulnerabilities: {"armo.vuln.images/v1", "image.vulnscan.com/v1"}}