@@ -567,8 +567,6 @@ func KubeArmor() {
567
567
// Un-orchestrated workloads
568
568
if ! dm .K8sEnabled && cfg .GlobalCfg .Policy {
569
569
570
- dm .SetContainerNSVisibility ()
571
-
572
570
// Check if cri socket set, if not then auto detect
573
571
if cfg .GlobalCfg .CRISocket == "" {
574
572
if kl .GetCRISocket ("" ) == "" {
@@ -577,26 +575,39 @@ func KubeArmor() {
577
575
} else {
578
576
cfg .GlobalCfg .CRISocket = "unix://" + kl .GetCRISocket ("" )
579
577
}
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
+ }
580
586
}
581
587
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 )
597
609
}
598
610
599
- dm .Logger .Printf ("Using %s for monitoring containers" , cfg .GlobalCfg .CRISocket )
600
611
}
601
612
602
613
if dm .K8sEnabled && cfg .GlobalCfg .Policy {
@@ -799,6 +810,7 @@ func KubeArmor() {
799
810
pb .RegisterProbeServiceServer (dm .Logger .LogServer , probe )
800
811
801
812
dm .SetHealthStatus (pb .PolicyService_ServiceDesc .ServiceName , grpc_health_v1 .HealthCheckResponse_SERVING )
813
+ dm .SetHealthStatus (pb .ProbeService_ServiceDesc .ServiceName , grpc_health_v1 .HealthCheckResponse_SERVING )
802
814
}
803
815
804
816
reflection .Register (dm .Logger .LogServer ) // Helps grpc clients list out what all svc/endpoints available
0 commit comments