Skip to content

Commit a42103e

Browse files
authored
Merge pull request #1903 from DelusionalOptimist/feat/non-k8s-misc
feat: set probe service health
2 parents 1ead4f1 + d889b73 commit a42103e

File tree

1 file changed

+30
-18
lines changed

1 file changed

+30
-18
lines changed

KubeArmor/core/kubeArmor.go

+30-18
Original file line numberDiff line numberDiff line change
@@ -567,8 +567,6 @@ func KubeArmor() {
567567
// Un-orchestrated workloads
568568
if !dm.K8sEnabled && cfg.GlobalCfg.Policy {
569569

570-
dm.SetContainerNSVisibility()
571-
572570
// Check if cri socket set, if not then auto detect
573571
if cfg.GlobalCfg.CRISocket == "" {
574572
if kl.GetCRISocket("") == "" {
@@ -577,26 +575,39 @@ func KubeArmor() {
577575
} else {
578576
cfg.GlobalCfg.CRISocket = "unix://" + kl.GetCRISocket("")
579577
}
578+
} else {
579+
// CRI socket supplied by user, check for existence
580+
criSocketPath := strings.TrimPrefix(cfg.GlobalCfg.CRISocket, "unix://")
581+
_, err := os.Stat(criSocketPath)
582+
if err != nil {
583+
enableContainerPolicy = false
584+
dm.Logger.Warnf("Error while looking for CRI socket file %s", err.Error())
585+
}
580586
}
581587

582-
// monitor containers
583-
if strings.Contains(cfg.GlobalCfg.CRISocket, "docker") {
584-
// update already deployed containers
585-
dm.GetAlreadyDeployedDockerContainers()
586-
// monitor docker events
587-
go dm.MonitorDockerEvents()
588-
} else if strings.Contains(cfg.GlobalCfg.CRISocket, "containerd") {
589-
// monitor containerd events
590-
go dm.MonitorContainerdEvents()
591-
} else if strings.Contains(cfg.GlobalCfg.CRISocket, "cri-o") {
592-
// monitor crio events
593-
go dm.MonitorCrioEvents()
594-
} else {
595-
dm.Logger.Warnf("Failed to monitor containers: %s is not a supported CRI socket.", cfg.GlobalCfg.CRISocket)
596-
enableContainerPolicy = false
588+
if enableContainerPolicy {
589+
dm.SetContainerNSVisibility()
590+
591+
// monitor containers
592+
if strings.Contains(cfg.GlobalCfg.CRISocket, "docker") {
593+
// update already deployed containers
594+
dm.GetAlreadyDeployedDockerContainers()
595+
// monitor docker events
596+
go dm.MonitorDockerEvents()
597+
} else if strings.Contains(cfg.GlobalCfg.CRISocket, "containerd") {
598+
// monitor containerd events
599+
go dm.MonitorContainerdEvents()
600+
} else if strings.Contains(cfg.GlobalCfg.CRISocket, "cri-o") {
601+
// monitor crio events
602+
go dm.MonitorCrioEvents()
603+
} else {
604+
enableContainerPolicy = false
605+
dm.Logger.Warnf("Failed to monitor containers: %s is not a supported CRI socket.", cfg.GlobalCfg.CRISocket)
606+
}
607+
608+
dm.Logger.Printf("Using %s for monitoring containers", cfg.GlobalCfg.CRISocket)
597609
}
598610

599-
dm.Logger.Printf("Using %s for monitoring containers", cfg.GlobalCfg.CRISocket)
600611
}
601612

602613
if dm.K8sEnabled && cfg.GlobalCfg.Policy {
@@ -799,6 +810,7 @@ func KubeArmor() {
799810
pb.RegisterProbeServiceServer(dm.Logger.LogServer, probe)
800811

801812
dm.SetHealthStatus(pb.PolicyService_ServiceDesc.ServiceName, grpc_health_v1.HealthCheckResponse_SERVING)
813+
dm.SetHealthStatus(pb.ProbeService_ServiceDesc.ServiceName, grpc_health_v1.HealthCheckResponse_SERVING)
802814
}
803815

804816
reflection.Register(dm.Logger.LogServer) // Helps grpc clients list out what all svc/endpoints available

0 commit comments

Comments
 (0)