Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package kubearmor-client for 
openSUSE:Factory checked in at 2023-10-26 17:13:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubearmor-client (Old)
 and      /work/SRC/openSUSE:Factory/.kubearmor-client.new.24901 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kubearmor-client"

Thu Oct 26 17:13:26 2023 rev:3 rq:1120307 version:0.14.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/kubearmor-client/kubearmor-client.changes        
2023-10-12 11:44:05.189301113 +0200
+++ 
/work/SRC/openSUSE:Factory/.kubearmor-client.new.24901/kubearmor-client.changes 
    2023-10-26 17:14:14.559880328 +0200
@@ -1,0 +2,12 @@
+Wed Oct 25 13:41:55 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 0.14.2:
+  * fix(deps): update github.com/kubearmor/kubearmor/deployments
+    digest to 15ad34e
+  * feat: allow karmor probe to show policies applied in systemd
+    mode
+  * remove summary, discover as they depend on an external tool
+  * add govulncheck install check
+  * add govulncheck scan to Makefile
+
+-------------------------------------------------------------------

Old:
----
  kubearmor-client-0.14.1.obscpio

New:
----
  kubearmor-client-0.14.2.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kubearmor-client.spec ++++++
--- /var/tmp/diff_new_pack.4Kq5cZ/_old  2023-10-26 17:14:15.475913971 +0200
+++ /var/tmp/diff_new_pack.4Kq5cZ/_new  2023-10-26 17:14:15.479914118 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           kubearmor-client
-Version:        0.14.1
+Version:        0.14.2
 Release:        0
 Summary:        KubeArmor cli tool aka kArmor
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.4Kq5cZ/_old  2023-10-26 17:14:15.523915734 +0200
+++ /var/tmp/diff_new_pack.4Kq5cZ/_new  2023-10-26 17:14:15.527915881 +0200
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/kubearmor/kubearmor-client</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.14.1</param>
-    <param name="match-tag">v0.14.1</param>
+    <param name="revision">v0.14.2</param>
+    <param name="match-tag">v0.14.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
@@ -17,7 +17,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="manual">
-    <param name="archive">kubearmor-client-0.14.1.obscpio</param>
+    <param name="archive">kubearmor-client-0.14.2.obscpio</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.4Kq5cZ/_old  2023-10-26 17:14:15.547916615 +0200
+++ /var/tmp/diff_new_pack.4Kq5cZ/_new  2023-10-26 17:14:15.551916762 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/kubearmor/kubearmor-client</param>
-              <param 
name="changesrevision">4507cc069e7e5f6fd5c2c74bdd42671a51dbcefd</param></service></servicedata>
+              <param 
name="changesrevision">4183b814ccc4ef433f29594fb8c2a27160bff9e3</param></service></servicedata>
 (No newline at EOF)
 

++++++ kubearmor-client-0.14.1.obscpio -> kubearmor-client-0.14.2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/Makefile 
new/kubearmor-client-0.14.2/Makefile
--- old/kubearmor-client-0.14.1/Makefile        2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/Makefile        2023-10-24 16:58:33.000000000 
+0200
@@ -67,3 +67,11 @@
        }
 endif
        cd $(CURDIR); gosec ./...
+
+.PHONY: scan
+scan: 
+       if ! command -v govulncheck > /dev/null; then \
+               go install golang.org/x/vuln/cmd/govulncheck@latest ;\
+       fi
+       cd $(CURDIR);\
+       govulncheck -test ./... ;
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/README.md 
new/kubearmor-client-0.14.2/README.md
--- old/kubearmor-client-0.14.1/README.md       2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/README.md       2023-10-24 16:58:33.000000000 
+0200
@@ -35,7 +35,6 @@
 
 Available Commands:
   completion  Generate the autocompletion script for the specified shell
-  discover    Discover applicable policies
   help        Help about any command
   install     Install KubeArmor in a Kubernetes Cluster
   logs        Observe Logs from KubeArmor
@@ -44,7 +43,6 @@
   recommend   Recommend Policies
   rotate-tls  Rotate webhook controller tls certificates
   selfupdate  selfupdate this cli tool
-  summary     Observability from discovery engine
   sysdump     Collect system dump information for troubleshooting and error 
