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 2025-11-21 16:55:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kubearmor-client (Old)
and /work/SRC/openSUSE:Factory/.kubearmor-client.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubearmor-client"
Fri Nov 21 16:55:28 2025 rev:20 rq:1318803 version:1.4.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/kubearmor-client/kubearmor-client.changes
2025-07-09 17:27:49.598095487 +0200
+++
/work/SRC/openSUSE:Factory/.kubearmor-client.new.2061/kubearmor-client.changes
2025-11-21 16:56:16.413336828 +0100
@@ -1,0 +2,10 @@
+Thu Nov 20 08:15:05 UTC 2025 - Johannes Kastl
<[email protected]>
+
+- Update to version 1.4.5:
+ * update KubeArmor/protobuf dependency
+ * upgrade go dependencies
+ * rename unused variable
+ * feat: (recommend) Implement recommend functionality for Docker
+ Client
+
+-------------------------------------------------------------------
Old:
----
kubearmor-client-1.4.4.obscpio
New:
----
kubearmor-client-1.4.5.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kubearmor-client.spec ++++++
--- /var/tmp/diff_new_pack.BCDkFq/_old 2025-11-21 16:56:18.113408468 +0100
+++ /var/tmp/diff_new_pack.BCDkFq/_new 2025-11-21 16:56:18.113408468 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kubearmor-client
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: kubearmor-client
-Version: 1.4.4
+Version: 1.4.5
Release: 0
Summary: KubeArmor cli tool aka kArmor
License: Apache-2.0
@@ -26,7 +26,7 @@
Source1: vendor.tar.gz
BuildRequires: bash-completion
BuildRequires: fish
-BuildRequires: go >= 1.22
+BuildRequires: go1.24 >= 1.24.9
BuildRequires: zsh
%description
++++++ _service ++++++
--- /var/tmp/diff_new_pack.BCDkFq/_old 2025-11-21 16:56:18.153410154 +0100
+++ /var/tmp/diff_new_pack.BCDkFq/_new 2025-11-21 16:56:18.161410491 +0100
@@ -3,7 +3,7 @@
<param name="url">https://github.com/kubearmor/kubearmor-client</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v1.4.4</param>
+ <param name="revision">v1.4.5</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="changesgenerate">enable</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.BCDkFq/_old 2025-11-21 16:56:18.197412007 +0100
+++ /var/tmp/diff_new_pack.BCDkFq/_new 2025-11-21 16:56:18.201412176 +0100
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/kubearmor/kubearmor-client</param>
- <param
name="changesrevision">05c25322be6a2f44fbbe0e4a22b5aa62e6ad094a</param></service></servicedata>
+ <param
name="changesrevision">f2ed4970aad4c729c8be2df27e2bf8eb504fcafc</param></service></servicedata>
(No newline at EOF)
++++++ kubearmor-client-1.4.4.obscpio -> kubearmor-client-1.4.5.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/install.go
new/kubearmor-client-1.4.5/cmd/install.go
--- old/kubearmor-client-1.4.4/cmd/install.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/install.go 2025-11-13 10:46:41.000000000
+0100
@@ -58,11 +58,11 @@
if err :=
installOptions.Env.CheckAndSetValidEnvironmentOption(cmd.Flag("env").Value.String());
err != nil {
return fmt.Errorf("error in checking
environment option: %v", err)
}
- if err := install.K8sLegacyInstaller(client,
installOptions); err != nil {
+ if err := install.K8sLegacyInstaller(k8sClient,
installOptions); err != nil {
return fmt.Errorf("error installing
kubearmor in legacy mode: %v", err)
}
} else {
- if err := install.K8sInstaller(client,
installOptions); err != nil {
+ if err := install.K8sInstaller(k8sClient,
installOptions); err != nil {
return fmt.Errorf("error installing
kubearmor: %v", err)
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/log.go
new/kubearmor-client-1.4.5/cmd/log.go
--- old/kubearmor-client-1.4.4/cmd/log.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/log.go 2025-11-13 10:46:41.000000000
+0100
@@ -58,7 +58,7 @@
Use "karmor logs --help" to see detailed flag descriptions and
defaults.`,
RunE: func(cmd *cobra.Command, args []string) error {
log.StopChan = make(chan struct{})
- return log.StartObserver(client, logOptions)
+ return log.StartObserver(k8sClient, logOptions)
},
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/probe.go
new/kubearmor-client-1.4.5/cmd/probe.go
--- old/kubearmor-client-1.4.4/cmd/probe.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/probe.go 2025-11-13 10:46:41.000000000
+0100
@@ -22,7 +22,7 @@
If KubeArmor is running, It probes which environment KubeArmor is running on
(e.g: systemd mode, kubernetes etc.),
the supported KubeArmor features in the environment, the pods being handled by
KubeArmor and the policies running on each of these pods`,
RunE: func(cmd *cobra.Command, args []string) error {
- err := probe.PrintProbeResultCmd(client, probeInstallOptions)
+ err := probe.PrintProbeResultCmd(k8sClient, probeInstallOptions)
return err
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/recommend.go
new/kubearmor-client-1.4.5/cmd/recommend.go
--- old/kubearmor-client-1.4.4/cmd/recommend.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/recommend.go 2025-11-13 10:46:41.000000000
+0100
@@ -4,11 +4,13 @@
package cmd
import (
+ "context"
"github.com/kubearmor/kubearmor-client/recommend"
"github.com/kubearmor/kubearmor-client/recommend/common"
genericpolicies
"github.com/kubearmor/kubearmor-client/recommend/engines/generic_policies"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
+ v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
var recommendOptions common.Options
@@ -19,8 +21,19 @@
Short: "Recommend Policies",
Long: `Recommend policies based on container image, k8s manifest or
the actual runtime env`,
RunE: func(cmd *cobra.Command, args []string) error {
- err := recommend.Recommend(client, recommendOptions,
genericpolicies.GenericPolicy{})
- return err
+ if recommendOptions.K8s {
+ // Check if k8sClient can connect to the server by
listing namespaces
+ _, err :=
k8sClient.K8sClientset.CoreV1().Namespaces().List(context.Background(),
v1.ListOptions{})
+ if err != nil {
+ if len(recommendOptions.Images) == 0 { // only
log the client if no images are provided
+ log.Error("K8s client is not
initialized, using docker client instead")
+ }
+ return recommend.Recommend(dockerClient,
recommendOptions, genericpolicies.GenericPolicy{})
+ }
+ return recommend.Recommend(k8sClient, recommendOptions,
genericpolicies.GenericPolicy{})
+ } else {
+ return recommend.Recommend(dockerClient,
recommendOptions, genericpolicies.GenericPolicy{})
+ }
},
}
var updateCmd = &cobra.Command{
@@ -28,7 +41,6 @@
Short: "Updates policy-template cache",
Long: "Updates the local cache of policy-templates
($HOME/.cache/karmor)",
RunE: func(cmd *cobra.Command, args []string) error {
-
if _, err := genericpolicies.DownloadAndUnzipRelease(); err !=
nil {
return err
}
@@ -50,4 +62,5 @@
recommendCmd.Flags().StringVarP(&recommendOptions.ReportFile, "report",
"r", "report.txt", "report file")
recommendCmd.Flags().StringSliceVarP(&recommendOptions.Tags, "tag",
"t", []string{}, "tags (comma-separated) to apply. Eg. PCI-DSS, MITRE")
recommendCmd.Flags().StringVarP(&recommendOptions.Config, "config",
"c", common.UserHome()+"/.docker/config.json", "absolute path to image registry
configuration file")
+ recommendCmd.Flags().BoolVarP(&recommendOptions.K8s, "k8s", "k", true,
"Use k8s client instead of docker client")
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/root.go
new/kubearmor-client-1.4.5/cmd/root.go
--- old/kubearmor-client-1.4.4/cmd/root.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/root.go 2025-11-13 10:46:41.000000000
+0100
@@ -5,12 +5,14 @@
package cmd
import (
+ "github.com/kubearmor/kubearmor-client/docker"
"github.com/kubearmor/kubearmor-client/k8s"
"github.com/rs/zerolog/log"
"github.com/spf13/cobra"
)
-var client *k8s.Client
+var k8sClient *k8s.Client
+var dockerClient *docker.Client
// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
@@ -18,12 +20,18 @@
var err error
//Initialise k8sClient for all child commands to inherit
- client, err = k8s.ConnectK8sClient()
- // fmt.Printf("%v", client.K8sClientset)
+ k8sClient, err = k8s.ConnectK8sClient()
if err != nil {
log.Error().Msgf("unable to create Kubernetes clients:
%s", err.Error())
return err
}
+
+ // Initialise dockerClient for all child commands to inherit
+ dockerClient, err = docker.ConnectDockerClient()
+ if err != nil {
+ log.Error().Msgf("unable to create Docker clients: %s",
err.Error())
+ return err
+ }
return nil
},
Use: "karmor",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/rotate-tls.go
new/kubearmor-client-1.4.5/cmd/rotate-tls.go
--- old/kubearmor-client-1.4.4/cmd/rotate-tls.go 2025-07-08
09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/cmd/rotate-tls.go 2025-11-13
10:46:41.000000000 +0100
@@ -11,7 +11,7 @@
Short: "Rotate webhook controller tls certificates",
Long: `Rotate webhook controller tls certificates`,
RunE: func(cmd *cobra.Command, args []string) error {
- if err := rotatetls.RotateTLS(client, namespace); err != nil {
+ if err := rotatetls.RotateTLS(k8sClient, namespace); err != nil
{
return err
}
return nil
@@ -20,6 +20,5 @@
func init() {
rootCmd.AddCommand(rotateCmd)
-
rotateCmd.Flags().StringVarP(&namespace, "namespace", "n", "kubearmor",
"Namespace for resources")
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/selfupdate.go
new/kubearmor-client-1.4.5/cmd/selfupdate.go
--- old/kubearmor-client-1.4.4/cmd/selfupdate.go 2025-07-08
09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/cmd/selfupdate.go 2025-11-13
10:46:41.000000000 +0100
@@ -14,7 +14,7 @@
Short: "selfupdate this cli tool",
Long: `selfupdate this cli tool for checking the latest release on the
github`,
RunE: func(cmd *cobra.Command, args []string) error {
- if err := selfupdate.SelfUpdate(client); err != nil {
+ if err := selfupdate.SelfUpdate(k8sClient); err != nil {
return err
}
return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/sysdump.go
new/kubearmor-client-1.4.5/cmd/sysdump.go
--- old/kubearmor-client-1.4.4/cmd/sysdump.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/sysdump.go 2025-11-13 10:46:41.000000000
+0100
@@ -16,7 +16,7 @@
Short: "Collect system dump information for troubleshooting and error
report",
Long: `Collect system dump information for troubleshooting and error
reports`,
RunE: func(cmd *cobra.Command, args []string) error {
- if err := sysdump.Collect(client, dumpOptions); err != nil {
+ if err := sysdump.Collect(k8sClient, dumpOptions); err != nil {
return err
}
return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/uninstall.go
new/kubearmor-client-1.4.5/cmd/uninstall.go
--- old/kubearmor-client-1.4.4/cmd/uninstall.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/uninstall.go 2025-11-13 10:46:41.000000000
+0100
@@ -19,8 +19,8 @@
//check for systemd or docker installation
exist := install.CheckAndRemoveKAVmInstallation()
if !exist {
- if err := install.K8sUninstaller(client,
uninstallOptions); err != nil {
- if err := install.K8sLegacyUninstaller(client,
uninstallOptions); err != nil {
+ if err := install.K8sUninstaller(k8sClient,
uninstallOptions); err != nil {
+ if err :=
install.K8sLegacyUninstaller(k8sClient, uninstallOptions); err != nil {
return err
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/cmd/version.go
new/kubearmor-client-1.4.5/cmd/version.go
--- old/kubearmor-client-1.4.4/cmd/version.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/cmd/version.go 2025-11-13 10:46:41.000000000
+0100
@@ -14,7 +14,7 @@
Short: "Display version information",
Long: `Display version information`,
RunE: func(cmd *cobra.Command, args []string) error {
- if err := version.PrintVersion(client); err != nil {
+ if err := version.PrintVersion(k8sClient); err != nil {
return err
}
return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/docker/client.go
new/kubearmor-client-1.4.5/docker/client.go
--- old/kubearmor-client-1.4.4/docker/client.go 1970-01-01 01:00:00.000000000
+0100
+++ new/kubearmor-client-1.4.5/docker/client.go 2025-11-13 10:46:41.000000000
+0100
@@ -0,0 +1,41 @@
+package docker
+
+import (
+ "context"
+ "strings"
+
+ "github.com/docker/docker/api/types/container"
+ "github.com/docker/docker/api/types/filters"
+ "github.com/docker/docker/client"
+ "github.com/kubearmor/kubearmor-client/recommend/common"
+)
+
+type Client struct {
+ *client.Client
+}
+
+func ConnectDockerClient() (*Client, error) {
+ cli, err := client.NewClientWithOpts(client.FromEnv,
client.WithAPIVersionNegotiation())
+ if err != nil {
+ return nil, err
+ }
+ return &Client{cli}, nil
+}
+
+func (c *Client) ListObjects(_ common.Options) ([]common.Object, error) {
+ var result []common.Object
+ containers, err := c.Client.ContainerList(context.Background(),
container.ListOptions{
+ Filters: filters.NewArgs(),
+ })
+ if err != nil {
+ return nil, err
+ }
+ for _, ctr := range containers {
+ result = append(result, common.Object{
+ Name: strings.TrimPrefix(ctr.Names[0], "/"),
+ Images: []string{ctr.Image},
+ Labels: ctr.Labels,
+ })
+ }
+ return result, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/go.mod
new/kubearmor-client-1.4.5/go.mod
--- old/kubearmor-client-1.4.4/go.mod 2025-07-08 09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/go.mod 2025-11-13 10:46:41.000000000 +0100
@@ -1,12 +1,6 @@
module github.com/kubearmor/kubearmor-client
-go 1.24.4
-
-replace (
- github.com/notaryproject/notation-go/signer =>
github.com/notaryproject/notation-go/signer v1.2.1
- gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.4.0
- gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1
-)
+go 1.24.9
require (
github.com/blang/semver v3.5.1+incompatible
@@ -14,7 +8,7 @@
github.com/docker/docker v28.3.1+incompatible
github.com/fatih/color v1.18.0
github.com/json-iterator/go v1.1.12
- github.com/kubearmor/KubeArmor/protobuf
v0.0.0-20250707142851-6b7fc953dd6c
+ github.com/kubearmor/KubeArmor/protobuf
v0.0.0-20251112065124-b3d682e08d62
github.com/mholt/archiver/v3 v3.5.1
github.com/moby/term v0.5.2
github.com/olekukonko/tablewriter v0.0.5
@@ -59,7 +53,6 @@
require (
dario.cat/mergo v1.0.2 // indirect
- github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6
// indirect
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c //
indirect
github.com/BurntSushi/toml v1.5.0 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
@@ -69,27 +62,24 @@
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
github.com/Masterminds/squirrel v1.5.4 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/andybalholm/brotli v1.2.0 // indirect
+ github.com/andybalholm/brotli v1.0.1 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 //
indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
- github.com/carapace-sh/carapace-shlex v1.0.1 // indirect
- github.com/chai2010/gettext-go v1.0.3 // indirect
- github.com/charmbracelet/colorprofile v0.3.1 // indirect
+ github.com/chai2010/gettext-go v1.0.2 // indirect
+ github.com/charmbracelet/colorprofile
v0.2.3-0.20250311203215-f60798e515dc // indirect
github.com/charmbracelet/x/ansi v0.9.3 // indirect
- github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
+ github.com/charmbracelet/x/cellbuf
v0.0.13-0.20250311204145-2c3ea96c31dd // indirect
github.com/charmbracelet/x/term v0.2.1 // indirect
github.com/containerd/containerd v1.7.27 // indirect
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v1.0.0-rc.1 // indirect
- github.com/creack/pty v1.1.21 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc //
indirect
github.com/distribution/reference v0.6.0 // indirect
- github.com/docker/docker-credential-helpers v0.9.3 // indirect
github.com/docker/go-connections v0.5.0 // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 //
indirect
@@ -100,7 +90,7 @@
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fxamacker/cbor/v2 v2.8.0 // indirect
- github.com/go-errors/errors v1.5.1 // indirect
+ github.com/go-errors/errors v1.4.2 // indirect
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
@@ -112,12 +102,14 @@
github.com/gobwas/glob v0.2.3 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/snappy v1.0.0 // indirect
+ github.com/golang/protobuf v1.5.4 // indirect
+ github.com/golang/snappy v0.0.2 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/go-github/v30 v30.1.0 // indirect
- github.com/google/go-querystring v1.1.0 // indirect
+ github.com/google/go-querystring v1.0.0 // indirect
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect
+ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 //
indirect
github.com/gosuri/uitable v0.0.4 // indirect
@@ -125,20 +117,20 @@
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
- github.com/imdario/mergo v0.3.16 // indirect
+ github.com/imdario/mergo v0.3.13 // indirect
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf
// indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmoiron/sqlx v1.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/klauspost/compress v1.18.0 // indirect
- github.com/klauspost/pgzip v1.2.6 // indirect
+ github.com/klauspost/pgzip v1.2.5 // indirect
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
github.com/lib/pq v1.10.9 // indirect
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de //
indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
- github.com/mattn/go-colorable v0.1.14 // indirect
+ github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
github.com/mattn/go-runewidth v0.0.16 // indirect
@@ -157,18 +149,17 @@
github.com/muesli/termenv v0.16.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 //
indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f //
indirect
- github.com/nwaples/rardecode v1.1.3 // indirect
+ github.com/nwaples/rardecode v1.1.0 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
- github.com/pierrec/lz4/v4 v4.1.22 // indirect
+ github.com/pierrec/lz4/v4 v4.1.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rubenv/sql-migrate v1.8.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sagikazarmark/locafero v0.9.0 // indirect
- github.com/sergi/go-diff v1.3.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.14.0 // indirect
@@ -177,7 +168,7 @@
github.com/spf13/viper v1.20.1 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/tcnksm/go-gitconfig v0.1.2 // indirect
- github.com/ulikunitz/xz v0.5.12 // indirect
+ github.com/ulikunitz/xz v0.5.9 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb //
indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
// indirect
@@ -201,11 +192,11 @@
golang.org/x/text v0.26.0 // indirect
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.34.0 // indirect
- google.golang.org/genproto/googleapis/rpc
v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
+ google.golang.org/genproto/googleapis/rpc
v0.0.0-20250603155806-513f23925822 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- gotest.tools/v3 v3.5.1 // indirect
+ gotest.tools/v3 v3.5.2 // indirect
k8s.io/apiserver v0.33.2 // indirect
k8s.io/component-base v0.33.2 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
@@ -213,8 +204,8 @@
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
sigs.k8s.io/controller-runtime v0.21.0 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
- sigs.k8s.io/kustomize/api v0.20.0 // indirect
- sigs.k8s.io/kustomize/kyaml v0.20.0 // indirect
+ sigs.k8s.io/kustomize/api v0.19.0 // indirect
+ sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/go.sum
new/kubearmor-client-1.4.5/go.sum
--- old/kubearmor-client-1.4.4/go.sum 2025-07-08 09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/go.sum 2025-11-13 10:46:41.000000000 +0100
@@ -2,8 +2,8 @@
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod
h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
-github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6
h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
-github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod
h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24
h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod
h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c
h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod
h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/BurntSushi/toml v1.5.0
h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
@@ -26,9 +26,8 @@
github.com/Masterminds/squirrel v1.5.4/go.mod
h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
github.com/Microsoft/go-winio v0.6.2
h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod
h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
+github.com/andybalholm/brotli v1.0.1
h1:KqhlKozYbRtJvsPrrEeXcO+N2l6NYT5A2QAFmSULpEc=
github.com/andybalholm/brotli v1.0.1/go.mod
h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
-github.com/andybalholm/brotli v1.2.0
h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
-github.com/andybalholm/brotli v1.2.0/go.mod
h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
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/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
@@ -47,26 +46,24 @@
github.com/blang/semver/v4 v4.0.0/go.mod
h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/bshuster-repo/logrus-logstash-hook v1.0.0
h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70=
github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod
h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
-github.com/carapace-sh/carapace-shlex v1.0.1
h1:ww0JCgWpOVuqWG7k3724pJ18Lq8gh5pHQs9j3ojUs1c=
-github.com/carapace-sh/carapace-shlex v1.0.1/go.mod
h1:lJ4ZsdxytE0wHJ8Ta9S7Qq0XpjgjU0mdfCqiI2FHx7M=
github.com/cenkalti/backoff/v4 v4.3.0
h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
github.com/cenkalti/backoff/v4 v4.3.0/go.mod
h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cespare/xxhash/v2 v2.3.0
h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod
h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/chai2010/gettext-go v1.0.3
h1:9liNh8t+u26xl5ddmWLmsOsdNLwkdRTg5AG+JnTiM80=
-github.com/chai2010/gettext-go v1.0.3/go.mod
h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
+github.com/chai2010/gettext-go v1.0.2
h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
+github.com/chai2010/gettext-go v1.0.2/go.mod
h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
github.com/charmbracelet/bubbles v0.21.0
h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs=
github.com/charmbracelet/bubbles v0.21.0/go.mod
h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg=
github.com/charmbracelet/bubbletea v1.3.6
h1:VkHIxPJQeDt0aFJIsVxw8BQdh/F/L2KKZGsK6et5taU=
github.com/charmbracelet/bubbletea v1.3.6/go.mod
h1:oQD9VCRQFF8KplacJLo28/jofOI2ToOfGYeFgBBxHOc=
-github.com/charmbracelet/colorprofile v0.3.1
h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40=
-github.com/charmbracelet/colorprofile v0.3.1/go.mod
h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0=
+github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc
h1:4pZI35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs=
+github.com/charmbracelet/colorprofile
v0.2.3-0.20250311203215-f60798e515dc/go.mod
h1:X4/0JoqgTIPSFcRA/P6INZzIuyqdFY5rm8tb41s9okk=
github.com/charmbracelet/lipgloss v1.1.0
h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY=
github.com/charmbracelet/lipgloss v1.1.0/go.mod
h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30=
github.com/charmbracelet/x/ansi v0.9.3
h1:BXt5DHS/MKF+LjuK4huWrC6NCvHtexww7dMayh6GXd0=
github.com/charmbracelet/x/ansi v0.9.3/go.mod
h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE=
-github.com/charmbracelet/x/cellbuf v0.0.13
h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
-github.com/charmbracelet/x/cellbuf v0.0.13/go.mod
h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
+github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd
h1:vy0GVL4jeHEwG5YOXDmi86oYw2yuYUGqz6a8sLwg0X8=
+github.com/charmbracelet/x/cellbuf
v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod
h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91
h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ=
github.com/charmbracelet/x/exp/golden
v0.0.0-20241011142426-46044092ad91/go.mod
h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
github.com/charmbracelet/x/term v0.2.1
h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
@@ -86,8 +83,8 @@
github.com/coreos/go-systemd/v22 v22.5.0
h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod
h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
-github.com/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0=
-github.com/creack/pty v1.1.21/go.mod
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
+github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
+github.com/creack/pty v1.1.18/go.mod
h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
github.com/cyphar/filepath-securejoin v0.4.1
h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
github.com/cyphar/filepath-securejoin v0.4.1/go.mod
h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/davecgh/go-spew v1.1.0/go.mod
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -104,8 +101,8 @@
github.com/distribution/reference v0.6.0/go.mod
h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
github.com/docker/docker v28.3.1+incompatible
h1:20+BmuA9FXlCX4ByQ0vYJcUEnOmRM6XljDnFWR+jCyY=
github.com/docker/docker v28.3.1+incompatible/go.mod
h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
-github.com/docker/docker-credential-helpers v0.9.3
h1:gAm/VtF9wgqJMoxzT3Gj5p4AqIjCBS4wrsOh9yRqcz8=
-github.com/docker/docker-credential-helpers v0.9.3/go.mod
h1:x+4Gbw9aGmChi3qTLZj8Dfn0TD20M/fuWy0E5+WDeCo=
+github.com/docker/docker-credential-helpers v0.8.2
h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
+github.com/docker/docker-credential-helpers v0.8.2/go.mod
h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
github.com/docker/go-connections v0.5.0
h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
github.com/docker/go-connections v0.5.0/go.mod
h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c
h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8=
@@ -140,8 +137,8 @@
github.com/fsnotify/fsnotify v1.9.0/go.mod
h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/fxamacker/cbor/v2 v2.8.0
h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU=
github.com/fxamacker/cbor/v2 v2.8.0/go.mod
h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
-github.com/go-errors/errors v1.5.1
h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk=
-github.com/go-errors/errors v1.5.1/go.mod
h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
+github.com/go-errors/errors v1.4.2
h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
+github.com/go-errors/errors v1.4.2/go.mod
h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
github.com/go-gorp/gorp/v3 v3.1.0
h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs=
github.com/go-gorp/gorp/v3 v3.1.0/go.mod
h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw=
github.com/go-logr/logr v1.2.2/go.mod
h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -172,14 +169,12 @@
github.com/golang/protobuf v1.3.2/go.mod
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.4
h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod
h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
+github.com/golang/snappy v0.0.2 h1:aeE13tS0IiQgFjYdoL8qN3K1N2bXXtI6Vi51/y7BpMw=
github.com/golang/snappy v0.0.2/go.mod
h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs=
-github.com/golang/snappy v1.0.0/go.mod
h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
github.com/google/btree v1.1.3/go.mod
h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
github.com/google/gnostic-models v0.7.0
h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo=
github.com/google/gnostic-models v0.7.0/go.mod
h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
-github.com/google/go-cmp v0.5.2/go.mod
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
@@ -188,12 +183,13 @@
github.com/google/go-github v17.0.0+incompatible/go.mod
h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-github/v30 v30.1.0
h1:VLDx+UolQICEOKu2m4uAoMti1SxuEBAl7RSEG16L+Oo=
github.com/google/go-github/v30 v30.1.0/go.mod
h1:n8jBpHl45a/rlBUtRJMOG4GhNADUQFEufcolZ95JfU8=
+github.com/google/go-querystring v1.0.0
h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
github.com/google/go-querystring v1.0.0/go.mod
h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
-github.com/google/go-querystring v1.1.0
h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
-github.com/google/go-querystring v1.1.0/go.mod
h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod
h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db
h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod
h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod
h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/handlers v1.5.2
h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE=
@@ -221,8 +217,8 @@
github.com/hpcloud/tail v1.0.0/go.mod
h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.5.0
h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod
h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/imdario/mergo v0.3.16
h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod
h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/imdario/mergo v0.3.13
h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
+github.com/imdario/mergo v0.3.13/go.mod
h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf
h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8=
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod
h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg=
github.com/inconshreveable/mousetrap v1.1.0
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -240,9 +236,8 @@
github.com/klauspost/compress v1.18.0
h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
github.com/klauspost/compress v1.18.0/go.mod
h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/klauspost/cpuid v1.2.0/go.mod
h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
+github.com/klauspost/pgzip v1.2.5
h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE=
github.com/klauspost/pgzip v1.2.5/go.mod
h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
-github.com/klauspost/pgzip v1.2.6
h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
-github.com/klauspost/pgzip v1.2.6/go.mod
h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/kr/pretty v0.1.0/go.mod
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod
h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -258,8 +253,8 @@
github.com/kubearmor/KubeArmor/pkg/KubeArmorController
v0.0.0-20250707142851-6b7fc953dd6c/go.mod
h1:xekCBFS6h63sH25RJaQZiPbCJ7HDKGIk9P1f2ZhVExU=
github.com/kubearmor/KubeArmor/pkg/KubeArmorOperator
v0.0.0-20250707142851-6b7fc953dd6c
h1:QYmtWVDeBULE6zUowfbCTSlbaHRHhYO+H9isgICYWt0=
github.com/kubearmor/KubeArmor/pkg/KubeArmorOperator
v0.0.0-20250707142851-6b7fc953dd6c/go.mod
h1:9TkYHGVKqvHJKn4RhcHq0pv12jbaogpdlMciFfzZjeI=
-github.com/kubearmor/KubeArmor/protobuf v0.0.0-20250707142851-6b7fc953dd6c
h1:DnQKvgM0vJUwbUY+riDtM2NZSFLImgNRlZPUd/ZMrYw=
-github.com/kubearmor/KubeArmor/protobuf
v0.0.0-20250707142851-6b7fc953dd6c/go.mod
h1:ZQIx9XAMhZ+D3obBOaCr62DwcxpxLPUHSkLqECovA2c=
+github.com/kubearmor/KubeArmor/protobuf v0.0.0-20251112065124-b3d682e08d62
h1:2ve8oG5GxO0R4veMP6Af63nh5CyBcx56OTp415txSdA=
+github.com/kubearmor/KubeArmor/protobuf
v0.0.0-20251112065124-b3d682e08d62/go.mod
h1:PyS1HDa7oXyxqXYvuLHphlYGcCoB3eLXWt+TwgUDJV0=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0
h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod
h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0
h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
@@ -272,9 +267,8 @@
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
github.com/mailru/easyjson v0.9.0
h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
github.com/mailru/easyjson v0.9.0/go.mod
h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
+github.com/mattn/go-colorable v0.1.13
h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod
h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
-github.com/mattn/go-colorable v0.1.14
h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
-github.com/mattn/go-colorable v0.1.14/go.mod
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.16/go.mod
h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19/go.mod
h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20
h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
@@ -328,9 +322,8 @@
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod
h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod
h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
+github.com/nwaples/rardecode v1.1.0
h1:vSxaY8vQhOcVr4mm5e8XllHWTiM4JF507A0Katqw7MQ=
github.com/nwaples/rardecode v1.1.0/go.mod
h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
-github.com/nwaples/rardecode v1.1.3
h1:cWCaZwfM5H7nAD6PyEdcVnczzV8i/JtotnyW/dD9lEc=
-github.com/nwaples/rardecode v1.1.3/go.mod
h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0=
github.com/olekukonko/tablewriter v0.0.5
h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod
h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v1.6.0/go.mod
h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -349,9 +342,8 @@
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod
h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5
h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI=
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod
h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE=
+github.com/pierrec/lz4/v4 v4.1.2
h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM=
github.com/pierrec/lz4/v4 v4.1.2/go.mod
h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
-github.com/pierrec/lz4/v4 v4.1.22
h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
-github.com/pierrec/lz4/v4 v4.1.22/go.mod
h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod
h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -390,8 +382,8 @@
github.com/russross/blackfriday/v2 v2.1.0/go.mod
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.9.0
h1:GbgQGNtTrEmddYDSAH9QLRyfAHY12md+8YFTqyMTC9k=
github.com/sagikazarmark/locafero v0.9.0/go.mod
h1:UBUyz37V+EdMS3hDF3QWIiVr/2dPrx49OMO0Bn0hJqk=
-github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
-github.com/sergi/go-diff v1.3.1/go.mod
h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
+github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
+github.com/sergi/go-diff v1.2.0/go.mod
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shopspring/decimal v1.4.0
h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
github.com/shopspring/decimal v1.4.0/go.mod
h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
github.com/sirupsen/logrus v1.9.3
h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
@@ -413,7 +405,6 @@
github.com/stretchr/objx v0.5.2/go.mod
h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.2/go.mod
h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod
h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0/go.mod
h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.6.1/go.mod
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.10.0
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
@@ -423,9 +414,8 @@
github.com/tcnksm/go-gitconfig v0.1.2
h1:iiDhRitByXAEyjgBqsKi9QU4o2TNtv9kPP3RgPgXBPw=
github.com/tcnksm/go-gitconfig v0.1.2/go.mod
h1:/8EhP4H7oJZdIPyT+/UIsG87kTzrzM4UsLGSItWYCpE=
github.com/ulikunitz/xz v0.5.8/go.mod
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
+github.com/ulikunitz/xz v0.5.9 h1:RsKRIA2MO8x56wkkcd3LbtcE/uMszhb6DpRf+3uwa3I=
github.com/ulikunitz/xz v0.5.9/go.mod
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
-github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
-github.com/ulikunitz/xz v0.5.12/go.mod
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod
h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod
h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
@@ -441,8 +431,6 @@
github.com/xlab/treeprint v1.2.0/go.mod
h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod
h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
-github.com/xyproto/randomstring v1.0.5
h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
-github.com/xyproto/randomstring v1.0.5/go.mod
h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
github.com/yuin/goldmark v1.1.27/go.mod
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod
h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
go.opentelemetry.io/auto/sdk v1.1.0
h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
@@ -570,15 +558,14 @@
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80
h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ=
google.golang.org/genproto/googleapis/api v0.0.0-20250324211829-b45e905df463
h1:hE3bRWtU6uceqlh4fhrSnUyjKHMKB9KrTLLG+bc0ddM=
google.golang.org/genproto/googleapis/api
v0.0.0-20250324211829-b45e905df463/go.mod
h1:U90ffi8eUL9MwPcrJylN5+Mk2v3vuPDptd5yyNUiRR8=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7
h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY=
-google.golang.org/genproto/googleapis/rpc
v0.0.0-20250707201910-8d1bb00bc6a7/go.mod
h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822
h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
+google.golang.org/genproto/googleapis/rpc
v0.0.0-20250603155806-513f23925822/go.mod
h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
google.golang.org/grpc v1.73.0/go.mod
h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
google.golang.org/protobuf v1.36.6
h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod
h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod
h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0
h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
@@ -587,12 +574,15 @@
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod
h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod
h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
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/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
-gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
+gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
+gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
helm.sh/helm/v3 v3.18.3 h1:+cvyGKgs7Jt7BN3Klmb4SsG4IkVpA7GAZVGvMz6VO4I=
helm.sh/helm/v3 v3.18.3/go.mod h1:wUc4n3txYBocM7S9RjTeZBN9T/b5MjffpcSsWEjSIpw=
k8s.io/api v0.33.2 h1:YgwIS5jKfA+BZg//OQhkJNIfie/kmRsO0BmNaVSimvY=
@@ -623,10 +613,10 @@
sigs.k8s.io/controller-runtime v0.21.0/go.mod
h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8
h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod
h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
-sigs.k8s.io/kustomize/api v0.20.0
h1:xPLqcobHI0bThyRUteO+nCV8G4d1Rlo5HafO57VRcas=
-sigs.k8s.io/kustomize/api v0.20.0/go.mod
h1:F6CfaV27oevRCMJgehLqyX81dlUnRX/Fc13Uo7+OSo4=
-sigs.k8s.io/kustomize/kyaml v0.20.0
h1:tT8KMKi4R3hCJ1+9HDdek2VoXpkerP92ZfF6fDgGw14=
-sigs.k8s.io/kustomize/kyaml v0.20.0/go.mod
h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
+sigs.k8s.io/kustomize/api v0.19.0
h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ=
+sigs.k8s.io/kustomize/api v0.19.0/go.mod
h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o=
+sigs.k8s.io/kustomize/kyaml v0.19.0
h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA=
+sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod
h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY=
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod
h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
sigs.k8s.io/randfill v1.0.0/go.mod
h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/k8s/client.go
new/kubearmor-client-1.4.5/k8s/client.go
--- old/kubearmor-client-1.4.4/k8s/client.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/k8s/client.go 2025-11-13 10:46:41.000000000
+0100
@@ -6,7 +6,7 @@
import (
"context"
-
+ "github.com/kubearmor/kubearmor-client/recommend/common"
"github.com/rs/zerolog/log"
apiextensionsclientset
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -102,3 +102,162 @@
}
return secret.Items[0].Name, secret.Items[0].Namespace
}
+
+func (k *Client) ListObjects(o common.Options) ([]common.Object, error) {
+ labelSelector := v1.FormatLabelSelector(&v1.LabelSelector{MatchLabels:
common.LabelArrayToLabelMap(o.Labels)})
+ if labelSelector == "<none>" {
+ labelSelector = ""
+ }
+ // CronJobs
+ cronJobs, err :=
k.K8sClientset.BatchV1().CronJobs(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing cronjobs: %v", err)
+ return nil, err
+ }
+
+ // DaemonSets
+ daemonSets, err :=
k.K8sClientset.AppsV1().DaemonSets(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing daemonsets: %v", err)
+ return nil, err
+ }
+
+ // Deployments
+ deployments, err :=
k.K8sClientset.AppsV1().Deployments(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing deployments: %v", err)
+ return nil, err
+ }
+
+ // Jobs
+ jobs, err :=
k.K8sClientset.BatchV1().Jobs(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing jobs: %v", err)
+ return nil, err
+ }
+
+ // ReplicaSets
+ replicaSets, err :=
k.K8sClientset.AppsV1().ReplicaSets(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing replicasets: %v", err)
+ return nil, err
+ }
+
+ // StatefulSets
+ statefulSets, err :=
k.K8sClientset.AppsV1().StatefulSets(o.Namespace).List(context.Background(),
v1.ListOptions{
+ LabelSelector: labelSelector,
+ })
+ if err != nil {
+ log.Error().Msgf("error listing statefulsets: %v", err)
+ return nil, err
+ }
+
+ var result []common.Object
+
+ for _, cj := range cronJobs.Items {
+ var images []string
+ for _, container := range
cj.Spec.JobTemplate.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+
+ result = append(result, common.Object{
+ Name: cj.Name,
+ Namespace: cj.Namespace,
+ Labels: cj.Spec.JobTemplate.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ for _, ds := range daemonSets.Items {
+ var images []string
+ for _, container := range ds.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+
+ result = append(result, common.Object{
+ Name: ds.Name,
+ Namespace: ds.Namespace,
+ Labels: ds.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ for _, dp := range deployments.Items {
+ var images []string
+ for _, container := range dp.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+
+ result = append(result, common.Object{
+ Name: dp.Name,
+ Namespace: dp.Namespace,
+ Labels: dp.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ for _, j := range jobs.Items {
+ var images []string
+ for _, container := range j.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+
+ result = append(result, common.Object{
+ Name: j.Name,
+ Namespace: j.Namespace,
+ Labels: j.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ for _, rs := range replicaSets.Items {
+ isOwned := false
+ for _, owner := range rs.OwnerReferences {
+ if owner.Kind == "Deployment" || owner.Kind ==
"StatefulSet" || owner.Kind == "DaemonSet" || owner.Kind == "ReplicaSet" {
+ isOwned = true
+ break
+ }
+ }
+ if isOwned {
+ continue
+ }
+
+ var images []string
+ for _, container := range rs.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+ result = append(result, common.Object{
+ Name: rs.Name,
+ Namespace: rs.Namespace,
+ Labels: rs.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ for _, sts := range statefulSets.Items {
+ var images []string
+ for _, container := range sts.Spec.Template.Spec.Containers {
+ images = append(images, container.Image)
+ }
+
+ result = append(result, common.Object{
+ Name: sts.Name,
+ Namespace: sts.Namespace,
+ Labels: sts.Spec.Template.Labels,
+ Images: images,
+ })
+ }
+
+ log.Printf("+%v", result)
+ return result, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/log/logClient.go
new/kubearmor-client-1.4.5/log/logClient.go
--- old/kubearmor-client-1.4.4/log/logClient.go 2025-07-08 09:29:10.000000000
+0200
+++ new/kubearmor-client-1.4.5/log/logClient.go 2025-11-13 10:46:41.000000000
+0100
@@ -450,6 +450,7 @@
"Operation",
"Action",
"Data",
+ "EventData",
"Enforcer",
"Result",
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/recommend/common/common.go
new/kubearmor-client-1.4.5/recommend/common/common.go
--- old/kubearmor-client-1.4.4/recommend/common/common.go 2025-07-08
09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/recommend/common/common.go 2025-11-13
10:46:41.000000000 +0100
@@ -7,6 +7,7 @@
import (
"os"
"runtime"
+ "strings"
pol
"github.com/kubearmor/KubeArmor/pkg/KubeArmorController/api/security.kubearmor.com/v1"
)
@@ -14,6 +15,21 @@
// Handler interface
var Handler interface{}
+// LabelMap is an alias for map[string]string
+type LabelMap = map[string]string
+
+type Client interface {
+ ListObjects(o Options) ([]Object, error)
+}
+
+// Object contains brief information about a k8s object
+type Object struct {
+ Name string
+ Namespace string
+ Labels LabelMap
+ Images []string
+}
+
// MatchSpec spec to match for defining policy
type MatchSpec struct {
Name string `json:"name" yaml:"name"`
@@ -46,6 +62,7 @@
OutDir string
ReportFile string
Config string
+ K8s bool
}
// UserHome function returns users home directory
@@ -59,3 +76,18 @@
}
return os.Getenv("HOME")
}
+
+func labelSplitter(r rune) bool {
+ return r == ':' || r == '='
+}
+func LabelArrayToLabelMap(labels []string) LabelMap {
+ labelMap := LabelMap{}
+ for _, label := range labels {
+ kvPair := strings.FieldsFunc(label, labelSplitter)
+ if len(kvPair) != 2 {
+ continue
+ }
+ labelMap[kvPair[0]] = kvPair[1]
+ }
+ return labelMap
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/recommend/image/image.go
new/kubearmor-client-1.4.5/recommend/image/image.go
--- old/kubearmor-client-1.4.4/recommend/image/image.go 2025-07-08
09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/recommend/image/image.go 2025-11-13
10:46:41.000000000 +0100
@@ -234,7 +234,11 @@
}
} else {
// policy recommendation based on k8s manifest
- policyDir = fmt.Sprintf("%s-%s", img.Namespace, img.Deployment)
+ if img.Namespace == "" {
+ policyDir = fmt.Sprintf("%s", img.Deployment)
+ } else {
+ policyDir = fmt.Sprintf("%s-%s", img.Namespace,
img.Deployment)
+ }
}
return filepath.Join(outDir, policyDir)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kubearmor-client-1.4.4/recommend/recommend.go
new/kubearmor-client-1.4.5/recommend/recommend.go
--- old/kubearmor-client-1.4.4/recommend/recommend.go 2025-07-08
09:29:10.000000000 +0200
+++ new/kubearmor-client-1.4.5/recommend/recommend.go 2025-11-13
10:46:41.000000000 +0100
@@ -5,7 +5,6 @@
package recommend
import (
- "context"
"errors"
"fmt"
"os"
@@ -13,7 +12,6 @@
"strings"
"github.com/fatih/color"
- "github.com/kubearmor/kubearmor-client/k8s"
"github.com/kubearmor/kubearmor-client/recommend/common"
"github.com/kubearmor/kubearmor-client/recommend/engines"
"github.com/kubearmor/kubearmor-client/recommend/image"
@@ -22,49 +20,10 @@
"sigs.k8s.io/yaml"
log "github.com/sirupsen/logrus"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
var options common.Options
-// Deployment contains brief information about a k8s deployment
-type Deployment struct {
- Name string
- Namespace string
- Labels LabelMap
- Images []string
-}
-
-// LabelMap is an alias for map[string]string
-type LabelMap = map[string]string
-
-func labelSplitter(r rune) bool {
- return r == ':' || r == '='
-}
-
-func labelArrayToLabelMap(labels []string) LabelMap {
- labelMap := LabelMap{}
- for _, label := range labels {
- kvPair := strings.FieldsFunc(label, labelSplitter)
- if len(kvPair) != 2 {
- continue
- }
- labelMap[kvPair[0]] = kvPair[1]
- }
- return labelMap
-}
-
-func matchLabels(filter, selector LabelMap) bool {
- match := true
- for k, v := range filter {
- if selector[k] != v {
- match = false
- break
- }
- }
- return match
-}
-
func unique(s []string) []string {
inResult := make(map[string]bool)
var result []string
@@ -108,7 +67,7 @@
log.WithError(err).Fatal("failed to read report file")
return
}
- fmt.Println(string(data))
+ fmt.Println(strings.Trim(string(data), "\n"))
}
func writePolicyFile(policMap map[string][]byte, msMap map[string]interface{})
{
@@ -137,44 +96,26 @@
}
// Recommend handler for karmor cli tool
-func Recommend(c *k8s.Client, o common.Options, policyGenerators
...engines.Engine) error {
+func Recommend(client common.Client, o common.Options, policyGenerators
...engines.Engine) error {
var policyMap map[string][]byte
var msMap map[string]interface{}
var err error
- deployments := []Deployment{}
+ var Objects []common.Object
- labelMap := labelArrayToLabelMap(o.Labels)
+ labelMap := common.LabelArrayToLabelMap(o.Labels)
if len(o.Images) == 0 {
- // recommendation based on k8s manifest
- dps, err :=
c.K8sClientset.AppsV1().Deployments(o.Namespace).List(context.TODO(),
v1.ListOptions{})
+ Objects, err = client.ListObjects(o)
if err != nil {
return err
}
- for _, dp := range dps.Items {
-
- if !matchLabels(labelMap, dp.Spec.Template.Labels) {
- continue
- }
- images := []string{}
- for _, container := range
dp.Spec.Template.Spec.Containers {
- images = append(images, container.Image)
- }
-
- deployments = append(deployments, Deployment{
- Name: dp.Name,
- Namespace: dp.Namespace,
- Labels: dp.Spec.Template.Labels,
- Images: images,
- })
- }
- if len(deployments) == 0 {
+ if len(Objects) == 0 {
log.WithFields(log.Fields{
"namespace": o.Namespace,
- }).Error("no k8s deployments found, hence nothing to
recommend!")
+ }).Error("no Object found to secure, hence nothing to
recommend!")
return nil
}
} else {
- deployments = append(deployments, Deployment{
+ Objects = append(Objects, common.Object{
Namespace: o.Namespace,
Labels: labelMap,
Images: o.Images,
@@ -196,14 +137,14 @@
if err := gen.Init(); err != nil {
log.WithError(err).Error("policy generator init failed")
}
- for _, deployment := range deployments {
- for _, i := range deployment.Images {
+ for _, obj := range Objects {
+ for _, v := range obj.Images {
img := image.Info{
- Name: i,
- Namespace: deployment.Namespace,
- Labels: deployment.Labels,
- Image: i,
- Deployment: deployment.Name,
+ Name: v,
+ Namespace: obj.Namespace,
+ Labels: obj.Labels,
+ Image: v,
+ Deployment: obj.Name,
}
reg.Analyze(&img)
if policyMap, msMap, err = gen.Scan(&img, o);
err != nil {
++++++ kubearmor-client.obsinfo ++++++
--- /var/tmp/diff_new_pack.BCDkFq/_old 2025-11-21 16:56:18.517425493 +0100
+++ /var/tmp/diff_new_pack.BCDkFq/_new 2025-11-21 16:56:18.525425830 +0100
@@ -1,5 +1,5 @@
name: kubearmor-client
-version: 1.4.4
-mtime: 1751959750
-commit: 05c25322be6a2f44fbbe0e4a22b5aa62e6ad094a
+version: 1.4.5
+mtime: 1763027201
+commit: f2ed4970aad4c729c8be2df27e2bf8eb504fcafc
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/kubearmor-client/vendor.tar.gz
/work/SRC/openSUSE:Factory/.kubearmor-client.new.2061/vendor.tar.gz differ:
char 106, line 1