diff --git a/chart-sync/go.mod b/chart-sync/go.mod index 4bd60213a..868ea805c 100644 --- a/chart-sync/go.mod +++ b/chart-sync/go.mod @@ -5,7 +5,7 @@ go 1.22.4 toolchain go1.22.6 replace ( - github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 + github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 helm.sh/helm/v3 v3.14.3 => github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42 ) diff --git a/chart-sync/go.sum b/chart-sync/go.sum index b02a19bee..9bbed9651 100644 --- a/chart-sync/go.sum +++ b/chart-sync/go.sum @@ -54,8 +54,8 @@ github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42 h1:pJmK44QaSztOiZe0iQHNf0sdy5KwkAeceydyhOG4RaY= github.com/devtron-labs/helm/v3 v3.14.1-0.20240401080259-90238cf69e42/go.mod h1:v6myVbyseSBJTzhmeE39UcPLNv6cQK6qss3dvgAySaE= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= diff --git a/chart-sync/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/chart-sync/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/chart-sync/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/chart-sync/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/chart-sync/vendor/modules.txt b/chart-sync/vendor/modules.txt index 0f82afa68..452645ae0 100644 --- a/chart-sync/vendor/modules.txt +++ b/chart-sync/vendor/modules.txt @@ -93,7 +93,7 @@ github.com/containerd/platforms # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -791,4 +791,4 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.3.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/ci-runner/go.mod b/ci-runner/go.mod index b0d6675dc..d439973bf 100644 --- a/ci-runner/go.mod +++ b/ci-runner/go.mod @@ -4,7 +4,7 @@ go 1.21 toolchain go1.21.8 -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 require ( github.com/Knetic/govaluate v3.0.0+incompatible diff --git a/ci-runner/go.sum b/ci-runner/go.sum index 0a5ca7164..10ac98557 100644 --- a/ci-runner/go.sum +++ b/ci-runner/go.sum @@ -95,8 +95,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY= diff --git a/ci-runner/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/ci-runner/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/ci-runner/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/ci-runner/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/ci-runner/vendor/modules.txt b/ci-runner/vendor/modules.txt index 7eac4e4c8..221abd068 100644 --- a/ci-runner/vendor/modules.txt +++ b/ci-runner/vendor/modules.txt @@ -248,7 +248,7 @@ github.com/cespare/xxhash/v2 # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/blob-storage github.com/devtron-labs/common-lib/constants @@ -991,4 +991,4 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.3.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/common-lib/constants/constants.go b/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/common-lib/constants/constants.go +++ b/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/git-sensor/go.mod b/git-sensor/go.mod index 477d509f8..5e75fa3b6 100644 --- a/git-sensor/go.mod +++ b/git-sensor/go.mod @@ -4,7 +4,7 @@ go 1.21 toolchain go1.22.4 -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 require ( github.com/caarlos0/env v3.5.0+incompatible diff --git a/git-sensor/go.sum b/git-sensor/go.sum index f412a42d4..ed727d60f 100644 --- a/git-sensor/go.sum +++ b/git-sensor/go.sum @@ -27,8 +27,8 @@ github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGL github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs= github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e/go.mod h1:1TqULGlTey+VNhAu/ag7NJuUvByJemkqodsc9L5PHJk= github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY= diff --git a/git-sensor/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/git-sensor/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/git-sensor/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/git-sensor/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/git-sensor/vendor/modules.txt b/git-sensor/vendor/modules.txt index ae0a4c6d8..978cad52d 100644 --- a/git-sensor/vendor/modules.txt +++ b/git-sensor/vendor/modules.txt @@ -66,7 +66,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -488,4 +488,4 @@ gopkg.in/yaml.v3 # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/image-scanner/Wire.go b/image-scanner/Wire.go index 45422689a..82cf642fe 100644 --- a/image-scanner/Wire.go +++ b/image-scanner/Wire.go @@ -23,6 +23,7 @@ import ( "github.com/devtron-labs/common-lib/monitoring" client "github.com/devtron-labs/common-lib/pubsub-lib" "github.com/devtron-labs/image-scanner/api" + "github.com/devtron-labs/image-scanner/pkg/asyncProvider" "github.com/devtron-labs/image-scanner/pkg/clairService" "github.com/devtron-labs/image-scanner/pkg/grafeasService" "github.com/devtron-labs/image-scanner/pkg/klarService" @@ -38,6 +39,7 @@ import ( func InitializeApp() (*App, error) { wire.Build( + asyncProvider.AsyncWireSet, NewApp, api.NewRouter, logger.NewSugardLogger, diff --git a/image-scanner/go.mod b/image-scanner/go.mod index d7aa5cb3f..2846bc66b 100644 --- a/image-scanner/go.mod +++ b/image-scanner/go.mod @@ -74,4 +74,4 @@ require ( mellium.im/sasl v0.3.2 // indirect ) -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/image-scanner/go.sum b/image-scanner/go.sum index 4c0eb2bb2..e1bfb2ea6 100644 --- a/image-scanner/go.sum +++ b/image-scanner/go.sum @@ -280,8 +280,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= diff --git a/image-scanner/pkg/asyncProvider/AsyncProvider.go b/image-scanner/pkg/asyncProvider/AsyncProvider.go new file mode 100644 index 000000000..4531c0b01 --- /dev/null +++ b/image-scanner/pkg/asyncProvider/AsyncProvider.go @@ -0,0 +1,11 @@ +package asyncProvider + +import ( + "github.com/devtron-labs/common-lib/async" + "github.com/devtron-labs/common-lib/constants" + "go.uber.org/zap" +) + +func NewAsyncRunnable(logger *zap.SugaredLogger) *async.Runnable { + return async.NewAsyncRunnable(logger, constants.ImageScanner) +} diff --git a/image-scanner/pkg/asyncProvider/wire_AsyncProvider.go b/image-scanner/pkg/asyncProvider/wire_AsyncProvider.go new file mode 100644 index 000000000..1f0df311c --- /dev/null +++ b/image-scanner/pkg/asyncProvider/wire_AsyncProvider.go @@ -0,0 +1,9 @@ +package asyncProvider + +import ( + "github.com/google/wire" +) + +var AsyncWireSet = wire.NewSet( + NewAsyncRunnable, +) diff --git a/image-scanner/pkg/security/ImageScanService.go b/image-scanner/pkg/security/ImageScanService.go index 55c5616c0..d1c026f0d 100644 --- a/image-scanner/pkg/security/ImageScanService.go +++ b/image-scanner/pkg/security/ImageScanService.go @@ -24,6 +24,7 @@ import ( "fmt" "github.com/Knetic/govaluate" "github.com/caarlos0/env" + "github.com/devtron-labs/common-lib/async" bean2 "github.com/devtron-labs/common-lib/imageScan/bean" "github.com/devtron-labs/image-scanner/common" cliUtil "github.com/devtron-labs/image-scanner/internals/step-lib/util/cli-util" @@ -84,6 +85,7 @@ type ImageScanServiceImpl struct { DockerArtifactStoreRepository repository.DockerArtifactStoreRepository RegistryIndexMappingRepository repository.RegistryIndexMappingRepository CliCommandEnv []string + asyncRunnable *async.Runnable } func NewImageScanServiceImpl(logger *zap.SugaredLogger, scanHistoryRepository repository.ImageScanHistoryRepository, @@ -96,7 +98,8 @@ func NewImageScanServiceImpl(logger *zap.SugaredLogger, scanHistoryRepository re scanToolStepRepository repository.ScanToolStepRepository, scanStepConditionMappingRepository repository.ScanStepConditionMappingRepository, imageScanConfig *ImageScanConfig, - dockerArtifactStoreRepository repository.DockerArtifactStoreRepository, registryIndexMappingRepository repository.RegistryIndexMappingRepository) *ImageScanServiceImpl { + dockerArtifactStoreRepository repository.DockerArtifactStoreRepository, registryIndexMappingRepository repository.RegistryIndexMappingRepository, + asyncRunnable *async.Runnable) *ImageScanServiceImpl { imageScanService := &ImageScanServiceImpl{Logger: logger, ScanHistoryRepository: scanHistoryRepository, ScanResultRepository: scanResultRepository, ScanObjectMetaRepository: scanObjectMetaRepository, CveStoreRepository: cveStoreRepository, ImageScanDeployInfoRepository: imageScanDeployInfoRepository, @@ -110,11 +113,12 @@ func NewImageScanServiceImpl(logger *zap.SugaredLogger, scanHistoryRepository re DockerArtifactStoreRepository: dockerArtifactStoreRepository, RegistryIndexMappingRepository: registryIndexMappingRepository, CliCommandEnv: os.Environ(), + asyncRunnable: asyncRunnable, } // Only check for progressing scans if the flag is enabled if imageScanConfig.EnableProgressingScanCheck { logger.Infow("checking for progressing scans at startup") - imageScanService.HandleProgressingScans() + asyncRunnable.Execute(imageScanService.HandleProgressingScans) } else { logger.Infow("skipping progressing scans check at startup as it is disabled") } @@ -961,63 +965,63 @@ func (impl *ImageScanServiceImpl) HandleProgressingScans() { impl.Logger.Errorw("error in getting all scans by running state", "err", err) return } - - var executionHistoryDirPath string - flagForDeleting := false - // Create Folder for output data for execution history only if any pending scans are there due to pod died if len(scanHistories) > 0 { - flagForDeleting = true + var executionHistoryDirPath string + // Create Folder for output data for execution history only if any pending scans are there due to pod died executionHistoryDirPath = impl.CreateFolderForOutputData(scanHistories[0].ImageScanExecutionHistoryId) - } - wg := &sync.WaitGroup{} - wg.Add(len(scanHistories)) - imagescanExecutionHistories, err := impl.ScanHistoryRepository.FindAll() - if err != nil { - impl.Logger.Errorw("error in getting scan histories on start up", "err", err) - return - } - imageScanToolMetadatas, err := impl.ScanToolMetadataRepository.FindAllActiveTools() - if err != nil { - impl.Logger.Errorw("error in getting all active tools", "err", err) - } - imageScanExecutionHistoryMap := make(map[int]*repository.ImageScanExecutionHistory) - imageScanToolsMap := make(map[int]*repository.ScanToolMetadata) - - for _, imageScanExecutionHistory := range imagescanExecutionHistories { - imageScanExecutionHistoryMap[imageScanExecutionHistory.Id] = imageScanExecutionHistory - } - for _, imageScanToolMetaData := range imageScanToolMetadatas { - imageScanToolsMap[imageScanToolMetaData.Id] = imageScanToolMetaData - } - - //System doing image scanning for all pending scans - for _, scanHistory := range scanHistories { - scanEvent := bean2.ImageScanEvent{} - scanEventJson := imageScanExecutionHistoryMap[scanHistory.ImageScanExecutionHistoryId].SourceMetadataJson - if len(scanEventJson) == 0 { - return + imageScanExecutionHistoryIds := make([]int, 0, len(scanHistories)) + for _, scanHistory := range scanHistories { + imageScanExecutionHistoryIds = append(imageScanExecutionHistoryIds, scanHistory.ImageScanExecutionHistoryId) } - scanTool := imageScanToolsMap[scanHistory.ScanToolId] - err = json.Unmarshal([]byte(scanEventJson), &scanEvent) + wg := &sync.WaitGroup{} + wg.Add(len(scanHistories)) + imagescanExecutionHistories, err := impl.ScanHistoryRepository.FindByIds(imageScanExecutionHistoryIds) if err != nil { - impl.Logger.Errorw("error in un-marshaling", "err", err) + impl.Logger.Errorw("error in getting scan histories on start up", "err", err) return } - imageScanRenderDto, err := impl.GetImageScanRenderDto(scanEvent.DockerRegistryId, &scanEvent) + imageScanToolMetadatas, err := impl.ScanToolMetadataRepository.FindAllActiveTools() if err != nil { - impl.Logger.Errorw("service error, GetImageScanRenderDto", "dockerRegistryId", scanEvent.DockerRegistryId, "err", err) + impl.Logger.Errorw("error in getting all active tools", "err", err) return } - _, _, err = impl.ScanImageForTool(scanTool, scanHistory.ImageScanExecutionHistoryId, executionHistoryDirPath, wg, 1, context.Background(), imageScanRenderDto) - if err != nil { - impl.Logger.Errorw("error in scanning image", "err", err) - return + imageScanExecutionHistoryMap := make(map[int]*repository.ImageScanExecutionHistory) + imageScanToolsMap := make(map[int]*repository.ScanToolMetadata) + + for _, imageScanExecutionHistory := range imagescanExecutionHistories { + imageScanExecutionHistoryMap[imageScanExecutionHistory.Id] = imageScanExecutionHistory } - } - wg.Wait() + for _, imageScanToolMetaData := range imageScanToolMetadatas { + imageScanToolsMap[imageScanToolMetaData.Id] = imageScanToolMetaData + } + + //System doing image scanning for all pending scans + for _, scanHistory := range scanHistories { + scanEvent := bean2.ImageScanEvent{} + scanEventJson := imageScanExecutionHistoryMap[scanHistory.ImageScanExecutionHistoryId].SourceMetadataJson + if len(scanEventJson) == 0 { + return + } + scanTool := imageScanToolsMap[scanHistory.ScanToolId] + err = json.Unmarshal([]byte(scanEventJson), &scanEvent) + if err != nil { + impl.Logger.Errorw("error in un-marshaling", "err", err) + return + } + imageScanRenderDto, err := impl.GetImageScanRenderDto(scanEvent.DockerRegistryId, &scanEvent) + if err != nil { + impl.Logger.Errorw("service error, GetImageScanRenderDto", "dockerRegistryId", scanEvent.DockerRegistryId, "err", err) + return + } + _, _, err = impl.ScanImageForTool(scanTool, scanHistory.ImageScanExecutionHistoryId, executionHistoryDirPath, wg, 1, context.Background(), imageScanRenderDto) + if err != nil { + impl.Logger.Errorw("error in scanning image", "err", err) + return + } + } + wg.Wait() - //deleting executionDirectoryPath - if flagForDeleting { + //deleting executionDirectoryPath err = os.Remove(executionHistoryDirPath) if err != nil { impl.Logger.Errorw("error in deleting executionHistoryDirectory", "executionHistoryDirPath", executionHistoryDirPath, "err", err) diff --git a/image-scanner/pkg/sql/repository/ImageScanHistoryRepository.go b/image-scanner/pkg/sql/repository/ImageScanHistoryRepository.go index c29c1925e..fe6b38fb5 100644 --- a/image-scanner/pkg/sql/repository/ImageScanHistoryRepository.go +++ b/image-scanner/pkg/sql/repository/ImageScanHistoryRepository.go @@ -61,6 +61,7 @@ type ImageScanHistoryRepository interface { Save(tx *pg.Tx, model *ImageScanExecutionHistory) error FindAll() ([]*ImageScanExecutionHistory, error) FindOne(id int) (*ImageScanExecutionHistory, error) + FindByIds(ids []int) ([]*ImageScanExecutionHistory, error) FindByImageDigest(image string) (*ImageScanExecutionHistory, error) FindByImageDigests(digest []string) ([]*ImageScanExecutionHistory, error) Update(model *ImageScanExecutionHistory) error @@ -103,6 +104,15 @@ func (impl ImageScanHistoryRepositoryImpl) FindOne(id int) (*ImageScanExecutionH Where("id = ?", id).Select() return &model, err } +func (impl ImageScanHistoryRepositoryImpl) FindByIds(ids []int) ([]*ImageScanExecutionHistory, error) { + models := make([]*ImageScanExecutionHistory, 0) + if len(ids) == 0 { + return models, nil + } + err := impl.dbConnection.Model(&models). + Where("id in (?)", pg.In(ids)).Select() + return models, err +} func (impl ImageScanHistoryRepositoryImpl) FindByImageDigest(image string) (*ImageScanExecutionHistory, error) { var model ImageScanExecutionHistory diff --git a/image-scanner/vendor/github.com/devtron-labs/common-lib/async/async.go b/image-scanner/vendor/github.com/devtron-labs/common-lib/async/async.go new file mode 100644 index 000000000..425af98c4 --- /dev/null +++ b/image-scanner/vendor/github.com/devtron-labs/common-lib/async/async.go @@ -0,0 +1,73 @@ +package async + +import ( + "fmt" + "github.com/devtron-labs/common-lib/constants" + "github.com/devtron-labs/common-lib/pubsub-lib/metrics" + "github.com/devtron-labs/common-lib/utils/runTime" + "go.uber.org/zap" + "runtime/debug" +) + +type Runnable struct { + logger *zap.SugaredLogger + serviceName constants.ServiceName +} + +type RunAsyncMetaData struct { + Method string + Path string +} + +func NewAsyncRunnable(logger *zap.SugaredLogger, serviceName constants.ServiceName) *Runnable { + return &Runnable{ + logger: logger, + serviceName: serviceName, + } +} + +func NewRunAsyncMetaData() *RunAsyncMetaData { + return &RunAsyncMetaData{} +} + +func CallerMethod(methodName string) NewUpdateMetaData { + return func(m *RunAsyncMetaData) { + m.Method = methodName + } +} + +func CallerPath(pathName string) NewUpdateMetaData { + return func(m *RunAsyncMetaData) { + m.Path = pathName + } +} + +type NewUpdateMetaData func(*RunAsyncMetaData) + +func (impl *Runnable) Execute(runnableFunc func()) { + impl.run(runnableFunc, + CallerMethod(runTime.GetCallerFunctionName()), + CallerPath(fmt.Sprintf("%s:%d", runTime.GetCallerFileName(), runTime.GetCallerLineNumber())), + ) +} + +func (impl *Runnable) run(fn func(), metadataOpts ...NewUpdateMetaData) { + metaData := NewRunAsyncMetaData() + for _, metadataOpt := range metadataOpts { + // updating meta data + if metadataOpt != nil { + metadataOpt(metaData) + } + } + go func() { + defer func() { + if r := recover(); r != nil { + metrics.IncPanicRecoveryCount("go-routine", impl.serviceName.ToString(), metaData.Method, metaData.Path) + impl.logger.Errorw(fmt.Sprintf("%s %s", constants.GoRoutinePanicMsgLogPrefix, "go-routine recovered from panic"), "err", r, "stack", string(debug.Stack())) + } + }() + if fn != nil { + fn() + } + }() +} diff --git a/image-scanner/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/image-scanner/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/image-scanner/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/image-scanner/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/image-scanner/vendor/github.com/devtron-labs/common-lib/utils/runTime/GetCallerFrames.go b/image-scanner/vendor/github.com/devtron-labs/common-lib/utils/runTime/GetCallerFrames.go new file mode 100644 index 000000000..ff54cba4a --- /dev/null +++ b/image-scanner/vendor/github.com/devtron-labs/common-lib/utils/runTime/GetCallerFrames.go @@ -0,0 +1,50 @@ +package runTime + +import ( + "runtime" +) + +// GetCallerFileName - returns the file name of the invoked func +func GetCallerFileName() string { + // Skip GetCurrentFunctionName + return getFrame(1).File +} + +// GetCallerLineNumber - returns the line number of the invoked func +func GetCallerLineNumber() int { + // Skip GetCurrentFunctionName + return getFrame(1).Line +} + +// GetCallerFunctionName - returns the function name of the invoked func +func GetCallerFunctionName() string { + // Skip GetCallerFunctionName and the function to get the caller of + return getFrame(2).Function +} + +// getFrame returns the runtime.Frame for the targetFrameIndex from the runtime caller stack +// +// examples: +// 1. getFrame(0) -> returns current method frame +// 2. getFrame(1) -> returns caller method frame +// 3. getFrame(2) -> returns caller's caller method frame +func getFrame(targetFrameIndex int) runtime.Frame { + // Set size to targetFrameIndex + 2 to ensure we have room for function runtime.Callers and getFrame + programCounters := make([]uintptr, targetFrameIndex+2) + // We need the frame at index targetFrameIndex + 2, since we never want function runtime.Callers and getFrame + n := runtime.Callers(2, programCounters) + + frame := runtime.Frame{Function: "unknown"} + if n > 0 { + frames := runtime.CallersFrames(programCounters[:n]) + for more, frameIndex := true, 0; more && frameIndex <= targetFrameIndex; frameIndex++ { + var frameCandidate runtime.Frame + frameCandidate, more = frames.Next() + if frameIndex == targetFrameIndex { + frame = frameCandidate + } + } + } + + return frame +} diff --git a/image-scanner/vendor/modules.txt b/image-scanner/vendor/modules.txt index a09e1b6c2..e96ee37e7 100644 --- a/image-scanner/vendor/modules.txt +++ b/image-scanner/vendor/modules.txt @@ -72,8 +72,9 @@ github.com/cespare/xxhash/v2 github.com/coreos/clair/api/v3/clairpb github.com/coreos/clair/database github.com/coreos/clair/ext/versionfmt -# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 +github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv github.com/devtron-labs/common-lib/git-manager @@ -89,6 +90,7 @@ github.com/devtron-labs/common-lib/pubsub-lib/model github.com/devtron-labs/common-lib/utils github.com/devtron-labs/common-lib/utils/bean github.com/devtron-labs/common-lib/utils/remoteConnection/bean +github.com/devtron-labs/common-lib/utils/runTime # github.com/docker/cli v24.0.6+incompatible ## explicit github.com/docker/cli/cli/config @@ -440,4 +442,4 @@ google.golang.org/protobuf/types/known/wrapperspb # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/image-scanner/wire_gen.go b/image-scanner/wire_gen.go index d3a947ce0..0c48cbb0b 100644 --- a/image-scanner/wire_gen.go +++ b/image-scanner/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:generate go run github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject @@ -10,6 +10,7 @@ import ( "github.com/devtron-labs/common-lib/monitoring" "github.com/devtron-labs/common-lib/pubsub-lib" "github.com/devtron-labs/image-scanner/api" + "github.com/devtron-labs/image-scanner/pkg/asyncProvider" "github.com/devtron-labs/image-scanner/pkg/clairService" "github.com/devtron-labs/image-scanner/pkg/grafeasService" "github.com/devtron-labs/image-scanner/pkg/klarService" @@ -56,7 +57,8 @@ func InitializeApp() (*App, error) { } dockerArtifactStoreRepositoryImpl := repository.NewDockerArtifactStoreRepositoryImpl(db, sugaredLogger) registryIndexMappingRepositoryImpl := repository.NewRegistryIndexMappingRepositoryImpl(db, sugaredLogger) - imageScanServiceImpl := security.NewImageScanServiceImpl(sugaredLogger, imageScanHistoryRepositoryImpl, imageScanResultRepositoryImpl, imageScanObjectMetaRepositoryImpl, cveStoreRepositoryImpl, imageScanDeployInfoRepositoryImpl, ciArtifactRepositoryImpl, scanToolExecutionHistoryMappingRepositoryImpl, scanToolMetadataRepositoryImpl, scanStepConditionRepositoryImpl, scanToolStepRepositoryImpl, scanStepConditionMappingRepositoryImpl, imageScanConfig, dockerArtifactStoreRepositoryImpl, registryIndexMappingRepositoryImpl) + runnable := asyncProvider.NewAsyncRunnable(sugaredLogger) + imageScanServiceImpl := security.NewImageScanServiceImpl(sugaredLogger, imageScanHistoryRepositoryImpl, imageScanResultRepositoryImpl, imageScanObjectMetaRepositoryImpl, cveStoreRepositoryImpl, imageScanDeployInfoRepositoryImpl, ciArtifactRepositoryImpl, scanToolExecutionHistoryMappingRepositoryImpl, scanToolMetadataRepositoryImpl, scanStepConditionRepositoryImpl, scanToolStepRepositoryImpl, scanStepConditionMappingRepositoryImpl, imageScanConfig, dockerArtifactStoreRepositoryImpl, registryIndexMappingRepositoryImpl, runnable) klarConfig, err := klarService.GetKlarConfig() if err != nil { return nil, err diff --git a/kubelink/go.mod b/kubelink/go.mod index 6d24a88cd..006fa3172 100644 --- a/kubelink/go.mod +++ b/kubelink/go.mod @@ -177,7 +177,7 @@ require ( ) replace ( - github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 + github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v1.18.0 // https://github.com/kubernetes/kubernetes/issues/79384#issuecomment-505627280 k8s.io/api => k8s.io/api v0.29.0 diff --git a/kubelink/go.sum b/kubelink/go.sum index 6bd3db56e..5db6ae80e 100644 --- a/kubelink/go.sum +++ b/kubelink/go.sum @@ -79,8 +79,8 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic= diff --git a/kubelink/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/kubelink/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/kubelink/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/kubelink/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/kubelink/vendor/modules.txt b/kubelink/vendor/modules.txt index b60948790..f40508eb3 100644 --- a/kubelink/vendor/modules.txt +++ b/kubelink/vendor/modules.txt @@ -127,7 +127,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants @@ -1355,7 +1355,7 @@ sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.3.0 ## explicit; go 1.12 sigs.k8s.io/yaml -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 # go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v1.18.0 # k8s.io/api => k8s.io/api v0.29.0 # k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.29.0 diff --git a/kubewatch/go.mod b/kubewatch/go.mod index 455727be7..86b126249 100644 --- a/kubewatch/go.mod +++ b/kubewatch/go.mod @@ -245,4 +245,4 @@ replace ( k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.7 ) -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/kubewatch/go.sum b/kubewatch/go.sum index b3af175c7..a5f5769b0 100644 --- a/kubewatch/go.sum +++ b/kubewatch/go.sum @@ -719,8 +719,8 @@ github.com/cyphar/filepath-securejoin v0.3.6/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGL github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/kubewatch/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/kubewatch/vendor/modules.txt b/kubewatch/vendor/modules.txt index 0e4f8fb27..223631670 100644 --- a/kubewatch/vendor/modules.txt +++ b/kubewatch/vendor/modules.txt @@ -215,7 +215,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants @@ -1761,4 +1761,4 @@ upper.io/db.v3/postgresql # k8s.io/mount-utils => k8s.io/mount-utils v0.29.7 # k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.29.7 # k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.29.7 -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/lens/go.mod b/lens/go.mod index 25e9ec389..87057e884 100644 --- a/lens/go.mod +++ b/lens/go.mod @@ -59,4 +59,4 @@ require ( github.com/onsi/gomega v1.18.1 // indirect ) -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 diff --git a/lens/go.sum b/lens/go.sum index 7d80c66ee..b3204e9cd 100644 --- a/lens/go.sum +++ b/lens/go.sum @@ -22,8 +22,8 @@ github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWH github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 h1:9CFeiv7oWP6f5OJN6Jq1FJpPndxyx0GKAEoKORWxvkw= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 h1:NEmZC09r6KR+6aBGBbKPkJhgpDAtLrycinBe/BjTvZY= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16/go.mod h1:zkNShlkcHxsmnL0gKNbs0uyRL8lZonGKr5Km63uTLI0= github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb h1:CkfQQgZc950/hTPqtQSiHV2RmZgkBLGCzwR02FZYjAU= github.com/devtron-labs/protos v0.0.3-0.20240130061723-7b2e12ab0abb/go.mod h1:pjLjgoa1GzbkOkvbMyP4SAKsaiK7eG6GoQCNauG03JA= github.com/docker/cli v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY= diff --git a/lens/vendor/github.com/devtron-labs/common-lib/constants/constants.go b/lens/vendor/github.com/devtron-labs/common-lib/constants/constants.go index f327d712b..0baf2387e 100644 --- a/lens/vendor/github.com/devtron-labs/common-lib/constants/constants.go +++ b/lens/vendor/github.com/devtron-labs/common-lib/constants/constants.go @@ -34,6 +34,7 @@ const ( Kubelink ServiceName = "KUBELINK" GitSensor ServiceName = "GITSENSOR" Kubewatch ServiceName = "KUBEWATCH" + ImageScanner ServiceName = "IMAGE_SCANNER" ) // metrics name constants diff --git a/lens/vendor/modules.txt b/lens/vendor/modules.txt index 07cfa3833..023ae3b47 100644 --- a/lens/vendor/modules.txt +++ b/lens/vendor/modules.txt @@ -7,7 +7,7 @@ github.com/caarlos0/env # github.com/cespare/xxhash/v2 v2.2.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16 ## explicit; go 1.21 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -289,4 +289,4 @@ google.golang.org/protobuf/types/known/timestamppb # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516092629-1f57945dd6f2 +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250516120455-f0b4891afc16