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