Skip to content

Commit d7a3324

Browse files
authored
Kubescape tool support (#38)
* Add Kubescape integration - Introduced Kubescape tool support, including registration of various tools for health checks, vulnerability manifests, and configuration scans. - Implemented specific error handling for Kubescape-related operations, providing detailed suggestions based on error types. Signed-off-by: Ben <ben@armosec.io> * Enhance Kubescape tool by adding runtime observability features - Introduced checks for ApplicationProfiles and NetworkNeighborhoods CRDs in health checks, with corresponding recommendations for enabling runtime observability. - Added handlers for listing and retrieving ApplicationProfiles and NetworkNeighborhoods, capturing runtime behavior and network communication patterns of workloads. Signed-off-by: Ben <ben@armosec.io> * Fix linter errors: remove unused SBOM functions and suppress deprecated test warnings Signed-off-by: Ben <ben@armosec.io> * ci: increase golangci-lint timeout to 5m to prevent context deadline errors Signed-off-by: Ben <ben@armosec.io> * Updating timeouts for golint Signed-off-by: Ben <ben@armosec.io> --------- Signed-off-by: Ben <ben@armosec.io>
1 parent 448a31e commit d7a3324

8 files changed

Lines changed: 3808 additions & 11 deletions

File tree

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ vet: ## Run go vet against code.
3737

3838
.PHONY: lint
3939
lint: golangci-lint ## Run golangci-lint linter
40-
$(GOLANGCI_LINT) run --build-tags=test
40+
$(GOLANGCI_LINT) run --build-tags=test --timeout=10m
4141

4242
.PHONY: lint-fix
4343
lint-fix: golangci-lint ## Run golangci-lint linter and perform fixes
44-
$(GOLANGCI_LINT) run --build-tags=test --fix
44+
$(GOLANGCI_LINT) run --build-tags=test --fix --timeout=10m
4545

4646
.PHONY: lint-config
4747
lint-config: golangci-lint ## Verify golangci-lint linter configuration

cmd/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/kagent-dev/tools/pkg/helm"
2323
"github.com/kagent-dev/tools/pkg/istio"
2424
"github.com/kagent-dev/tools/pkg/k8s"
25+
"github.com/kagent-dev/tools/pkg/kubescape"
2526
"github.com/kagent-dev/tools/pkg/prometheus"
2627
"github.com/kagent-dev/tools/pkg/utils"
2728
"github.com/spf13/cobra"
@@ -292,6 +293,7 @@ func registerMCP(mcp *server.MCPServer, enabledToolProviders []string, kubeconfi
292293
"helm": helm.RegisterTools,
293294
"istio": istio.RegisterTools,
294295
"k8s": func(s *server.MCPServer) { k8s.RegisterTools(s, nil, kubeconfig) },
296+
"kubescape": func(s *server.MCPServer) { kubescape.RegisterTools(s, kubeconfig) },
295297
"prometheus": prometheus.RegisterTools,
296298
"utils": utils.RegisterTools,
297299
}

go.mod

Lines changed: 134 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,190 @@ go 1.25.6
44

55
require (
66
github.com/joho/godotenv v1.5.1
7+
github.com/kubescape/k8s-interface v0.0.200
8+
github.com/kubescape/storage v0.0.238
79
github.com/mark3labs/mcp-go v0.43.2
810
github.com/onsi/ginkgo/v2 v2.27.2
911
github.com/onsi/gomega v1.38.2
1012
github.com/spf13/cobra v1.10.2
1113
github.com/stretchr/testify v1.11.1
1214
github.com/tmc/langchaingo v0.1.14
13-
go.opentelemetry.io/otel v1.38.0
15+
go.opentelemetry.io/otel v1.39.0
1416
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0
1517
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0
1618
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0
17-
go.opentelemetry.io/otel/metric v1.38.0
19+
go.opentelemetry.io/otel/metric v1.39.0
1820
go.opentelemetry.io/otel/sdk v1.38.0
19-
go.opentelemetry.io/otel/trace v1.38.0
21+
go.opentelemetry.io/otel/trace v1.39.0
22+
k8s.io/api v0.35.0
23+
k8s.io/apiextensions-apiserver v0.35.0
24+
k8s.io/apimachinery v0.35.0
25+
k8s.io/client-go v0.35.0
2026
)
2127

2228
require (
2329
github.com/Masterminds/semver/v3 v3.4.0 // indirect
30+
github.com/acobaugh/osrelease v0.1.0 // indirect
31+
github.com/anchore/go-logger v0.0.0-20250318195838-07ae343dd722 // indirect
32+
github.com/anchore/packageurl-go v0.1.1-0.20250220190351-d62adb6e1115 // indirect
33+
github.com/anchore/stereoscope v0.1.9-0.20250826202322-ef061ea78385 // indirect
34+
github.com/anchore/syft v1.32.0 // indirect
35+
github.com/armosec/armoapi-go v0.0.596 // indirect
36+
github.com/armosec/gojay v1.2.17 // indirect
37+
github.com/armosec/utils-go v0.0.58 // indirect
38+
github.com/armosec/utils-k8s-go v0.0.30 // indirect
39+
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
2440
github.com/bahlo/generic-list-go v0.2.0 // indirect
41+
github.com/becheran/wildmatch-go v1.0.0 // indirect
42+
github.com/beorn7/perks v1.0.1 // indirect
43+
github.com/blang/semver/v4 v4.0.0 // indirect
44+
github.com/bmatcuk/doublestar/v4 v4.9.1 // indirect
45+
github.com/briandowns/spinner v1.23.2 // indirect
2546
github.com/buger/jsonparser v1.1.1 // indirect
47+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
2648
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
49+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
50+
github.com/cilium/cilium v1.16.17 // indirect
51+
github.com/containerd/errdefs v1.0.0 // indirect
52+
github.com/containers/common v0.63.0 // indirect
53+
github.com/coreos/go-oidc/v3 v3.14.1 // indirect
2754
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
2855
github.com/dlclark/regexp2 v1.10.0 // indirect
56+
github.com/docker/cli v28.3.2+incompatible // indirect
57+
github.com/docker/docker v28.3.3+incompatible // indirect
58+
github.com/docker/docker-credential-helpers v0.9.3 // indirect
59+
github.com/docker/go-connections v0.6.0 // indirect
60+
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
61+
github.com/facebookincubator/nvdtools v0.1.5 // indirect
62+
github.com/fatih/color v1.18.0 // indirect
63+
github.com/francoispqt/gojay v1.2.13 // indirect
64+
github.com/fsnotify/fsnotify v1.9.0 // indirect
65+
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
66+
github.com/gabriel-vasile/mimetype v1.4.9 // indirect
67+
github.com/github/go-spdx/v2 v2.3.3 // indirect
68+
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
2969
github.com/go-logr/logr v1.4.3 // indirect
3070
github.com/go-logr/stdr v1.2.2 // indirect
71+
github.com/go-openapi/analysis v0.23.0 // indirect
72+
github.com/go-openapi/errors v0.22.1 // indirect
73+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
74+
github.com/go-openapi/jsonreference v0.21.0 // indirect
75+
github.com/go-openapi/loads v0.22.0 // indirect
76+
github.com/go-openapi/spec v0.21.0 // indirect
77+
github.com/go-openapi/strfmt v0.23.0 // indirect
78+
github.com/go-openapi/swag v0.23.1 // indirect
79+
github.com/go-openapi/validate v0.24.0 // indirect
3180
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
81+
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
82+
github.com/gogo/protobuf v1.3.2 // indirect
83+
github.com/gohugoio/hashstructure v0.5.0 // indirect
84+
github.com/google/gnostic-models v0.7.0 // indirect
3285
github.com/google/go-cmp v0.7.0 // indirect
86+
github.com/google/go-containerregistry v0.20.6 // indirect
87+
github.com/google/licensecheck v0.3.1 // indirect
3388
github.com/google/pprof v0.0.0-20251114195745-4902fdda35c8 // indirect
3489
github.com/google/uuid v1.6.0 // indirect
3590
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect
91+
github.com/hashicorp/errwrap v1.1.0 // indirect
92+
github.com/hashicorp/go-multierror v1.1.1 // indirect
3693
github.com/inconshreveable/mousetrap v1.1.0 // indirect
3794
github.com/invopop/jsonschema v0.13.0 // indirect
95+
github.com/jinzhu/copier v0.4.0 // indirect
96+
github.com/josharian/intern v1.0.0 // indirect
97+
github.com/json-iterator/go v1.1.12 // indirect
98+
github.com/klauspost/compress v1.18.0 // indirect
99+
github.com/kubescape/go-logger v0.0.26 // indirect
100+
github.com/mackerelio/go-osstat v0.2.5 // indirect
38101
github.com/mailru/easyjson v0.9.1 // indirect
102+
github.com/mattn/go-colorable v0.1.14 // indirect
103+
github.com/mattn/go-isatty v0.0.20 // indirect
104+
github.com/mitchellh/go-homedir v1.1.0 // indirect
105+
github.com/mitchellh/mapstructure v1.5.0 // indirect
106+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
107+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
108+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
109+
github.com/oklog/ulid v1.3.1 // indirect
110+
github.com/olvrng/ujson v1.1.0 // indirect
111+
github.com/opencontainers/go-digest v1.0.0 // indirect
112+
github.com/opencontainers/image-spec v1.1.1 // indirect
113+
github.com/opencontainers/runtime-spec v1.2.1 // indirect
114+
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
115+
github.com/petermattis/goid v0.0.0-20241211131331-93ee7e083c43 // indirect
116+
github.com/pierrec/lz4/v4 v4.1.22 // indirect
117+
github.com/pkg/errors v0.9.1 // indirect
39118
github.com/pkoukk/tiktoken-go v0.1.8 // indirect
40119
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
120+
github.com/prometheus/client_golang v1.23.2 // indirect
121+
github.com/prometheus/client_model v0.6.2 // indirect
122+
github.com/prometheus/common v0.66.1 // indirect
123+
github.com/prometheus/procfs v0.16.1 // indirect
124+
github.com/sagikazarmark/locafero v0.7.0 // indirect
125+
github.com/sasha-s/go-deadlock v0.3.5 // indirect
126+
github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e // indirect
127+
github.com/seccomp/libseccomp-golang v0.10.0 // indirect
128+
github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // indirect
129+
github.com/sourcegraph/conc v0.3.0 // indirect
130+
github.com/spf13/afero v1.14.0 // indirect
41131
github.com/spf13/cast v1.10.0 // indirect
42132
github.com/spf13/pflag v1.0.10 // indirect
133+
github.com/spf13/viper v1.20.1 // indirect
134+
github.com/stripe/stripe-go/v74 v74.30.0 // indirect
135+
github.com/subosito/gotenv v1.6.0 // indirect
136+
github.com/sylabs/squashfs v1.0.6 // indirect
137+
github.com/therootcompany/xz v1.0.1 // indirect
138+
github.com/ulikunitz/xz v0.5.15 // indirect
139+
github.com/uptrace/opentelemetry-go-extra/otelutil v0.3.2 // indirect
140+
github.com/uptrace/opentelemetry-go-extra/otelzap v0.3.2 // indirect
141+
github.com/uptrace/uptrace-go v1.37.0 // indirect
142+
github.com/vishvananda/netlink v1.3.1-0.20241022031324-976bd8de7d81 // indirect
143+
github.com/vishvananda/netns v0.0.5 // indirect
144+
github.com/wagoodman/go-partybus v0.0.0-20230516145632-8ccac152c651 // indirect
145+
github.com/wagoodman/go-progress v0.0.0-20230925121702-07e42b3cdba0 // indirect
43146
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
147+
github.com/x448/float16 v0.8.4 // indirect
148+
github.com/yl2chen/cidranger v1.0.2 // indirect
44149
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
150+
go.mongodb.org/mongo-driver v1.17.1 // indirect
45151
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
152+
go.opentelemetry.io/contrib/bridges/otelslog v0.14.0 // indirect
153+
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 // indirect
154+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect
155+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect
46156
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
157+
go.opentelemetry.io/otel/log v0.15.0 // indirect
158+
go.opentelemetry.io/otel/sdk/log v0.13.0 // indirect
159+
go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect
47160
go.opentelemetry.io/proto/otlp v1.8.0 // indirect
161+
go.uber.org/multierr v1.11.0 // indirect
162+
go.uber.org/zap v1.27.0 // indirect
48163
go.yaml.in/yaml/v2 v2.4.3 // indirect
49164
go.yaml.in/yaml/v3 v3.0.4 // indirect
165+
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
166+
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
50167
golang.org/x/mod v0.30.0 // indirect
51168
golang.org/x/net v0.47.0 // indirect
169+
golang.org/x/oauth2 v0.32.0 // indirect
52170
golang.org/x/sync v0.18.0 // indirect
53171
golang.org/x/sys v0.38.0 // indirect
172+
golang.org/x/term v0.37.0 // indirect
54173
golang.org/x/text v0.31.0 // indirect
174+
golang.org/x/time v0.12.0 // indirect
55175
golang.org/x/tools v0.39.0 // indirect
56176
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
57177
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
58178
google.golang.org/grpc v1.77.0 // indirect
59179
google.golang.org/protobuf v1.36.10 // indirect
180+
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
181+
gopkg.in/inf.v0 v0.9.1 // indirect
60182
gopkg.in/yaml.v3 v3.0.1 // indirect
183+
k8s.io/apiserver v0.35.0 // indirect
184+
k8s.io/component-base v0.35.0 // indirect
185+
k8s.io/klog/v2 v2.130.1 // indirect
186+
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
187+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
188+
sigs.k8s.io/controller-runtime v0.20.4 // indirect
189+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
190+
sigs.k8s.io/randfill v1.0.0 // indirect
191+
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
61192
sigs.k8s.io/yaml v1.6.0 // indirect
62193
)

0 commit comments

Comments
 (0)