mirror of
https://github.com/kubescape/kubescape.git
synced 2026-03-03 18:20:19 +00:00
Also: * declared scanner resources as an enum type * replaced stdlib json, added uit tests for skipped resources * unexported worker pool * more unexported methods (i.e. everything that is not part of the interface) * refact(core): clarified mock injection logic and added a few unit tests at the caller's (CLI init utils) Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package hostsensorutils
|
|
|
|
import (
|
|
"github.com/kubescape/k8s-interface/k8sinterface"
|
|
"github.com/kubescape/opa-utils/reporthandling/apis"
|
|
)
|
|
|
|
// scannerResource is the enumerated type listing all resources from the host-scanner.
|
|
type scannerResource string
|
|
|
|
const (
|
|
// host-scanner resources
|
|
|
|
KubeletConfiguration scannerResource = "KubeletConfiguration"
|
|
OsReleaseFile scannerResource = "OsReleaseFile"
|
|
KernelVersion scannerResource = "KernelVersion"
|
|
LinuxSecurityHardeningStatus scannerResource = "LinuxSecurityHardeningStatus"
|
|
OpenPortsList scannerResource = "OpenPortsList"
|
|
LinuxKernelVariables scannerResource = "LinuxKernelVariables"
|
|
KubeletCommandLine scannerResource = "KubeletCommandLine"
|
|
KubeletInfo scannerResource = "KubeletInfo"
|
|
KubeProxyInfo scannerResource = "KubeProxyInfo"
|
|
ControlPlaneInfo scannerResource = "ControlPlaneInfo"
|
|
CloudProviderInfo scannerResource = "CloudProviderInfo"
|
|
CNIInfo scannerResource = "CNIInfo"
|
|
)
|
|
|
|
func mapHostSensorResourceToApiGroup(r scannerResource) string {
|
|
switch r {
|
|
case
|
|
KubeletConfiguration,
|
|
OsReleaseFile,
|
|
KubeletCommandLine,
|
|
KernelVersion,
|
|
LinuxSecurityHardeningStatus,
|
|
OpenPortsList,
|
|
LinuxKernelVariables,
|
|
KubeletInfo,
|
|
KubeProxyInfo,
|
|
ControlPlaneInfo,
|
|
CloudProviderInfo,
|
|
CNIInfo:
|
|
return "hostdata.kubescape.cloud/v1beta0"
|
|
default:
|
|
return ""
|
|
}
|
|
}
|
|
|
|
func (r scannerResource) String() string {
|
|
return string(r)
|
|
}
|
|
|
|
func addInfoToMap(resource scannerResource, infoMap map[string]apis.StatusInfo, err error) {
|
|
group, version := k8sinterface.SplitApiVersion(mapHostSensorResourceToApiGroup(resource))
|
|
r := k8sinterface.JoinResourceTriplets(group, version, resource.String())
|
|
infoMap[r] = apis.StatusInfo{
|
|
InnerStatus: apis.StatusSkipped,
|
|
InnerInfo: err.Error(),
|
|
}
|
|
}
|