report
   uninstall   Uninstall KubeArmor from a Kubernetes Cluster
   version     Display version information
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/cmd/discover.go 
new/kubearmor-client-0.14.2/cmd/discover.go
--- old/kubearmor-client-0.14.1/cmd/discover.go 2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/cmd/discover.go 1970-01-01 01:00:00.000000000 
+0100
@@ -1,36 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2022 Authors of KubeArmor
-
-package cmd
-
-import (
-       "github.com/kubearmor/kubearmor-client/discover"
-       "github.com/spf13/cobra"
-)
-
-var discoverOptions discover.Options
-
-// discoverCmd represents the discover command
-var discoverCmd = &cobra.Command{
-       Use:   "discover",
-       Short: "Discover applicable policies",
-       Long:  `Discover applicable policies`,
-       RunE: func(cmd *cobra.Command, args []string) error {
-               if err := discover.Policy(client, discoverOptions); err != nil {
-                       return err
-               }
-               return nil
-       },
-}
-
-func init() {
-       rootCmd.AddCommand(discoverCmd)
-       discoverCmd.Flags().StringVar(&discoverOptions.GRPC, "gRPC", "", "gRPC 
server information")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Format, "format", "f", 
"yaml", "Format: json or yaml")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Policy, "policy", "p", 
"KubearmorSecurityPolicy", "Type of policies to be discovered: 
KubearmorSecurityPolicy|CiliumNetworkPolicy|NetworkPolicy")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Namespace, "namespace", 
"n", "", "Filter by Namespace")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Clustername, 
"clustername", "c", "", "Filter by Clustername")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Labels, "labels", "l", 
"", "Filter by policy Label")
-       discoverCmd.Flags().StringVarP(&discoverOptions.Fromsource, 
"fromsource", "s", "", "Filter by policy FromSource")
-       discoverCmd.Flags().BoolVar(&discoverOptions.IncludeNetwork, "network", 
false, "Include network rules in system policies")
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/cmd/probe.go 
new/kubearmor-client-0.14.2/cmd/probe.go
--- old/kubearmor-client-0.14.1/cmd/probe.go    2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/cmd/probe.go    2023-10-24 16:58:33.000000000 
+0200
@@ -35,4 +35,5 @@
        probeCmd.Flags().BoolVar(&probeInstallOptions.Full, "full", false, `If 
KubeArmor is not running, it deploys a daemonset to have access to more
 information on KubeArmor support in the environment and deletes daemonset 
after probing`)
        probeCmd.Flags().StringVarP(&probeInstallOptions.Output, "format", "f", 
"text", " Format: json or text ")
+       probeCmd.Flags().StringVar(&probeInstallOptions.GRPC, "gRPC", "", "GRPC 
port ")
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/cmd/summary.go 
new/kubearmor-client-0.14.2/cmd/summary.go
--- old/kubearmor-client-0.14.1/cmd/summary.go  2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/cmd/summary.go  1970-01-01 01:00:00.000000000 
+0100
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2022 Authors of KubeArmor
-
-package cmd
-
-import (
-       "github.com/kubearmor/kubearmor-client/summary"
-       "github.com/spf13/cobra"
-)
-
-var summaryOptions summary.Options
-
-// summaryCmd represents the summary command
-var summaryCmd = &cobra.Command{
-       Use:   "summary",
-       Short: "Observability from discovery engine",
-       Long:  `Discovery engine keeps the telemetry information from the 
policy enforcement engines and the karmor connects to it to provide this as 
observability data`,
-       RunE: func(cmd *cobra.Command, args []string) error {
-               if err := summary.Summary(client, summaryOptions); err != nil {
-                       return err
-               }
-               return nil
-       },
-}
-
-func init() {
-       rootCmd.AddCommand(summaryCmd)
-
-       summaryCmd.Flags().StringVar(&summaryOptions.GRPC, "gRPC", "", "gRPC 
server information")
-       summaryCmd.Flags().StringVarP(&summaryOptions.Labels, "labels", "l", 
"", "Labels")
-       summaryCmd.Flags().StringVarP(&summaryOptions.Namespace, "namespace", 
"n", "", "Namespace")
-       summaryCmd.Flags().StringVarP(&summaryOptions.PodName, "pod", "p", "", 
"PodName")
-       summaryCmd.Flags().StringVarP(&summaryOptions.Type, "type", "t", 
summary.DefaultReqType, "Summary filter type : process|file|network ")
-       summaryCmd.Flags().StringVar(&summaryOptions.ClusterName, "cluster", 
"", "Cluster name")
-       summaryCmd.Flags().StringVar(&summaryOptions.ContainerName, 
"container", "", "Container name")
-       summaryCmd.Flags().StringVarP(&summaryOptions.Output, "output", "o", 
"", "Export Summary Data in JSON (karmor summary -o json)")
-       summaryCmd.Flags().BoolVar(&summaryOptions.RevDNSLookup, 
"rev-dns-lookup", false, "Reverse DNS Lookup")
-       summaryCmd.Flags().BoolVar(&summaryOptions.Aggregation, "agg", false, 
"Aggregate destination files/folder path")
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/discover/discover.go 
new/kubearmor-client-0.14.2/discover/discover.go
--- old/kubearmor-client-0.14.1/discover/discover.go    2023-09-26 
08:11:52.000000000 +0200
+++ new/kubearmor-client-0.14.2/discover/discover.go    1970-01-01 
01:00:00.000000000 +0100
@@ -1,195 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2022 Authors of KubeArmor
-
-// Package discover fetches policies from discovery engine
-package discover
-
-import (
-       "context"
-       "errors"
-       "fmt"
-       "os"
-       "strconv"
-
-       "github.com/clarketm/json"
-       "github.com/kubearmor/kubearmor-client/k8s"
-       "github.com/kubearmor/kubearmor-client/utils"
-       "github.com/rs/zerolog/log"
-       "sigs.k8s.io/yaml"
-
-       nv1 "k8s.io/api/networking/v1"
-
-       wpb "github.com/accuknox/auto-policy-discovery/src/protobuf/v1/worker"
-       "github.com/accuknox/auto-policy-discovery/src/types"
-       "google.golang.org/grpc"
-)
-
-// Options Structure
-type Options struct {
-       GRPC           string
-       Format         string
-       Policy         string
-       Namespace      string
-       Clustername    string
-       Labels         string
-       Fromsource     string
-       IncludeNetwork bool
-}
-
-var matchLabels = map[string]string{"app": "discovery-engine"}
-var port int64 = 9089
-
-// ConvertPolicy converts the knoxautopolicies to KubeArmor and Cilium policies
-func ConvertPolicy(c *k8s.Client, o Options) ([]string, error) {
-       var str []string
-       gRPC := ""
-       targetSvc := "discovery-engine"
-
-       if o.GRPC != "" {
-               gRPC = o.GRPC
-       } else {
-               if val, ok := os.LookupEnv("DISCOVERY_SERVICE"); ok {
-                       gRPC = val
-               } else {
-                       pf, err := utils.InitiatePortForward(c, port, port, 
matchLabels, targetSvc)
-                       if err != nil {
-                               return nil, err
-                       }
-                       gRPC = "localhost:" + strconv.FormatInt(pf.LocalPort, 
10)
-               }
-       }
-
-       data := &wpb.WorkerRequest{
-               Policytype:     o.Policy,
-               Namespace:      o.Namespace,
-               Clustername:    o.Clustername,
-               Labels:         o.Labels,
-               Fromsource:     o.Fromsource,
-               Includenetwork: o.IncludeNetwork,
-       }
-
-       // create a client
-       conn, err := grpc.Dial(gRPC, grpc.WithInsecure())
-       if err != nil {
-               return nil, err
-       }
-       defer conn.Close()
-
-       client := wpb.NewWorkerClient(conn)
-
-       var response *wpb.WorkerResponse
-       response, err = client.Convert(context.Background(), data)
-       if err != nil {
-               return nil, errors.New("could not connect to the server. 
Possible troubleshooting:\n- Check if discovery engine is running\n- kubectl 
get po -n accuknox-agents")
-       }
-
-       if o.Policy == "CiliumNetworkPolicy" {
-
-               if len(response.Ciliumpolicy) > 0 {
-                       for _, val := range response.Ciliumpolicy {
-                               policy := types.CiliumNetworkPolicy{}
-
-                               err = json.Unmarshal(val.Data, &policy)
-                               if err != nil {
-                                       log.Error().Msg(err.Error())
-                                       return nil, err
-                               }
-
-                               if o.Format == "json" {
-                                       arr, _ := json.MarshalIndent(policy, 
"", "    ")
-                                       pstr := fmt.Sprintf("%s\n", string(arr))
-                                       str = append(str, pstr)
-                               } else if o.Format == "yaml" {
-                                       arr, _ := json.Marshal(policy)
-                                       yamlarr, _ := yaml.JSONToYAML(arr)
-                                       pstr := fmt.Sprintf("%s", 
string(yamlarr))
-                                       str = append(str, pstr)
-                               } else {
-                                       log.Printf("Currently supported formats 
are json and yaml\n")
-                                       break
-                               }
-                       }
-                       return str, err
-               }
-       } else if o.Policy == "KubearmorSecurityPolicy" {
-
-               if len(response.Kubearmorpolicy) > 0 {
-                       for _, val := range response.Kubearmorpolicy {
-                               policy := types.KubeArmorPolicy{}
-
-                               err = json.Unmarshal(val.Data, &policy)
-                               if err != nil {
-                                       log.Error().Msg(err.Error())
-                                       return nil, err
-                               }
-
-                               if o.Format == "json" {
-                                       arr, _ := json.MarshalIndent(policy, 
"", "    ")
-                                       pstr := fmt.Sprintf("%s\n", string(arr))
-                                       str = append(str, pstr)
-                               } else if o.Format == "yaml" {
-                                       arr, _ := json.Marshal(policy)
-                                       yamlarr, _ := yaml.JSONToYAML(arr)
-                                       pstr := fmt.Sprintf("%s", 
string(yamlarr))
-                                       str = append(str, pstr)
-                               } else {
-                                       fmt.Printf("Currently supported formats 
are json and yaml\n")
-                                       break
-                               }
-                       }
-                       return str, err
-               }
-       } else if o.Policy == "NetworkPolicy" {
-
-               if len(response.K8SNetworkpolicy) > 0 {
-                       for _, val := range response.K8SNetworkpolicy {
-                               policy := nv1.NetworkPolicy{}
-
-                               err = json.Unmarshal(val.Data, &policy)
-                               if err != nil {
-                                       log.Error().Msg(err.Error())
-                                       return nil, err
-                               }
-
-                               if o.Format == "json" {
-                                       arr, _ := json.MarshalIndent(policy, 
"", "    ")
-                                       pstr := fmt.Sprintf("%s\n", string(arr))
-                                       str = append(str, pstr)
-                               } else if o.Format == "yaml" {
-                                       arr, _ := json.Marshal(policy)
-                                       yamlarr, _ := yaml.JSONToYAML(arr)
-                                       pstr := fmt.Sprintf("%s", 
string(yamlarr))
-                                       str = append(str, pstr)
-                               } else {
-                                       fmt.Printf("Currently supported formats 
are json and yaml\n")
-                                       break
-                               }
-                       }
-                       return str, err
-               }
-       }
-
-       return str, err
-}
-
-// Policy discovers Cilium or KubeArmor policies
-func Policy(c *k8s.Client, o Options) error {
-       var str []string
-       var err error
-       if o.Policy != "CiliumNetworkPolicy" && o.Policy != "NetworkPolicy" && 
o.Policy != "KubearmorSecurityPolicy" {
-               log.Error().Msgf("Policy type not recognized.\nCurrently 
supported policies are cilium, kubearmor and k8snetpol\n")
-       }
-
-       if str, err = ConvertPolicy(c, o); err != nil {
-               return err
-       }
-       for _, policy := range str {
-               if o.Format == "yaml" {
-                       fmt.Printf("%s---\n", policy)
-               }
-               if o.Format == "json" {
-                       fmt.Printf("%s", policy)
-               }
-       }
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/go.mod 
new/kubearmor-client-0.14.2/go.mod
--- old/kubearmor-client-0.14.1/go.mod  2023-09-26 08:11:52.000000000 +0200
+++ new/kubearmor-client-0.14.2/go.mod  2023-10-24 16:58:33.000000000 +0200
@@ -23,7 +23,7 @@
        github.com/docker/docker v23.0.6+incompatible
        github.com/fatih/color v1.15.0
        github.com/json-iterator/go v1.1.12
-       github.com/kubearmor/KubeArmor/protobuf 
v0.0.0-20230918061249-1d5b51c449bd
+       github.com/kubearmor/KubeArmor/protobuf 
v0.0.0-20231019102803-e4e0e68a457b
        github.com/mholt/archiver/v3 v3.5.1
        github.com/moby/term v0.0.0-20221205130635-1aeaba878587
        github.com/olekukonko/tablewriter v0.0.5
@@ -43,7 +43,6 @@
 
 require (
        github.com/accuknox/auto-policy-discovery/src 
v0.0.0-20230707054448-845969c25277
-       github.com/accuknox/auto-policy-discovery/src/protobuf 
v0.0.0-20230707054448-845969c25277
        github.com/charmbracelet/bubbles v0.15.0
        github.com/charmbracelet/bubbletea v0.23.2
        github.com/charmbracelet/lipgloss v0.7.1
@@ -52,12 +51,11 @@
        github.com/google/go-cmp v0.5.9
        github.com/google/go-github v17.0.0+incompatible
        github.com/kubearmor/KVMService/src/types 
v0.0.0-20220714130113-b0eba8c9ff34
-       github.com/kubearmor/KubeArmor/KubeArmor 
v0.0.0-20230918061249-1d5b51c449bd
-       github.com/kubearmor/KubeArmor/deployments 
v0.0.0-20230918135729-00395f443fa0
-       github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20230626060245-4f5b8ac4f298
-       github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
-       github.com/onsi/ginkgo/v2 v2.9.5
-       github.com/onsi/gomega v1.27.7
+       github.com/kubearmor/KubeArmor/KubeArmor 
v0.0.0-20231019102803-e4e0e68a457b
+       github.com/kubearmor/KubeArmor/deployments 
v0.0.0-20231024025323-15ad34e8f01e
+       github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20231019102803-e4e0e68a457b
+       github.com/onsi/ginkgo/v2 v2.9.7
+       github.com/onsi/gomega v1.27.8
        k8s.io/api v0.27.3
        k8s.io/apiextensions-apiserver v0.27.3
        k8s.io/apimachinery v0.27.3
@@ -87,6 +85,7 @@
        github.com/OneOfOne/xxhash v1.2.8 // indirect
        github.com/ProtonMail/go-crypto v0.0.0-20230426101702-58e86b294756 // 
indirect
        github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
+       github.com/accuknox/auto-policy-discovery/src/protobuf 
v0.0.0-20230707054448-845969c25277 // indirect
        github.com/agnivade/levenshtein v1.1.1 // indirect
        github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 // indirect
        github.com/alibabacloud-go/cr-20160607 v1.0.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/go.sum 
new/kubearmor-client-0.14.2/go.sum
--- old/kubearmor-client-0.14.1/go.sum  2023-09-26 08:11:52.000000000 +0200
+++ new/kubearmor-client-0.14.2/go.sum  2023-10-24 16:58:33.000000000 +0200
@@ -1,5 +1,6 @@
 4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod 
h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo=
 bitbucket.org/creachadair/shell v0.0.6/go.mod 
h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M=
+bitbucket.org/creachadair/shell v0.0.7/go.mod 
h1:oqtXSSvSYr4624lnnabXHaBsYW6RD80caLi2b3hJk0U=
 cloud.google.com/go v0.26.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod 
h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.38.0/go.mod 
h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
@@ -56,8 +57,10 @@
 cloud.google.com/go/storage v1.8.0/go.mod 
h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
 cloud.google.com/go/storage v1.10.0/go.mod 
h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
 cloud.google.com/go/storage v1.14.0/go.mod 
h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
+contrib.go.opencensus.io/exporter/ocagent 
v0.7.1-0.20200907061046-05415f1de66d/go.mod 
h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY=
 contrib.go.opencensus.io/exporter/prometheus v0.3.0/go.mod 
h1:rpCPVQKhiyH8oomWgm34ZmgIdZa8OVYO5WAIygPbBBE=
 contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod 
h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc=
+contrib.go.opencensus.io/exporter/stackdriver v0.13.12/go.mod 
h1:mmxnWlrvrFdpiOHOhxBaVi1rkc0WOqhgfknj4Yg0SeQ=
 cuelang.org/go v0.5.0 h1:D6N0UgTGJCOxFKU8RU+qYvavKNsVc/+ZobmifStVJzU=
 cuelang.org/go v0.5.0/go.mod h1:okjJBHFQFer+a41sAe2SaGm1glWS8oEb6CmJvn5Zdws=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod 
h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
@@ -90,7 +93,9 @@
 github.com/Azure/go-autorest/autorest/mocks v0.4.2 
h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw=
 github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod 
h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU=
 github.com/Azure/go-autorest/autorest/to v0.4.0 
h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
+github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod 
h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
 github.com/Azure/go-autorest/autorest/validation v0.3.1 
h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac=
+github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod 
h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E=
 github.com/Azure/go-autorest/logger v0.2.1 
h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
 github.com/Azure/go-autorest/logger v0.2.1/go.mod 
h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
 github.com/Azure/go-autorest/tracing v0.6.0 
h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
@@ -182,6 +187,7 @@
 github.com/aliyun/credentials-go v1.1.2/go.mod 
h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
 github.com/aliyun/credentials-go v1.2.7 
h1:gLtFylxLZ1TWi1pStIt1O6a53GFU1zkNwjtJir2B4ow=
 github.com/aliyun/credentials-go v1.2.7/go.mod 
h1:/KowD1cfGSLrLsH28Jr8W+xwoId0ywIy5lNzDz6O1vw=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod 
h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
 github.com/andybalholm/brotli v1.0.0/go.mod 
h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
 github.com/andybalholm/brotli v1.0.1/go.mod 
h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
 github.com/andybalholm/brotli v1.0.5 
h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
@@ -191,6 +197,7 @@
 github.com/antlr/antlr4/runtime/Go/antlr 
v0.0.0-20220418222510-f25a4f6275ed/go.mod 
h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
 github.com/antlr/antlr4/runtime/Go/antlr v1.4.10/go.mod 
h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY=
 github.com/aokoli/goutils v1.0.1/go.mod 
h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
+github.com/apache/beam/sdks/v2 v2.0.0-20211012030016-ef4364519c94/go.mod 
h1:/kOom7hCyHVzAC/Z7HbZywkZZv6ywF+wb4CvgDVdcB8=
 github.com/apache/thrift v0.12.0/go.mod 
h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/apache/thrift v0.13.0/go.mod 
h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 
h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
@@ -199,6 +206,7 @@
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod 
h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod 
h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
 github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod 
h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+github.com/armon/go-radix v1.0.0/go.mod 
h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 
h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod 
h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A=
@@ -264,16 +272,22 @@
 github.com/blang/semver v3.5.1+incompatible/go.mod 
h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
 github.com/blang/semver/v4 v4.0.0 
h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
 github.com/blang/semver/v4 v4.0.0/go.mod 
h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
+github.com/blendle/zapdriver v1.3.1/go.mod 
h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc=
 github.com/bombsimon/wsl/v3 v3.3.0/go.mod 
h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
 github.com/buger/jsonparser v1.1.1/go.mod 
h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
+github.com/butuzov/ireturn v0.1.1/go.mod 
h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc=
 github.com/bwesterb/go-ristretto v1.2.0/go.mod 
h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
 github.com/bytecodealliance/wasmtime-go v0.27.0 
h1:b/mvyw1YJSwF5zNxqLH9V24ENkZGAvp+KgIKHOFHk1c=
 github.com/bytecodealliance/wasmtime-go v0.27.0/go.mod 
h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI=
 github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 
h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA=
 github.com/casbin/casbin/v2 v2.1.2/go.mod 
h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ=
+github.com/cavaliercoder/badio v0.0.0-20160213150051-ce5280129e9e/go.mod 
h1:V284PjgVwSk4ETmz84rpu9ehpGg7swlIH8npP9k2bGw=
+github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod 
h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A=
+github.com/cavaliercoder/go-rpm v0.0.0-20200122174316-8cb9fd9c31a8/go.mod 
h1:AZIh1CCnMrcVm6afFf96PBvE2MRpWFco91z8ObJtgDY=
 github.com/cenkalti/backoff v2.2.1+incompatible 
h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
 github.com/cenkalti/backoff v2.2.1+incompatible/go.mod 
h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
 github.com/cenkalti/backoff/v3 v3.2.2 
h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M=
+github.com/cenkalti/backoff/v3 v3.2.2/go.mod 
h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
 github.com/cenkalti/backoff/v4 v4.1.1/go.mod 
h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
 github.com/cenkalti/backoff/v4 v4.1.3/go.mod 
h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod 
h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -287,6 +301,7 @@
 github.com/cespare/xxhash/v2 v2.2.0 
h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod 
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/charithe/durationcheck v0.0.6/go.mod 
h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg=
+github.com/charithe/durationcheck v0.0.9/go.mod 
h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg=
 github.com/charmbracelet/bubbles v0.15.0 
h1:c5vZ3woHV5W2b8YZI1q7v4ZNQaPetfHuoHzx+56Z6TI=
 github.com/charmbracelet/bubbles v0.15.0/go.mod 
h1:Y7gSFbBzlMpUDR/XM9MhZI374Q+1p1kluf1uLl8iK74=
 github.com/charmbracelet/bubbletea v0.23.1/go.mod 
h1:JAfGK/3/pPKHTnAS8JIE2u9f61BjWTQY57RbT25aMXU=
@@ -333,6 +348,7 @@
 github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod 
h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI=
 github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod 
h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb 
h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE=
+github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod 
h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
 github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be 
h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=
 github.com/common-nighthawk/go-figure 
v0.0.0-20210622060536-734e95fb86be/go.mod 
h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w=
 github.com/containerd/console v1.0.3 
h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
@@ -442,6 +458,8 @@
 github.com/evanphx/json-patch/v5 v5.6.0/go.mod 
h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4=
 github.com/evertras/bubble-table v0.15.2 
h1:hVj27V9tk5TD5p6mVv0RK/KJu2sHq0U+mBMux/HptkU=
 github.com/evertras/bubble-table v0.15.2/go.mod 
h1:SPOZKbIpyYWPHBNki3fyNpiPBQkvkULAtOT7NTD5fKY=
+github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod 
h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
+github.com/fatih/camelcase v1.0.0/go.mod 
h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
 github.com/fatih/color v1.7.0/go.mod 
h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
 github.com/fatih/color v1.9.0/go.mod 
h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
 github.com/fatih/color v1.10.0/go.mod 
h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
@@ -450,6 +468,7 @@
 github.com/fatih/structtag v1.2.0/go.mod 
h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
 github.com/felixge/httpsnoop v1.0.3/go.mod 
h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
 github.com/flowstack/go-jsonschema v0.1.1/go.mod 
h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0=
+github.com/flynn/go-docopt v0.0.0-20140912013429-f6dd2ebbb31e/go.mod 
h1:HyVoz1Mz5Co8TFO8EupIdlcpwShBmY98dkT2xeHkvEI=
 github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod 
h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
 github.com/fortytw2/leaktest v1.3.0 
h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
 github.com/fortytw2/leaktest v1.3.0/go.mod 
h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
@@ -464,6 +483,7 @@
 github.com/fsnotify/fsnotify v1.6.0 
h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
 github.com/fsnotify/fsnotify v1.6.0/go.mod 
h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
 github.com/fullstorydev/grpcurl v1.6.0/go.mod 
h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM=
+github.com/fvbommel/sortorder v1.0.1/go.mod 
h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
 github.com/fzipp/gocyclo v0.3.1/go.mod 
h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E=
 github.com/getsentry/raven-go v0.2.0/go.mod 
h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ=
 github.com/ghodss/yaml v0.0.0-20180820084758-c7ce16629ff4/go.mod 
h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
@@ -563,6 +583,7 @@
 github.com/go-playground/validator/v10 v10.12.0 
h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI=
 github.com/go-playground/validator/v10 v10.12.0/go.mod 
h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA=
 github.com/go-redis/redis v6.15.8+incompatible/go.mod 
h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
+github.com/go-redis/redis v6.15.9+incompatible/go.mod 
h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
 github.com/go-rod/rod v0.112.6 h1:zMirUmhsBeshMWyf285BD0UGtGq54HfThLDGSjcP3lU=
 github.com/go-sql-driver/mysql v1.4.0/go.mod 
h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
 github.com/go-sql-driver/mysql v1.5.0/go.mod 
h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
@@ -612,6 +633,7 @@
 github.com/gobwas/glob v0.2.3/go.mod 
h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
 github.com/godbus/dbus/v5 v5.0.4/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 github.com/gofrs/flock v0.8.0/go.mod 
h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
+github.com/gofrs/flock v0.8.1/go.mod 
h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
 github.com/gogo/googleapis v1.1.0/go.mod 
h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
 github.com/gogo/protobuf v1.1.1/go.mod 
h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.0/go.mod 
h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -748,6 +770,7 @@
 github.com/google/pprof v0.0.0-20211008130755-947d60d73cc0 
h1:zHs+jv3LO743/zFGcByu2KmpbliCU2AhjcGgrdTwSG4=
 github.com/google/pprof v0.0.0-20211008130755-947d60d73cc0/go.mod 
h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
 github.com/google/renameio v0.1.0/go.mod 
h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/rpmpack v0.0.0-20210518075352-dc539ef4f2ea/go.mod 
h1:+y9lKiqDhR4zkLl+V9h4q0rdyrYVsWWm6LLCQP33DIk=
 github.com/google/s2a-go v0.1.3 h1:FAgZmpLl/SXurPEZyCMPBIiiYeTbqfjlbdnCNTAkbGE=
 github.com/google/s2a-go v0.1.3/go.mod 
h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
@@ -761,6 +784,7 @@
 github.com/google/uuid v1.1.2/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
 github.com/google/uuid v1.3.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/wire v0.5.0/go.mod 
h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU=
 github.com/googleapis/enterprise-certificate-proxy v0.2.3 
h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
 github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod 
h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
@@ -769,6 +793,8 @@
 github.com/googleapis/gax-go/v2 v2.8.0 
h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc=
 github.com/googleapis/gnostic v0.4.1/go.mod 
h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
 github.com/googleapis/gnostic v0.5.1/go.mod 
h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
+github.com/googleapis/gnostic v0.5.5/go.mod 
h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA=
+github.com/googleapis/go-type-adapters v1.0.0/go.mod 
h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
 github.com/googleapis/google-cloud-go-testing 
v0.0.0-20200911160855-bcd43fbb19e8/go.mod 
h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
 github.com/gookit/color v1.3.8/go.mod 
h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod 
h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
@@ -788,8 +814,10 @@
 github.com/gostaticanalysis/analysisutil v0.0.3/go.mod 
h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
 github.com/gostaticanalysis/analysisutil v0.1.0/go.mod 
h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw=
 github.com/gostaticanalysis/analysisutil v0.4.1/go.mod 
h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0=
+github.com/gostaticanalysis/analysisutil v0.7.1/go.mod 
h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc=
 github.com/gostaticanalysis/comment v1.3.0/go.mod 
h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI=
 github.com/gostaticanalysis/comment v1.4.1/go.mod 
h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado=
+github.com/gostaticanalysis/comment v1.4.2/go.mod 
h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM=
 github.com/gostaticanalysis/forcetypeassert 
v0.0.0-20200621232751-01d4955beaa5/go.mod 
h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak=
 github.com/gostaticanalysis/nilerr v0.1.1/go.mod 
h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A=
 github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod 
h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
@@ -811,6 +839,7 @@
 github.com/hashicorp/consul/sdk v0.3.0/go.mod 
h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
 github.com/hashicorp/errwrap v1.0.0/go.mod 
h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/errwrap v1.1.0 
h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
+github.com/hashicorp/errwrap v1.1.0/go.mod 
h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/go-cleanhttp v0.5.1/go.mod 
h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
 github.com/hashicorp/go-cleanhttp v0.5.2 
h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
 github.com/hashicorp/go-cleanhttp v0.5.2/go.mod 
h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
@@ -825,10 +854,12 @@
 github.com/hashicorp/go-retryablehttp v0.7.2/go.mod 
h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
 github.com/hashicorp/go-rootcerts v1.0.0/go.mod 
h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
 github.com/hashicorp/go-rootcerts v1.0.2 
h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
+github.com/hashicorp/go-rootcerts v1.0.2/go.mod 
h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
 github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 
h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs=
 github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 
h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts=
 github.com/hashicorp/go-sockaddr v1.0.0/go.mod 
h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
 github.com/hashicorp/go-sockaddr v1.0.2 
h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc=
+github.com/hashicorp/go-sockaddr v1.0.2/go.mod 
h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A=
 github.com/hashicorp/go-syslog v1.0.0/go.mod 
h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
 github.com/hashicorp/go-uuid v1.0.0/go.mod 
h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
 github.com/hashicorp/go-uuid v1.0.1/go.mod 
h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
@@ -844,6 +875,7 @@
 github.com/hashicorp/memberlist v0.1.3/go.mod 
h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
 github.com/hashicorp/serf v0.8.2/go.mod 
h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 github.com/hashicorp/vault/api v1.9.0 
h1:ab7dI6W8DuCY7yCU8blo0UCYl2oHre/dloCmzMWg9w8=
+github.com/howeyc/gopass v0.0.0-20190910152052-7cb4b85ec19c/go.mod 
h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs=
 github.com/hpcloud/tail v1.0.0/go.mod 
h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/huandu/xstrings v1.0.0/go.mod 
h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
 github.com/huandu/xstrings v1.2.0/go.mod 
h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
@@ -866,13 +898,16 @@
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
 github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/influxdata/influxdb1-client 
v0.0.0-20191209144304-8bf82d3c094d/go.mod 
h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
+github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod 
h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
 github.com/jedisct1/go-minisign v0.0.0-20230410063418-3d885d71f62c 
h1:SJIUnIcy3NTjPM1acfLsIDQ6dZkBXkQLt/vrg7pshX0=
 github.com/jedisct1/go-minisign v0.0.0-20230410063418-3d885d71f62c/go.mod 
h1:euIjSueBwqJWwVr7rS2bowelVBVoN827tx5n87jnSJM=
 github.com/jellydator/ttlcache/v2 v2.11.1 
h1:AZGME43Eh2Vv3giG6GeqeLeFXxwxn1/qHItqWZl6U64=
 github.com/jessevdk/go-flags v1.4.0/go.mod 
h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
 github.com/jgautheron/goconst v1.4.0/go.mod 
h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
+github.com/jgautheron/goconst v1.5.1/go.mod 
h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=
 github.com/jhump/protoreflect v1.6.1/go.mod 
h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4=
 github.com/jingyugao/rowserrcheck v0.0.0-20210315055705-d907ca737bb1/go.mod 
h1:TOQpc2SLx6huPfoFGK3UOnEG+u02D3C1GeosjupAKCA=
+github.com/jingyugao/rowserrcheck v1.1.1/go.mod 
h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c=
 github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg=
 github.com/jinzhu/copier v0.3.5/go.mod 
h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg=
 github.com/jirfag/go-printf-func-name 
v0.0.0-20200119135958-7558a9eaa5af/go.mod 
h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
@@ -887,6 +922,7 @@
 github.com/jonboulle/clockwork v0.1.0/go.mod 
h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/jonboulle/clockwork v0.2.0/go.mod 
h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/jonboulle/clockwork v0.2.2/go.mod 
h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
+github.com/jonboulle/clockwork v0.3.0/go.mod 
h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
 github.com/josharian/intern v1.0.0 
h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod 
h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/jpillora/backoff v1.0.0/go.mod 
h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
@@ -908,6 +944,7 @@
 github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod 
h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
 github.com/karrick/godirwalk v1.8.0/go.mod 
h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
 github.com/karrick/godirwalk v1.10.3/go.mod 
h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
+github.com/kelseyhightower/envconfig v1.4.0/go.mod 
h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
 github.com/kisielk/errcheck v1.1.0/go.mod 
h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/errcheck v1.2.0/go.mod 
h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
 github.com/kisielk/errcheck v1.5.0/go.mod 
h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
@@ -940,14 +977,16 @@
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 github.com/kubearmor/KVMService/src/types v0.0.0-20220714130113-b0eba8c9ff34 
h1:DYGyMKCPcwbjcS6BAq43USVLlOnUKL72i/OlH32Ecfs=
 github.com/kubearmor/KVMService/src/types 
v0.0.0-20220714130113-b0eba8c9ff34/go.mod 
h1:jH95bvc6gzdHxVdyUAx/MM9q27P9EPQUl13HkBO5mr4=
-github.com/kubearmor/KubeArmor/KubeArmor v0.0.0-20230918061249-1d5b51c449bd 
h1:bylNnIgfJ2SmBbBkY/jdynozcErE8/psmxeKMX8yGrs=
-github.com/kubearmor/KubeArmor/KubeArmor 
v0.0.0-20230918061249-1d5b51c449bd/go.mod 
h1:6Ha3nBwlgPnTiacKade2jxkkBpOKPmBCizrsJcxn+fw=
-github.com/kubearmor/KubeArmor/deployments v0.0.0-20230918135729-00395f443fa0 
h1:Y+YFPdznql0YuDN7BYFUQLHRbJhKG3cSuzCJkLQFIiI=
-github.com/kubearmor/KubeArmor/deployments 
v0.0.0-20230918135729-00395f443fa0/go.mod 
h1:9c5VpVVkkto1fPLyCrnZAThQ9lO04mpYNJnfN36UqL0=
-github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20230626060245-4f5b8ac4f298 
h1:dx4xNITMAlG4B5/zjoaIUF/QsBGzkkek/SNjSXE3MYc=
-github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20230626060245-4f5b8ac4f298/go.mod 
h1:e8Jy4rDPf+O/H+ThAlCILTLkAVy3WgKW3SssLQat+RY=
-github.com/kubearmor/KubeArmor/protobuf v0.0.0-20230918061249-1d5b51c449bd 
h1:3RjcVbIzUQ98D61CUkq9X//koYvbdck7P8AoDTu6bZM=
-github.com/kubearmor/KubeArmor/protobuf 
v0.0.0-20230918061249-1d5b51c449bd/go.mod 
h1:u2IBmj/3GtZodhGIPlO0gwNZ+C/dDlxER1BPQfCOEsk=
+github.com/kubearmor/KubeArmor/KubeArmor v0.0.0-20231019102803-e4e0e68a457b 
h1:XmWnvTayMLEwpTz15LL9Qq6ZEb4AK0rb7PngLMHRUTk=
+github.com/kubearmor/KubeArmor/KubeArmor 
v0.0.0-20231019102803-e4e0e68a457b/go.mod 
h1:7EoQjYGr6xjPCwJPD26bHB9fY6fTepqXJOrg6eT5dqI=
+github.com/kubearmor/KubeArmor/deployments v0.0.0-20231019102803-e4e0e68a457b 
h1:44jrDRGS7O1ZZOavDOZ+Q/dv+C6FkC2qa5JXNv6I4lY=
+github.com/kubearmor/KubeArmor/deployments 
v0.0.0-20231019102803-e4e0e68a457b/go.mod 
h1:9c5VpVVkkto1fPLyCrnZAThQ9lO04mpYNJnfN36UqL0=
+github.com/kubearmor/KubeArmor/deployments v0.0.0-20231024025323-15ad34e8f01e 
h1:KRrlYz0ocorE7YZ7TAv+S3+bpgwVq77BOaxXhJz3VQc=
+github.com/kubearmor/KubeArmor/deployments 
v0.0.0-20231024025323-15ad34e8f01e/go.mod 
h1:9c5VpVVkkto1fPLyCrnZAThQ9lO04mpYNJnfN36UqL0=
+github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20231019102803-e4e0e68a457b 
h1:AeGpC3f4zEIzNmhejsGkJ+dgRuCsCONdUGTx3FVClcw=
+github.com/kubearmor/KubeArmor/pkg/KubeArmorController 
v0.0.0-20231019102803-e4e0e68a457b/go.mod 
h1:LtrnsoV9isTrXx0ClJgKxSJ/gbYmDj9m3pXIjG1yxBg=
+github.com/kubearmor/KubeArmor/protobuf v0.0.0-20231019102803-e4e0e68a457b 
h1:jJ4yBo4LVx9TCAPm7WqtlOUy0TeC9jRpIJCoT2+CB+Q=
+github.com/kubearmor/KubeArmor/protobuf 
v0.0.0-20231019102803-e4e0e68a457b/go.mod 
h1:u2IBmj/3GtZodhGIPlO0gwNZ+C/dDlxER1BPQfCOEsk=
 github.com/kulti/thelper v0.4.0/go.mod 
h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U=
 github.com/kunwardeep/paralleltest v1.0.2/go.mod 
h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30=
 github.com/kylelemons/godebug v1.1.0 
h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
@@ -970,6 +1009,7 @@
 github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod 
h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
 github.com/lightstep/lightstep-tracer-common/golang/gogo 
v0.0.0-20190605223551-bc2310a04743/go.mod 
h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
 github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod 
h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
+github.com/lithammer/dedent v1.1.0/go.mod 
h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
 github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod 
h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
 github.com/lucasb-eyer/go-colorful v1.2.0 
h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
 github.com/lucasb-eyer/go-colorful v1.2.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
@@ -1030,8 +1070,6 @@
 github.com/mbilski/exhaustivestruct v1.2.0/go.mod 
h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc=
 github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod 
h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg=
 github.com/mgechev/revive v1.0.6/go.mod 
h1:Lj5gIVxjBlH8REa3icEOkdfchwYc291nShzZ4QYWyMo=
-github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d 
h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
-github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod 
h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
 github.com/mholt/archiver/v3 v3.5.1 
h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo=
 github.com/mholt/archiver/v3 v3.5.1/go.mod 
h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4=
 github.com/miekg/dns v1.0.14/go.mod 
h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
@@ -1108,6 +1146,7 @@
 github.com/mwitkow/go-proto-validators v0.2.0/go.mod 
h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc=
 github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod 
h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
 github.com/nakabonne/nestif v0.3.0/go.mod 
h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c=
+github.com/nakabonne/nestif v0.3.1/go.mod 
h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE=
 github.com/nats-io/jwt v0.3.0/go.mod 
h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg=
 github.com/nats-io/jwt v0.3.2/go.mod 
h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU=
 github.com/nats-io/nats-server/v2 v2.1.2/go.mod 
h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k=
@@ -1152,8 +1191,8 @@
 github.com/onsi/ginkgo/v2 v2.1.6/go.mod 
h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
 github.com/onsi/ginkgo/v2 v2.3.0/go.mod 
h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0=
 github.com/onsi/ginkgo/v2 v2.4.0/go.mod 
h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
-github.com/onsi/ginkgo/v2 v2.9.5 
h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q=
-github.com/onsi/ginkgo/v2 v2.9.5/go.mod 
h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k=
+github.com/onsi/ginkgo/v2 v2.9.7 
h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss=
+github.com/onsi/ginkgo/v2 v2.9.7/go.mod 
h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0=
 github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod 
h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
 github.com/onsi/gomega v1.4.2/go.mod 
h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.4.3/go.mod 
h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -1167,8 +1206,8 @@
 github.com/onsi/gomega v1.21.1/go.mod 
h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc=
 github.com/onsi/gomega v1.22.1/go.mod 
h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM=
 github.com/onsi/gomega v1.23.0/go.mod 
h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
-github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU=
-github.com/onsi/gomega v1.27.7/go.mod 
h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4=
+github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc=
+github.com/onsi/gomega v1.27.8/go.mod 
h1:2J8vzI/s+2shY9XHRApDkdgPo1TKT7P2u6fXeJKFnNQ=
 github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod 
h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
 github.com/open-policy-agent/cert-controller v0.2.0/go.mod 
h1:SWS7Ame8oKHF11cDsQCFlULrrOMV5Z59FIGEAF/M6YI=
 github.com/open-policy-agent/frameworks/constraint 
v0.0.0-20210701194838-1dbe2618668d/go.mod 
h1:y8wOVfZ6+bEmbhBMnLnFlQrJB9eQpVk+dIDa7YrtocI=
@@ -1192,6 +1231,7 @@
 github.com/openzipkin/zipkin-go v0.1.6/go.mod 
h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
 github.com/openzipkin/zipkin-go v0.2.1/go.mod 
h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
 github.com/openzipkin/zipkin-go v0.2.2/go.mod 
h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4=
+github.com/otiai10/copy v1.2.0/go.mod 
h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
 github.com/pact-foundation/pact-go v1.0.4/go.mod 
h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM=
 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod 
h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
 github.com/pborman/uuid v1.2.0/go.mod 
h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
@@ -1209,6 +1249,7 @@
 github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod 
h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw=
 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod 
h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc=
 github.com/pierrec/lz4 v2.0.5+incompatible/go.mod 
h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pierrec/lz4 v2.6.1+incompatible/go.mod 
h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pierrec/lz4/v4 v4.1.2/go.mod 
h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
 github.com/pierrec/lz4/v4 v4.1.17 
h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc=
 github.com/pierrec/lz4/v4 v4.1.17/go.mod 
h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
@@ -1284,12 +1325,14 @@
 github.com/prometheus/procfs v0.8.0/go.mod 
h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
 github.com/prometheus/procfs v0.9.0 
h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
 github.com/prometheus/procfs v0.9.0/go.mod 
h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
+github.com/prometheus/prometheus v2.5.0+incompatible/go.mod 
h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s=
 github.com/prometheus/statsd_exporter v0.20.0/go.mod 
h1:YL3FWCG8JBBtaUSxAg4Gz2ZYu22bS84XM89ZQXXTWmQ=
 github.com/prometheus/statsd_exporter v0.21.0/go.mod 
h1:rbT83sZq2V+p73lHhPZfMc3MLCHmSHelCh9hSGYNLTQ=
 github.com/prometheus/tsdb v0.7.1/go.mod 
h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
 github.com/protocolbuffers/txtpbfmt v0.0.0-20230412060525-fa9f017c0ded 
h1:XHLAvwaTYM0PxS/HO7E0PfBaY/y0jGM5NM7g05lCb0k=
 github.com/protocolbuffers/txtpbfmt v0.0.0-20230412060525-fa9f017c0ded/go.mod 
h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c=
 github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod 
h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA=
+github.com/pseudomuto/protoc-gen-doc v1.5.1/go.mod 
h1:XpMKYg6zkcpgfpCfQ8GcWBDRtRxOmMR5w7pz4Xo+dYM=
 github.com/pseudomuto/protokit v0.2.0/go.mod 
h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q=
 github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod 
h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
 github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod 
h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30=
@@ -1327,12 +1370,14 @@
 github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc=
 github.com/rs/zerolog v1.29.1/go.mod 
h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
 github.com/russross/blackfriday v1.5.2/go.mod 
h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
+github.com/russross/blackfriday v1.6.0/go.mod 
h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=
 github.com/russross/blackfriday/v2 v2.0.1/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/ryancurrah/gomodguard v1.2.0/go.mod 
h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6W5lnUepvuMMgQ=
 github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod 
h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA=
 github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod 
h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 github.com/ryanuber/go-glob v1.0.0 
h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk=
+github.com/ryanuber/go-glob v1.0.0/go.mod 
h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
 github.com/sahilm/fuzzy v0.1.0/go.mod 
h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y=
 github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod 
h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
 github.com/sanposhiho/wastedassign v1.0.0/go.mod 
h1:LGpq5Hsv74QaqM47WtIsRSF/ik9kqk07kchgv66tLVE=
@@ -1420,7 +1465,9 @@
 github.com/spf13/viper v1.16.0/go.mod 
h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
 github.com/spiffe/go-spiffe/v2 v2.1.4 
h1:Z31Ycaf2Z5DF38sQGmp+iGKjBhBlSzfAq68bfy67Mxw=
 github.com/spiffe/go-spiffe/v2 v2.1.4/go.mod 
h1:eVDqm9xFvyqao6C+eQensb9ZPkyNEeaUbqbBpOhBnNk=
+github.com/src-d/gcfg v1.4.0/go.mod 
h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI=
 github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod 
h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I=
+github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod 
h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I=
 github.com/stoewer/go-strcase v1.2.0/go.mod 
h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
 github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod 
h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
 github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod 
h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
@@ -1461,12 +1508,15 @@
 github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613 
h1:iGnD/q9160NWqKZZ5vY4p0dMiYMRknzctfSkqA4nBDw=
 github.com/tent/canonical-json-go v0.0.0-20130607151641-96e4ba3a7613/go.mod 
h1:g6AnIpDSYMcphz193otpSIzN+11Rs+AAIIC6rm1enug=
 github.com/tetafro/godot v1.4.6/go.mod 
h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
+github.com/tetafro/godot v1.4.11/go.mod 
h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8=
 github.com/thales-e-security/pool v0.0.2 
h1:RAPs4q2EbWsTit6tpzuvTFlgFRJ3S8Evf5gtvVDbmPg=
 github.com/thales-e-security/pool v0.0.2/go.mod 
h1:qtpMm2+thHtqhLzTwgDBj/OuNnMpupY8mv0Phz0gjhU=
 github.com/theupdateframework/go-tuf v0.5.2 
h1:habfDzTmpbzBLIFGWa2ZpVhYvFBoK0C1onC3a4zuPRA=
 github.com/theupdateframework/go-tuf v0.5.2/go.mod 
h1:SyMV5kg5n4uEclsyxXJZI2UxPFJNDc4Y+r7wv+MlvTA=
 github.com/tidwall/pretty v1.0.0/go.mod 
h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tidwall/pretty v1.2.0 
h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
+github.com/tidwall/pretty v1.2.0/go.mod 
h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
+github.com/tilinna/clock v1.1.0/go.mod 
h1:ZsP7BcY7sEEz7ktc0IVy8Us6boDrK8VradlKRUGfOao=
 github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod 
h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
 github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 
h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0=
 github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod 
h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs=
@@ -1551,6 +1601,7 @@
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yusufpapurcu/wmi v1.2.2 
h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
 github.com/yusufpapurcu/wmi v1.2.2/go.mod 
h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
+github.com/zalando/go-keyring v0.1.1/go.mod 
h1:OIC+OZ28XbmwFxU/Rp9V7eKzZjamBJwRzC8UFJH9+L8=
 github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs=
 github.com/zeebo/errs v1.3.0/go.mod 
h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
 go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
@@ -2257,6 +2308,7 @@
 google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
 google.golang.org/grpc v1.55.0/go.mod 
h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod 
h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod 
h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod 
h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -2300,6 +2352,9 @@
 gopkg.in/resty.v1 v1.12.0/go.mod 
h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
 gopkg.in/square/go-jose.v2 v2.2.2/go.mod 
h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
 gopkg.in/square/go-jose.v2 v2.6.0 
h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
+gopkg.in/square/go-jose.v2 v2.6.0/go.mod 
h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod 
h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98=
+gopkg.in/src-d/go-git.v4 v4.13.1/go.mod 
h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 
h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod 
h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/warnings.v0 v0.1.2/go.mod 
h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
@@ -2321,6 +2376,7 @@
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools v2.2.0+incompatible 
h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
+gotest.tools v2.2.0+incompatible/go.mod 
h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
 gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk=
 gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
 gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=
@@ -2350,6 +2406,7 @@
 k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod 
h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
 k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod 
h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
 k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod 
h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
 k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
 k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
 k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/probe/print.go 
new/kubearmor-client-0.14.2/probe/print.go
--- old/kubearmor-client-0.14.1/probe/print.go  2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/probe/print.go  2023-10-24 16:58:33.000000000 
+0200
@@ -114,3 +114,34 @@
        table.SetAutoMergeCellsByColumnIndex([]int{0, 1, 2})
        table.Render()
 }
+func printContainersSystemd(podData [][]string) {
+       _, err := boldWhite.Printf("Armored Up Containers : \n")
+       if err != nil {
+               color.Red(" Error printing bold text")
+       }
+
+       table := tablewriter.NewWriter(os.Stdout)
+       table.SetHeader([]string{"CONTAINER NAME", "POLICY"})
+       for _, v := range podData {
+               table.Append(v)
+       }
+       table.SetRowLine(true)
+       table.SetAutoMergeCellsByColumnIndex([]int{0, 1})
+       table.Render()
+
+}
+func printHostPolicy(hostPolicy [][]string) {
+       _, err := boldWhite.Printf("Host Policies : \n")
+       if err != nil {
+               color.Red(" Error printing bold text")
+       }
+
+       table := tablewriter.NewWriter(os.Stdout)
+       table.SetHeader([]string{"HOST NAME ", "POLICY"})
+       for _, v := range hostPolicy {
+               table.Append(v)
+       }
+       table.SetRowLine(true)
+       table.SetAutoMergeCellsByColumnIndex([]int{0, 1})
+       table.Render()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/probe/probe.go 
new/kubearmor-client-0.14.2/probe/probe.go
--- old/kubearmor-client-0.14.1/probe/probe.go  2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/probe/probe.go  2023-10-24 16:58:33.000000000 
+0200
@@ -25,6 +25,8 @@
        tp "github.com/kubearmor/KubeArmor/KubeArmor/types"
        "github.com/kubearmor/kubearmor-client/deployment"
        "github.com/kubearmor/kubearmor-client/k8s"
+       "google.golang.org/grpc"
+       "google.golang.org/protobuf/types/known/emptypb"
 
        "golang.org/x/exp/slices"
        "golang.org/x/mod/semver"
@@ -35,6 +37,7 @@
 
        "errors"
 
+       pb "github.com/kubearmor/KubeArmor/protobuf"
        "golang.org/x/sys/unix"
 )
 
@@ -75,10 +78,44 @@
                }
        }
        if isSystemdMode() {
-               err := probeSystemdMode()
+               kd, err := probeSystemdMode()
                if err != nil {
                        return err
                }
+               policyData, err := getPolicyData(o)
+               if err != nil {
+                       return err
+               }
+               armoredContainers, containerMap := 
getArmoredContainerData(policyData.ContainerList, policyData.ContainerMap)
+               hostPolicyData := getHostPolicyData(policyData)
+               if o.Output == "json" {
+                       probeData := map[string]interface{}{"Probe Data": 
map[string]interface{}{
+                               "Host":              kd,
+                               "HostPolicies":      policyData.HostMap,
+                               "ArmoredContainers": containerMap,
+                       },
+                       }
+                       out, err := json.Marshal(probeData)
+                       if err != nil {
+                               return err
+                       }
+                       fmt.Println(string(out))
+               } else {
+
+                       color.Green("\nFound KubeArmor running in Systemd mode 
\n\n")
+
+                       _, err := boldWhite.Printf("Host : \n")
+                       if err != nil {
+                               color.Red(" Error")
+                       }
+                       printKubeArmorProbeOutput(kd)
+                       if len(policyData.HostMap) > 0 {
+                               printHostPolicy(hostPolicyData)
+                       }
+                       printContainersSystemd(armoredContainers)
+
+               }
+
                return nil
        }
        isRunning, daemonsetStatus := isKubeArmorRunning(c, o)
@@ -544,34 +581,104 @@
        if err != nil {
                return false
        }
-       color.Green("\nFound KubeArmor running in Systemd mode \n\n")
        return true
 }
 
-func probeSystemdMode() error {
+func probeSystemdMode() (KubeArmorProbeData, error) {
        jsonFile, err := os.Open("/tmp/karmorProbeData.cfg")
        if err != nil {
                log.Println(err)
-               return err
+               return KubeArmorProbeData{}, err
        }
 
        buf, err := io.ReadAll(jsonFile)
        if err != nil {
                log.Println("an error occured when reading file", err)
-               return err
-       }
-       _, err = boldWhite.Printf("Host : \n")
-       if err != nil {
-               color.Red(" Error")
+               return KubeArmorProbeData{}, err
        }
+
        var kd KubeArmorProbeData
        var json = jsoniter.ConfigCompatibleWithStandardLibrary
        err = json.Unmarshal(buf, &kd)
        if err != nil {
-               return err
+               return KubeArmorProbeData{}, err
        }
-       printKubeArmorProbeOutput(kd)
-       return nil
+       return kd, nil
+}
+
+func getPolicyData(o Options) (*pb.ProbeResponse, error) {
+       gRPC := ""
+
+       if o.GRPC != "" {
+               gRPC = o.GRPC
+       } else {
+               if val, ok := os.LookupEnv("KUBEARMOR_SERVICE"); ok {
+                       gRPC = val
+               } else {
+                       gRPC = "localhost:32767"
+               }
+       }
+       conn, err := grpc.Dial(gRPC, grpc.WithInsecure())
+       if err != nil {
+               return nil, err
+       }
+       client := pb.NewProbeServiceClient(conn)
+
+       resp, err := client.GetProbeData(context.Background(), &emptypb.Empty{})
+       if err != nil {
+               fmt.Println(err)
+               return nil, err
+       }
+
+       return resp, nil
+
+}
+func getArmoredContainerData(containerList []string, containerMap 
map[string]*pb.ContainerData) ([][]string, map[string][]string) {
+
+       var data [][]string
+       for _, containerName := range containerList {
+
+               if _, ok := containerMap[containerName]; ok {
+                       if containerMap[containerName].PolicyEnabled == 1 {
+                               for _, policyName := range 
containerMap[containerName].PolicyList {
+                                       data = append(data, 
[]string{containerName, policyName})
+                               }
+                       }
+               } else {
+                       data = append(data, []string{containerName, ""})
+               }
+
+       }
+       mp := make(map[string][]string)
+
+       for _, v := range data {
+
+               if val, exists := mp[v[0]]; exists {
+
+                       val = append(val, v[1])
+                       mp[v[0]] = val
+
+               } else {
+                       mp[v[0]] = []string{v[1]}
+               }
+
+       }
+
+       return data, mp
+
+}
+func getHostPolicyData(policyData *pb.ProbeResponse) [][]string {
+
+       var data [][]string
+       for k, v := range policyData.HostMap {
+
+               for _, policy := range v.PolicyList {
+                       data = append(data, []string{k, policy})
+               }
+
+       }
+       return data
+
 }
 
 func getAnnotatedPodLabels(m map[string]string) mapset.Set[string] {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/probe/types.go 
new/kubearmor-client-0.14.2/probe/types.go
--- old/kubearmor-client-0.14.1/probe/types.go  2023-09-26 08:11:52.000000000 
+0200
+++ new/kubearmor-client-0.14.2/probe/types.go  2023-10-24 16:58:33.000000000 
+0200
@@ -9,6 +9,7 @@
        Namespace string
        Full      bool
        Output    string
+       GRPC      string
 }
 
 // KubeArmorProbeData structure definition
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/summary/summary.go 
new/kubearmor-client-0.14.2/summary/summary.go
--- old/kubearmor-client-0.14.1/summary/summary.go      2023-09-26 
08:11:52.000000000 +0200
+++ new/kubearmor-client-0.14.2/summary/summary.go      1970-01-01 
01:00:00.000000000 +0100
@@ -1,140 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-// Copyright 2022 Authors of KubeArmor
-
-// Package summary shows observability data from discovery engine
-package summary
-
-import (
-       "context"
-       "encoding/json"
-       "errors"
-       "fmt"
-       "os"
-       "strconv"
-
-       opb 
"github.com/accuknox/auto-policy-discovery/src/protobuf/v1/observability"
-       "github.com/kubearmor/kubearmor-client/k8s"
-       "github.com/kubearmor/kubearmor-client/utils"
-
-       "google.golang.org/grpc"
-       "google.golang.org/grpc/credentials/insecure"
-)
-
-// DefaultReqType : default option for request type
-var DefaultReqType = "process,file,network"
-var matchLabels = map[string]string{"app": "discovery-engine"}
-var port int64 = 9089
-
-// Options Structure
-type Options struct {
-       GRPC          string
-       Labels        string
-       Namespace     string
-       PodName       string
-       ClusterName   string
-       ContainerName string
-       Type          string
-       Output        string
-       RevDNSLookup  bool
-       Aggregation   bool
-}
-
-// GetSummary on pods
-func GetSummary(c *k8s.Client, o Options) ([]*opb.Response, error) {
-       var jsonObs []*opb.Response
-       gRPC := ""
-       targetSvc := "discovery-engine"
-
-       if o.GRPC != "" {
-               gRPC = o.GRPC
-       } else {
-               if val, ok := os.LookupEnv("DISCOVERY_SERVICE"); ok {
-                       gRPC = val
-               } else {
-                       pf, err := utils.InitiatePortForward(c, port, port, 
matchLabels, targetSvc)
-                       if err != nil {
-                               return nil, err
-                       }
-                       gRPC = "localhost:" + strconv.FormatInt(pf.LocalPort, 
10)
-               }
-       }
-
-       data := &opb.Request{
-               Label:         o.Labels,
-               NameSpace:     o.Namespace,
-               PodName:       o.PodName,
-               ClusterName:   o.ClusterName,
-               ContainerName: o.ContainerName,
-               Aggregate:     o.Aggregation,
-               Type:          o.Type,
-       }
-
-       // create a client
-       conn, err := grpc.Dial(gRPC, 
grpc.WithTransportCredentials(insecure.NewCredentials()))
-       if err != nil {
-               return nil, errors.New("could not connect to the server. 
Possible troubleshooting:\n- Check if discovery engine is running\n- kubectl 
get po -n accuknox-agents")
-       }
-       defer conn.Close()
-
-       client := opb.NewObservabilityClient(conn)
-
-       if data.PodName != "" {
-               sumResp, err := client.Summary(context.Background(), data)
-               if err != nil {
-                       return nil, err
-               }
-               if o.Output == "" {
-                       DisplaySummaryOutput(sumResp, o.RevDNSLookup, o.Type)
-               }
-
-               if o.Output == "json" {
-                       jsonObs = append(jsonObs, sumResp)
-                       return jsonObs, nil
-               }
-
-       } else {
-               //Fetch Summary Logs
-               podNameResp, err := client.GetPodNames(context.Background(), 
data)
-               if err != nil {
-                       return nil, err
-               }
-
-               for _, podname := range podNameResp.PodName {
-                       if podname == "" {
-                               continue
-                       }
-                       data.PodName = podname
-                       sumResp, err := client.Summary(context.Background(), 
data)
-                       if err != nil {
-                               return nil, err
-                       }
-                       if o.Output == "" {
-                               DisplaySummaryOutput(sumResp, o.RevDNSLookup, 
o.Type)
-                       }
-
-                       if o.Output == "json" {
-                               jsonObs = append(jsonObs, sumResp)
-                       }
-               }
-               if o.Output == "json" {
-                       return jsonObs, nil
-               }
-       }
-       return jsonObs, nil
-}
-
-// Summary - printing the summary output
-func Summary(c *k8s.Client, o Options) error {
-       summary, err := GetSummary(c, o)
-       if err != nil {
-               return err
-       }
-       if o.Output == "json" {
-               summaryJson, err := json.MarshalIndent(summary, "", "    ")
-               if err != nil {
-                       return err
-               }
-               fmt.Printf("%s", string(summaryJson))
-       }
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kubearmor-client-0.14.1/summary/table.go 
new/kubearmor-client-0.14.2/summary/table.go
--- old/kubearmor-client-0.14.1/summary/table.go        2023-09-26 
08:11:52.000000000 +0200
+++ new/kubearmor-client-0.14.2/summary/table.go        1970-01-01 
01:00:00.000000000 +0100
@@ -1,221 +0,0 @@
-package summary
-
-import (
-       "fmt"
-       "net"
-       "os"
-       "sort"
-       "strings"
-
-       opb 
"github.com/accuknox/auto-policy-discovery/src/protobuf/v1/observability"
-       "github.com/mgutz/ansi"
-
-       "github.com/olekukonko/tablewriter"
-)
-
-var (
-       // SysProcHeader variable contains source process, destination process 
path, count, timestamp and status
-       SysProcHeader = []string{"Src Process", "Destination Process Path", 
"Count", "Last Updated Time", "Status"}
-       // SysFileHeader variable contains source process, destination file 
path, count, timestamp and status
-       SysFileHeader = []string{"Src Process", "Destination File Path", 
"Count", "Last Updated Time", "Status"}
-       // SysNwHeader variable contains protocol, command, POD/SVC/IP, Port, 
Namespace, and Labels
-       SysNwHeader = []string{"Protocol", "Command", "POD/SVC/IP", "Port", 
"Namespace", "Labels", "Count", "Last Updated Time"}
-       // SysBindNwHeader variable contains protocol, command, Bind Port, Bind 
Address, count and timestamp
-       SysBindNwHeader = []string{"Protocol", "Command", "Bind Port", "Bind 
Address", "Count", "Last Updated Time"}
-)
-
-// DisplaySummaryOutput function
-func DisplaySummaryOutput(resp *opb.Response, revDNSLookup bool, requestType 
string) {
-
-       if len(resp.ProcessData) <= 0 && len(resp.FileData) <= 0 && 
len(resp.IngressConnection) <= 0 && len(resp.EgressConnection) <= 0 {
-               return
-       }
-
-       writePodInfoToTable(resp.PodName, resp.Namespace, resp.ClusterName, 
resp.ContainerName, resp.Label)
-
-       // Colored Status for Allow and Deny
-       agc := ansi.ColorFunc("green")
-       arc := ansi.ColorFunc("red")
-       ayc := ansi.ColorFunc("yellow")
-
-       if strings.Contains(requestType, "process") {
-               if len(resp.ProcessData) > 0 {
-                       procRowData := [][]string{}
-                       // Display process data
-                       fmt.Printf("\nProcess Data\n")
-                       for _, procData := range resp.ProcessData {
-                               procStrSlice := []string{}
-                               procStrSlice = append(procStrSlice, 
procData.Source)
-                               procStrSlice = append(procStrSlice, 
procData.Destination)
-                               procStrSlice = append(procStrSlice, 
procData.Count)
-                               procStrSlice = append(procStrSlice, 
procData.UpdatedTime)
-                               if procData.Status == "Allow" {
-                                       procStrSlice = append(procStrSlice, 
agc(procData.Status))
-                               } else if procData.Status == "Audit" {
-                                       procStrSlice = append(procStrSlice, 
ayc(procData.Status))
-                               } else {
-                                       procStrSlice = append(procStrSlice, 
arc(procData.Status))
-                               }
-                               procRowData = append(procRowData, procStrSlice)
-                       }
-                       sort.Slice(procRowData[:], func(i, j int) bool {
-                               for x := range procRowData[i] {
-                                       if procRowData[i][x] == 
procRowData[j][x] {
-                                               continue
-                                       }
-                                       return procRowData[i][x] < 
procRowData[j][x]
-                               }
-                               return false
-                       })
-                       WriteTable(SysProcHeader, procRowData)
-                       fmt.Printf("\n")
-               }
-       }
-
-       if strings.Contains(requestType, "file") {
-               if len(resp.FileData) > 0 {
-                       fmt.Printf("\nFile Data\n")
-                       // Display file data
-                       fileRowData := [][]string{}
-                       for _, fileData := range resp.FileData {
-                               fileStrSlice := []string{}
-                               fileStrSlice = append(fileStrSlice, 
fileData.Source)
-                               fileStrSlice = append(fileStrSlice, 
fileData.Destination)
-                               fileStrSlice = append(fileStrSlice, 
fileData.Count)
-                               fileStrSlice = append(fileStrSlice, 
fileData.UpdatedTime)
-                               if fileData.Status == "Allow" {
-                                       fileStrSlice = append(fileStrSlice, 
agc(fileData.Status))
-                               } else if fileData.Status == "Audit" {
-                                       fileStrSlice = append(fileStrSlice, 
ayc(fileData.Status))
-                               } else {
-                                       fileStrSlice = append(fileStrSlice, 
arc(fileData.Status))
-                               }
-                               fileRowData = append(fileRowData, fileStrSlice)
-                       }
-                       sort.Slice(fileRowData[:], func(i, j int) bool {
-                               for x := range fileRowData[i] {
-                                       if fileRowData[i][x] == 
fileRowData[j][x] {
-                                               continue
-                                       }
-                                       return fileRowData[i][x] < 
fileRowData[j][x]
-                               }
-                               return false
-                       })
-                       WriteTable(SysFileHeader, fileRowData)
-                       fmt.Printf("\n")
-               }
-       }
-
-       if strings.Contains(requestType, "network") {
-               if len(resp.IngressConnection) > 0 {
-                       fmt.Printf("\nIngress connections\n")
-                       // Display server conn data
-                       inNwRowData := [][]string{}
-                       for _, ingressConnection := range 
resp.IngressConnection {
-                               inNwStrSlice := []string{}
-                               domainName := dnsLookup(ingressConnection.IP, 
revDNSLookup)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Protocol)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Command)
-                               inNwStrSlice = append(inNwStrSlice, domainName)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Port)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Namespace)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Labels)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.Count)
-                               inNwStrSlice = append(inNwStrSlice, 
ingressConnection.UpdatedTime)
-                               inNwRowData = append(inNwRowData, inNwStrSlice)
-                       }
-                       WriteTable(SysNwHeader, inNwRowData)
-                       fmt.Printf("\n")
-               }
-
-               if len(resp.EgressConnection) > 0 {
-                       fmt.Printf("\nEgress connections\n")
-                       // Display server conn data
-                       outNwRowData := [][]string{}
-                       for _, egressConnection := range resp.EgressConnection {
-                               outNwStrSlice := []string{}
-                               domainName := dnsLookup(egressConnection.IP, 
revDNSLookup)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Protocol)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Command)
-                               outNwStrSlice = append(outNwStrSlice, 
domainName)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Port)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Namespace)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Labels)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.Count)
-                               outNwStrSlice = append(outNwStrSlice, 
egressConnection.UpdatedTime)
-                               outNwRowData = append(outNwRowData, 
outNwStrSlice)
-                       }
-                       WriteTable(SysNwHeader, outNwRowData)
-                       fmt.Printf("\n")
-               }
-
-               if len(resp.BindConnection) > 0 {
-                       fmt.Printf("\nBind Points\n")
-                       // Display bind connections details
-                       bindNwRowData := [][]string{}
-                       for _, bindConnection := range resp.BindConnection {
-                               bindNwStrSlice := []string{}
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.Protocol)
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.Command)
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.BindPort)
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.BindAddress)
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.Count)
-                               bindNwStrSlice = append(bindNwStrSlice, 
bindConnection.UpdatedTime)
-                               bindNwRowData = append(bindNwRowData, 
bindNwStrSlice)
-                       }
-                       WriteTable(SysBindNwHeader, bindNwRowData)
-                       fmt.Printf("\n")
-               }
-       }
-}
-
-func dnsLookup(ip string, revDNSLookup bool) string {
-       if revDNSLookup {
-               if strings.Contains(ip, "svc") || strings.Contains(ip, "pod") {
-                       return ip
-               }
-               dns, err := net.LookupAddr(ip)
-               if err != nil {
-                       return ip
-               }
-               if dns[0] != "" {
-                       return dns[0]
-               }
-       }
-       return ip
-}
-
-// WriteTable function
-func WriteTable(header []string, data [][]string) {
-       table := tablewriter.NewWriter(os.Stdout)
-       table.SetHeader(header)
-       table.SetAlignment(tablewriter.ALIGN_LEFT)
-       for _, v := range data {
-               table.Append(v)
-       }
-       table.Render()
-}
-
-func writePodInfoToTable(podname, namespace, clustername, containername, 
labels string) {
-
-       fmt.Printf("\n")
-
-       podinfo := [][]string{
-               {"Pod Name", podname},
-               {"Namespace Name", namespace},
-               {"Cluster Name", clustername},
-               {"Container Name", containername},
-               {"Labels", labels},
-       }
-       table := tablewriter.NewWriter(os.Stdout)
-       table.SetBorder(false)
-       table.SetTablePadding("\t")
-       table.SetCenterSeparator("")
-       table.SetColumnSeparator("")
-       table.SetRowSeparator("")
-       table.SetAlignment(tablewriter.ALIGN_LEFT)
-       for _, v := range podinfo {
-               table.Append(v)
-       }
-       table.Render()
-}

++++++ kubearmor-client.obsinfo ++++++
--- /var/tmp/diff_new_pack.4Kq5cZ/_old  2023-10-26 17:14:15.735923520 +0200
+++ /var/tmp/diff_new_pack.4Kq5cZ/_new  2023-10-26 17:14:15.739923667 +0200
@@ -1,5 +1,5 @@
 name: kubearmor-client
-version: 0.14.1
-mtime: 1695708712
-commit: 4507cc069e7e5f6fd5c2c74bdd42671a51dbcefd
+version: 0.14.2
+mtime: 1698159513
+commit: 4183b814ccc4ef433f29594fb8c2a27160bff9e3
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubearmor-client/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.kubearmor-client.new.24901/vendor.tar.gz differ: 
char 5, line 1

Reply via email to