From 6243a894f368f79791165cee4466dc7d2e9da90f Mon Sep 17 00:00:00 2001 From: Brad Lugo Date: Tue, 15 Sep 2026 11:07:46 -0700 Subject: [PATCH 001/327] chore(deps): bump claircore to 1.6.0 (#22752) --- go.mod | 22 ++--- go.sum | 57 ++++++----- pkg/scannerv4/mappers/mappers.go | 37 +++++++- pkg/scannerv4/mappers/mappers_test.go | 95 +++++++++++++++++++ scanner/services/validators/validators.go | 20 +++- .../services/validators/validators_test.go | 8 ++ 6 files changed, 190 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index 85d98692d25c6..e40e100e9ac30 100644 --- a/go.mod +++ b/go.mod @@ -103,7 +103,7 @@ require ( github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b github.com/operator-framework/helm-operator-plugins v0.0.0-00010101000000-000000000000 github.com/owenrumney/go-sarif/v2 v2.3.3 - github.com/package-url/packageurl-go v0.1.6 + github.com/package-url/packageurl-go v0.1.7 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c github.com/pkg/errors v0.9.1 github.com/planetscale/vtprotobuf v0.6.1-0.20240409071808-615f978279ca @@ -111,8 +111,8 @@ require ( github.com/prometheus/client_golang v1.24.1 github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.70.1 - github.com/quay/claircore v1.5.55-0.20260720230557-3f07716d8b96 - github.com/quay/claircore/toolkit v1.6.1 + github.com/quay/claircore v1.6.0 + github.com/quay/claircore/toolkit v1.7.0 github.com/quay/zlog/v2 v2.1.1 github.com/remind101/migrate v0.0.0-20170729031349-52c1edff7319 github.com/russellhaering/gosaml2 v0.12.0 @@ -314,9 +314,9 @@ require ( github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/golang/snappy v1.0.0 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/cel-go v0.29.0 // indirect + github.com/google/cel-go v0.31.0 // indirect github.com/google/go-querystring v1.2.0 // indirect - github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 // indirect + github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.19 // indirect github.com/gorilla/css v1.0.0 // indirect @@ -356,7 +356,7 @@ require ( github.com/matryer/is v1.4.1 // indirect github.com/mattermost/xml-roundtrip-validator v0.1.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-isatty v0.0.24 // indirect github.com/mattn/go-runewidth v0.0.19 // indirect github.com/mdlayher/socket v0.6.0 // indirect github.com/mholt/archiver/v3 v3.5.1 // indirect @@ -446,13 +446,13 @@ require ( go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect - go.opentelemetry.io/otel v1.44.0 // indirect + go.opentelemetry.io/otel v1.45.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect - go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/metric v1.45.0 // indirect go.opentelemetry.io/otel/sdk v1.44.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.44.0 // indirect - go.opentelemetry.io/otel/trace v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.45.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect @@ -473,10 +473,10 @@ require ( k8s.io/streaming v0.36.4 // indirect kubevirt.io/containerized-data-importer-api v1.64.0 // indirect kubevirt.io/controller-lifecycle-operator-sdk/api v0.2.4 // indirect - modernc.org/libc v1.73.4 // indirect + modernc.org/libc v1.74.4 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect - modernc.org/sqlite v1.53.0 // indirect + modernc.org/sqlite v1.57.0 // indirect oras.land/oras-go/v2 v2.6.1 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect diff --git a/go.sum b/go.sum index 1692220505635..a900153530157 100644 --- a/go.sum +++ b/go.sum @@ -666,8 +666,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 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/cel-go v0.29.0 h1:fEG+Ja3YRwNOqnQxTyJwoByAUAvTuxUGiro/jhrm4F4= -github.com/google/cel-go v0.29.0/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= +github.com/google/cel-go v0.31.0 h1:H0bhpFTqOvmHrBGrWKp7ZlhBm5Hh8PYUEXnwxT1LL7A= +github.com/google/cel-go v0.31.0/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= github.com/google/certificate-transparency-go v1.3.3 h1:hq/rSxztSkXN2tx/3jQqF6Xc0O565UQPdHrOWvZwybo= github.com/google/certificate-transparency-go v1.3.3/go.mod h1:iR17ZgSaXRzSa5qvjFl8TnVD5h8ky2JMVio+dzoKMgA= github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= @@ -724,8 +724,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 h1:EwtI+Al+DeppwYX2oXJCETMO23COyaKGP6fHVpkpWpg= -github.com/google/pprof v0.0.0-20260402051712-545e8a4df936/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= +github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 h1:LMLX+LgTNWpfvCBdFebv6EsYotImrt/Ppc5cXIriCSo= +github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3/go.mod h1:jl5iWTm0/hd5PjEYEOuwAJ57L/CibdZfrqZ5XA5GrCk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= @@ -965,8 +965,8 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI= +github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= @@ -1106,8 +1106,8 @@ github.com/operator-framework/operator-lib v0.17.0/go.mod h1:TGopBxIE8L6E/Cojzo2 github.com/owenrumney/go-sarif v1.1.1/go.mod h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U= github.com/owenrumney/go-sarif/v2 v2.3.3 h1:ubWDJcF5i3L/EIOER+ZyQ03IfplbSU1BLOE26uKQIIU= github.com/owenrumney/go-sarif/v2 v2.3.3/go.mod h1:MSqMMx9WqlBSY7pXoOZWgEsVB4FDNfhcaXDA1j6Sr+w= -github.com/package-url/packageurl-go v0.1.6 h1:YO3p6u1XmCUliivUg/qWphaY8vI6hxSnnPv7Bfg3m5M= -github.com/package-url/packageurl-go v0.1.6/go.mod h1:nKAWB8E6uk1MHqiS/lQb9pYBGH2+mdJ2PJc2s50dQY0= +github.com/package-url/packageurl-go v0.1.7 h1:iFWg6tzAjLA6F/qX3M5nZaiMHJgc+p2zxVyr/fY+sZY= +github.com/package-url/packageurl-go v0.1.7/go.mod h1:nKAWB8E6uk1MHqiS/lQb9pYBGH2+mdJ2PJc2s50dQY0= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= @@ -1171,11 +1171,11 @@ github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= -github.com/quay/claircore v1.5.55-0.20260720230557-3f07716d8b96 h1:bpYvJiQTRbsyTPmdXX/a+05Hy5nHtCcjoswOPR/LgjM= -github.com/quay/claircore v1.5.55-0.20260720230557-3f07716d8b96/go.mod h1:hOp0JqY8vOZPdBakFRt3JwG8q4K+gnRkG9RGzt1DoB4= +github.com/quay/claircore v1.6.0 h1:ZJKNIzCSjV4AdZEJJmS0SzVa0M6CQKhDvrzlVSgCkI4= +github.com/quay/claircore v1.6.0/go.mod h1:xtW1WFz0Mn6w5xqqTwwkA57RLXwCfYk9BMWT3M8hGXA= github.com/quay/claircore/toolkit v1.0.0/go.mod h1:3ELtgf92x7o1JCTSKVOAqhcnCTXc4s5qiGaEDx62i20= -github.com/quay/claircore/toolkit v1.6.1 h1:a3X1v28n5bo05T94cBlaoPU8xYCErRGPM3l6AlmYWj4= -github.com/quay/claircore/toolkit v1.6.1/go.mod h1:dTzlp1pgNchc+CN73HJiG9+e0ygU54QPt397eXnGGo4= +github.com/quay/claircore/toolkit v1.7.0 h1:flobJ7hTofiArNSBs1SKq8vDZ9h57dW02RxLyYn+bMw= +github.com/quay/claircore/toolkit v1.7.0/go.mod h1:1AzB56krwmcpGUak0hAOVbSrtzGywDQu5OTooDlKcb0= github.com/quay/claircore/updater/driver v1.0.0 h1:w7dAUjO3GBK6RjNyTZ2Kwz0l/Wuic3ykKJWPB80uA94= github.com/quay/claircore/updater/driver v1.0.0/go.mod h1:My5aY1wBpgxcWaHQZ0VoPmmj/EzuH7fq4ntzJbos4OI= github.com/quay/goval-parser v0.8.8 h1:Uf+f9iF2GIR5GPUY2pGoa9il2+4cdES44ZlM0mWm4cA= @@ -1464,8 +1464,8 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0/go.mod h1:Sje3i3MjSPKTSPvVWCaL8ugBzJwik3u4smCjUeuupqg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 h1:CqXxU8VOmDefoh0+ztfGaymYbhdB/tT3zs79QaZTNGY= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0/go.mod h1:BuhAPThV8PBHBvg8ZzZ/Ok3idOdhWIodywz2xEcRbJo= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU= +go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 h1:Dn8rkudDzY6KV9dr/D/bTUuWgqDf9xe0rr4G2elrn0Y= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0/go.mod h1:gMk9F0xDgyN9M/3Ed5Y1wKcx/9mlU91NXY2SNq7RQuU= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag= @@ -1490,8 +1490,8 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0 h1:mS47AX77OtFfKG4 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0/go.mod h1:PJnsC41lAGncJlPUniSwM81gc80GkgWJWr3cu2nKEtU= go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4= go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= -go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= -go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M= +go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s= go.opentelemetry.io/otel/metric/x v0.66.0 h1:YkCrx1zLOChi9ZcZ6euupOcsgzbVlec7D/xoEU1+cTA= go.opentelemetry.io/otel/metric/x v0.66.0/go.mod h1:d1+BDj9t96do0/1LoU1ayfCv79ZgNE41qbhBvnMOBZk= go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= @@ -1500,8 +1500,8 @@ go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5d go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= +go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= @@ -1782,7 +1782,6 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -2186,20 +2185,20 @@ kubevirt.io/containerized-data-importer-api v1.64.0 h1:yBLY6qEogUp8F+XSJvabIkx9u kubevirt.io/containerized-data-importer-api v1.64.0/go.mod h1:VGp35wxpLXU18b7cnEpmcThI3AjcZUSfg/Zfql44U4o= kubevirt.io/controller-lifecycle-operator-sdk/api v0.2.4 h1:fZYvD3/Vnitfkx6IJxjLAk8ugnZQ7CXVYcRfkSKmuZY= kubevirt.io/controller-lifecycle-operator-sdk/api v0.2.4/go.mod h1:018lASpFYBsYN6XwmA2TIrPCx6e0gviTd/ZNtSitKgc= -modernc.org/cc/v4 v4.28.4 h1:Hd/4Es+MBj+/7hSdZaisNyu6bv3V0Dp2MdllyfqaH+c= -modernc.org/cc/v4 v4.28.4/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI= -modernc.org/ccgo/v4 v4.34.4 h1:OVnSOWQjVKOYkFxoHYB+qQmSHK5gqMqARM+K9DpR/Ws= -modernc.org/ccgo/v4 v4.34.4/go.mod h1:qdKqE8FNIYyysougB1RX9MxCzp5oJOcQXSobANJ4TuE= +modernc.org/cc/v4 v4.29.1 h1:MKgdCV3WykTSPqpVrnxdEDS0HEd2FHpKZDzxzU5LyeI= +modernc.org/cc/v4 v4.29.1/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI= +modernc.org/ccgo/v4 v4.34.6 h1:sBgfIwyN0TQ9C5hwIeuqyeAKyMWnbvj2fvpF4L11uzU= +modernc.org/ccgo/v4 v4.34.6/go.mod h1:SZ8YcN9NG7XVsQYdm6jYBvi8PQP1qi+kqB6OhjqI3Fk= modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM= modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU= modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= -modernc.org/gc/v3 v3.1.3 h1:6QAplYyVO+KdPW3pGnqmJDUxtkec8ooEWvks/hhU3lc= -modernc.org/gc/v3 v3.1.3/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY= +modernc.org/gc/v3 v3.1.4 h1:2g65LGVSmFQrXeITAw97x7hCRvZFcyE1uDP+7Vng7JI= +modernc.org/gc/v3 v3.1.4/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY= modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= -modernc.org/libc v1.73.4 h1:+ra4Ui8ngyt8HDcO1FTDPWlkAh6yOdaO2yAoh8MddQA= -modernc.org/libc v1.73.4/go.mod h1:DXZ3eO8qMCNn2SnmTNCiC71nJ9Rcq3PsnpU6Vc4rWK8= +modernc.org/libc v1.74.4 h1:fX1Omw4o2/1C2iRkkIsrQTasJQldLhRmuPreXLoWs9k= +modernc.org/libc v1.74.4/go.mod h1:eeQAS9W3sZeKYMFubydxJpII9ybHWshk+7or7bLG9co= modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= @@ -2208,8 +2207,8 @@ modernc.org/opt v0.2.0 h1:tGyef5ApycA7FSEOMraay9SaTk5zmbx7Tu+cJs4QKZg= modernc.org/opt v0.2.0/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= -modernc.org/sqlite v1.53.0 h1:20WG8N9q4ji/dEqGk4uiI0c6OPjSeLTNYGFCc3+7c1M= -modernc.org/sqlite v1.53.0/go.mod h1:xoEpOIpGrgT48H5iiyt/YXPCZPEzlfmfFwtk8Lklw8s= +modernc.org/sqlite v1.57.0 h1:qNQP6xnx5M0ISNtlnxoOX0+cD5bJ0/gr9aMmndFczzg= +modernc.org/sqlite v1.57.0/go.mod h1:yCJ2cmAaIkHQ25oXWrF8H4O1lIfPYPR26yCEDj2P3pQ= modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= diff --git a/pkg/scannerv4/mappers/mappers.go b/pkg/scannerv4/mappers/mappers.go index 2476267e13547..1b3edc59b8005 100644 --- a/pkg/scannerv4/mappers/mappers.go +++ b/pkg/scannerv4/mappers/mappers.go @@ -45,6 +45,11 @@ const ( redhatErrataURLPrefix = "https://access.redhat.com/errata/" rhelRepositoryKey = "rhel-cpe-repository" + + // unsetCPE is the bound form of an unset CPE. Every released StackRox + // component emits and accepts this form, so keep it on the wire instead of + // the empty string ClairCore now produces for unset CPEs. + unsetCPE = "cpe:2.3:*:*:*:*:*:*:*:*:*:*:*" ) var ( @@ -257,6 +262,10 @@ func v4Package(p *claircore.Package) (*v4.Package, error) { if err != nil { return nil, err } + cpeStr, err := toCPEString(p.CPE) + if err != nil { + return nil, fmt.Errorf("package %q: %w", p.ID, err) + } return &v4.Package{ Id: p.ID, Name: p.Name, @@ -268,7 +277,7 @@ func v4Package(p *claircore.Package) (*v4.Package, error) { RepositoryHint: p.RepositoryHint, Module: p.Module, Arch: p.Arch, - Cpe: toCPEString(p.CPE), + Cpe: cpeStr, }, nil } @@ -322,6 +331,10 @@ func v4Distribution(d *claircore.Distribution) (*v4.Distribution, error) { if d == nil { return nil, nil } + cpeStr, err := toCPEString(d.CPE) + if err != nil { + return nil, fmt.Errorf("distribution %q: %w", d.ID, err) + } return &v4.Distribution{ Id: d.ID, Did: d.DID, @@ -330,7 +343,7 @@ func v4Distribution(d *claircore.Distribution) (*v4.Distribution, error) { VersionCodeName: d.VersionCodeName, VersionId: VersionID(d), Arch: d.Arch, - Cpe: toCPEString(d.CPE), + Cpe: cpeStr, PrettyName: d.PrettyName, }, nil } @@ -339,12 +352,16 @@ func v4Repository(r *claircore.Repository) (*v4.Repository, error) { if r == nil { return nil, nil } + cpeStr, err := toCPEString(r.CPE) + if err != nil { + return nil, fmt.Errorf("repository %q: %w", r.ID, err) + } return &v4.Repository{ Id: r.ID, Name: r.Name, Key: r.Key, Uri: r.URI, - Cpe: toCPEString(r.CPE), + Cpe: cpeStr, }, nil } @@ -825,8 +842,15 @@ func toPackageKind(s string) types.PackageKind { return k } -func toCPEString(c cpe.WFN) string { - return c.BindFS() +func toCPEString(c cpe.WFN) (string, error) { + if errors.Is(c.Valid(), cpe.ErrUnset) { + return unsetCPE, nil + } + b, err := c.AppendText(nil) + if err != nil { + return "", err + } + return string(b), nil } func toDigestString(digest claircore.Digest) string { @@ -834,6 +858,9 @@ func toDigestString(digest claircore.Digest) string { } func toClairCoreCPE(s string) (cpe.WFN, error) { + if s == "" { + return cpe.WFN{}, nil + } c, err := cpe.Unbind(s) if err != nil { return c, fmt.Errorf("%q: %s", s, strings.TrimPrefix(err.Error(), "cpe: ")) diff --git a/pkg/scannerv4/mappers/mappers_test.go b/pkg/scannerv4/mappers/mappers_test.go index 23916fe6fd0c1..c4d734fe57111 100644 --- a/pkg/scannerv4/mappers/mappers_test.go +++ b/pkg/scannerv4/mappers/mappers_test.go @@ -3,6 +3,7 @@ package mappers import ( "encoding/json" "slices" + "strconv" "strings" "testing" "time" @@ -3261,3 +3262,97 @@ func Test_PackageKindRoundTrip(t *testing.T) { }) } } + +func Test_toCPEString(t *testing.T) { + tests := []struct { + name string + arg cpe.WFN + want string + wantErr string + }{ + { + name: "when zero value then wildcard", + arg: cpe.WFN{}, + want: emptyCPE, + }, + { + name: "when wildcard then wildcard", + arg: cpe.MustUnbind(emptyCPE), + want: emptyCPE, + }, + { + name: "when set then bound", + arg: cpe.MustUnbind("cpe:/a:redhat:openshift:4.12::el8"), + want: "cpe:2.3:a:redhat:openshift:4.12:*:el8:*:*:*:*:*", + }, + { + name: "when invalid then error", + arg: cpe.WFN{Attr: [cpe.NumAttr]cpe.Value{cpe.Part: {Kind: cpe.ValueSet, V: "x"}}}, + wantErr: "disallowed value", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := toCPEString(tt.arg) + if tt.wantErr != "" { + assert.ErrorContains(t, err, tt.wantErr) + return + } + require.NoError(t, err) + assert.Equal(t, tt.want, got) + }) + } +} + +func Test_toClairCoreCPE(t *testing.T) { + tests := []struct { + name string + arg string + want cpe.WFN + wantErr string + }{ + { + name: "when empty then zero value", + arg: "", + want: cpe.WFN{}, + }, + { + name: "when wildcard then no error", + arg: emptyCPE, + want: cpe.MustUnbind(emptyCPE), + }, + { + name: "when set then unbound", + arg: "cpe:2.3:a:redhat:openshift:4.12:*:el8:*:*:*:*:*", + want: cpe.MustUnbind("cpe:2.3:a:redhat:openshift:4.12:*:el8:*:*:*:*:*"), + }, + { + name: "when invalid then error", + arg: "not a cpe", + wantErr: `"not a cpe": `, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := toClairCoreCPE(tt.arg) + if tt.wantErr != "" { + assert.ErrorContains(t, err, tt.wantErr) + return + } + require.NoError(t, err) + assert.Equal(t, tt.want, got) + }) + } +} + +func Test_CPERoundTrip(t *testing.T) { + for _, s := range []string{"", emptyCPE} { + t.Run("from "+strconv.Quote(s), func(t *testing.T) { + ccCPE, err := toClairCoreCPE(s) + require.NoError(t, err) + got, err := toCPEString(ccCPE) + require.NoError(t, err) + assert.Equal(t, emptyCPE, got) + }) + } +} diff --git a/scanner/services/validators/validators.go b/scanner/services/validators/validators.go index d912f65eca071..d3b6e15c938bd 100644 --- a/scanner/services/validators/validators.go +++ b/scanner/services/validators/validators.go @@ -154,6 +154,20 @@ func validateContents(contents *v4.Contents) error { return nil } +// validateCPE reports an error if s is a non-empty string that isn't a valid +// bound CPE WFN. An empty string is treated as "no CPE" and is not an error, +// matching the same convention mappers.toClairCoreCPE uses for the wire +// format: ClairCore's own zero-value WFN and this package's empty string are +// both accepted as "unset", even though StackRox's own mappers now always +// serialize "unset" as the bound wildcard CPE rather than "". +func validateCPE(s string) error { + if s == "" { + return nil + } + _, err := cpe.Unbind(s) + return err +} + func validateMap[T hasIDAndCPE](m map[string]T, fieldName string, validateF func(T) error) error { for k, v := range m { if reflect.ValueOf(v).IsZero() { @@ -162,8 +176,7 @@ func validateMap[T hasIDAndCPE](m map[string]T, fieldName string, validateF func if v.GetId() == "" { return fmt.Errorf("%s element %q: ID is empty", fieldName, k) } - _, err := cpe.Unbind(v.GetCpe()) - if err != nil { + if err := validateCPE(v.GetCpe()); err != nil { return fmt.Errorf("%s element %q: invalid CPE: %w", fieldName, k, err) } if err := validateF(v); err != nil { @@ -182,8 +195,7 @@ func validateList[T hasIDAndCPE](l []T, fieldName string, validateF func(T) erro if o.GetId() == "" { return fmt.Errorf("%s element #%d: Id is empty", fieldName, n) } - _, err := cpe.Unbind(o.GetCpe()) - if err != nil { + if err := validateCPE(o.GetCpe()); err != nil { return fmt.Errorf("%s element #%d (id: %q): invalid CPE: %w", fieldName, n, o.GetId(), err) } if err := validateF(o); err != nil { diff --git a/scanner/services/validators/validators_test.go b/scanner/services/validators/validators_test.go index 5150f073f46cd..d64c289f316a0 100644 --- a/scanner/services/validators/validators_test.go +++ b/scanner/services/validators/validators_test.go @@ -131,6 +131,14 @@ func Test_validateGetVulnerabilitiesRequest(t *testing.T) { addPackageDEPRECATED(&v4.Package{Id: "foobar", Cpe: "cpe:2.3:*:*:*:*:*:*:*:*:*:*:*"}), }, }, + "when a package has an empty CPE": { + // An empty CPE is treated the same as an unset one (e.g. the bound + // wildcard), not an invalid CPE. See mappers.toClairCoreCPE. + argOpts: []opts{ + addPackage(&v4.Package{Id: "foobar", Cpe: ""}), + addPackageDEPRECATED(&v4.Package{Id: "foobar", Cpe: ""}), + }, + }, "when a package has a source package with another source package": { wantErr: `Contents.Packages element "foo": package ID="foo" has a source with a source`, argOpts: []opts{ From 80da6f9b46403c50dbae6d75035d832e70975ad4 Mon Sep 17 00:00:00 2001 From: Surabhi Kumar Date: Tue, 15 Sep 2026 11:24:10 -0700 Subject: [PATCH 002/327] fixes(bug bash): Remove immediate action from lightspeed prompt (#22723) --- central/deployment/service/ai_prompt.go | 23 ---------- .../service/risk_ai_summary_test.go | 44 +++++++++++++++---- central/deployment/service/service_impl.go | 15 +++++++ 3 files changed, 50 insertions(+), 32 deletions(-) diff --git a/central/deployment/service/ai_prompt.go b/central/deployment/service/ai_prompt.go index 69efe593c68e0..90fa2cc3c8bb0 100644 --- a/central/deployment/service/ai_prompt.go +++ b/central/deployment/service/ai_prompt.go @@ -6,7 +6,6 @@ Cluster Security. A security operator is investigating a deployment flagged for review. AUDIENCE: Kubernetes cluster admin managing thousands of deployments. -They have oc access and want to reduce risk fast. TONE: Brief incident report. Short declarative sentences. No filler. @@ -16,10 +15,6 @@ risk score, and a stat summary bar (policy violations, CVE count, image age, component count) in the UI. Process arguments are redacted. Do NOT restate any of that. Start with the insight. -If the deployment has no significant risk factors (normalized score -below 5), state that in one sentence. Do not generate a risk -breakdown or actions. - Use these exact section labels with no additional text: SUMMARY @@ -33,24 +28,6 @@ sentence per bullet, max 20 words. Group related findings under one bullet (e.g., image age + image CVEs). Skip factors scoring below 1.5. -IMMEDIATE ACTIONS -Max 4 numbered items. Concrete steps to reduce the risk score now. -Each action: one sentence describing what to do, followed by the -oc command on its own line. - -Rules for commands: -- Each command must be a single line, runnable as-is. -- Use oc (not kubectl). Scope to the correct namespace and - deployment name from the data. -- Only use real oc subcommands: patch, set resources, set image, - create, delete, annotate, label. -- If a value depends on information not in the data (e.g., a new - image tag), do NOT include a command. State the action in plain - text and note what the user must determine first. -- If an action could break the workload, prefix the description - with "⚠ May affect application behavior:" and state what to - verify before applying. - CONSTRAINTS: - Plain text only. No markdown: no **, no backticks, no #. - Do NOT explain ACS, risk scoring, or how the system works. diff --git a/central/deployment/service/risk_ai_summary_test.go b/central/deployment/service/risk_ai_summary_test.go index faf65f83c5a32..2273fbc66c9f3 100644 --- a/central/deployment/service/risk_ai_summary_test.go +++ b/central/deployment/service/risk_ai_summary_test.go @@ -179,7 +179,7 @@ func TestGetDeploymentRiskAISummary_SensitiveFieldsStripped(t *testing.T) { risk := &storage.Risk{ Id: "risk-2", - Score: 4.0, + Score: 6.0, Subject: &storage.RiskSubject{ Id: "dep-2", Namespace: "operations", @@ -270,7 +270,7 @@ func TestGetDeploymentRiskAISummary_OLSError(t *testing.T) { ClusterName: "test-cluster", Type: "Deployment", } - risk := &storage.Risk{Score: 2.0} + risk := &storage.Risk{Score: 8.0} mockDS.EXPECT().GetDeployment(gomock.Any(), "dep-3").Return(deployment, true, nil) mockRisks.EXPECT().GetRiskForDeployment(gomock.Any(), deployment).Return(risk, true, nil) @@ -311,19 +311,45 @@ func TestGetDeploymentRiskAISummary_NilRisk(t *testing.T) { mockDS.EXPECT().GetDeployment(gomock.Any(), "dep-4").Return(deployment, true, nil) mockRisks.EXPECT().GetRiskForDeployment(gomock.Any(), deployment).Return(nil, false, nil) - olsMock := &mockOLSClient{ - response: &olsClient.QueryResponse{Response: "No significant risk factors identified."}, + // OLS client should NOT be called for nil/low risk - no mock needed + svc := &serviceImpl{ + datastore: mockDS, + risks: mockRisks, } + resp, err := svc.GetDeploymentRiskAISummary(context.Background(), &v1.ResourceByID{Id: "dep-4"}) + require.NoError(t, err) + // Nil risk returns a specific message without calling OLS + assert.Equal(t, "No risk data available for this deployment.", resp.GetSummary()) +} + +func TestGetDeploymentRiskAISummary_LowRiskScore(t *testing.T) { + ctrl := gomock.NewController(t) + mockDS := deploymentMocks.NewMockDataStore(ctrl) + mockRisks := riskMocks.NewMockDataStore(ctrl) + + deployment := &storage.Deployment{ + Id: "dep-5", + Name: "low-risk-app", + Namespace: "default", + ClusterName: "test-cluster", + Type: "Deployment", + } + + risk := &storage.Risk{Score: 3.5} // Below threshold of 5.0 + + mockDS.EXPECT().GetDeployment(gomock.Any(), "dep-5").Return(deployment, true, nil) + mockRisks.EXPECT().GetRiskForDeployment(gomock.Any(), deployment).Return(risk, true, nil) + + // OLS client should NOT be called for low risk scores svc := &serviceImpl{ - datastore: mockDS, - risks: mockRisks, - lightspeedClient: olsMock, + datastore: mockDS, + risks: mockRisks, } - resp, err := svc.GetDeploymentRiskAISummary(context.Background(), &v1.ResourceByID{Id: "dep-4"}) + resp, err := svc.GetDeploymentRiskAISummary(context.Background(), &v1.ResourceByID{Id: "dep-5"}) require.NoError(t, err) - assert.Equal(t, "No significant risk factors identified.", resp.GetSummary()) + assert.Equal(t, "Skipping AI summary since this is a low risk deployment with normalized risk score below 5.", resp.GetSummary()) } func TestBuildSanitizedRiskContext_FieldSelection(t *testing.T) { diff --git a/central/deployment/service/service_impl.go b/central/deployment/service/service_impl.go index e23fc453a496b..3ba4f12a378f5 100644 --- a/central/deployment/service/service_impl.go +++ b/central/deployment/service/service_impl.go @@ -37,6 +37,7 @@ import ( const ( maxDeploymentsReturned = 1000 + lowRiskThreshold = 5.0 ) var log = logging.LoggerForModule() @@ -303,6 +304,20 @@ func (s *serviceImpl) GetDeploymentRiskAISummary(ctx context.Context, request *v return nil, err } + // Skip LLM call for deployments without risk data. + if risk == nil { + return &v1.DeploymentRiskAISummaryResponse{ + Summary: "No risk data available for this deployment.", + }, nil + } + + // Skip LLM call for low-risk deployments. + if risk.GetScore() < lowRiskThreshold { + return &v1.DeploymentRiskAISummaryResponse{ + Summary: "Skipping AI summary since this is a low risk deployment with normalized risk score below 5.", + }, nil + } + contextJSON, err := buildSanitizedRiskContext(deployment, risk) if err != nil { return nil, errors.Wrap(err, "building risk context for AI summary") From b5497cac848f68e5ded267162c4bfc23cc729a14 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Tue, 15 Sep 2026 21:21:55 +0200 Subject: [PATCH 003/327] fix(reports): validate schedule bounds and intervals (#22788) Signed-off-by: Tomasz Janiszewski --- .../service/v2/node/service_impl_test.go | 24 ++++--- .../reports/service/v2/service_impl_test.go | 12 ++-- .../validation/entity_scope_boundary_test.go | 63 +++++++++++++++++++ .../validation/filter_enum_boundary_test.go | 55 ++++++++++++++++ .../validation/notifier_type_boundary_test.go | 24 +++++++ .../validation/schedule_boundary_test.go | 28 +++++++++ central/reports/validation/validate.go | 52 ++++++++++++++- .../validation/validate_comprehensive_test.go | 6 +- central/reports/validation/validate_test.go | 6 ++ 9 files changed, 251 insertions(+), 19 deletions(-) create mode 100644 central/reports/validation/entity_scope_boundary_test.go create mode 100644 central/reports/validation/filter_enum_boundary_test.go create mode 100644 central/reports/validation/notifier_type_boundary_test.go create mode 100644 central/reports/validation/schedule_boundary_test.go diff --git a/central/reports/service/v2/node/service_impl_test.go b/central/reports/service/v2/node/service_impl_test.go index f641f171e586e..8de5b2e97c062 100644 --- a/central/reports/service/v2/node/service_impl_test.go +++ b/central/reports/service/v2/node/service_impl_test.go @@ -23,6 +23,7 @@ import ( "github.com/stackrox/rox/pkg/grpc/authn" mockIdentity "github.com/stackrox/rox/pkg/grpc/authn/mocks" "github.com/stackrox/rox/pkg/grpc/testutils" + "github.com/stackrox/rox/pkg/notifiers" postgresMocks "github.com/stackrox/rox/pkg/postgres/mocks" pgNotify "github.com/stackrox/rox/pkg/postgres/notify" "github.com/stackrox/rox/pkg/protoassert" @@ -103,7 +104,7 @@ func (s *NodeReportServiceTestSuite) getValidNodeReportConfig() *apiV2.ReportCon Rules: []*apiV2.EntityScopeRule{ { Entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, - Field: apiV2.ScopeField_FIELD_ID, + Field: apiV2.ScopeField_FIELD_NAME, Values: []*apiV2.RuleValue{ { Value: "cluster-1", @@ -160,7 +161,8 @@ func (s *NodeReportServiceTestSuite) TestPostNodeReportConfiguration() { mockRole.EXPECT().GetAccessScope().Return(accessScope).Times(1) mockID.EXPECT().Roles().Return([]permissions.ResolvedRole{mockRole}).Times(1) - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) s.reportConfigDataStore.EXPECT().AddReportConfiguration(gomock.Any(), gomock.Any()). DoAndReturn(func(_ context.Context, cfg *storage.ReportConfiguration) (string, error) { @@ -202,7 +204,8 @@ func (s *NodeReportServiceTestSuite) TestPostNodeReportConfiguration_GetAfterCre requestConfig := s.getValidNodeReportConfig() ctx := s.getContextForUser(creator) - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) s.reportConfigDataStore.EXPECT().AddReportConfiguration(gomock.Any(), gomock.Any()). Return(requestConfig.GetId(), nil).Times(1) s.reportConfigDataStore.EXPECT().GetReportConfiguration(gomock.Any(), requestConfig.GetId()). @@ -228,7 +231,8 @@ func (s *NodeReportServiceTestSuite) TestPostNodeReportConfiguration_ValidationE }, } - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) _, err := s.service.PostNodeReportConfiguration(ctx, invalidConfig) s.Error(err) @@ -595,7 +599,8 @@ func (s *NodeReportServiceTestSuite) TestUpdateNodeReportConfiguration() { mockRole.EXPECT().GetAccessScope().Return(accessScope).AnyTimes() mockID.EXPECT().Roles().Return([]permissions.ResolvedRole{mockRole}).AnyTimes() - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) existingConfig := &storage.ReportConfiguration{ Id: updateConfig.GetId(), @@ -989,7 +994,8 @@ func (s *NodeReportServiceTestSuite) TestUpdateNodeReportConfiguration_NotFound( updateConfig := s.getValidNodeReportConfig() - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) s.reportConfigDataStore.EXPECT().GetReportConfiguration(gomock.Any(), updateConfig.GetId()). Return(nil, false, nil).Times(1) @@ -1215,7 +1221,8 @@ func (s *NodeReportServiceTestSuite) TestPostNodeReportConfigurationWithCentralW mockRole.EXPECT().GetAccessScope().Return(accessScope).Times(1) mockID.EXPECT().Roles().Return([]permissions.ResolvedRole{mockRole}).Times(1) - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) s.reportConfigDataStore.EXPECT().AddReportConfiguration(gomock.Any(), gomock.Any()). DoAndReturn(func(_ context.Context, cfg *storage.ReportConfiguration) (string, error) { return cfg.GetId(), nil @@ -1247,7 +1254,8 @@ func (s *NodeReportServiceTestSuite) TestUpdateNodeReportConfigurationWithCentra updateConfig := s.getValidNodeReportConfig() ctx := s.getContextForUser(creator) - s.notifierDataStore.EXPECT().Exists(gomock.Any(), "email-notifier-id").Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), "email-notifier-id"). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) s.reportConfigDataStore.EXPECT().GetReportConfiguration(gomock.Any(), updateConfig.GetId()). Return(&storage.ReportConfiguration{ Id: updateConfig.GetId(), diff --git a/central/reports/service/v2/service_impl_test.go b/central/reports/service/v2/service_impl_test.go index 94f63715281e1..5f574ba81d094 100644 --- a/central/reports/service/v2/service_impl_test.go +++ b/central/reports/service/v2/service_impl_test.go @@ -26,6 +26,7 @@ import ( "github.com/stackrox/rox/pkg/grpc/authn" mockIdentity "github.com/stackrox/rox/pkg/grpc/authn/mocks" "github.com/stackrox/rox/pkg/grpc/testutils" + "github.com/stackrox/rox/pkg/notifiers" postgresMocks "github.com/stackrox/rox/pkg/postgres/mocks" pgNotify "github.com/stackrox/rox/pkg/postgres/notify" "github.com/stackrox/rox/pkg/protoassert" @@ -158,7 +159,8 @@ func (s *ReportServiceTestSuite) TestUpdateReportConfiguration_RejectsNodeType() s.reportConfigDataStore.EXPECT().GetReportConfiguration(gomock.Any(), "node-config"). Return(protoReportConfig, true, nil).Times(1) s.collectionDataStore.EXPECT().Exists(gomock.Any(), gomock.Any()).Return(true, nil).AnyTimes() - s.notifierDataStore.EXPECT().Exists(gomock.Any(), gomock.Any()).Return(true, nil).AnyTimes() + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), gomock.Any()). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).AnyTimes() requestConfig := fixtures.GetValidV2ReportConfigWithMultipleNotifiers() requestConfig.Id = "node-config" @@ -850,11 +852,11 @@ func (s *ReportServiceTestSuite) upsertReportConfigTestCases(isUpdate bool) []up func (s *ReportServiceTestSuite) mockNotifierStoreCalls(reqNotifier *apiV2.NotifierConfiguration, notifierIDExits, isValidationError, isUpdate bool) { if notifierIDExits { - s.notifierDataStore.EXPECT().Exists(gomock.Any(), reqNotifier.GetEmailConfig().GetNotifierId()). - Return(true, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), reqNotifier.GetEmailConfig().GetNotifierId()). + Return(&storage.Notifier{Type: notifiers.EmailType}, true, nil).Times(1) } else { - s.notifierDataStore.EXPECT().Exists(gomock.Any(), reqNotifier.GetEmailConfig().GetNotifierId()). - Return(false, nil).Times(1) + s.notifierDataStore.EXPECT().GetScrubbedNotifier(gomock.Any(), reqNotifier.GetEmailConfig().GetNotifierId()). + Return(nil, false, nil).Times(1) } if !isValidationError && !isUpdate { diff --git a/central/reports/validation/entity_scope_boundary_test.go b/central/reports/validation/entity_scope_boundary_test.go new file mode 100644 index 0000000000000..26ddadc18da91 --- /dev/null +++ b/central/reports/validation/entity_scope_boundary_test.go @@ -0,0 +1,63 @@ +package validation + +import ( + "testing" + + apiV2 "github.com/stackrox/rox/generated/api/v2" + "github.com/stackrox/rox/pkg/errox" + "github.com/stretchr/testify/require" +) + +func TestValidateEntityScopeRejectsUnsupportedRulesAndValues(t *testing.T) { + tests := map[string]struct { + entity apiV2.ScopeEntity + field apiV2.ScopeField + value *apiV2.RuleValue + }{ + "unsupported cluster ID": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField_FIELD_ID, + value: &apiV2.RuleValue{Value: "cluster-id"}, + }, + "unknown entity": { + entity: apiV2.ScopeEntity(99), + field: apiV2.ScopeField_FIELD_NAME, + value: &apiV2.RuleValue{Value: "prod"}, + }, + "unknown field": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField(99), + value: &apiV2.RuleValue{Value: "prod"}, + }, + "unknown match type": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField_FIELD_NAME, + value: &apiV2.RuleValue{Value: "prod", MatchType: apiV2.MatchType(99)}, + }, + "nil value": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField_FIELD_NAME, + }, + "empty scalar value": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField_FIELD_NAME, + value: &apiV2.RuleValue{}, + }, + "invalid regex key": { + entity: apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, + field: apiV2.ScopeField_FIELD_LABEL, + value: &apiV2.RuleValue{Value: "[=prod", MatchType: apiV2.MatchType_REGEX}, + }, + } + + for name, tc := range tests { + t.Run(name, func(t *testing.T) { + err := validateEntityScope(&apiV2.EntityScope{Rules: []*apiV2.EntityScopeRule{{ + Entity: tc.entity, + Field: tc.field, + Values: []*apiV2.RuleValue{tc.value}, + }}}) + require.ErrorIs(t, err, errox.InvalidArgs) + }) + } +} diff --git a/central/reports/validation/filter_enum_boundary_test.go b/central/reports/validation/filter_enum_boundary_test.go new file mode 100644 index 0000000000000..b1e707cbbc4f6 --- /dev/null +++ b/central/reports/validation/filter_enum_boundary_test.go @@ -0,0 +1,55 @@ +package validation + +import ( + "testing" + + reportConfigDSMocks "github.com/stackrox/rox/central/reports/config/datastore/mocks" + apiV2 "github.com/stackrox/rox/generated/api/v2" + "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/errox" + "github.com/stretchr/testify/require" + "go.uber.org/mock/gomock" +) + +func TestValidateAndGenerateReportRequestRejectsInvalidNotificationMethodBeforeLookup(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + validator := &Validator{reportConfigDatastore: reportConfigDSMocks.NewMockDataStore(ctrl)} + + _, err := validator.ValidateAndGenerateReportRequest( + "config", + storage.ReportStatus_NotificationMethod(99), + storage.ReportStatus_ON_DEMAND, + nil, + ) + require.ErrorIs(t, err, errox.InvalidArgs) +} + +func TestValidateImageFiltersRejectsInvalidEnumsAndDates(t *testing.T) { + tests := map[string]*apiV2.VulnerabilityReportFilters{ + "image type": { + ImageTypes: []apiV2.VulnerabilityReportFilters_ImageType{apiV2.VulnerabilityReportFilters_ImageType(99)}, + CvesSince: &apiV2.VulnerabilityReportFilters_AllVuln{AllVuln: true}, + }, + "fixability": { + ImageTypes: []apiV2.VulnerabilityReportFilters_ImageType{apiV2.VulnerabilityReportFilters_DEPLOYED}, + Fixability: apiV2.VulnerabilityReportFilters_Fixability(99), + CvesSince: &apiV2.VulnerabilityReportFilters_AllVuln{AllVuln: true}, + }, + "severity": { + ImageTypes: []apiV2.VulnerabilityReportFilters_ImageType{apiV2.VulnerabilityReportFilters_DEPLOYED}, + Severities: []apiV2.VulnerabilityReportFilters_VulnerabilitySeverity{apiV2.VulnerabilityReportFilters_VulnerabilitySeverity(99)}, + CvesSince: &apiV2.VulnerabilityReportFilters_AllVuln{AllVuln: true}, + }, + "nil start date": { + ImageTypes: []apiV2.VulnerabilityReportFilters_ImageType{apiV2.VulnerabilityReportFilters_DEPLOYED}, + CvesSince: &apiV2.VulnerabilityReportFilters_SinceStartDate{}, + }, + } + + for name, filters := range tests { + t.Run(name, func(t *testing.T) { + require.ErrorIs(t, (&Validator{}).validateImageFilters(filters), errox.InvalidArgs) + }) + } +} diff --git a/central/reports/validation/notifier_type_boundary_test.go b/central/reports/validation/notifier_type_boundary_test.go new file mode 100644 index 0000000000000..56825c94b2cd3 --- /dev/null +++ b/central/reports/validation/notifier_type_boundary_test.go @@ -0,0 +1,24 @@ +package validation + +import ( + "testing" + + notifierDSMocks "github.com/stackrox/rox/central/notifier/datastore/mocks" + apiV2 "github.com/stackrox/rox/generated/api/v2" + "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/errox" + "github.com/stretchr/testify/require" + "go.uber.org/mock/gomock" +) + +func TestValidateEmailConfigRejectsNonEmailNotifier(t *testing.T) { + ctrl := gomock.NewController(t) + defer ctrl.Finish() + notifierDS := notifierDSMocks.NewMockDataStore(ctrl) + notifierDS.EXPECT().GetScrubbedNotifier(gomock.Any(), "notifier").Return(&storage.Notifier{Type: "slack"}, true, nil) + + err := (&Validator{notifierDatastore: notifierDS}).validateEmailConfig(&apiV2.EmailNotifierConfiguration{ + NotifierId: "notifier", MailingLists: []string{"reader@example.com"}, + }) + require.ErrorIs(t, err, errox.InvalidArgs) +} diff --git a/central/reports/validation/schedule_boundary_test.go b/central/reports/validation/schedule_boundary_test.go new file mode 100644 index 0000000000000..459d8a7ca4729 --- /dev/null +++ b/central/reports/validation/schedule_boundary_test.go @@ -0,0 +1,28 @@ +package validation + +import ( + "testing" + + apiV2 "github.com/stackrox/rox/generated/api/v2" + "github.com/stackrox/rox/pkg/errox" + "github.com/stretchr/testify/require" +) + +func TestValidateScheduleRejectsInvalidBoundsAndIntervals(t *testing.T) { + tests := map[string]*apiV2.ReportSchedule{ + "negative hour": {IntervalType: apiV2.ReportSchedule_DAILY, Hour: -1}, + "hour 24": {IntervalType: apiV2.ReportSchedule_DAILY, Hour: 24}, + "negative minute": {IntervalType: apiV2.ReportSchedule_DAILY, Minute: -1}, + "minute 60": {IntervalType: apiV2.ReportSchedule_DAILY, Minute: 60}, + "unknown interval": { + IntervalType: apiV2.ReportSchedule_IntervalType(99), + }, + } + + for name, schedule := range tests { + t.Run(name, func(t *testing.T) { + err := (&Validator{}).validateSchedule(&apiV2.ReportConfiguration{Schedule: schedule}) + require.ErrorIs(t, err, errox.InvalidArgs) + }) + } +} diff --git a/central/reports/validation/validate.go b/central/reports/validation/validate.go index fef9a6ea322fe..4c00f9431d603 100644 --- a/central/reports/validation/validate.go +++ b/central/reports/validation/validate.go @@ -23,6 +23,7 @@ import ( "github.com/stackrox/rox/pkg/errox" "github.com/stackrox/rox/pkg/features" "github.com/stackrox/rox/pkg/grpc/authn" + "github.com/stackrox/rox/pkg/notifiers" "github.com/stackrox/rox/pkg/protocompat" "github.com/stackrox/rox/pkg/sac" "github.com/stackrox/rox/pkg/search" @@ -83,8 +84,14 @@ func (v *Validator) validateSchedule(config *apiV2.ReportConfiguration) error { if schedule == nil { return nil } + if schedule.GetHour() < 0 || schedule.GetHour() > 23 { + return errox.InvalidArgs.New("schedule hour must be within 0-23") + } + if schedule.GetMinute() < 0 || schedule.GetMinute() > 59 { + return errox.InvalidArgs.New("schedule minute must be within 0-59") + } switch schedule.GetIntervalType() { - case apiV2.ReportSchedule_UNSET: + default: return errox.InvalidArgs.New("report configuration schedule must be one of DAILY, WEEKLY, or MONTHLY") case apiV2.ReportSchedule_DAILY: if schedule.GetDaysOfWeek() != nil || schedule.GetDaysOfMonth() != nil { @@ -158,13 +165,16 @@ func (v *Validator) validateEmailConfig(emailConfig *apiV2.EmailNotifierConfigur } // Use allAccessCtx since report creator/updater might not have permissions for integrationSAC - exists, err := v.notifierDatastore.Exists(allAccessCtx, emailConfig.GetNotifierId()) + notifier, exists, err := v.notifierDatastore.GetScrubbedNotifier(allAccessCtx, emailConfig.GetNotifierId()) if err != nil { return errors.Errorf("Error looking up attached notifier, Notifier ID: %s, Error: %s", emailConfig.GetNotifierId(), err) } if !exists { return errors.Wrapf(errox.NotFound, "Notifier with ID %s not found.", emailConfig.GetNotifierId()) } + if notifier.GetType() != notifiers.EmailType && notifier.GetType() != notifiers.ACSCSEmailType { + return errox.InvalidArgs.New("report configuration requires an email notifier") + } return nil } @@ -249,12 +259,19 @@ func validateEntityScope(es *apiV2.EntityScope) error { } seen := set.NewSet[entityFieldKey]() for _, rule := range es.GetRules() { - if rule.GetEntity() == apiV2.ScopeEntity_SCOPE_ENTITY_UNSET { + switch rule.GetEntity() { + case apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, apiV2.ScopeEntity_SCOPE_ENTITY_NAMESPACE, apiV2.ScopeEntity_SCOPE_ENTITY_DEPLOYMENT: + default: return errox.InvalidArgs.Newf("unexpected entity scope rule: %s", rule.GetEntity()) } if rule.GetField() == apiV2.ScopeField_FIELD_UNSET { return errox.InvalidArgs.Newf("unexpected entity in scope rule for %s with an unset field", rule.GetEntity()) } + switch rule.GetField() { + case apiV2.ScopeField_FIELD_NAME, apiV2.ScopeField_FIELD_LABEL, apiV2.ScopeField_FIELD_ANNOTATION: + default: + return errox.InvalidArgs.Newf("unsupported field %s for entity scope", rule.GetField()) + } // Cluster annotation is not indexed and therefore unsupported. if rule.GetEntity() == apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER && rule.GetField() == apiV2.ScopeField_FIELD_ANNOTATION { return errox.InvalidArgs.New("annotation field is not supported for cluster entity scope rules") @@ -271,6 +288,12 @@ func validateEntityScope(es *apiV2.EntityScope) error { isMapField := rule.GetField() == apiV2.ScopeField_FIELD_LABEL || rule.GetField() == apiV2.ScopeField_FIELD_ANNOTATION for _, rv := range rule.GetValues() { valOfValue := rv.GetValue() + if valOfValue == "" { + return errox.InvalidArgs.New("entity scope rule values must not be empty") + } + if rv.GetMatchType() != apiV2.MatchType_EXACT && rv.GetMatchType() != apiV2.MatchType_REGEX { + return errox.InvalidArgs.Newf("unsupported match type %s", rv.GetMatchType()) + } if isMapField { mapKey, mapValue, found := strings.Cut(valOfValue, "=") if !found { @@ -281,6 +304,8 @@ func validateEntityScope(es *apiV2.EntityScope) error { if errs := k8sValidation.IsLabelKey(mapKey); len(errs) > 0 { return errox.InvalidArgs.Newf("invalid %v key %q: %s", rule.GetField(), mapKey, strings.Join(errs, "; ")) } + } else if _, err := regexp.Compile(mapKey); err != nil { + return errox.InvalidArgs.CausedByf("invalid regex key %q: %v", mapKey, err) } valOfValue = mapValue } @@ -314,6 +339,24 @@ func (v *Validator) validateImageFilters(filters *apiV2.VulnerabilityReportFilte return errox.InvalidArgs.New("vulnerability report filters should specify which image types to scan for CVEs; " + "the valid options are 'DEPLOYED' and 'WATCHED'") } + for _, imageType := range filters.GetImageTypes() { + if _, ok := apiV2.VulnerabilityReportFilters_ImageType_name[int32(imageType)]; !ok { + return errox.InvalidArgs.Newf("unsupported image type %d", imageType) + } + } + if _, ok := apiV2.VulnerabilityReportFilters_Fixability_name[int32(filters.GetFixability())]; !ok { + return errox.InvalidArgs.Newf("unsupported fixability %d", filters.GetFixability()) + } + for _, severity := range filters.GetSeverities() { + if _, ok := apiV2.VulnerabilityReportFilters_VulnerabilitySeverity_name[int32(severity)]; !ok { + return errox.InvalidArgs.Newf("unsupported severity %d", severity) + } + } + if since, ok := filters.GetCvesSince().(*apiV2.VulnerabilityReportFilters_SinceStartDate); ok { + if since.SinceStartDate == nil || since.SinceStartDate.CheckValid() != nil { + return errox.InvalidArgs.New("invalid CVE start date") + } + } if filters.GetCvesSince() == nil { return errox.InvalidArgs.New("vulnerability report filters must specify how far back in time to look for CVEs; " + @@ -363,6 +406,9 @@ func (v *Validator) ValidateAndGenerateReportRequest( requestType storage.ReportStatus_RunMethod, requesterID authn.Identity, ) (*reportGen.ReportRequest, error) { + if notificationMethod != storage.ReportStatus_EMAIL && notificationMethod != storage.ReportStatus_DOWNLOAD { + return nil, errox.InvalidArgs.Newf("unsupported notification method %d", notificationMethod) + } config, found, err := v.reportConfigDatastore.GetReportConfiguration(allAccessCtx, configID) if err != nil { return nil, errors.Wrapf(err, "Error finding report configuration %s", configID) diff --git a/central/reports/validation/validate_comprehensive_test.go b/central/reports/validation/validate_comprehensive_test.go index 868227e87a24f..809b8c9a66be6 100644 --- a/central/reports/validation/validate_comprehensive_test.go +++ b/central/reports/validation/validate_comprehensive_test.go @@ -161,7 +161,7 @@ func TestValidateNotifiers(t *testing.T) { }, }, setupMocks: func() { - notifierDS.EXPECT().Exists(gomock.Any(), "notifier-1").Return(true, nil) + notifierDS.EXPECT().GetScrubbedNotifier(gomock.Any(), "notifier-1").Return(&storage.Notifier{Type: "email"}, true, nil) }, expectError: false, }, @@ -221,7 +221,7 @@ func TestValidateEmailConfig(t *testing.T) { MailingLists: []string{"user@example.com"}, }, setupMocks: func(notifierDS *notifierDSMocks.MockDataStore) { - notifierDS.EXPECT().Exists(gomock.Any(), "missing-notifier").Return(false, nil) + notifierDS.EXPECT().GetScrubbedNotifier(gomock.Any(), "missing-notifier").Return(nil, false, nil) }, expectError: true, errContains: "not found", @@ -234,7 +234,7 @@ func TestValidateEmailConfig(t *testing.T) { CustomBody: "Report body", }, setupMocks: func(notifierDS *notifierDSMocks.MockDataStore) { - notifierDS.EXPECT().Exists(gomock.Any(), "notifier-1").Return(true, nil) + notifierDS.EXPECT().GetScrubbedNotifier(gomock.Any(), "notifier-1").Return(&storage.Notifier{Type: "email"}, true, nil) }, expectError: false, }, diff --git a/central/reports/validation/validate_test.go b/central/reports/validation/validate_test.go index 3328409deffcd..da51f83371d26 100644 --- a/central/reports/validation/validate_test.go +++ b/central/reports/validation/validate_test.go @@ -52,6 +52,12 @@ func TestValidateEntityScope(t *testing.T) { ), expectError: false, }, + "label key with empty value is valid": { + scope: makeEntityScope( + makeRule(apiV2.ScopeEntity_SCOPE_ENTITY_NAMESPACE, apiV2.ScopeField_FIELD_LABEL, exactValue("required=")), + ), + expectError: false, + }, "valid multiple rules different entities": { scope: makeEntityScope( makeRule(apiV2.ScopeEntity_SCOPE_ENTITY_CLUSTER, apiV2.ScopeField_FIELD_NAME, exactValue("prod")), From dd5ae71f3fbb350fcef74566f45101010cd0029d Mon Sep 17 00:00:00 2001 From: David Vail Date: Tue, 15 Sep 2026 15:55:36 -0400 Subject: [PATCH 004/327] chore(ui): Mark Collections as deprecated in the UI (#22313) --- .../Containers/Collections/CollectionsTablePage.tsx | 10 ++++++++++ .../MainPage/Navigation/NavigationSidebar.tsx | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ui/apps/platform/src/Containers/Collections/CollectionsTablePage.tsx b/ui/apps/platform/src/Containers/Collections/CollectionsTablePage.tsx index ebc8a4e53437d..2bb533d8852f5 100644 --- a/ui/apps/platform/src/Containers/Collections/CollectionsTablePage.tsx +++ b/ui/apps/platform/src/Containers/Collections/CollectionsTablePage.tsx @@ -81,6 +81,16 @@ function CollectionsTablePage({ hasWriteAccessForCollections }: CollectionsTable return ( <> + + Collection scope is deprecated for scheduled image vulnerability reports. To prepare + for future updates, we recommend updating each scheduled report in Vulnerability + reporting to use Custom scope. + diff --git a/ui/apps/platform/src/Containers/MainPage/Navigation/NavigationSidebar.tsx b/ui/apps/platform/src/Containers/MainPage/Navigation/NavigationSidebar.tsx index d5012bbeaae06..ba6e410238455 100644 --- a/ui/apps/platform/src/Containers/MainPage/Navigation/NavigationSidebar.tsx +++ b/ui/apps/platform/src/Containers/MainPage/Navigation/NavigationSidebar.tsx @@ -247,7 +247,9 @@ function getNavDescriptions(isFeatureFlagEnabled: IsFeatureFlagEnabled): NavDesc }, { type: 'link', - content: 'Collections', + content: ( + Collections + ), path: collectionsBasePath, routeKey: 'collections', }, From a9a70f174ba946404e7c8d5ba6b796fea194d276 Mon Sep 17 00:00:00 2001 From: Yann Brillouet <91869377+rhybrillou@users.noreply.github.com> Date: Tue, 15 Sep 2026 21:56:42 +0200 Subject: [PATCH 005/327] ROX-33973: Remove OIDC AuthProvider with role resolution from ACM (#22842) --- central/main.go | 4 -- .../oidc/backend_factory_impl.go | 4 -- pkg/auth/authproviders/registry_impl.go | 49 +++---------------- .../AuthProviders/AuthProviderForm.tsx | 43 +++++++--------- .../AuthProviders/ConfigurationFormFields.tsx | 2 +- .../AuthProviders/authProviders.utils.ts | 6 +-- .../platform/src/constants/accessControl.ts | 1 - .../src/services/AuthService/AuthService.ts | 3 +- 8 files changed, 30 insertions(+), 82 deletions(-) diff --git a/central/main.go b/central/main.go index 11bf834c78731..6b375b4956f24 100755 --- a/central/main.go +++ b/central/main.go @@ -590,10 +590,6 @@ func startGRPCServer() { } } - if features.ACMAccessControlDelegation.Enabled() { - authProviderBackendFactories[oidc.TypeNameWithACMAccessControlDelegation] = oidc.NewFactory - } - for typeName, factoryCreator := range authProviderBackendFactories { if err := registry.RegisterBackendFactory(authProviderRegisteringCtx, typeName, factoryCreator); err != nil { log.Panicf("Could not register %s auth provider factory: %v", typeName, err) diff --git a/pkg/auth/authproviders/oidc/backend_factory_impl.go b/pkg/auth/authproviders/oidc/backend_factory_impl.go index e3f16b348f5d1..2e745e545063a 100644 --- a/pkg/auth/authproviders/oidc/backend_factory_impl.go +++ b/pkg/auth/authproviders/oidc/backend_factory_impl.go @@ -20,10 +20,6 @@ const ( // TypeName is the standard type name for OIDC auth providers. TypeName = "oidc" - // TypeNameWithACMAccessControlDelegation is the type name for OIDC auth providers - // with role resolution from ACM. - TypeNameWithACMAccessControlDelegation = authproviders.OIDCTypeNameWithACMRoles - callbackRelativePath = "callback" nonceTTL = 1 * time.Minute diff --git a/pkg/auth/authproviders/registry_impl.go b/pkg/auth/authproviders/registry_impl.go index c09c10178af9d..2e01d81d1a329 100644 --- a/pkg/auth/authproviders/registry_impl.go +++ b/pkg/auth/authproviders/registry_impl.go @@ -24,7 +24,6 @@ import ( const ( OpenShiftTypeNameWithACMAccessControlDelegation = "openshift-with-acm-roles" - OIDCTypeNameWithACMRoles = "oidc-with-acm-roles" ) var ( @@ -382,12 +381,6 @@ func (r *registryImpl) issueTokenForResponse(ctx context.Context, provider Provi return nil, nil, err } roxClaims.InternalRoles = roles - case OIDCTypeNameWithACMRoles: - roles, err := getRolesForOIDCResponse(ctx, authResp, r.clusterResolver) - if err != nil { - return nil, nil, err - } - roxClaims.InternalRoles = roles default: roxClaims.ExternalUser = authResp.Claims } @@ -460,45 +453,13 @@ func getRolesForOpenshiftResponse( if err != nil { return nil, errox.InvalidArgs.CausedByf("failed to parse token: %v", err) } - acmClientObj, err := getACMClientForToken(tokenData.AccessToken) - if err != nil { - return nil, errors.Wrap(err, "failed to get ACM client") - } - roles, err := externalrolebroker.GetResolvedRolesFromACM(ctx, acmClientObj, clusterIDResolver) - if err != nil { - return nil, errors.Wrap(err, "failed to fetch role information") - } - return roles, nil -} - -func getRolesForOIDCResponse( - ctx context.Context, - authResp *AuthResponse, - clusterIDResolver tokens.ClusterResolver, -) ([]*tokens.InternalRole, error) { - if authResp == nil { - return nil, errox.InvalidArgs.CausedBy("auth response must not be nil") - } - acmClientObj, err := getACMClientForToken(authResp.IdpToken) - if err != nil { - return nil, errors.Wrap(err, "failed to get ACM client") - } - roles, err := externalrolebroker.GetResolvedRolesFromACM(ctx, acmClientObj, clusterIDResolver) - if err != nil { - return nil, errors.Wrap(err, "failed to fetch role information") - } - return roles, nil - -} - -func getACMClientForToken(token string) (*acm.Client, error) { // Retrieve OpenShift cluster config cfg, err := rest.InClusterConfig() if err != nil { return nil, errors.Wrap(err, "failed to get cluster config") } // Enrich the config with the OpenShift Auth Token - cfg.BearerToken = token + cfg.BearerToken = tokenData.AccessToken // Clear BearerTokenFile so that BearerToken takes precedence. // InClusterConfig() sets BearerTokenFile to the service account token, // which would override the user's OAuth token we just set. @@ -507,15 +468,17 @@ func getACMClientForToken(token string) (*acm.Client, error) { if err != nil { return nil, errors.Wrap(err, "failed to instantiate ACM client") } - return acmClientObj, nil + roles, err := externalrolebroker.GetResolvedRolesFromACM(ctx, acmClientObj, clusterIDResolver) + if err != nil { + return nil, errors.Wrap(err, "failed to fetch role information") + } + return roles, nil } func isACMRoleDelegationProvider(provider Provider) bool { switch provider.Type() { case OpenShiftTypeNameWithACMAccessControlDelegation: return true - case OIDCTypeNameWithACMRoles: - return true } return false } diff --git a/ui/apps/platform/src/Containers/AccessControl/AuthProviders/AuthProviderForm.tsx b/ui/apps/platform/src/Containers/AccessControl/AuthProviders/AuthProviderForm.tsx index 58a1e051e6a98..620d4ca201152 100644 --- a/ui/apps/platform/src/Containers/AccessControl/AuthProviders/AuthProviderForm.tsx +++ b/ui/apps/platform/src/Containers/AccessControl/AuthProviders/AuthProviderForm.tsx @@ -94,8 +94,7 @@ function testModeSupported(provider) { provider.type === 'oidc' || provider.type === 'saml' || provider.type === 'openshift' || - provider.type === 'openshift-with-acm-roles' || - provider.type === 'oidc-with-acm-roles' + provider.type === 'openshift-with-acm-roles' ); } @@ -168,7 +167,7 @@ function AuthProviderForm({ // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore .when('type', { - is: (type) => type === 'oidc' || type === 'oidc-with-acm-roles', + is: (type) => type === 'oidc', then: (configSchema) => configSchema.shape({ client_id: yup.string().required('A client ID is required.'), @@ -533,8 +532,7 @@ function AuthProviderForm({

- {(selectedAuthProvider.type === 'oidc' || - selectedAuthProvider.type === 'oidc-with-acm-roles') && ( + {selectedAuthProvider.type === 'oidc' && ( )} - {(selectedAuthProvider.type === 'oidc' || - selectedAuthProvider.type === 'oidc-with-acm-roles') && ( + {selectedAuthProvider.type === 'oidc' && ( )} - {selectedAuthProvider.type !== 'openshift-with-acm-roles' && - selectedAuthProvider.type !== 'oidc-with-acm-roles' && ( - - - - )} - {(selectedAuthProvider.type === 'openshift-with-acm-roles' || - selectedAuthProvider.type === 'oidc-with-acm-roles') && ( + {selectedAuthProvider.type !== 'openshift-with-acm-roles' && ( + + + + )} + {selectedAuthProvider.type === 'openshift-with-acm-roles' && (
)} - {(type === 'oidc' || type === 'oidc-with-acm-roles') && ( + {type === 'oidc' && ( <> diff --git a/ui/apps/platform/src/Containers/AccessControl/AuthProviders/authProviders.utils.ts b/ui/apps/platform/src/Containers/AccessControl/AuthProviders/authProviders.utils.ts index bce738d2ff708..d0112a639b1f9 100644 --- a/ui/apps/platform/src/Containers/AccessControl/AuthProviders/authProviders.utils.ts +++ b/ui/apps/platform/src/Containers/AccessControl/AuthProviders/authProviders.utils.ts @@ -19,7 +19,7 @@ export function transformInitialValues( // TODO-ivan: eventually logic for different auth provider type should live // with the form component that renders form for the corresponding auth provider // type, probably makes sense to refactor after moving away from redux-form - if (initialValues.type === 'oidc' || initialValues.type === 'oidc-with-acm-roles') { + if (initialValues.type === 'oidc') { const alteredConfig = { ...initialValues.config }; // backend doesn't return the exact value for the client secret for the security reasons, @@ -73,7 +73,7 @@ function populateDefaultValues(authProvider: AuthProvider): AuthProvider { const newInitialValues: DisplayedAuthProvider = { ...authProvider }; newInitialValues.uiEndpoint = window.location.host; newInitialValues.enabled = true; - if (authProvider.type === 'oidc' || authProvider.type === 'oidc-with-acm-roles') { + if (authProvider.type === 'oidc') { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore newInitialValues.config = { @@ -128,7 +128,7 @@ export function transformValuesBeforeSaving( | Group[] | undefined > { - if (values.type === 'oidc' || values.type === 'oidc-with-acm-roles') { + if (values.type === 'oidc') { const alteredConfig = { ...(values.config as AuthProviderConfig) }; // if client secret is stored on the backend and user didn't enter any value, diff --git a/ui/apps/platform/src/constants/accessControl.ts b/ui/apps/platform/src/constants/accessControl.ts index a3d3fcda998f0..ade3865244ec7 100644 --- a/ui/apps/platform/src/constants/accessControl.ts +++ b/ui/apps/platform/src/constants/accessControl.ts @@ -15,7 +15,6 @@ export const authProviderLabels = { iap: 'Google IAP', openshift: 'OpenShift Auth', 'openshift-with-acm-roles': 'OpenShift Auth with ACM Roles', - 'oidc-with-acm-roles': 'OpenID Connect with ACM Roles', }; export const oidcCallbackModes = [ diff --git a/ui/apps/platform/src/services/AuthService/AuthService.ts b/ui/apps/platform/src/services/AuthService/AuthService.ts index 14aa760c44d68..ca9a50a4d82ef 100644 --- a/ui/apps/platform/src/services/AuthService/AuthService.ts +++ b/ui/apps/platform/src/services/AuthService/AuthService.ts @@ -53,8 +53,7 @@ export type AuthProviderType = | 'userpki' | 'iap' | 'openshift' - | 'openshift-with-acm-roles' - | 'oidc-with-acm-roles'; + | 'openshift-with-acm-roles'; export type AuthProviderConfig = Record< string, From c12feff0d7f3f6ef1a5c7c138cf964d9107d3452 Mon Sep 17 00:00:00 2001 From: Brad Rogers <61400697+bradr5@users.noreply.github.com> Date: Tue, 15 Sep 2026 15:31:03 -0500 Subject: [PATCH 006/327] ROX-36974: Prevent reports wizard crash (#22844) --- .../Wizard/ImageVulnerabilityReportWizard.tsx | 6 +++--- .../Configurations/Wizard/NodeVulnerabilityReportWizard.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/Reports/ImageVulnerabilityReports/Wizard/ImageVulnerabilityReportWizard.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/Reports/ImageVulnerabilityReports/Wizard/ImageVulnerabilityReportWizard.tsx index 59343c86727a5..4cece0984fbcb 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/Reports/ImageVulnerabilityReports/Wizard/ImageVulnerabilityReportWizard.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/Reports/ImageVulnerabilityReports/Wizard/ImageVulnerabilityReportWizard.tsx @@ -154,11 +154,11 @@ function ImageVulnerabilityReportWizard({ }, }); - const { dirty, isSubmitting, isValid, submitForm, validateForm, values } = formik; + const { dirty, isSubmitting, isValid, submitForm, validateForm } = formik; useEffect(() => { - validateForm(values).catch(() => {}); - }, [stepId, validateForm, values]); + validateForm().catch(() => {}); + }, [stepId, validateForm]); function isStepValid(id: WizardStepId): boolean { try { diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/Reports/NodeVulnerabilityReports/Configurations/Wizard/NodeVulnerabilityReportWizard.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/Reports/NodeVulnerabilityReports/Configurations/Wizard/NodeVulnerabilityReportWizard.tsx index 9ed5630937179..ca8d425bf12b5 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/Reports/NodeVulnerabilityReports/Configurations/Wizard/NodeVulnerabilityReportWizard.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/Reports/NodeVulnerabilityReports/Configurations/Wizard/NodeVulnerabilityReportWizard.tsx @@ -134,11 +134,11 @@ function NodeVulnerabilityReportWizard({ }, }); - const { dirty, isSubmitting, isValid, submitForm, validateForm, values } = formik; + const { dirty, isSubmitting, isValid, submitForm, validateForm } = formik; useEffect(() => { - validateForm(values).catch(() => {}); - }, [stepId, validateForm, values]); + validateForm().catch(() => {}); + }, [stepId, validateForm]); function isStepValid(id: WizardStepId): boolean { try { From f9225dee613806f4acf0cd3908fac474e2b21ddc Mon Sep 17 00:00:00 2001 From: Brad Lugo Date: Tue, 15 Sep 2026 14:15:47 -0700 Subject: [PATCH 007/327] ROX-28373: Enable CISA KEV reporting by default (#22835) Co-authored-by: AJ Heflin --- .../scheduler/v2/reportgenerator/csv_gen.go | 8 ++- .../v2/reportgenerator/csv_gen_test.go | 72 ++++++++++++++----- ...report_gen_transaction_integration_test.go | 52 +++++++------- pkg/features/list.go | 2 +- 4 files changed, 91 insertions(+), 43 deletions(-) diff --git a/central/reports/scheduler/v2/reportgenerator/csv_gen.go b/central/reports/scheduler/v2/reportgenerator/csv_gen.go index 45da7e5234165..490b53aa6ed9f 100644 --- a/central/reports/scheduler/v2/reportgenerator/csv_gen.go +++ b/central/reports/scheduler/v2/reportgenerator/csv_gen.go @@ -92,7 +92,13 @@ func formatCSVRow(r *ImageCVEQueryResponse) []string { } else { cisaKev = "Not Available" } - csvRow = append(csvRow, cisaKev) + var knownRansomware string + if r.GetKnownRansomwareCampaign() != nil { + knownRansomware = strconv.FormatBool(*r.GetKnownRansomwareCampaign()) + } else { + knownRansomware = "Not Available" + } + csvRow = append(csvRow, cisaKev, knownRansomware) } csvRow = append(csvRow, diff --git a/central/reports/scheduler/v2/reportgenerator/csv_gen_test.go b/central/reports/scheduler/v2/reportgenerator/csv_gen_test.go index 76f479f02c936..3de7b466a8b13 100644 --- a/central/reports/scheduler/v2/reportgenerator/csv_gen_test.go +++ b/central/reports/scheduler/v2/reportgenerator/csv_gen_test.go @@ -8,6 +8,7 @@ import ( "time" "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/features" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -62,27 +63,64 @@ func TestFormatCSVRow(t *testing.T) { Link: "https://nvd.nist.gov/vuln/detail/CVE-2024-1234", } - row := formatCSVRow(r) - assert.Equal(t, len(csvHeader), len(row), "row should have same number of columns as header") - assert.Equal(t, "test-cluster", row[0]) - assert.Equal(t, "test-ns", row[1]) - assert.Equal(t, "test-deploy", row[2]) - assert.Equal(t, "CVE-2024-1234", row[6]) - assert.Equal(t, "true", row[7]) - assert.Equal(t, "CRITICAL", row[9]) - assert.Equal(t, "95.000", row[12]) - assert.Equal(t, "Not Available", row[14]) // Image Created Date (nil → "Not Available") - assert.Equal(t, "https://nvd.nist.gov/vuln/detail/CVE-2024-1234", row[15]) + t.Run("KEV disabled", func(t *testing.T) { + t.Setenv(features.KnownExploitedVulnerabilities.EnvVar(), "false") + + row := formatCSVRow(r) + assert.Equal(t, len(formatCol()), len(row), "row should have same number of columns as header") + assert.Equal(t, "test-cluster", row[0]) + assert.Equal(t, "test-ns", row[1]) + assert.Equal(t, "test-deploy", row[2]) + assert.Equal(t, "CVE-2024-1234", row[6]) + assert.Equal(t, "true", row[7]) + assert.Equal(t, "CRITICAL", row[9]) + assert.Equal(t, "95.000", row[12]) + assert.Equal(t, "Not Available", row[14]) // Image Created Date (nil → "Not Available") + assert.Equal(t, "https://nvd.nist.gov/vuln/detail/CVE-2024-1234", row[15]) + }) + + t.Run("KEV enabled", func(t *testing.T) { + t.Setenv(features.KnownExploitedVulnerabilities.EnvVar(), "true") + + // The two KEV columns are inserted after EPSS (index 12), shifting all + // trailing columns right by two. + row := formatCSVRow(r) + assert.Equal(t, len(formatCol()), len(row), "row should have same number of columns as header") + assert.Equal(t, "test-cluster", row[0]) + assert.Equal(t, "95.000", row[12]) + assert.Equal(t, "Not Available", row[13]) // CISA KEV (nil → "Not Available") + assert.Equal(t, "Not Available", row[14]) // Known Ransomware Campaign (nil → "Not Available") + assert.Equal(t, "Not Available", row[16]) // Image Created Date (nil → "Not Available") + assert.Equal(t, "https://nvd.nist.gov/vuln/detail/CVE-2024-1234", row[17]) + }) } func TestFormatCSVRow_NilFields(t *testing.T) { r := &ImageCVEQueryResponse{} - row := formatCSVRow(r) - assert.Equal(t, len(csvHeader), len(row)) - assert.Equal(t, "", row[0]) - assert.Equal(t, "Not Available", row[12]) // EPSS Probability Percentage - assert.Equal(t, "Not Available", row[13]) // Discovered At - assert.Equal(t, "Not Available", row[14]) // Image Created Date + + t.Run("KEV disabled", func(t *testing.T) { + t.Setenv(features.KnownExploitedVulnerabilities.EnvVar(), "false") + + row := formatCSVRow(r) + assert.Equal(t, len(formatCol()), len(row)) + assert.Equal(t, "", row[0]) + assert.Equal(t, "Not Available", row[12]) // EPSS Probability Percentage + assert.Equal(t, "Not Available", row[13]) // Discovered At + assert.Equal(t, "Not Available", row[14]) // Image Created Date + }) + + t.Run("KEV enabled", func(t *testing.T) { + t.Setenv(features.KnownExploitedVulnerabilities.EnvVar(), "true") + + row := formatCSVRow(r) + assert.Equal(t, len(formatCol()), len(row)) + assert.Equal(t, "", row[0]) + assert.Equal(t, "Not Available", row[12]) // EPSS Probability Percentage + assert.Equal(t, "Not Available", row[13]) // CISA KEV + assert.Equal(t, "Not Available", row[14]) // Known Ransomware Campaign + assert.Equal(t, "Not Available", row[15]) // Discovered At + assert.Equal(t, "Not Available", row[16]) // Image Created Date + }) } func TestCsvReportName(t *testing.T) { diff --git a/central/reports/scheduler/v2/reportgenerator/report_gen_transaction_integration_test.go b/central/reports/scheduler/v2/reportgenerator/report_gen_transaction_integration_test.go index 837ba00486a36..d34af5f597329 100644 --- a/central/reports/scheduler/v2/reportgenerator/report_gen_transaction_integration_test.go +++ b/central/reports/scheduler/v2/reportgenerator/report_gen_transaction_integration_test.go @@ -8,6 +8,7 @@ import ( "context" "encoding/csv" "io" + "slices" "time" blobDS "github.com/stackrox/rox/central/blob/datastore" @@ -19,28 +20,31 @@ import ( "github.com/stackrox/rox/pkg/uuid" ) -// CSV column indices matching csvHeader in csv_gen.go. +// CSV column indices for the fixed prefix that precedes any feature-flag-gated +// columns (see csvHeader in csv_gen.go). Columns after EPSS can shift depending +// on enabled features, so look those up with colOf instead of hardcoding them. const ( - colCluster = 0 - colNamespace = 1 - colDeployment = 2 - colImage = 3 - colComponent = 4 - colCompVersion = 5 - colCVE = 6 - colFixable = 7 - colFixedBy = 8 - colSeverity = 9 - colCVSS = 10 - colNVDCVSS = 11 - colEPSS = 12 - colDiscoveredAt = 13 - colImageCreated = 14 - colReference = 15 - colAdvName = 16 - colAdvLink = 17 + colCluster = 0 + colNamespace = 1 + colDeployment = 2 + colImage = 3 + colComponent = 4 + colCompVersion = 5 + colCVE = 6 + colFixable = 7 + colFixedBy = 8 + colSeverity = 9 + colCVSS = 10 + colNVDCVSS = 11 + colEPSS = 12 ) +// colOf returns the index of the named column in the current CSV layout, which +// depends on which feature-flag-gated columns formatCol includes. +func colOf(name string) int { + return slices.Index(formatCol(), name) +} + // collectColumn extracts a single column from all rows. func collectColumn(rows [][]string, col int) []string { out := make([]string, len(rows)) @@ -163,7 +167,7 @@ func (s *NewDataModelEnhancedReportingTestSuite) TestGenerateReportTransaction_A rows := s.readBlobCSV(blobStore, snap.GetReportConfigurationId(), snap.GetReportId()) s.Require().Len(rows, 9, "1 header + 8 data rows") - s.Equal(csvHeader, rows[0]) + s.Equal(formatCol(), rows[0]) dataRows := rows[1:] s.ElementsMatch([]string{ @@ -240,7 +244,7 @@ func (s *NewDataModelEnhancedReportingTestSuite) TestGenerateReportTransaction_E rows := s.readBlobCSV(blobStore, snap.GetReportConfigurationId(), snap.GetReportId()) s.Require().Len(rows, 1, "only header row for empty result") - s.Equal(csvHeader, rows[0]) + s.Equal(formatCol(), rows[0]) } // TestGenerateReportTransaction_CSVFieldValues spot-checks individual CSV field @@ -276,9 +280,9 @@ func (s *NewDataModelEnhancedReportingTestSuite) TestGenerateReportTransaction_C s.Equal("9.00", row[colCVSS]) s.Equal("10.00", row[colNVDCVSS]) s.Equal("70.000", row[colEPSS]) - s.NotEqual("Not Available", row[colDiscoveredAt]) - s.Equal("RHSA-2025-CVE-fixable", row[colAdvName]) - s.Equal("test-rhsa-link", row[colAdvLink]) + s.NotEqual("Not Available", row[colOf("Discovered At")]) + s.Equal("RHSA-2025-CVE-fixable", row[colOf("Advisory Name")]) + s.Equal("test-rhsa-link", row[colOf("Advisory Link")]) } // TestGenerateReportTransaction_ReportStatusUpdated verifies that the report diff --git a/pkg/features/list.go b/pkg/features/list.go index 3631aef643ceb..dc632d82f305f 100644 --- a/pkg/features/list.go +++ b/pkg/features/list.go @@ -99,7 +99,7 @@ var ( // KnownExploitedVulnerabilities enables support for CISA Known Exploited Vulnerabilities (KEV) data. // // This must be enabled in Central and Scanner V4 Matcher to have any effect. - KnownExploitedVulnerabilities = registerFeature("Display CISA Known Exploited Vulnerabilities (KEV) data", "ROX_CISA_KEV") + KnownExploitedVulnerabilities = registerFeature("Display CISA Known Exploited Vulnerabilities (KEV) data", "ROX_CISA_KEV", enabled) // Display Compliance Dashboard (Deprecated) in user interface (not displayed by default starting in 4.11 release). DeprecatedComplianceDashboard = registerFeature("Display Compliance Dashboard (Deprecated) in user interface", "ROX_DEPRECATED_COMPLIANCE_DASHBOARD") From cb14fc39f29cac0ee515c6a5e619f3a23b2ec817 Mon Sep 17 00:00:00 2001 From: Jouko Virtanen Date: Tue, 15 Sep 2026 18:55:25 -0700 Subject: [PATCH 008/327] ROX-36762: SBOM button disabled for images with unidentifiable base os (#22762) Co-authored-by: Claude Opus 4.8 --- .../WorkloadCves/Image/ImagePage.tsx | 23 ++++--- .../Tables/ImageOverviewTable.tsx | 10 ++- .../components/GenerateSbomModal.tsx | 18 ------ .../getSbomGenerationStatusMessage.test.ts | 61 +++++++++++++++++++ .../utils/getSbomGenerationStatusMessage.ts | 28 +++++++++ 5 files changed, 106 insertions(+), 34 deletions(-) create mode 100644 ui/apps/platform/src/Containers/Vulnerabilities/utils/getSbomGenerationStatusMessage.test.ts create mode 100644 ui/apps/platform/src/Containers/Vulnerabilities/utils/getSbomGenerationStatusMessage.ts diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx index d3897e9ff80f5..82662b930a8f2 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx @@ -39,9 +39,8 @@ import { runImageViewBasedReport } from 'services/ReportsService'; import { vulnerabilityImageViewBasedJobsPath } from 'routePaths'; import HeaderLoadingSkeleton from '../../components/HeaderLoadingSkeleton'; -import GenerateSbomModal, { - getSbomGenerationStatusMessage, -} from '../../components/GenerateSbomModal'; +import GenerateSbomModal from '../../components/GenerateSbomModal'; +import { getSbomGenerationStatusMessage } from '../../utils/getSbomGenerationStatusMessage'; import useInvalidateVulnerabilityQueries from '../../hooks/useInvalidateVulnerabilityQueries'; import ImagePageVulnerabilities from './ImagePageVulnerabilities'; import ImagePageResources from './ImagePageResources'; @@ -184,8 +183,16 @@ function ImagePage({ imageData && imageName ? `${imageName.registry}/${getImageBaseNameDisplay(imageData.id, imageName)}` : 'NAME UNKNOWN'; - const scanMessage = getImageScanMessage(imageData?.notes ?? [], imageData?.scanNotes ?? []); + const imageNotes = imageData?.notes ?? []; + const scanNotes = imageData?.scanNotes ?? []; + const scanMessage = getImageScanMessage(imageNotes, scanNotes); const hasScanMessage = !isEmpty(scanMessage); + // SBOM generation is only blocked when the image has no scan data at all; + // CVE-accuracy caveats (e.g. no base OS) must not disable it (ROX-36762). + const sbomGenerationStatusMessage = getSbomGenerationStatusMessage({ + isScannerV4Enabled, + imageNotes, + }); const workloadCveOverviewImagePath = urlBuilder.imageList('OBSERVED'); @@ -235,10 +242,7 @@ function ImagePage({ {hasWriteAccessForImage && ( - {showFeedbackModal && } } diff --git a/ui/apps/platform/src/images/feedback_illo.svg b/ui/apps/platform/src/images/feedback_illo.svg deleted file mode 100644 index a96f52cf57b51..0000000000000 --- a/ui/apps/platform/src/images/feedback_illo.svg +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ui/apps/platform/src/reducers/feedback.ts b/ui/apps/platform/src/reducers/feedback.ts deleted file mode 100644 index 8ea3b2e56c805..0000000000000 --- a/ui/apps/platform/src/reducers/feedback.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { combineReducers } from 'redux'; -import type { Reducer } from 'redux'; - -// Action types - -export type SetFeedbackModalVisibilityAction = { - type: 'feedback/SET_MODAL_VISIBILITY'; - show: boolean; -}; - -// Action creator functions - -export const actions = { - setFeedbackModalVisibility: (show: boolean): SetFeedbackModalVisibilityAction => ({ - type: 'feedback/SET_MODAL_VISIBILITY', - show, - }), -}; - -// Reducers - -const showFeedbackModal: Reducer = ( - state = false, - action -) => { - switch (action.type) { - case 'feedback/SET_MODAL_VISIBILITY': - return action.show; - default: - return state; - } -}; - -const reducer = combineReducers({ - showFeedbackModal, -}); - -export default reducer; - -// Selectors - -type State = ReturnType; - -const feedbackSelector = (state: State) => state.showFeedbackModal; - -export const selectors = { - feedbackSelector, -}; diff --git a/ui/apps/platform/src/reducers/index.js b/ui/apps/platform/src/reducers/index.js index 2d5f9a4a00cd2..98a4f0139e04f 100644 --- a/ui/apps/platform/src/reducers/index.js +++ b/ui/apps/platform/src/reducers/index.js @@ -4,7 +4,6 @@ import { connectRouter } from 'connected-react-router'; import bindSelectors from 'utils/bindSelectors'; import auth, { selectors as authSelectors } from './auth'; -import feedback, { selectors as feedbackSelectors } from './feedback'; import invite, { selectors as inviteSelectors } from './invite'; import notifications, { selectors as notificationSelectors } from './notifications'; import roles, { selectors as roleSelectors } from './roles'; @@ -23,7 +22,6 @@ import centralCapabilities, { const appReducer = combineReducers({ auth, - feedback, invite, notifications, roles, @@ -48,7 +46,6 @@ export default createRootReducer; const getApp = (state) => state.app; const getAuth = (state) => getApp(state).auth; -const getFeedback = (state) => getApp(state).feedback; const getInvite = (state) => getApp(state).invite; const getNotifications = (state) => getApp(state).notifications; const getRoles = (state) => getApp(state).roles; @@ -61,7 +58,6 @@ const getCentralCapabilities = (state) => getApp(state).centralCapabilities; const boundSelectors = { ...bindSelectors(getAuth, authSelectors), - ...bindSelectors(getFeedback, feedbackSelectors), ...bindSelectors(getInvite, inviteSelectors), ...bindSelectors(getNotifications, notificationSelectors), ...bindSelectors(getRoles, roleSelectors), From 870254108948f9bcf670a929ff13b666e0258b2e Mon Sep 17 00:00:00 2001 From: Van Wilson Date: Tue, 22 Sep 2026 13:35:32 -0400 Subject: [PATCH 047/327] chore(ci): Run nightly build at 3am (03:00) UTC every weekday (#22845) --- .github/workflows/nightly-tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-tag.yml b/.github/workflows/nightly-tag.yml index d030b195015b5..cc87bb5e965ce 100644 --- a/.github/workflows/nightly-tag.yml +++ b/.github/workflows/nightly-tag.yml @@ -2,7 +2,7 @@ name: Create nightly tag on: workflow_dispatch: schedule: - - cron: 0 0 * * 1-5 + - cron: 0 3 * * 1-5 jobs: create-nightly-tag: if: ${{ github.repository_owner == 'stackrox' }} From 3392769051eedd307bee031f44026638ea3de3f6 Mon Sep 17 00:00:00 2001 From: Stephan Hesselmann Date: Tue, 22 Sep 2026 21:34:04 +0200 Subject: [PATCH 048/327] ROX-35974: add retry to external backup count checks (#22932) Co-authored-by: Claude Opus 4.6 (1M context) --- tests/external_backup_test.go | 126 ++++++++++++++++++++-------------- 1 file changed, 75 insertions(+), 51 deletions(-) diff --git a/tests/external_backup_test.go b/tests/external_backup_test.go index 36617867a31f8..f8646549caf38 100644 --- a/tests/external_backup_test.go +++ b/tests/external_backup_test.go @@ -31,11 +31,17 @@ import ( "google.golang.org/grpc/status" ) +const ( + backupRetryTries = 5 + backupRetryInterval = 10 * time.Second + centralReadinessMaxTries = 10 +) + type backupTestCase struct { name string setup func(t *testing.T) ( backup *storage.ExternalBackup, - countBackups func(ctx context.Context, t *testing.T, prefix string) int, + countBackups func(ctx context.Context, t *testing.T, prefix string) (int, error), cleanupBackups func(ctx context.Context, t *testing.T, prefix string), ) } @@ -51,7 +57,7 @@ func newObjectPrefix() string { } func newGCSBucketFuncs(t *testing.T, bucket, serviceAccount string) ( - countFn func(ctx context.Context, t *testing.T, prefix string) int, + countFn func(ctx context.Context, t *testing.T, prefix string) (int, error), cleanupFn func(ctx context.Context, t *testing.T, prefix string), ) { var opts []option.ClientOption @@ -62,15 +68,17 @@ func newGCSBucketFuncs(t *testing.T, bucket, serviceAccount string) ( require.NoError(t, err) bkt := client.Bucket(bucket) - countFn = func(ctx context.Context, t *testing.T, prefix string) int { + countFn = func(ctx context.Context, _ *testing.T, prefix string) (int, error) { it := bkt.Objects(ctx, &googleStorage.Query{Prefix: prefix}) count := 0 var iterErr error for _, iterErr = it.Next(); iterErr == nil; _, iterErr = it.Next() { count++ } - require.Equal(t, iterator.Done, iterErr) - return count + if iterErr != iterator.Done { + return 0, iterErr + } + return count, nil } cleanupFn = func(ctx context.Context, t *testing.T, prefix string) { it := bkt.Objects(ctx, &googleStorage.Query{Prefix: prefix}) @@ -95,8 +103,9 @@ func gcsTestCases() []backupTestCase { return []backupTestCase{ { name: "GCS/service_account_key", - setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) int, func(context.Context, *testing.T, string)) { - env := testutils.EnvOrFail(t, + setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) (int, error), func(context.Context, *testing.T, string)) { + env := testutils.EnvOrFail( + t, "GCP_GCS_BACKUP_TEST_BUCKET_NAME_V2", "GOOGLE_GCS_BACKUP_SERVICE_ACCOUNT_V2", ) @@ -113,7 +122,7 @@ func gcsTestCases() []backupTestCase { }, { name: "GCS/workload_identity", - setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) int, func(context.Context, *testing.T, string)) { + setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) (int, error), func(context.Context, *testing.T, string)) { env := testutils.EnvOrSkip(t, "GCP_GCS_BACKUP_TEST_BUCKET_NAME_V2", "SETUP_WORKLOAD_IDENTITIES") if env["SETUP_WORKLOAD_IDENTITIES"] != "true" { t.Skip("SETUP_WORKLOAD_IDENTITIES not set to true") @@ -132,10 +141,11 @@ func gcsTestCases() []backupTestCase { } func newS3BucketFuncs(t *testing.T, endpoint, region, accessKeyID, secretAccessKey, bucket string, pathStyle bool) ( - countFn func(ctx context.Context, t *testing.T, prefix string) int, + countFn func(ctx context.Context, t *testing.T, prefix string) (int, error), cleanupFn func(ctx context.Context, t *testing.T, prefix string), ) { - cfg, err := awsConfig.LoadDefaultConfig(context.Background(), + cfg, err := awsConfig.LoadDefaultConfig( + context.Background(), awsConfig.WithRegion(region), awsConfig.WithCredentialsProvider( credentials.NewStaticCredentialsProvider(accessKeyID, secretAccessKey, ""), @@ -159,13 +169,15 @@ func newS3BucketFuncs(t *testing.T, endpoint, region, accessKeyID, secretAccessK } client := s3.NewFromConfig(cfg, clientOpts...) - countFn = func(ctx context.Context, t *testing.T, prefix string) int { + countFn = func(ctx context.Context, _ *testing.T, prefix string) (int, error) { out, err := client.ListObjectsV2(ctx, &s3.ListObjectsV2Input{ Bucket: aws.String(bucket), Prefix: aws.String(prefix), }) - require.NoError(t, err) - return int(aws.ToInt32(out.KeyCount)) + if err != nil { + return 0, err + } + return int(aws.ToInt32(out.KeyCount)), nil } cleanupFn = func(ctx context.Context, t *testing.T, prefix string) { out, err := client.ListObjectsV2(ctx, &s3.ListObjectsV2Input{ @@ -192,7 +204,7 @@ func newAWSS3Setup(name string, makeConfig func(t *testing.T) *storage.S3Config) fullName := "AWS_S3/" + name return backupTestCase{ name: fullName, - setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) int, func(context.Context, *testing.T, string)) { + setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) (int, error), func(context.Context, *testing.T, string)) { config := makeConfig(t) config.ObjectPrefix = newObjectPrefix() countFn, cleanupFn := newS3BucketFuncs(t, "", config.GetRegion(), @@ -208,7 +220,8 @@ func newAWSS3Setup(name string, makeConfig func(t *testing.T) *storage.S3Config) func awsS3Config(withEndpoint bool) func(t *testing.T) *storage.S3Config { return func(t *testing.T) *storage.S3Config { - env := testutils.EnvOrFail(t, + env := testutils.EnvOrFail( + t, "AWS_S3_BACKUP_TEST_BUCKET_NAME", "AWS_S3_BACKUP_TEST_BUCKET_REGION", "AWS_ACCESS_KEY_ID", @@ -238,7 +251,7 @@ func newS3CompatibleSetup(name string, makeConfig func(t *testing.T) *storage.S3 fullName := "S3Compatible/" + name return backupTestCase{ name: fullName, - setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) int, func(context.Context, *testing.T, string)) { + setup: func(t *testing.T) (*storage.ExternalBackup, func(context.Context, *testing.T, string) (int, error), func(context.Context, *testing.T, string)) { config := makeConfig(t) config.ObjectPrefix = newObjectPrefix() pathStyle := config.GetUrlStyle() == storage.S3URLStyle_S3_URL_STYLE_PATH @@ -255,7 +268,8 @@ func newS3CompatibleSetup(name string, makeConfig func(t *testing.T) *storage.S3 func r2Config(withScheme bool, urlStyle storage.S3URLStyle) func(t *testing.T) *storage.S3Compatible { return func(t *testing.T) *storage.S3Compatible { - env := testutils.EnvOrFail(t, + env := testutils.EnvOrFail( + t, "CLOUDFLARE_R2_BACKUP_TEST_ACCOUNT_ID", "CLOUDFLARE_R2_BACKUP_TEST_BUCKET_NAME", "CLOUDFLARE_R2_BACKUP_TEST_REGION", @@ -276,7 +290,8 @@ func r2Config(withScheme bool, urlStyle storage.S3URLStyle) func(t *testing.T) * func odfConfig(withScheme bool) func(t *testing.T) *storage.S3Compatible { return func(t *testing.T) *storage.S3Compatible { - env := testutils.EnvOrFail(t, + env := testutils.EnvOrFail( + t, "ODF_S3_BACKUP_TEST_ENDPOINT", "ODF_S3_BACKUP_TEST_BUCKET_NAME", "ODF_S3_BACKUP_TEST_REGION", @@ -310,11 +325,40 @@ func s3CompatibleTestCases() []backupTestCase { } } +func requireBackupCount( + t *testing.T, + countBackups func(ctx context.Context, t *testing.T, prefix string) (int, error), + prefix string, + expected int, +) error { + return retry.WithRetry( + func() error { + ctx, cancel := context.WithTimeout(context.Background(), backupRetryInterval) + defer cancel() + n, err := countBackups(ctx, t, prefix) + if err != nil { + return err + } + if n != expected { + return fmt.Errorf("expected %d backups, got %d", expected, n) + } + return nil + }, + retry.Tries(backupRetryTries), + retry.BetweenAttempts(func(_ int) { + time.Sleep(backupRetryInterval) + }), + retry.OnFailedAttempts(func(err error) { + t.Logf("Error verifying backup count: %v", err) + }), + ) +} + func runBackupLifecycleTest( t *testing.T, service v1.ExternalBackupServiceClient, backup *storage.ExternalBackup, - countBackups func(ctx context.Context, t *testing.T, prefix string) int, + countBackups func(ctx context.Context, t *testing.T, prefix string) (int, error), cleanupBackups func(ctx context.Context, t *testing.T, prefix string), ) { var prefix string @@ -330,15 +374,16 @@ func runBackupLifecycleTest( t.Logf("Using object prefix: %s", prefix) // Retry TestExternalBackup in case Central is not fully ready yet. - err := retry.WithRetry(func() error { - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() - _, err := service.TestExternalBackup(ctx, backup) - return err - }, - retry.Tries(10), + err := retry.WithRetry( + func() error { + ctx, cancel := context.WithTimeout(context.Background(), backupRetryInterval) + defer cancel() + _, err := service.TestExternalBackup(ctx, backup) + return err + }, + retry.Tries(centralReadinessMaxTries), retry.BetweenAttempts(func(_ int) { - time.Sleep(10 * time.Second) + time.Sleep(backupRetryInterval) }), retry.OnFailedAttempts(func(err error) { t.Logf("Error testing external backup: %v", err) @@ -364,9 +409,7 @@ func runBackupLifecycleTest( } }) - countCtx, countCancel := context.WithTimeout(context.Background(), 10*time.Second) - assert.Equal(t, 0, countBackups(countCtx, t, prefix)) - countCancel() + require.NoError(t, requireBackupCount(t, countBackups, prefix, 0)) for i := 1; i <= 3; i++ { triggerCtx, triggerCancel := context.WithTimeout(context.Background(), 2*time.Minute) @@ -375,31 +418,12 @@ func runBackupLifecycleTest( triggerCancel() if i <= 2 { - verifyCtx, verifyCancel := context.WithTimeout(context.Background(), 10*time.Second) - assert.Equal(t, i, countBackups(verifyCtx, t, prefix)) - verifyCancel() + assert.NoError(t, requireBackupCount(t, countBackups, prefix, i)) } } // Third backup should prune the first, keeping only BackupsToKeep=2. - err = retry.WithRetry(func() error { - retryCtx, retryCancel := context.WithTimeout(context.Background(), 10*time.Second) - defer retryCancel() - n := countBackups(retryCtx, t, prefix) - if n != 2 { - return fmt.Errorf("expected 2 backups after pruning, got %d", n) - } - return nil - }, - retry.Tries(10), - retry.BetweenAttempts(func(_ int) { - time.Sleep(1 * time.Second) - }), - retry.OnFailedAttempts(func(err error) { - t.Logf("Error waiting for backup pruning: %v", err) - }), - ) - require.NoError(t, err) + require.NoError(t, requireBackupCount(t, countBackups, prefix, 2)) } func TestExternalBackup(t *testing.T) { From fb34e70ec78b4dade7acfe40b695cbad4e274562 Mon Sep 17 00:00:00 2001 From: Alex Vulaj Date: Tue, 22 Sep 2026 17:04:39 -0400 Subject: [PATCH 049/327] ROX-34114: Whitelist GKE filestore mount policy in DefaultPoliciesTest (#22945) --- qa-tests-backend/src/test/groovy/DefaultPoliciesTest.groovy | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qa-tests-backend/src/test/groovy/DefaultPoliciesTest.groovy b/qa-tests-backend/src/test/groovy/DefaultPoliciesTest.groovy index 5998fb1b6c6a1..7b261936537d0 100644 --- a/qa-tests-backend/src/test/groovy/DefaultPoliciesTest.groovy +++ b/qa-tests-backend/src/test/groovy/DefaultPoliciesTest.groovy @@ -83,6 +83,10 @@ class DefaultPoliciesTest extends BaseSpecification { "tunnelfront - Secure Shell Server (sshd) Execution", "tunnelfront - Docker CIS 4.7: Alert on Update Instruction", "webhookserver - Kubernetes Actions: Port Forward to Pod", + // Newer EKS ebs-csi-node DaemonSets use bidirectional mount propagation. + "ebs-csi-node - Docker CIS 5.19: Ensure mount propagation mode is not enabled", + // GKE filestore-node DaemonSets use bidirectional mount propagation. + "filestore-node - Docker CIS 5.19: Ensure mount propagation mode is not enabled", ] static final private Deployment STRUTS_DEPLOYMENT = new Deployment() From 63f1561240389adc486e0a2aa31ef43a72c73329 Mon Sep 17 00:00:00 2001 From: rhacs-bot <148914812+rhacs-bot@users.noreply.github.com> Date: Wed, 23 Sep 2026 00:33:04 +0200 Subject: [PATCH 050/327] chore(release): Add 4.11.5 to scanner updater configuration (#22983) Co-authored-by: ksurabhi91 --- scanner/updater/version/RELEASE_VERSION | 1 + 1 file changed, 1 insertion(+) diff --git a/scanner/updater/version/RELEASE_VERSION b/scanner/updater/version/RELEASE_VERSION index a9d9537b16f92..b86f49993d763 100644 --- a/scanner/updater/version/RELEASE_VERSION +++ b/scanner/updater/version/RELEASE_VERSION @@ -20,6 +20,7 @@ 4.11.2 4.11.3 4.11.4 +4.11.5 4.4.0 4.4.1 4.4.2 From 4f75bf81d768a614b260176b1f4a87ffdb7dfe23 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 03:48:17 +0000 Subject: [PATCH 051/327] chore(deps): refresh rpm lockfiles [SECURITY] (#22954) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- rpms.lock.yaml | 208 ++++++++++++++++++++++++------------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/rpms.lock.yaml b/rpms.lock.yaml index 8a3e56e79c3ea..458135bbf6806 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -137,20 +137,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 1819455 - checksum: sha256:9a533624ca7110176ccfedbd4ec54d339fadeeb985f7016eed7e4e738dd44ed2 + size: 1828909 + checksum: sha256:06bde44430fc94e09d7dac2c748f19b41161fdc2fa4b4b6cd861ca9a7a1532c0 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-private-libs-15.18-1.module+el9.8.0+24358+32c5830e.aarch64.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 149345 - checksum: sha256:7168e8dc1147af4fe2033ddaa86418321f850c746c1a92f7aa0e5416b2b37ced + size: 150016 + checksum: sha256:869f22709281040978c3130c972685c217b4be0c4f915c69c3036b886d75bcc2 name: postgresql-private-libs - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 32440 @@ -522,13 +522,13 @@ arches: name: libcom_err evr: 1.46.5-8.el9 sourcerpm: e2fsprogs-1.46.5-8.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.5.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.7.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms - size: 292322 - checksum: sha256:ea6c3ade86939df7a985ae71e4c5100731962add54295fd40660a2f2c2f85f1d + size: 292483 + checksum: sha256:408a3da221a1d3856a4b9ab7a7c70901430f71521ef9d05f9b847c0deb27b160 name: libcurl - evr: 7.76.1-40.el9_8.5 - sourcerpm: curl-7.76.1-40.el9_8.5.src.rpm + evr: 7.76.1-40.el9_8.7 + sourcerpm: curl-7.76.1-40.el9_8.7.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms size: 727417 @@ -1070,12 +1070,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms - size: 45775054 - checksum: sha256:5955f781730fe817b08b7ddc3d2117a7c0a0c95ed2fd2044cbc1ff7d1eba1b28 + size: 53848854 + checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e + evr: 15.19-1.module+el9.8.0+24800+a95bf172 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms size: 20894742 @@ -1172,12 +1172,12 @@ arches: checksum: sha256:775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38 name: crypto-policies evr: 20260224-1.gitea0f072.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.5.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.7.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 2576796 - checksum: sha256:5a455f6c35ae1069b8c54ade4c9d0d3d260134f76bee10f22efef9683c31b03f + size: 2579601 + checksum: sha256:2cb2bc752c2e87f1abf88ac67c2dd19a740df993d57e88f3920dedbc37f0019d name: curl - evr: 7.76.1-40.el9_8.5 + evr: 7.76.1-40.el9_8.7 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 4025677 @@ -1635,10 +1635,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/0de17e64808b2850d6f04f496214d0ca0a494ecdf6068ad1faf92d4fcbf7ed87-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/6ec982e105d54c866591c0a07c68f06bb302a8cc9e880f9c874bdf4d4c7fa5ca-modules.yaml.gz repoid: rhel-9-for-aarch64-appstream-rpms - size: 67332 - checksum: sha256:0de17e64808b2850d6f04f496214d0ca0a494ecdf6068ad1faf92d4fcbf7ed87 + size: 67183 + checksum: sha256:6ec982e105d54c866591c0a07c68f06bb302a8cc9e880f9c874bdf4d4c7fa5ca - arch: ppc64le packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/c/cpp-11.5.0-14.el9.ppc64le.rpm @@ -1774,20 +1774,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 1881747 - checksum: sha256:6aee4d674c4b3b504a62e263386ebc1bf4f9daed2cd89b3a9578de4fc3e3dcce + size: 1893060 + checksum: sha256:cb037d48821efe06c06c45369e4a4fd9ca9f048022bd62bf7373028b9c8c74d9 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-private-libs-15.18-1.module+el9.8.0+24358+32c5830e.ppc64le.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 170196 - checksum: sha256:388ed8fa7cddbdcf4c20bfd13986e2c1d25090daadcb585e442fe7ca99a76955 + size: 170264 + checksum: sha256:64a378b9cb22b6228f0b1a5a1b2b3b50b959e7d8d093953f5c09058c8e2167f3 name: postgresql-private-libs - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 32494 @@ -2159,13 +2159,13 @@ arches: name: libcom_err evr: 1.46.5-8.el9 sourcerpm: e2fsprogs-1.46.5-8.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.5.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.7.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms - size: 329146 - checksum: sha256:1101e1698ca9b9d1b67332cf81c29ffbfbcd4342b053a3e3d4304d8d86e73bc2 + size: 329526 + checksum: sha256:4bf40a5958683446b5757d3f8be92961ffa568ec64a794500f959533bce1bb1b name: libcurl - evr: 7.76.1-40.el9_8.5 - sourcerpm: curl-7.76.1-40.el9_8.5.src.rpm + evr: 7.76.1-40.el9_8.7 + sourcerpm: curl-7.76.1-40.el9_8.7.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms size: 837087 @@ -2714,12 +2714,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms - size: 45775054 - checksum: sha256:5955f781730fe817b08b7ddc3d2117a7c0a0c95ed2fd2044cbc1ff7d1eba1b28 + size: 53848854 + checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e + evr: 15.19-1.module+el9.8.0+24800+a95bf172 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms size: 20894742 @@ -2816,12 +2816,12 @@ arches: checksum: sha256:775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38 name: crypto-policies evr: 20260224-1.gitea0f072.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.5.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.7.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 2576796 - checksum: sha256:5a455f6c35ae1069b8c54ade4c9d0d3d260134f76bee10f22efef9683c31b03f + size: 2579601 + checksum: sha256:2cb2bc752c2e87f1abf88ac67c2dd19a740df993d57e88f3920dedbc37f0019d name: curl - evr: 7.76.1-40.el9_8.5 + evr: 7.76.1-40.el9_8.7 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 4025677 @@ -3285,10 +3285,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/3a29f011ee20c5bfcbb7efb866b9e30f8017a8d094597f131a0265c33bc51f76-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/ec878a0f354462d95a8c6b76e74fc1a92f7381fb425bbae516e44b7f0c54ba8b-modules.yaml.gz repoid: rhel-9-for-ppc64le-appstream-rpms - size: 67082 - checksum: sha256:3a29f011ee20c5bfcbb7efb866b9e30f8017a8d094597f131a0265c33bc51f76 + size: 68368 + checksum: sha256:ec878a0f354462d95a8c6b76e74fc1a92f7381fb425bbae516e44b7f0c54ba8b - arch: s390x packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/c/cpp-11.5.0-14.el9.s390x.rpm @@ -3424,20 +3424,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 1851802 - checksum: sha256:dec726e071d7a3d2fd601eaa3d0dc88797022ebf3145c5d3facfdc5ff6827602 + size: 1861033 + checksum: sha256:a3aa3b5a24a81f1cb8a36a0eecba4f0eb00a54cbb5840d101533cf4793d9c67e name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-private-libs-15.18-1.module+el9.8.0+24358+32c5830e.s390x.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 147697 - checksum: sha256:504ab6379c9051e1b745d0ab259f6957e0a2c0eee3042c9989302229af7dd3cd + size: 147716 + checksum: sha256:738dfc0971a4ec61b9092d9598809c5cb082c6aff8db768507d9c0aaa5ae35ea name: postgresql-private-libs - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 32298 @@ -3809,13 +3809,13 @@ arches: name: libcom_err evr: 1.46.5-8.el9 sourcerpm: e2fsprogs-1.46.5-8.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.5.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.7.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms - size: 291750 - checksum: sha256:27ec5fc1d1420007c387595e76ce70f944ac51b19f5afe7b867f4f528da43ee4 + size: 291971 + checksum: sha256:18d6734aa46eb35076d0dc6a1d0cc1d8df42be99d2c964fe7125890df4144056 name: libcurl - evr: 7.76.1-40.el9_8.5 - sourcerpm: curl-7.76.1-40.el9_8.5.src.rpm + evr: 7.76.1-40.el9_8.7 + sourcerpm: curl-7.76.1-40.el9_8.7.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms size: 721041 @@ -4351,12 +4351,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms - size: 45775054 - checksum: sha256:5955f781730fe817b08b7ddc3d2117a7c0a0c95ed2fd2044cbc1ff7d1eba1b28 + size: 53848854 + checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e + evr: 15.19-1.module+el9.8.0+24800+a95bf172 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms size: 20894742 @@ -4453,12 +4453,12 @@ arches: checksum: sha256:775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38 name: crypto-policies evr: 20260224-1.gitea0f072.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.5.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.7.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 2576796 - checksum: sha256:5a455f6c35ae1069b8c54ade4c9d0d3d260134f76bee10f22efef9683c31b03f + size: 2579601 + checksum: sha256:2cb2bc752c2e87f1abf88ac67c2dd19a740df993d57e88f3920dedbc37f0019d name: curl - evr: 7.76.1-40.el9_8.5 + evr: 7.76.1-40.el9_8.7 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 4025677 @@ -4916,10 +4916,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/8dc68f9815aa6ef73486c7b070e44eba6a8da50917a36efde067c16407838e85-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/ca31328d7c6e06797a1779175be3da1217c64a74e6a50188219aad4651b50d9a-modules.yaml.gz repoid: rhel-9-for-s390x-appstream-rpms - size: 65039 - checksum: sha256:8dc68f9815aa6ef73486c7b070e44eba6a8da50917a36efde067c16407838e85 + size: 64964 + checksum: sha256:ca31328d7c6e06797a1779175be3da1217c64a74e6a50188219aad4651b50d9a - arch: x86_64 packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/c/cpp-11.5.0-14.el9.x86_64.rpm @@ -5048,20 +5048,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 1832108 - checksum: sha256:1f2f8e5526bac45da979c876fbb9a069459ec5a6476d89398433048005fb786b + size: 1842434 + checksum: sha256:18506bf4217ef40600adcb830fe651840f041423ef3bea67bd73d6f8c78e383c name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-private-libs-15.18-1.module+el9.8.0+24358+32c5830e.x86_64.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 154248 - checksum: sha256:a8fca7c9e1d9cf9aa6eb95fd39e90068960190b40cac303f546930cab667ae11 + size: 154163 + checksum: sha256:18d4936ef18627f03facdf1b8f54e313d04f67883d0019abee9a599b7e3e621b name: postgresql-private-libs - evr: 15.18-1.module+el9.8.0+24358+32c5830e - sourcerpm: postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + evr: 15.19-1.module+el9.8.0+24800+a95bf172 + sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 32484 @@ -5426,13 +5426,13 @@ arches: name: libcom_err evr: 1.46.5-8.el9 sourcerpm: e2fsprogs-1.46.5-8.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.5.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/l/libcurl-7.76.1-40.el9_8.7.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms - size: 297551 - checksum: sha256:428b87ca3eb808d769f6f0f68019a97d3c487c86268ccff2ab7ad7223beab01e + size: 296930 + checksum: sha256:044d7a379f0f0f6ed25b9d41439dedfb55b390108ae5a09d4acc6b3565c39ae1 name: libcurl - evr: 7.76.1-40.el9_8.5 - sourcerpm: curl-7.76.1-40.el9_8.5.src.rpm + evr: 7.76.1-40.el9_8.7 + sourcerpm: curl-7.76.1-40.el9_8.7.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/l/libdb-5.3.28-57.el9_6.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms size: 755192 @@ -5974,12 +5974,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/postgresql-15.18-1.module+el9.8.0+24358+32c5830e.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms - size: 45775054 - checksum: sha256:5955f781730fe817b08b7ddc3d2117a7c0a0c95ed2fd2044cbc1ff7d1eba1b28 + size: 53848854 + checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 name: postgresql - evr: 15.18-1.module+el9.8.0+24358+32c5830e + evr: 15.19-1.module+el9.8.0+24800+a95bf172 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms size: 20894742 @@ -6076,12 +6076,12 @@ arches: checksum: sha256:775d926429179caeade6af8dc7dea15a0bea49102c2592d5b712f996a329ec38 name: crypto-policies evr: 20260224-1.gitea0f072.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.5.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/c/curl-7.76.1-40.el9_8.7.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 2576796 - checksum: sha256:5a455f6c35ae1069b8c54ade4c9d0d3d260134f76bee10f22efef9683c31b03f + size: 2579601 + checksum: sha256:2cb2bc752c2e87f1abf88ac67c2dd19a740df993d57e88f3920dedbc37f0019d name: curl - evr: 7.76.1-40.el9_8.5 + evr: 7.76.1-40.el9_8.7 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/c/cyrus-sasl-2.1.27-22.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 4025677 @@ -6539,7 +6539,7 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/cb34c3275498153d41fc1dcbb93d8922eed2524744d40f147010b365e6d48c90-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/cda6cd8154f7c7b97f9797580de964f58c6ebac82457afb91832fe5f8c399da6-modules.yaml.gz repoid: rhel-9-for-x86_64-appstream-rpms - size: 70375 - checksum: sha256:cb34c3275498153d41fc1dcbb93d8922eed2524744d40f147010b365e6d48c90 + size: 70416 + checksum: sha256:cda6cd8154f7c7b97f9797580de964f58c6ebac82457afb91832fe5f8c399da6 From 1678637fcf8a0d39087ea6af2960326207b53929 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 03:52:11 +0000 Subject: [PATCH 052/327] chore(deps): update all dependencies (#22993) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/create-custom-snapshot.yaml | 2 +- .tekton/operator-index-build.yaml | 2 +- image/rhel/konflux.Dockerfile | 2 +- image/roxctl/konflux.Dockerfile | 2 +- operator/konflux.Dockerfile | 2 +- scanner/image/scanner/konflux.Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index edd6c0e281978..d28c37768e656 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -132,7 +132,7 @@ spec: - name: SHOULD_REALLY_WORK steps: - name: determine - image: registry.redhat.io/ubi9-minimal:latest@sha256:984df0a2b8d9011d419b0ad260b25f6b74b7ce69ab0595b75522e30f8849f27f + image: registry.redhat.io/ubi9-minimal:latest@sha256:8ebe2ad8fdf3cab3e5a53c1edc69194c98209cfadab24b884f4ad9ebcf7bbbfc imagePullPolicy: IfNotPresent # The script expresses the same condition as pipelinesascode.tekton.dev/on-cel-expression in other pipelines # but in a more verbose way because, as it turns out, both syntax and fields of CEL expressions are slightly diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 727394f45ef3e..94dc047ab378a 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -249,7 +249,7 @@ spec: description: Full operator-index image tag with v prefix and -fast suffix to avoid collision with GHA builds steps: - name: compute-index-tag - image: registry.access.redhat.com/ubi9-minimal:latest@sha256:984df0a2b8d9011d419b0ad260b25f6b74b7ce69ab0595b75522e30f8849f27f + image: registry.access.redhat.com/ubi9-minimal:latest@sha256:8ebe2ad8fdf3cab3e5a53c1edc69194c98209cfadab24b884f4ad9ebcf7bbbfc imagePullPolicy: IfNotPresent script: | #!/bin/bash diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index 4dbb7c2e15831..aa3797bec1801 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -68,7 +68,7 @@ RUN make -C ui build FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:9295c5c688f487fa5cf27a734fa55ecd57aeb7dc0904ba537da4f42dfa1d0acb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer ARG PG_VERSION diff --git a/image/roxctl/konflux.Dockerfile b/image/roxctl/konflux.Dockerfile index 1536f1ab1025e..38f16e0d511cc 100644 --- a/image/roxctl/konflux.Dockerfile +++ b/image/roxctl/konflux.Dockerfile @@ -27,7 +27,7 @@ RUN RACE=0 CGO_ENABLED=1 GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build.sh FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:9295c5c688f487fa5cf27a734fa55ecd57aeb7dc0904ba537da4f42dfa1d0acb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/operator/konflux.Dockerfile b/operator/konflux.Dockerfile index 7a5cf12ea51ad..205f6b635414e 100644 --- a/operator/konflux.Dockerfile +++ b/operator/konflux.Dockerfile @@ -20,7 +20,7 @@ RUN GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build-file.sh operator/cmd/mai FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:9295c5c688f487fa5cf27a734fa55ecd57aeb7dc0904ba537da4f42dfa1d0acb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/scanner/image/scanner/konflux.Dockerfile b/scanner/image/scanner/konflux.Dockerfile index 73e2ace25323e..d09e61ea83aa6 100644 --- a/scanner/image/scanner/konflux.Dockerfile +++ b/scanner/image/scanner/konflux.Dockerfile @@ -18,7 +18,7 @@ RUN make -C scanner NODEPS=1 CGO_ENABLED=1 image/scanner/bin/scanner copy-script FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:9295c5c688f487fa5cf27a734fa55ecd57aeb7dc0904ba537da4f42dfa1d0acb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer COPY --from=ubi-micro-base / /out/ From d098e9a2d99616ab753862ef6e64c09907e1301c Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 04:05:41 +0000 Subject: [PATCH 053/327] chore(deps): refresh rpm lockfiles (#22837) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> From 35fb683416093b12b836f6a02f16e15cc59793ee Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 23 Sep 2026 06:36:08 +0200 Subject: [PATCH 054/327] tests(unit): retry `go list` (#22773) --- Makefile | 8 ++++---- scripts/go-files-to-packages.sh | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100755 scripts/go-files-to-packages.sh diff --git a/Makefile b/Makefile index 387480c0b6c8b..11bc6d500c9d6 100644 --- a/Makefile +++ b/Makefile @@ -575,7 +575,7 @@ test-prep: go-unit-tests: build-prep test-prep set -o pipefail ; \ CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 MUTEX_WATCHDOG_TIMEOUT_SECS=30 GOTAGS=$(GOTAGS),test scripts/go-test.sh -timeout 25m -race -cover -coverprofile test-output/coverage.out -v \ - $(shell git ls-files -- '*_test.go' | grep -v -E '^($(NESTED_GO_MODULE_REGEX))(/|$$)' | sed -e 's@^@./@g' | xargs -n 1 dirname | sort | uniq | xargs go list| grep -v '^github.com/stackrox/rox/tests$$' | grep -Ev $(UNIT_TEST_IGNORE)) \ + $(shell git ls-files -- '*_test.go' | grep -v -E '^($(NESTED_GO_MODULE_REGEX))(/|$$)' | scripts/go-files-to-packages.sh | grep -Ev $(UNIT_TEST_IGNORE)) \ | tee $(GO_TEST_OUTPUT_PATH) # Nested modules have independent coverage profiles, so keep their coverage # out of the root profile while including their verbose output in JUnit. @@ -604,19 +604,19 @@ sensor-pipeline-benchmark: build-prep test-prep go-postgres-unit-tests: build-prep test-prep set -o pipefail ; \ CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 MUTEX_WATCHDOG_TIMEOUT_SECS=30 GOTAGS=$(GOTAGS),test,sql_integration scripts/go-test.sh -timeout 15m -race -cover -coverprofile test-output/coverage.out -v \ - $(shell git grep -rl "//go:build sql_integration" central pkg tools | sed -e 's@^@./@g' | xargs -n 1 dirname | sort | uniq | xargs go list -tags sql_integration | grep -v '^github.com/stackrox/rox/tests$$' | grep -Ev $(UNIT_TEST_IGNORE)) \ + $(shell git grep -rl "//go:build sql_integration" central pkg tools | scripts/go-files-to-packages.sh -tags sql_integration | grep -Ev $(UNIT_TEST_IGNORE)) \ | tee $(GO_TEST_OUTPUT_PATH) @# The -p 1 passed to go test is required to ensure that tests of different packages are not run in parallel, so as to avoid conflicts when interacting with the DB. set -o pipefail ; \ CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 MUTEX_WATCHDOG_TIMEOUT_SECS=30 GOTAGS=$(GOTAGS),test,sql_integration scripts/go-test.sh -p 1 -race -cover -coverprofile test-output/migrator-coverage.out -v \ - $(shell git grep -rl "//go:build sql_integration" migrator | sed -e 's@^@./@g' | xargs -n 1 dirname | sort | uniq | xargs go list -tags sql_integration | grep -v '^github.com/stackrox/rox/tests$$' | grep -Ev $(UNIT_TEST_IGNORE)) \ + $(shell git grep -rl "//go:build sql_integration" migrator | scripts/go-files-to-packages.sh -tags sql_integration | grep -Ev $(UNIT_TEST_IGNORE)) \ | tee -a $(GO_TEST_OUTPUT_PATH) .PHONY: go-postgres-bench-tests go-postgres-bench-tests: build-prep test-prep set -o pipefail ; \ CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 MUTEX_WATCHDOG_TIMEOUT_SECS=30 GOTAGS=$(GOTAGS),test,sql_integration scripts/go-test.sh -run=nonthing -bench=. -benchtime=$(BENCHTIME) -benchmem -timeout $(BENCHTIMEOUT) -count $(BENCHCOUNT) -v \ - $(shell git grep -rl "testing.B" central pkg migrator tools | sed -e 's@^@./@g' | xargs -n 1 dirname | sort | uniq | xargs go list -tags sql_integration | grep -v '^github.com/stackrox/rox/tests$$' | grep -Ev $(UNIT_TEST_IGNORE)) \ + $(shell git grep -rl "testing.B" central pkg migrator tools | scripts/go-files-to-packages.sh -tags sql_integration | grep -Ev $(UNIT_TEST_IGNORE)) \ | tee $(GO_TEST_OUTPUT_PATH) .PHONY: shell-unit-tests diff --git a/scripts/go-files-to-packages.sh b/scripts/go-files-to-packages.sh new file mode 100755 index 0000000000000..f87926393c81c --- /dev/null +++ b/scripts/go-files-to-packages.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail +# Reads a list of files (one per line) from stdin and prints on stdout a list of go packages. +# The arguments are passed to `go list` that is used to perform the transformation. +# That go list command is retried, to help with go proxy unavailability. + +num_retries=4 + +dir_list=$(mktemp) +sed -e 's@^@./@g' | xargs -n 1 dirname | sort | uniq > "${dir_list}" +output=$(mktemp) +for attempt in $(seq 0 $num_retries) +do + sleep_sec=$((attempt * 5)) + if [[ $sleep_sec -gt 0 ]]; then + echo >&2 "Sleeping ${sleep_sec} before retrying..." + sleep "${sleep_sec}" + fi + if xargs go list "$@" < "${dir_list}" > "${output}"; then + grep -v '^github.com/stackrox/rox/tests$' "${output}" + exit 0 + fi +done +echo >&2 "Running 'go list $*' failed despite $num_retries retries." +exit 1 From 0b0cb7b8ad6f03b6057d02a14c67c9a8ea0bbeb7 Mon Sep 17 00:00:00 2001 From: David Caravello <119438707+dcaravel@users.noreply.github.com> Date: Tue, 22 Sep 2026 23:46:46 -0500 Subject: [PATCH 055/327] ROX-19954: quay-auto test allow pull if image not present (#22947) --- qa-tests-backend/src/main/groovy/objects/Deployment.groovy | 7 +++++++ .../src/main/groovy/orchestratormanager/Kubernetes.groovy | 4 +++- qa-tests-backend/src/test/groovy/ImageScanningTest.groovy | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/qa-tests-backend/src/main/groovy/objects/Deployment.groovy b/qa-tests-backend/src/main/groovy/objects/Deployment.groovy index 7645193566c1a..151da20ae5735 100644 --- a/qa-tests-backend/src/main/groovy/objects/Deployment.groovy +++ b/qa-tests-backend/src/main/groovy/objects/Deployment.groovy @@ -14,6 +14,8 @@ class Deployment { String name String namespace = Constants.ORCHESTRATOR_NAMESPACE String image + // Optional policy for the main container; takes precedence over the CI Quay policy. + String imagePullPolicyOverride Map labels = [:] Map ports = [:] Integer targetport @@ -104,6 +106,11 @@ class Deployment { return this } + Deployment setImagePullPolicyOverride(String policy) { + this.imagePullPolicyOverride = policy + return this + } + Deployment addLabel(String k, String v) { this.labels[k] = v return this diff --git a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy index 3ff93c2e6c171..10d4cd84fa38e 100644 --- a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy +++ b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy @@ -2450,7 +2450,9 @@ class Kubernetes { // Allow override of imagePullPolicy for quay.io images. Typically used // to set to Never to help keep the list of quay.io prebuilt images up // to date for image-prefetcher. Why not all images? See ROX-25258. - if (Env.IMAGE_PULL_POLICY_FOR_QUAY_IO && deployment.image =~ /^quay.io/) { + if (deployment.imagePullPolicyOverride) { + container.setImagePullPolicy(deployment.imagePullPolicyOverride) + } else if (Env.IMAGE_PULL_POLICY_FOR_QUAY_IO && deployment.image =~ /^quay.io/) { container.setImagePullPolicy(Env.IMAGE_PULL_POLICY_FOR_QUAY_IO) } if (deployment.livenessProbeDefined) { diff --git a/qa-tests-backend/src/test/groovy/ImageScanningTest.groovy b/qa-tests-backend/src/test/groovy/ImageScanningTest.groovy index c709e80c1498b..a56d13e2c4e47 100644 --- a/qa-tests-backend/src/test/groovy/ImageScanningTest.groovy +++ b/qa-tests-backend/src/test/groovy/ImageScanningTest.groovy @@ -80,6 +80,8 @@ class ImageScanningTest extends BaseSpecification { // Alternatively can use quay.io/rhacs-eng/qa:struts-app but that doesn't have as many // dockerfile violations .setImage("quay.io/rhacs-eng/qa:registry-image-0-3") + // TODO(ROX-37155): Revert this override. + .setImagePullPolicyOverride("IfNotPresent") .addLabel("app", "quay-image-scanning-test") .addImagePullSecret("quay-image-scanning-test"), "gcr": new Deployment() From f6fe1fd5b94e049eb8c4cf0e9545232c12332525 Mon Sep 17 00:00:00 2001 From: "J. Victor Martins" Date: Tue, 22 Sep 2026 21:50:52 -0700 Subject: [PATCH 056/327] fix(scanner): exclude kernel packages from rhel-vex exports (#22988) --- .github/workflows/scanner-updater-export.yaml | 1 + scanner/updater/export.go | 35 +++++--- scanner/updater/export_test.go | 86 +++++++++++++++++++ 3 files changed, 112 insertions(+), 10 deletions(-) diff --git a/.github/workflows/scanner-updater-export.yaml b/.github/workflows/scanner-updater-export.yaml index e986e6b4a0afa..91e3862ab8ba4 100644 --- a/.github/workflows/scanner-updater-export.yaml +++ b/.github/workflows/scanner-updater-export.yaml @@ -104,6 +104,7 @@ jobs: ROX_GIT_REF: ${{ inputs.ref }} GCS_OBJECT: ${{ inputs.object }} STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT: "10m" + STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES: "true" steps: - name: Checkout repository (master for local actions) uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/scanner/updater/export.go b/scanner/updater/export.go index faf2d5158bda7..ca0ce59f53503 100644 --- a/scanner/updater/export.go +++ b/scanner/updater/export.go @@ -8,6 +8,7 @@ import ( "net/http" "os" "path/filepath" + "strconv" "time" "github.com/klauspost/compress/zstd" @@ -201,26 +202,40 @@ func rhelVexOpts() []updates.ManagerOption { updates.WithEnabled([]string{rhelVexUpdaterName}), updates.WithConfigs(map[string]driver.ConfigUnmarshaler{ rhelVexUpdaterName: func(i any) error { - ctx := context.Background() - ctx = log.With(ctx, "updater", rhelVexUpdaterName) + ctx := log.With(context.Background(), "updater", rhelVexUpdaterName) + // Validate during factory configuration so invalid input fails manager + // initialization; updater configuration errors only skip the updater. + ignoreKernel := false + if value := os.Getenv("STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES"); value != "" { + var err error + ignoreKernel, err = strconv.ParseBool(value) + if err != nil { + return fmt.Errorf("STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES: %w", err) + } + } - // This function gets called for both the Factory and the Updater. - // We only need to configure the Factory (which has the CompressedFileTimeout field). + // The factory passes the download timeout to the updater; UpdaterConfig + // has no timeout field. Kernel exclusion is set on UpdaterConfig because + // the manager configures the updater after construction, overwriting any + // kernel-exclusion value inherited from the factory. switch cfg := i.(type) { case *vex.FactoryConfig: - // Configure the factory with custom timeout. - timeout := os.Getenv("STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT") - if timeout != "" { - parsedTimeout, err := time.ParseDuration(timeout) + var timeout *claircore.Duration + if value := os.Getenv("STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT"); value != "" { + parsedTimeout, err := time.ParseDuration(value) if err != nil { slog.WarnContext(ctx, "using default STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT due to invalid duration", "reason", err) } else { - cfg.CompressedFileTimeout = claircore.Duration(parsedTimeout) + duration := claircore.Duration(parsedTimeout) + timeout = &duration slog.InfoContext(ctx, "using compressed file timeout", "timeout", parsedTimeout.String()) } } + if timeout != nil { + cfg.CompressedFileTimeout = *timeout + } case *vex.UpdaterConfig: - // Updater config - nothing to configure here. + cfg.IgnoreKernelPackages = ignoreKernel default: return fmt.Errorf("rhel-vex: unexpected config type: %T", i) } diff --git a/scanner/updater/export_test.go b/scanner/updater/export_test.go index 23c33dc90a945..caca347d2be5c 100644 --- a/scanner/updater/export_test.go +++ b/scanner/updater/export_test.go @@ -1,15 +1,101 @@ package updater import ( + "context" "maps" + "net/http" "slices" "testing" + "time" + "github.com/quay/claircore" + "github.com/quay/claircore/libvuln/driver" "github.com/quay/claircore/libvuln/updates" + "github.com/quay/claircore/rhel/vex" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) +// configCaptureFactory captures the callback registered with the updates manager. +type configCaptureFactory struct { + driver.UpdaterSetFactory + configure driver.ConfigUnmarshaler +} + +func (f *configCaptureFactory) Configure(_ context.Context, configure driver.ConfigUnmarshaler, _ *http.Client) error { + f.configure = configure + return nil +} + +func rhelVexConfigForTest(t *testing.T) driver.ConfigUnmarshaler { + t.Helper() + factory := &configCaptureFactory{} + opts := append(rhelVexOpts(), updates.WithFactories(map[string]driver.UpdaterSetFactory{ + rhelVexUpdaterName: factory, + })) + _, err := updates.NewManager(context.Background(), nil, nil, http.DefaultClient, opts...) + require.NoError(t, err) + require.NotNil(t, factory.configure) + return factory.configure +} + +func TestRHELVexOpts(t *testing.T) { + configure := rhelVexConfigForTest(t) + for name, tc := range map[string]struct { + value string + want bool + err bool + }{ + "unset": {}, + "enabled": {value: "true", want: true}, + "disabled": {value: "false"}, + "invalid": {value: "invalid", err: true}, + } { + t.Run(name, func(t *testing.T) { + t.Setenv("STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES", tc.value) + t.Setenv("STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT", "10m") + factory := &vex.FactoryConfig{} + updater := &vex.UpdaterConfig{} + for _, cfg := range []any{factory, updater} { + err := configure(cfg) + if tc.err { + require.ErrorContains(t, err, "STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES") + } else { + require.NoError(t, err) + } + } + if !tc.err { + assert.False(t, factory.IgnoreKernelPackages) + assert.Equal(t, tc.want, updater.IgnoreKernelPackages) + assert.Equal(t, claircore.Duration(10*time.Minute), factory.CompressedFileTimeout) + } + }) + } +} + +func TestRHELVexOptsTimeout(t *testing.T) { + configure := rhelVexConfigForTest(t) + for name, tc := range map[string]struct { + value string + want time.Duration + }{ + "empty preserves default": {want: time.Minute}, + "invalid preserves default": {value: "invalid", want: time.Minute}, + "valid overrides default": {value: "10m", want: 10 * time.Minute}, + } { + t.Run(name, func(t *testing.T) { + t.Setenv("STACKROX_RHEL_VEX_COMPRESSED_FILE_TIMEOUT", tc.value) + t.Setenv("STACKROX_RHEL_VEX_IGNORE_KERNEL_PACKAGES", "true") + factory := &vex.FactoryConfig{CompressedFileTimeout: claircore.Duration(time.Minute)} + require.NoError(t, configure(factory)) + assert.Equal(t, claircore.Duration(tc.want), factory.CompressedFileTimeout) + updater := &vex.UpdaterConfig{} + require.NoError(t, configure(updater)) + assert.True(t, updater.IgnoreKernelPackages) + }) + } +} + func TestFilterSources(t *testing.T) { bundles := map[string][]updates.ManagerOption{ "alpha": nil, From 2ceb40c18eda6b901b98e24eb02809490942a6d8 Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 23 Sep 2026 08:15:10 +0200 Subject: [PATCH 057/327] fix(gha): fix check-crd-compatibility check - revert (#22974) --- .github/workflows/check-crd-compatibility.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/check-crd-compatibility.yaml b/.github/workflows/check-crd-compatibility.yaml index a11f817d36c30..95ba18adc4a75 100644 --- a/.github/workflows/check-crd-compatibility.yaml +++ b/.github/workflows/check-crd-compatibility.yaml @@ -55,11 +55,6 @@ jobs: run: | make -C operator bundle-post-process released_version="$(make --no-print-directory -C operator replaced-version)" - if ! git rev-parse "${released_version}" >/dev/null 2>&1; then - echo "Tag ${released_version} does not exist yet, falling back to latest release tag" - released_version="$(git tag --list --sort=-version:refname | grep -E '^[0-9]+\.[0-9]+\.0$' | head -1)" - echo "Using ${released_version}" - fi echo "released_version=$released_version" >> "$GITHUB_OUTPUT" - name: Checkout previous released version From e61caa52efec1cb6852865776bae2ef1c4d4a2d8 Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 23 Sep 2026 08:19:02 +0200 Subject: [PATCH 058/327] chore(ci): bump create-demo-clusters.yml to v1.0.45 (#22815) Co-authored-by: Claude Opus 4.8 (1M context) --- .github/workflows/create-clusters.yml | 2 +- .github/workflows/cut-rc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-clusters.yml b/.github/workflows/create-clusters.yml index 40d939145dfcc..5249b320bacbf 100644 --- a/.github/workflows/create-clusters.yml +++ b/.github/workflows/create-clusters.yml @@ -64,7 +64,7 @@ jobs: clusters: name: Setup demo clusters needs: trim-cluster-names - uses: stackrox/actions/.github/workflows/create-demo-clusters.yml@43bb707aa4f32ead5bfb8d5ab11fb409f971ffc8 # ratchet:stackrox/actions/.github/workflows/create-demo-clusters.yml@v1 + uses: stackrox/actions/.github/workflows/create-demo-clusters.yml@df8c8f5830fc09d37908be1a9744365a93c5b3cc # ratchet:stackrox/actions/.github/workflows/create-demo-clusters.yml@v1 secrets: inherit with: version: ${{github.event.inputs.version}} diff --git a/.github/workflows/cut-rc.yml b/.github/workflows/cut-rc.yml index 55870ab183efc..402dda5b0e6a2 100644 --- a/.github/workflows/cut-rc.yml +++ b/.github/workflows/cut-rc.yml @@ -331,7 +331,7 @@ jobs: name: Setup demo clusters secrets: inherit needs: [variables, cut-rc, trim-cluster-names] - uses: stackrox/actions/.github/workflows/create-demo-clusters.yml@4efb76aa74694b9ee55e95c4ead57fdf50d79ddf # ratchet:stackrox/actions/.github/workflows/create-demo-clusters.yml@v1 + uses: stackrox/actions/.github/workflows/create-demo-clusters.yml@df8c8f5830fc09d37908be1a9744365a93c5b3cc # ratchet:stackrox/actions/.github/workflows/create-demo-clusters.yml@v1 if: >- # Skip if no clusters are going to be created. Checking unequal with "false" because closed milestones have unset input values. github.event.inputs.create-k8s-cluster != 'false' || github.event.inputs.create-os4-cluster != 'false' || From dce74d58c7366d4a64169c96141a703dde6f98a1 Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Wed, 23 Sep 2026 09:06:04 +0200 Subject: [PATCH 059/327] ROX-32329: Delete `STABLE_SCANNER_VERSION` (#22829) --- central/clusters/deployer.go | 13 -- central/clusters/deployer_test.go | 149 +++++++----------- central/scanner/handler.go | 2 - image/templates/common/setup.sh | 19 --- pkg/helm/charts/meta.go | 54 +++---- pkg/helm/charts/meta_test.go | 4 - .../centralservices/flavor/flavor_test.go | 21 +-- pkg/images/defaults/flavor.go | 40 ----- pkg/images/defaults/flavor_test.go | 3 - pkg/images/defaults/testutils/flavor.go | 34 ++-- pkg/renderer/images.go | 4 - pkg/renderer/images_test.go | 70 -------- pkg/renderer/kubernetes.go | 16 -- pkg/renderer/kubernetes_helm_test.go | 4 +- pkg/renderer/kubernetes_test.go | 5 +- pkg/renderer/render_test.go | 12 -- pkg/renderer/templater.go | 6 - pkg/renderer/templates/public_values.yaml.tpl | 3 - pkg/version/internal/version_data.go | 2 - pkg/version/testutils/set_version.go | 2 - pkg/version/version.go | 8 +- .../bundle_resources_completeness_test.go | 21 ++- status.sh | 1 - tests/versions_test.go | 1 - 24 files changed, 118 insertions(+), 376 deletions(-) diff --git a/central/clusters/deployer.go b/central/clusters/deployer.go index 8e01487cf2385..c7a8f1f38b449 100644 --- a/central/clusters/deployer.go +++ b/central/clusters/deployer.go @@ -32,7 +32,6 @@ func FieldsFromClusterAndRenderOpts(c *storage.Cluster, imageFlavor *defaults.Im baseValues := getBaseMetaValues(c, imageFlavor, imageFlavor.ChartRepo, &opts) setMainOverride(mainImage, baseValues) - deriveScannerRemoteFromMain(mainImage, baseValues) baseValues.EnablePodSecurityPolicies = !opts.DisablePodSecurityPolicies collector := determineCollectorImage(mainImage, collectorImage, imageFlavor) @@ -61,15 +60,6 @@ func MakeClusterImageNames(flavor *defaults.ImageFlavor, c *storage.Cluster) (*s return mainImageName, collectorImageName, nil } -// deriveScannerRemoteFromMain sets scanner-slim image remote, so that it comes from the same location as the main image -func deriveScannerRemoteFromMain(mainImage *storage.ImageName, metaValues *charts.MetaValues) { - scannerRemoteSlice := strings.Split(mainImage.GetRemote(), "/") - if len(scannerRemoteSlice) > 0 { - scannerRemoteSlice[len(scannerRemoteSlice)-1] = metaValues.ScannerSlimImageRemote - metaValues.ScannerSlimImageRemote = strings.Join(scannerRemoteSlice, "/") - } -} - // setMainOverride adds main image values to meta values as defined in secured cluster object. func setMainOverride(mainImage *storage.ImageName, metaValues *charts.MetaValues) { metaValues.MainRegistry = mainImage.GetRegistry() @@ -151,9 +141,6 @@ func getBaseMetaValues(c *storage.Cluster, imageFlavor *defaults.ImageFlavor, ch FactImageTag: versions.FactVersion, FactImageRemote: imageFlavor.FactImageName, - ScannerImageTag: versions.ScannerVersion, - ScannerSlimImageRemote: imageFlavor.ScannerSlimImageName, - KubectlOutput: true, Versions: versions, diff --git a/central/clusters/deployer_test.go b/central/clusters/deployer_test.go index c0b7ed70d8ef2..08e800b6dc56d 100644 --- a/central/clusters/deployer_test.go +++ b/central/clusters/deployer_test.go @@ -18,10 +18,6 @@ func getCollectorImage(fields *charts.MetaValues) string { return fmt.Sprintf("%s/%s:%s", fields.CollectorRegistry, fields.CollectorImageRemote, fields.CollectorImageTag) } -func getScannerSlim(fields *charts.MetaValues) string { - return fmt.Sprintf("%s/%s:%s", fields.MainRegistry, fields.ScannerSlimImageRemote, fields.ScannerImageTag) -} - func getMain(fields *charts.MetaValues) string { return fmt.Sprintf("%s/%s:%s", fields.MainRegistry, fields.ImageRemote, fields.ImageTag) } @@ -114,121 +110,102 @@ func testMetaValueGenerationWithImageFlavor(s *deployerTestSuite, flavor default defaultMainImage := flavor.MainImage() defaultCollectorImageNoTag := flavor.CollectorImageNoTag() defaultCollectorImage := flavor.CollectorImage() - defaultScannerSlimImage := flavor.ScannerSlimImage() var cases = map[string]struct { - cluster *storage.Cluster - expectedErrorMessage string - expectedMain string - expectedCollectorRef string - expectedScannerSlimRef string + cluster *storage.Cluster + expectedErrorMessage string + expectedMain string + expectedCollectorRef string }{ // we're testing possible main & collector combinations, grouped by main image setting // default main image "default main / no collector": { - cluster: makeTestCluster(defaultMainImageNoTag, ""), - expectedMain: defaultMainImage, - expectedCollectorRef: defaultCollectorImage, - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImageNoTag, ""), + expectedMain: defaultMainImage, + expectedCollectorRef: defaultCollectorImage, }, "default main / default collector": { - cluster: makeTestCluster(defaultMainImageNoTag, defaultCollectorImageNoTag), - expectedMain: defaultMainImage, - expectedCollectorRef: defaultCollectorImage, - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImageNoTag, defaultCollectorImageNoTag), + expectedMain: defaultMainImage, + expectedCollectorRef: defaultCollectorImage, }, "default main / default collector: custom tag": { - cluster: makeTestCluster(defaultMainImageNoTag, fmt.Sprintf("%s:custom", defaultCollectorImageNoTag)), - expectedMain: defaultMainImage, - expectedCollectorRef: flavor.CollectorImage(), - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImageNoTag, fmt.Sprintf("%s:custom", defaultCollectorImageNoTag)), + expectedMain: defaultMainImage, + expectedCollectorRef: flavor.CollectorImage(), }, "default main / custom collector: with namespace": { - cluster: makeTestCluster(defaultMainImage, "quay.io/rhacs/collector"), - expectedMain: defaultMainImage, - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImage, "quay.io/rhacs/collector"), + expectedMain: defaultMainImage, + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), }, "default main / custom collector: with namespace & custom tag": { - cluster: makeTestCluster(defaultMainImage, "quay.io/rhacs/collector:custom"), - expectedMain: defaultMainImage, - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImage, "quay.io/rhacs/collector:custom"), + expectedMain: defaultMainImage, + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), }, "default main / custom collector: without namespace": { - cluster: makeTestCluster(defaultMainImage, "example.io/collector"), - expectedMain: defaultMainImage, - expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImage, "example.io/collector"), + expectedMain: defaultMainImage, + expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), }, "default main / custom collector: without namespace & custom tag": { - cluster: makeTestCluster(defaultMainImage, "example.io/collector:custom"), - expectedMain: defaultMainImage, - expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(defaultMainImage, "example.io/collector:custom"), + expectedMain: defaultMainImage, + expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), }, "default main: custom tag / no collector": { - cluster: makeTestCluster(fmt.Sprintf("%s:custom", defaultMainImageNoTag), ""), - expectedMain: fmt.Sprintf("%s:custom", defaultMainImageNoTag), - expectedCollectorRef: defaultCollectorImage, - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(fmt.Sprintf("%s:custom", defaultMainImageNoTag), ""), + expectedMain: fmt.Sprintf("%s:custom", defaultMainImageNoTag), + expectedCollectorRef: defaultCollectorImage, }, "default main: custom tag / default collector": { - cluster: makeTestCluster(fmt.Sprintf("%s:custom", defaultMainImageNoTag), ""), - expectedMain: fmt.Sprintf("%s:custom", defaultMainImageNoTag), - expectedCollectorRef: defaultCollectorImage, - expectedScannerSlimRef: defaultScannerSlimImage, + cluster: makeTestCluster(fmt.Sprintf("%s:custom", defaultMainImageNoTag), ""), + expectedMain: fmt.Sprintf("%s:custom", defaultMainImageNoTag), + expectedCollectorRef: defaultCollectorImage, }, "default main: custom registry / no collector": { - cluster: makeTestCluster("quay.io/rhacs/"+flavor.MainImageName, ""), - expectedMain: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.MainImageName, flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/"+flavor.MainImageName, ""), + expectedMain: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.MainImageName, flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), }, // custom main image "custom main: with namespace / no collector": { - cluster: makeTestCluster("quay.io/rhacs/main", ""), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", ""), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), }, "custom main: without namespace / no collector": { - cluster: makeTestCluster("example.io/main", ""), - expectedMain: fmt.Sprintf("example.io/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("example.io/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("example.io/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("example.io/main", ""), + expectedMain: fmt.Sprintf("example.io/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("example.io/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), }, "custom main / default collector": { - cluster: makeTestCluster("quay.io/rhacs/main", defaultCollectorImageNoTag), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: defaultCollectorImage, - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", defaultCollectorImageNoTag), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: defaultCollectorImage, }, "custom main / custom collector: with namespace": { - cluster: makeTestCluster("quay.io/rhacs/main", "quay.io/rhacs/collector"), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", "quay.io/rhacs/collector"), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), }, "custom main / custom collector: with namespace & custom tag": { - cluster: makeTestCluster("quay.io/rhacs/main", "quay.io/rhacs/collector:custom"), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", "quay.io/rhacs/collector:custom"), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/collector:%s", flavor.CollectorImageTag), }, "custom main / custom collector: without namespace": { - cluster: makeTestCluster("quay.io/rhacs/main", "example.io/collector"), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", "example.io/collector"), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), }, "custom main / custom collector: without namespace & custom tag": { - cluster: makeTestCluster("quay.io/rhacs/main", "example.io/collector:custom"), - expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/main", "example.io/collector:custom"), + expectedMain: fmt.Sprintf("quay.io/rhacs/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("example.io/collector:%s", flavor.CollectorImageTag), }, /* // These tests are failing right now but should succeed after ROX-15691 has been implemented @@ -244,16 +221,14 @@ func testMetaValueGenerationWithImageFlavor(s *deployerTestSuite, flavor default }, */ "custom main / custom collector: same registry, different namespaces": { - cluster: makeTestCluster("quay.io/namespace-a/main", "quay.io/namespace-b/collector"), - expectedMain: fmt.Sprintf("quay.io/namespace-a/main:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/namespace-b/collector:%s", flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/namespace-a/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/namespace-a/main", "quay.io/namespace-b/collector"), + expectedMain: fmt.Sprintf("quay.io/namespace-a/main:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/namespace-b/collector:%s", flavor.CollectorImageTag), }, "custom main: non-default name / no collector": { - cluster: makeTestCluster("quay.io/rhacs/customname", ""), - expectedMain: fmt.Sprintf("quay.io/rhacs/customname:%s", flavor.MainImageTag), - expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), - expectedScannerSlimRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.ScannerSlimImageName, flavor.ScannerImageTag), + cluster: makeTestCluster("quay.io/rhacs/customname", ""), + expectedMain: fmt.Sprintf("quay.io/rhacs/customname:%s", flavor.MainImageTag), + expectedCollectorRef: fmt.Sprintf("quay.io/rhacs/%s:%s", flavor.CollectorImageName, flavor.CollectorImageTag), }, // Expected fail cases "expectedError: empty main image": { @@ -280,7 +255,6 @@ func testMetaValueGenerationWithImageFlavor(s *deployerTestSuite, flavor default s.NoError(err) s.Equal(c.expectedMain, getMain(fields), "Main image does not match") s.Equal(c.expectedCollectorRef, getCollectorImage(fields), "Collector image does not match") - s.Equal(c.expectedScannerSlimRef, getScannerSlim(fields), "Scanner slim image does not match") } }) } @@ -338,7 +312,6 @@ func TestRequiredFieldsArePresent(t *testing.T) { assert.NotEmpty(t, fields.Versions.ChartVersion) assert.NotEmpty(t, fields.Versions.MainVersion) assert.NotEmpty(t, fields.Versions.CollectorVersion) - assert.NotEmpty(t, fields.Versions.ScannerVersion) assert.NotEmpty(t, fields.ChartRepo.URL) } diff --git a/central/scanner/handler.go b/central/scanner/handler.go index 9890f5209aeed..9728df49a6a08 100644 --- a/central/scanner/handler.go +++ b/central/scanner/handler.go @@ -93,8 +93,6 @@ func generateFilesForScannerV1(params *apiparams.Scanner, clusterType storage.Cl ClusterType: clusterType, K8sConfig: &renderer.K8sConfig{ CommonConfig: renderer.CommonConfig{ - ScannerImage: stringutils.OrDefault(params.ScannerImage, flavor.ScannerImage()), - ScannerDBImage: stringutils.OrDefault(params.ScannerDBImage, flavor.ScannerDBImage()), ScannerV4Image: stringutils.OrDefault(params.ScannerV4Image, flavor.ScannerV4Image()), ScannerV4DBImage: stringutils.OrDefault(params.ScannerV4DBImage, flavor.ScannerV4DBImage()), }, diff --git a/image/templates/common/setup.sh b/image/templates/common/setup.sh index 4621967793d60..f0db17b406c7f 100644 --- a/image/templates/common/setup.sh +++ b/image/templates/common/setup.sh @@ -39,22 +39,3 @@ metadata: type: kubernetes.io/dockerconfigjson EOF fi - -{{ if ne .K8sConfig.ScannerSecretName "stackrox" }} -if ! ${KUBE_COMMAND} get secret/{{.K8sConfig.ScannerSecretName}} -n "$NAMESPACE" > /dev/null; then - registry_auth="$("${DIR}/docker-auth.sh" -m k8s "{{.K8sConfig.ScannerRegistry}}")" - [[ -n "$registry_auth" ]] || { echo >&2 "Unable to get registry auth info." ; exit 1 ; } - ${KUBE_COMMAND} create --namespace "$NAMESPACE" -f - < Date: Wed, 23 Sep 2026 09:54:17 +0200 Subject: [PATCH 060/327] chore(release): Add 4.10.9 to scanner updater configuration (#22985) Co-authored-by: vladbologa --- scanner/updater/version/RELEASE_VERSION | 1 + 1 file changed, 1 insertion(+) diff --git a/scanner/updater/version/RELEASE_VERSION b/scanner/updater/version/RELEASE_VERSION index b86f49993d763..9461ad2816d53 100644 --- a/scanner/updater/version/RELEASE_VERSION +++ b/scanner/updater/version/RELEASE_VERSION @@ -15,6 +15,7 @@ 4.10.6 4.10.7 4.10.8 +4.10.9 4.11.0 4.11.1 4.11.2 From c20b5182016aef59197ad6f924d9ee4e9bcada1b Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Wed, 23 Sep 2026 11:17:54 +0200 Subject: [PATCH 061/327] chore(ci): Move nightly tag one hour earlier (#23002) --- .github/workflows/nightly-tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-tag.yml b/.github/workflows/nightly-tag.yml index cc87bb5e965ce..f40edc3724b0e 100644 --- a/.github/workflows/nightly-tag.yml +++ b/.github/workflows/nightly-tag.yml @@ -2,7 +2,7 @@ name: Create nightly tag on: workflow_dispatch: schedule: - - cron: 0 3 * * 1-5 + - cron: 0 2 * * 1-5 jobs: create-nightly-tag: if: ${{ github.repository_owner == 'stackrox' }} From 8654e4903a02637799c55f5055f15e7ba2bf3d75 Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 23 Sep 2026 11:31:34 +0200 Subject: [PATCH 062/327] ROX-36480: retry go mod download before controller-gen (#22817) --- operator/Makefile | 10 ++++++++-- operator/hack/generate-and-install-chart.sh | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/operator/Makefile b/operator/Makefile index 8cfb88a07f6a3..496b3271ef53d 100755 --- a/operator/Makefile +++ b/operator/Makefile @@ -237,15 +237,21 @@ parent-proto-generate: ## Make sure ../generated directory has up-to-date conten [[ $${ROX_OPERATOR_SKIP_PROTO_GENERATED_SRCS:-false} = true ]] || $(MAKE) -C .. proto-generated-srcs .PHONY: manifests -manifests: parent-proto-generate controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. +manifests: parent-proto-generate controller-gen go-mod-download ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases .PHONY: generate -generate: parent-proto-generate controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations. +generate: parent-proto-generate controller-gen go-mod-download ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations. $(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..." # The generated source files might not comply with the current go formatting, so format them explicitly. go fmt ./api/... +.PHONY: go-mod-download +go-mod-download: ## Download modules we depend on, with retries. +# Warm up go module cache so that transient network failures do not abort controller-gen. +# Once downloaded, this command is very quick (~200 ms). + go mod download || go mod download || go mod download + .PHONY: fmt fmt: ## Run go fmt against code. go fmt ./... diff --git a/operator/hack/generate-and-install-chart.sh b/operator/hack/generate-and-install-chart.sh index f2fca504e9180..0399249b1be1b 100755 --- a/operator/hack/generate-and-install-chart.sh +++ b/operator/hack/generate-and-install-chart.sh @@ -19,4 +19,7 @@ echo >&2 "Deploying operator version ${version} from a temporary checkout at ${d git worktree add "${dir}" "${version}" trap 'git worktree remove --force "${dir}"' EXIT +# Warm up go module cache so that transient network failures do not abort controller-gen. +# TODO: this command can be removed once the version we upgrade from runs go-mod-download internally. +(cd "${dir}"; go mod download || go mod download || go mod download) make -C "${dir}/operator" chart deploy-via-chart VERSION="${version}" From 5bffd9137dd67be8b9063633172a8cf2515da090 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 14:16:47 +0200 Subject: [PATCH 063/327] chore(deps): bump the aws-sdk-go-v2 group across 1 directory with 9 updates (#22302) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 42 ++++++++++++++--------------- go.sum | 84 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/go.mod b/go.mod index 21a871dfc3ae8..900e204c83fc8 100644 --- a/go.mod +++ b/go.mod @@ -25,16 +25,16 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adhocore/gronx v1.20.3 github.com/andygrunwald/go-jira v1.17.0 - github.com/aws/aws-sdk-go-v2 v1.43.4 - github.com/aws/aws-sdk-go-v2/config v1.32.35 - github.com/aws/aws-sdk-go-v2/credentials v1.19.34 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.35 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.41 - github.com/aws/aws-sdk-go-v2/service/ecr v1.60.4 - github.com/aws/aws-sdk-go-v2/service/s3 v1.107.0 - github.com/aws/aws-sdk-go-v2/service/securityhub v1.76.0 - github.com/aws/aws-sdk-go-v2/service/sts v1.45.4 - github.com/aws/smithy-go v1.27.8 + github.com/aws/aws-sdk-go-v2 v1.47.0 + github.com/aws/aws-sdk-go-v2/config v1.33.5 + github.com/aws/aws-sdk-go-v2/credentials v1.20.5 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7 + github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0 + github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1 + github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 + github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 + github.com/aws/smithy-go v1.28.1 github.com/bmatcuk/doublestar/v4 v4.10.0 github.com/cenkalti/backoff/v4 v4.3.0 github.com/cespare/xxhash/v2 v2.3.0 @@ -216,17 +216,17 @@ require ( github.com/andybalholm/brotli v1.1.0 // indirect github.com/antlr4-go/antlr/v4 v4.13.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.35 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.36 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.28 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.35 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.36 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.5.4 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.33.4 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.4 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beevik/etree v1.7.0 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/go.sum b/go.sum index 753f8b9ee3f20..27a4b25850c01 100644 --- a/go.sum +++ b/go.sum @@ -213,50 +213,50 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd 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= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.43.4 h1:b9FTvbRwy+JCsfp2Wp6wV/KbOx3Aj7nkoFb2cRX0IhE= -github.com/aws/aws-sdk-go-v2 v1.43.4/go.mod h1:70vwSy16txshwG+g55WkpgPKDIByzHI8ccBsOteo3bQ= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16 h1:aiuaKlDweRC5qExJondpWjOgyzMHpofpwspGXUtwn4c= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16/go.mod h1:nG/LOlmox9BDe9HvQnXWzgcK8uKbgBMZ/Hp5pVt/21I= -github.com/aws/aws-sdk-go-v2/config v1.32.35 h1:UEzXuET8E42lxBPijuACu/tEK7v5lFPlk0Q+GT5WD9E= -github.com/aws/aws-sdk-go-v2/config v1.32.35/go.mod h1:KaMtJpFa2JlL2BStjjHQVwQpzZEmw+ND/EgVrfFoo2g= -github.com/aws/aws-sdk-go-v2/credentials v1.19.34 h1:y6GkSmcv5myd1ngrYbGmiLlwQqB6TQhOuN/tbSSuWDY= -github.com/aws/aws-sdk-go-v2/credentials v1.19.34/go.mod h1:w3dTcnDVoQIewjo7JG45hduAToikiIFLC4FIO7fndvw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.35 h1:+S7kbJoLDDQ5tE+lHrUBgMkzC8NLgsaioS2F3dVoFAE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.35/go.mod h1:Ak7xXviIARfFdNUJ9Etb0bdVDt/KAvKjMGJVLWXDzik= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.41 h1:RgRlA38QGJPnsG6TNEnMTQq8COa6Ye7AGwdnFlzd3Ys= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.22.41/go.mod h1:14QhagNwgiQqYUcAAJjQwgBXCcpxUau+8S/0YRLt5Uo= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.35 h1:kzVuGlatQtYinwBJEEyLAbggepCoavosiaHHX9+fD+c= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.35/go.mod h1:0yLx0yEI+SfqeJMPvOtIEFoZbiQYXMGszBueiutQyaI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.35 h1:WK6CjihTuLisCjSKKbildJ79sGZZgbBz3iNa7VsKIhU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.35/go.mod h1:KYleN57luLoe97R7vTnx8PMcVrr9gAcRECtOjl91DNg= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.36 h1:jbGY4CXLzZElOXgGsexlC3Hi+3YM0rSmk4opFXKqg/k= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.36/go.mod h1:uBu/9aKsS/UQGc72RAt3y54kjgYQxmhut8ZD2dXCDNE= -github.com/aws/aws-sdk-go-v2/service/ecr v1.60.4 h1:qIgueZwgw+rANqXuL1Cjk2Lm/Pihbw2nx3C1D7eQD+k= -github.com/aws/aws-sdk-go-v2/service/ecr v1.60.4/go.mod h1:Jr9Mh7l72YtNr8nmEwcJiU4xwCerZB8/krBWW4RckmY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15 h1:JJLBQxwY+AFwuPAi5ivGc1ChnTdUt4cXMv7e76m2c/Y= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15/go.mod h1:lQknBIe78MVL0cQOQDlag8KGflMbMEVFx9mB6O8ENvk= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.28 h1:Q1TF1J9jVD+vFo0LzNnmNdQ9EAt52TS+MQlq9Ir+Yxo= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.28/go.mod h1:4KqXXC/p1hrotmouDFbrRoWaLy962b9PMUReCG6+uWo= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.35 h1:BBEElKh4a+rKshvjrfpajTe9CbpZvrbb4Jkg2PB7RzA= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.35/go.mod h1:zaZk983w//8beSruBVec/mr4CmDwgZitW/qzGhAAX0g= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.36 h1:EUIwBoN+q7UmhAejxgD27APiRjh1vwCFo53gSqdT0BM= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.36/go.mod h1:6u00gmlTGR6W0b2k9NBrld7MnOEmf1Spqx0VVt6AqyE= +github.com/aws/aws-sdk-go-v2 v1.47.0 h1:0jsHallhJCeaU0Ko48c/3FK1ctOQ7NpzggxriJOQ8MQ= +github.com/aws/aws-sdk-go-v2 v1.47.0/go.mod h1:bttEH6JqnUL8LepvDVfdrds/fZ5bCIxzpe3abyUrhDU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 h1:GPRlPwz40I2B2VrBEASOA3Bi77NyeqejNLkifosX0rs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20/go.mod h1:g7PNzKcsOKWb4fkSRBA7BZVAS6Y8IcxzN+nRohhQ1Q8= +github.com/aws/aws-sdk-go-v2/config v1.33.5 h1:UA1dmokBFOLFoOyVBhO6HjM6edy0MIk5AZSkJVcksQw= +github.com/aws/aws-sdk-go-v2/config v1.33.5/go.mod h1:Dop8axzz0xx38GExIYWXdeyc8QQ7Cr+nPsxpD/LYy4U= +github.com/aws/aws-sdk-go-v2/credentials v1.20.5 h1:wklUVvHMc9xTQ3rcp49/ISpiMnhbCicJcA6n6S8m7J8= +github.com/aws/aws-sdk-go-v2/credentials v1.20.5/go.mod h1:fyEdrn6ccLFOkoK84j5bQyGTxp9zPt5l2XMhxf4DVZs= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 h1:AM4hHjww+PSFtt6E+UrBrPlZkWsePCLEt9AjkfQX+yM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0/go.mod h1:3x/yXezeQjpOvBb4jEMxrS8SXvpdvJ5abv6l5c1gWM8= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7 h1:omtMzSxsMhRDJzG/1bzT4dLA+jybY/nQLwEuoxt52yI= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7/go.mod h1:oTPLfqQ08mCCN1qIkuZUsu0x6Iv/N7YEDax5qhCwN+o= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 h1:Hp/VgjP0BysR3OgLlR057Vz2LcbbVnoWeJ+3qWiS/fY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3/go.mod h1:nwGV5qw7F1IZPgxCvA/ph8N2TAuz+BkRG/bXn808qMA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 h1:MUaM4f+kj1ZIBPZfUS8cxP1GKXXZtHJjAthy93AN7SM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3/go.mod h1:6YmVmEVRI5ZZzRjCSsb9SryKH0hAlMRdgA7kG9aDvBU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 h1:fuSCw4Z2qfRCztMPO3GXJNSiEp6Wee+WOLwrHHUMy9c= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3/go.mod h1:6SxcHheD1pPR5+kWm1wGvjlL/YqUsh267sAfEmN4K7A= +github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0 h1:9i19IigAYxnAxTUQcsxkiIXeeytHllTOetWBhr1DTQs= +github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0/go.mod h1:iSlv4VibruxMhWfiKrNbn97Yjhe2855EFrgUitSESfM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 h1:bAdDl/HkGCcGPoe25ToSHEw23VIxt6CT5fLcg111BKg= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19/go.mod h1:KaUzbLxv4CeSxh6ZCl9B4m7CuFenS8kUEaDs+f/DQr4= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 h1:BHKCSX4QXERe8So8rbWqaM7owqOmDJxATXgJwGng22A= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3/go.mod h1:GqWeeKfYfezihA2KfFL9l7ohEdZWe1tuFWh3GfyNSnE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 h1:bON1rJf67TSTDCKg816AAIE4xSTtoo9tl0XRkO72R+I= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3/go.mod h1:c5BBpjJcQXpfeq9iASyVKA3T6vX6B6LEXY4mL/gklDY= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 h1:L8vIOxylma91TcR96NFTEC07G3JDwSl+CvK2b+IODms= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3/go.mod h1:fmPIZQzTExYuBNWFyi1P7IoDjvskgphXqK1yObMzusM= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0 h1:uB8ymkVosyourmGXCZHyWhJ4wuKA4xq3ii2dVMPtBZY= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0/go.mod h1:rK4RITSY/qJw3qVJ7p19fceOWuvrisqqOChFkX05n5I= -github.com/aws/aws-sdk-go-v2/service/s3 v1.107.0 h1:OkYV+1171za+ab9otU1tGxMXhx6uZvwVEtVddjLuYTg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.107.0/go.mod h1:5FTZoQxhmLEiCAtYVk6V+t0iS/B5yGZVLZ3Wq5FDJZI= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.76.0 h1:J/olEWGa5NIIZiejnuG4u+ahM5liNIKa07sEP5OPbqs= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.76.0/go.mod h1:zHr00dDys+8JbwQALvat8WGyudYfzc2W3dw79e+bSWs= -github.com/aws/aws-sdk-go-v2/service/signin v1.5.4 h1:cOJELVNrq5Q3Udry2GLuHUM7MhwpeaQRdYaoa6GI/yI= -github.com/aws/aws-sdk-go-v2/service/signin v1.5.4/go.mod h1:f4LxzKBtaTxD7xh3PiVg3CE1tchQemfmghaJr+NbK2c= -github.com/aws/aws-sdk-go-v2/service/sso v1.33.4 h1:AMW7a7S8iQaHjBYZdU3PCq4GKRPijTPRAc7e6XtEThY= -github.com/aws/aws-sdk-go-v2/service/sso v1.33.4/go.mod h1:QQNsFV1DVXoXcZt18FS8lI8rtUrlDyAuWZLQ5shunv4= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.4 h1:AsbZcJAQPRmHDJG8K1N0pof/1zPWjVT8TFlTWuGLSvo= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.38.4/go.mod h1:6imqztH0//t0mKbl6yWl7swSEl7F/w32oAmqB3vP1ag= -github.com/aws/aws-sdk-go-v2/service/sts v1.45.4 h1:w/AryDYMjSUANSQ2uoZxJovUsMTwWJNTv3IMex30Y+4= -github.com/aws/aws-sdk-go-v2/service/sts v1.45.4/go.mod h1:WeBiAa67azG7Su9Vf+ChGDBLiAozJCXzdjXiPBUwtbc= -github.com/aws/smithy-go v1.27.8 h1:FR0dxZfIlV7Z8eh2iHfIofdunw382XsDV3Mxt9nUvRY= -github.com/aws/smithy-go v1.27.8/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1 h1:cFHmwLxZPvtoAlo79MboURL2+7b0TMHycnrcf5VZNXk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1/go.mod h1:/uA+2Qj4jd5qBWagVC1AyzzDFXVK997E7U04w7Kw0wI= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 h1:sccblHjf5Swf5xjlBTAUT0Jc0m/KZW0PQP511Cto83A= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0/go.mod h1:39oJ1/fl7d10t0e9rtp/a+50tRLyDPSaccCZF3xXrcc= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 h1:ZD5qFpWcaOKdTuhBi431pIDkCgrMkMlMT6jlpSPoIRI= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.0/go.mod h1:8Nuuf+tR346PjJ3MvZPh9pekbLiLQFWJhzMXfwy7alA= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 h1:JGeeBcMlhg1xtOXYpeCaTQBZObtXMPQCUqBcmr65NRA= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.0/go.mod h1:XwteswG9EOMRFm73UT0t+MbTwyLxMrEXkU6e+v92Lzo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 h1:obhahQXDEdVEv8y5bTKXR30LVaxYe1kyYM0L7l2Iq+k= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0/go.mod h1:6twZZ/aXHNy1vXUO8koUbp++MYzMASkOgEBdkbJYmO0= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 h1:Zpnqa6XtrNzXZnwbdCqHOXpXhMsa01ql/pcRQ1sb4hk= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.0/go.mod h1:/8JRcdTt//hG0Q4BTmGbuOplT7ABe+5rdtqUHqXvYIM= +github.com/aws/smithy-go v1.28.1 h1:R/nXH00c8qcfCzQVELtRw+eLQWtzv+VAIEFJ1/xxXlQ= +github.com/aws/smithy-go v1.28.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/beevik/etree v1.7.0 h1:xjBk9O4p4x7D1YajePjfLzdaFC4/uYUENA7P0pv6gXA= From 7a372add7813cda85838bb90ab29f67ba3ee9e13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 15:06:58 +0200 Subject: [PATCH 064/327] chore(deps-dev): bump nanoid from 3.3.4 to 3.3.19 in /tests/performance/load (#22565) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/performance/load/package-lock.json | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/performance/load/package-lock.json b/tests/performance/load/package-lock.json index 9655f48ba9e60..638304c522bd7 100644 --- a/tests/performance/load/package-lock.json +++ b/tests/performance/load/package-lock.json @@ -1718,10 +1718,17 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3855,9 +3862,9 @@ "dev": true }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "dev": true }, "natural-compare": { From a65bc51bbc0b850511e657f4ae108c8997411bd5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 15:08:02 +0200 Subject: [PATCH 065/327] chore(deps): bump k8s.io/client-go from 0.36.4 to 0.37.0 in /tests/performance/scale (#22572) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/performance/scale/go.mod | 51 ++++++++------ tests/performance/scale/go.sum | 121 ++++++++++++++++++--------------- 2 files changed, 98 insertions(+), 74 deletions(-) diff --git a/tests/performance/scale/go.mod b/tests/performance/scale/go.mod index 67cb702d7e08f..f8200e8e75790 100644 --- a/tests/performance/scale/go.mod +++ b/tests/performance/scale/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/spf13/cobra v1.10.2 go.yaml.in/yaml/v3 v3.0.5 - k8s.io/client-go v0.36.4 + k8s.io/client-go v0.37.0 ) require ( @@ -20,53 +20,62 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.13.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.1 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.9.0 // indirect github.com/go-logr/logr v1.4.3 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-openapi/jsonpointer v1.0.0 // indirect + github.com/go-openapi/jsonreference v1.0.0 // indirect + github.com/go-openapi/swag v0.27.1 // indirect + github.com/go-openapi/swag/cmdutils v0.27.1 // indirect + github.com/go-openapi/swag/conv v0.27.1 // indirect + github.com/go-openapi/swag/fileutils v0.27.1 // indirect + github.com/go-openapi/swag/jsonutils v0.27.1 // indirect + github.com/go-openapi/swag/loading v0.27.1 // indirect + github.com/go-openapi/swag/mangling v0.27.1 // indirect + github.com/go-openapi/swag/netutils v0.27.1 // indirect + github.com/go-openapi/swag/pools v0.27.1 // indirect + github.com/go-openapi/swag/stringutils v0.27.1 // indirect + github.com/go-openapi/swag/typeutils v0.27.1 // indirect + github.com/go-openapi/swag/yamlutils v0.27.1 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect - github.com/mailru/easyjson v0.7.7 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pjbgf/sha1cd v0.6.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/skeema/knownhosts v1.3.1 // indirect - github.com/spf13/pflag v1.0.9 // indirect + github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - go.yaml.in/yaml/v2 v2.4.3 // indirect - golang.org/x/crypto v0.53.0 // indirect - golang.org/x/net v0.56.0 // indirect - golang.org/x/oauth2 v0.34.0 // indirect - golang.org/x/sys v0.46.0 // indirect - golang.org/x/term v0.44.0 // indirect - golang.org/x/text v0.39.0 // indirect - golang.org/x/time v0.14.0 // indirect + go.yaml.in/yaml/v2 v2.4.4 // indirect + golang.org/x/crypto v0.54.0 // indirect + golang.org/x/net v0.57.0 // indirect + golang.org/x/oauth2 v0.36.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.40.0 // indirect + golang.org/x/time v0.15.0 // indirect google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.36.4 // indirect - k8s.io/apimachinery v0.36.4 // indirect + k8s.io/api v0.37.0 // indirect + k8s.io/apimachinery v0.37.0 // indirect k8s.io/klog/v2 v2.140.0 // indirect - k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect - k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect + k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect + k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v6 v6.3.3 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.4.2 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/tests/performance/scale/go.sum b/tests/performance/scale/go.sum index 3ef00b9025f19..62fc40ae1c7c9 100644 --- a/tests/performance/scale/go.sum +++ b/tests/performance/scale/go.sum @@ -14,7 +14,6 @@ github.com/cloud-bulldozer/go-commons v1.0.19/go.mod h1:CKmdWhyxN6p4leLhdwKxQHJ3 github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.6.1 h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE= github.com/cyphar/filepath-securejoin v0.6.1/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -27,8 +26,8 @@ github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bF github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= -github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/fxamacker/cbor/v2 v2.9.1 h1:2rWm8B193Ll4VdjsJY28jxs70IdDsHRWgQYAI80+rMQ= +github.com/fxamacker/cbor/v2 v2.9.1/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= @@ -41,14 +40,40 @@ github.com/go-git/go-git/v5 v5.19.2 h1:wkfn7vOlUBu8ivAWKBWisTiwJK4jYHzTF8Ndv1LyG github.com/go-git/go-git/v5 v5.19.2/go.mod h1:QqCBE1EFN5ddFmrliLQ3/ntRCUjZU3EJuwuB/jWEHjk= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= -github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-openapi/jsonpointer v1.0.0 h1:kR9tHqY0CtZaOPVFm622dPVNhrvYpwr4uCxgL3h1H8s= +github.com/go-openapi/jsonpointer v1.0.0/go.mod h1:Z3rw7dWu1p9IgitXCFamSlA5lmDiklEB6vkaxcNZW5Y= +github.com/go-openapi/jsonreference v1.0.0 h1:jlmTr6torcd1YgDQvSfNmRtKzYDO4FGBkrAdlAVWnpY= +github.com/go-openapi/jsonreference v1.0.0/go.mod h1:jtwdyGbJk0Xhe5Y+rwtglQP6Sb1WZST4rT32LWB+sv0= +github.com/go-openapi/swag v0.27.1 h1:VotvOLWW8q/EAxB0YdsBBGC8XYyeL1YwBj2ungAGPNg= +github.com/go-openapi/swag v0.27.1/go.mod h1:GTkJPwHfhJp6MWr4/rCh64HVI3Ofu+tcsbfjfHmTxpE= +github.com/go-openapi/swag/cmdutils v0.27.1 h1:I7sYqaWVl5mq0NEmNQkAmFDyNin9ufvMX/p2zwtQaOE= +github.com/go-openapi/swag/cmdutils v0.27.1/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= +github.com/go-openapi/swag/conv v0.27.1 h1:8wi9ZG+olmY1wXphl93EWniPtbSPkXM/feH7FgjsvrU= +github.com/go-openapi/swag/conv v0.27.1/go.mod h1:QbqMivkpKhC3g1B1GGGOJ6ANewI3S62dbzYu3Duowqs= +github.com/go-openapi/swag/fileutils v0.27.1 h1:QQqBSoi5mW4XpU85nS0mLcA+zAE6vLzrb0QkmLKf9oM= +github.com/go-openapi/swag/fileutils v0.27.1/go.mod h1:VvJFZLTZS0AI854gEQz5tk7dBESdLjiNUMSZ/th2ry8= +github.com/go-openapi/swag/jsonutils v0.27.1 h1:SVgK3i4USzCU5mibOOS/l4ea2h9UQXy7J7RNLTjuXjU= +github.com/go-openapi/swag/jsonutils v0.27.1/go.mod h1:tdlEpZqdcQ17uj6J4YdK9vd8It5qWMwjWXOs0tjpRlk= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1 h1:mJu3COL9WEaZVp/Kf2PRMi7tPszPEJfSr/OO75ynCs8= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1/go.mod h1:mofwUWx70wvskwESqRJ//k/9kURmCgyJl5m5Ppoh5kY= +github.com/go-openapi/swag/loading v0.27.1 h1:/DxUgDXKbBX4bcn7r9uEXfJyzN5XpiJmZplzQTjrRCY= +github.com/go-openapi/swag/loading v0.27.1/go.mod h1:jvGh3iA2+zyUUycB5fgJWzeHnhrpvGnJJM0RVE9ZShE= +github.com/go-openapi/swag/mangling v0.27.1 h1:yC9D0HyUE8gbP+BfmGx9+AA89ikwZTMjESK3OnnoaqA= +github.com/go-openapi/swag/mangling v0.27.1/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= +github.com/go-openapi/swag/netutils v0.27.1 h1:mICMFoS82F5TZ4Zy3cqmcQk+BFeCp3Uyq3Np7GI0/qU= +github.com/go-openapi/swag/netutils v0.27.1/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= +github.com/go-openapi/swag/pools v0.27.1 h1:9LeadcMyb2GJCbXX5hVQDbZ2Lq9TL4dCs/nx1j5DO0E= +github.com/go-openapi/swag/pools v0.27.1/go.mod h1:kVQefhSK5RWuRe7BXsL8htgBPAMpN7HDGpGEknqugeE= +github.com/go-openapi/swag/stringutils v0.27.1 h1:ZXePZ0r2p1qSjo8tD3Un4vFj8+FqlCkczxDrJIhYUp8= +github.com/go-openapi/swag/stringutils v0.27.1/go.mod h1:lzRN95CxXmA03XcDWHLOb6nOMcxCqR5rGY0lOgsfRoM= +github.com/go-openapi/swag/typeutils v0.27.1 h1:KSTdFlfnse4r6dP9IrEnwMldjE+zs71UeEB3//PtVXc= +github.com/go-openapi/swag/typeutils v0.27.1/go.mod h1:Srm0xFNRZ1Y+vCxJclo5qzx8aj+1pAKda/YfFPrG0dQ= +github.com/go-openapi/swag/yamlutils v0.27.1 h1:ftxv6xvXb1E3zohUc+okZ9nSqNb9StQX/FXnKZ98sQA= +github.com/go-openapi/swag/yamlutils v0.27.1/go.mod h1:bnxFIB1qewGRiZHypXGZ3fNgf13/0HfRgnS/iZBDrOo= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0 h1:gGHwAJ0R/5jU8BEGDbfRNR3hL68dAVi84WuOApp29B0= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0/go.mod h1:tY+St1SGq4NFl0QIqdTY4aEdbChAHxhyB77XQi9iJCo= +github.com/go-openapi/testify/v2 v2.6.0 h1:5PKH2HE7YJ/LuRPQGvSxBRlFXNQhSetBLlGAgUEu3ug= +github.com/go-openapi/testify/v2 v2.6.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= @@ -66,8 +91,6 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= @@ -75,15 +98,12 @@ github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -111,56 +131,52 @@ github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnB github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= 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.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= 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/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= -go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= -go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= +go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= -golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= +golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= -golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= -golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= -golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= -golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.39.0 h1:UbZz4pLOvn600D6Oh6GGEI6VAmndrEBLv8/6BEXzyus= -golang.org/x/text v0.39.0/go.mod h1:3UwRclnC2g0TU9x8PZiyfOajCd1zaUNHF9cvqcQZ+ZM= -golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= -golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= +golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= @@ -176,26 +192,25 @@ gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.36.4 h1:RxrvqCL6vgH5/+UnTeu1IIFqYmGfy0hnyrod1rn35Oo= -k8s.io/api v0.36.4/go.mod h1:S2B3orCFBDhrgyWbLeuKcT2QdHIpQesBkCYSlWtwUOw= -k8s.io/apimachinery v0.36.4 h1:PT2UzkupGuAx/+xT5XjiMJ1WGpY3fn9/hdAvjweRet4= -k8s.io/apimachinery v0.36.4/go.mod h1:p2I2dipt7JHG+quVwQ1d02d28O4GdDi77RByQ13MTpk= -k8s.io/client-go v0.36.4 h1:MDvfDNvMSt0Br94SK8neviVlwL9qifw9B26hJCpD1K0= -k8s.io/client-go v0.36.4/go.mod h1:pNK4WKELbwlEDvtbE8l22lEZL5THYF61H5EealokZmA= +k8s.io/api v0.37.0 h1:Z//Vj9N7RA/yS2sDmxyeo7h+RR4zbUrd2vrd3Z0TbB4= +k8s.io/api v0.37.0/go.mod h1:LKXgcJWMc+f4OLbP5SFR8rulEg07zZhpi/zMULiBImk= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= +k8s.io/client-go v0.37.0 h1:nsN31fy8wBySuZ+QRnKmrjRSQLOG2rvoGN0tKd12zhQ= +k8s.io/client-go v0.37.0/go.mod h1:FcGqw+Ll/gNQiq+nPGY1Oyt9y7SgDh1d3MW3RFDEbn0= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a h1:xCeOEAOoGYl2jnJoHkC3hkbPJgdATINPMAxaynU2Ovg= -k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= -k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 h1:AZYQSJemyQB5eRxqcPky+/7EdBj0xi3g0ZcxxJ7vbWU= -k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad/go.mod h1:0/mqHCVhlumdJ3BhCfnjSZQE037nAhNodh1/hK0T8/I= +k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs= +k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v6 v6.3.3 h1:u08YRbVUi59ri4YD6cg0UqNM4Dimn0sIl+wldcx5PYw= -sigs.k8s.io/structured-merge-diff/v6 v6.3.3/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2 h1:qdOxHwrl2Kaag1aQEarlYcOA9vSyGCp3CIki3aW8c4Q= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= From 7923c71789f813bfd9b1559646c14742330737c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 16:38:54 +0200 Subject: [PATCH 066/327] chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /operator/tools/operator-sdk (#22576) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/operator-sdk/go.mod | 32 +++++++------- operator/tools/operator-sdk/go.sum | 68 +++++++++++++++--------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/operator/tools/operator-sdk/go.mod b/operator/tools/operator-sdk/go.mod index b414d606b1a0c..f235f2ab529e9 100644 --- a/operator/tools/operator-sdk/go.mod +++ b/operator/tools/operator-sdk/go.mod @@ -5,7 +5,7 @@ go 1.26.3 require github.com/operator-framework/operator-sdk v1.42.3 require ( - cel.dev/expr v0.25.1 // indirect + cel.dev/expr v0.25.2 // indirect 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 @@ -194,33 +194,33 @@ require ( go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect - go.opentelemetry.io/otel v1.43.0 // indirect + go.opentelemetry.io/otel v1.44.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 // indirect - go.opentelemetry.io/otel/metric v1.43.0 // indirect - go.opentelemetry.io/otel/sdk v1.43.0 // indirect - go.opentelemetry.io/otel/trace v1.43.0 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/sdk v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.44.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.podman.io/common v0.66.1 // indirect go.podman.io/image/v5 v5.38.0 // indirect go.podman.io/storage v1.61.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.53.0 // indirect + golang.org/x/crypto v0.55.0 // indirect golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect - golang.org/x/mod v0.37.0 // indirect - golang.org/x/net v0.56.0 // indirect + golang.org/x/mod v0.38.0 // indirect + golang.org/x/net v0.58.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sync v0.21.0 // indirect - golang.org/x/sys v0.46.0 // indirect - golang.org/x/term v0.44.0 // indirect - golang.org/x/text v0.38.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.15.0 // indirect - golang.org/x/tools v0.47.0 // indirect + golang.org/x/tools v0.48.0 // indirect google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60 // indirect - google.golang.org/grpc v1.82.1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/grpc v1.83.2 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/operator/tools/operator-sdk/go.sum b/operator/tools/operator-sdk/go.sum index b435790cea172..89b1b7ac57e76 100644 --- a/operator/tools/operator-sdk/go.sum +++ b/operator/tools/operator-sdk/go.sum @@ -1,5 +1,5 @@ -cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4= -cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= +cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs= +cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= @@ -527,8 +527,8 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.67.0/go.mod h1:NoUCKYWK+3ecatC4HjkRktREheMeEtrXoQxrqYFeHSc= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0/go.mod h1:C2NGBr+kAB4bk3xtMXfZ94gqFDtg/GkI7e9zqGh5Beg= -go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= -go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0 h1:deI9UQMoGFgrg5iLPgzueqFPHevDl+28YKfSpPTI6rY= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0/go.mod h1:PFx9NgpNUKXdf7J4Q3agRxMs3Y07QhTCVipKmLsMKnU= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag= @@ -553,16 +553,16 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0 h1:s/1iRkCKDfhlh1J go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0/go.mod h1:UI3wi0FXg1Pofb8ZBiBLhtMzgoTm1TYkMvn71fAqDzs= go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4= go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= -go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= -go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko= go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= -go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= -go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= -go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= @@ -589,8 +589,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= -golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= -golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= @@ -604,8 +604,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= -golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= +golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= +golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -622,8 +622,8 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= @@ -638,8 +638,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= -golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -656,8 +656,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= -golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -667,8 +667,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= -golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= -golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -678,8 +678,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= -golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -694,8 +694,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= -golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= +golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= +golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= @@ -713,17 +713,17 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 h1:XzmzkmB14QhVhgnawEVsOn6OFsnpyxNPRY9QV01dNB0= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:L43LFes82YgSonw6iTXTxXUX1OlULt4AQtkik4ULL/I= -google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec= -google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60 h1:seT2EwLWM78plQ7wcDfuWBc/4FAEAXDDiaSol4ku4qo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260511170946-3700d4141b60/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= -google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= +google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU= +google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 54b5f5dfce71443be1f2023a0369c3476c551080 Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Wed, 23 Sep 2026 17:36:43 +0200 Subject: [PATCH 067/327] ROX-27948: Wait for `central-db` before `central` (#23003) --- deploy/common/k8sbased.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/deploy/common/k8sbased.sh b/deploy/common/k8sbased.sh index bbef8350d1bf2..ca845f3558327 100644 --- a/deploy/common/k8sbased.sh +++ b/deploy/common/k8sbased.sh @@ -635,7 +635,11 @@ function launch_central { # On some systems there's a race condition when port-forward connects to central but its pod then gets deleted due # to ongoing modifications to the central deployment. This port-forward dies and the script hangs "Waiting for # Central to respond" until it times out. Waiting for rollout status should help not get into such situation. + # Central-db is waited first because it needs to be online before Central can start. rollout_wait_timeout="10m" + if [[ -z "$EXTERNAL_DB" ]]; then + kubectl -n "${central_namespace}" rollout status deploy/central-db --timeout="${rollout_wait_timeout}" + fi kubectl -n "${central_namespace}" rollout status deploy/central --timeout="${rollout_wait_timeout}" # if we have specified that we want to use a load balancer, then use that endpoint instead of localhost From 46e400781d69a57d1588e99e8ca1924aed8538f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 18:22:24 +0200 Subject: [PATCH 068/327] chore(deps): bump sigs.k8s.io/controller-runtime/tools/setup-envtest from 0.24.1 to 0.25.1 in /operator/tools/envtest (#23001) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/envtest/go.mod | 6 +++--- operator/tools/envtest/go.sum | 38 +++++++++++++++++------------------ 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/operator/tools/envtest/go.mod b/operator/tools/envtest/go.mod index b09764af31e09..61430b14f0fbd 100644 --- a/operator/tools/envtest/go.mod +++ b/operator/tools/envtest/go.mod @@ -2,7 +2,7 @@ module github.com/stackrox/rox/operator/tools/envtest go 1.26.3 -require sigs.k8s.io/controller-runtime/tools/setup-envtest v0.24.1 +require sigs.k8s.io/controller-runtime/tools/setup-envtest v0.25.1 require ( github.com/go-logr/logr v1.4.3 // indirect @@ -11,7 +11,7 @@ require ( github.com/spf13/pflag v1.0.10 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect - go.yaml.in/yaml/v2 v2.4.3 // indirect - golang.org/x/text v0.34.0 // indirect + go.yaml.in/yaml/v2 v2.4.4 // indirect + golang.org/x/text v0.40.0 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/operator/tools/envtest/go.sum b/operator/tools/envtest/go.sum index 2c1eb021c9a07..83ff5ea829f9d 100644 --- a/operator/tools/envtest/go.sum +++ b/operator/tools/envtest/go.sum @@ -30,31 +30,29 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= -go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= +go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= -golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= -golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= -golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= -golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= -golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= +golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/tools v0.47.0 h1:7Kn5x/d1svx/PzryTsqeoZN4TZwqeH5pGWjefhLi/1Q= +golang.org/x/tools v0.47.0/go.mod h1:dFHnyTvFWY212G+h7ZY4Vsp/K3U4/7W9TyVaAul8uCA= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/apimachinery v0.36.0 h1:jZyPzhd5Z+3h9vJLt0z9XdzW9VzNzWAUw+P1xZ9PXtQ= -k8s.io/apimachinery v0.36.0/go.mod h1:FklypaRJt6n5wUIwWXIP6GJlIpUizTgfo1T/As+Tyxc= -sigs.k8s.io/controller-runtime/tools/setup-envtest v0.24.1 h1:l2AjyGE/PWub6EB165ij4/bpCK0TlY5NlhzIHfmGvmg= -sigs.k8s.io/controller-runtime/tools/setup-envtest v0.24.1/go.mod h1:wpkYufRHTSw9ABET21/PkEL7kdGnmiZJ6o72t9p/1I8= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= +sigs.k8s.io/controller-runtime/tools/setup-envtest v0.25.1 h1:OYp0AfSZ1zr338OwcQC4PsyBuaHjkgHEfPuNFTFqw2Y= +sigs.k8s.io/controller-runtime/tools/setup-envtest v0.25.1/go.mod h1:q4i4kLTq6J6o29RUAQieHH8LS5knNkpgalnBhvrLp/8= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= From 66c8a0af6d2b56debfa8b4563d393f5e3182fabe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 18:43:09 +0200 Subject: [PATCH 069/327] chore(deps): bump github.com/googleapis/gax-go/v2 from 2.23.0 to 2.24.1 (#22800) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index 900e204c83fc8..9b8518d4ba47b 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( github.com/google/go-containerregistry v0.21.9 github.com/google/go-github/v91 v91.0.0 github.com/google/uuid v1.6.0 - github.com/googleapis/gax-go/v2 v2.23.0 + github.com/googleapis/gax-go/v2 v2.24.1 github.com/gorilla/schema v1.4.1 github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 github.com/grafana/pyroscope-go v1.4.2 @@ -156,9 +156,9 @@ require ( golang.org/x/tools v0.49.0 golang.stackrox.io/grpc-http1 v0.5.1 google.golang.org/api v0.292.0 - google.golang.org/genproto v0.0.0-20260622175928-b703f567277d + google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772 - google.golang.org/grpc v1.83.0 + google.golang.org/grpc v1.83.1 google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 google.golang.org/protobuf v1.36.12 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 @@ -193,7 +193,7 @@ require ( cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/iam v1.13.0 // indirect cloud.google.com/go/longrunning v1.2.0 // indirect - cloud.google.com/go/monitoring v1.29.0 // indirect + cloud.google.com/go/monitoring v1.30.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v9 v9.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect diff --git a/go.sum b/go.sum index 27a4b25850c01..9b43f6c4bf08d 100644 --- a/go.sum +++ b/go.sum @@ -56,12 +56,12 @@ cloud.google.com/go/iam v1.13.0 h1:ufT3FPT5rFFXu6UtLkNoxaOaV5EuA1dsSkmemCSTo6U= cloud.google.com/go/iam v1.13.0/go.mod h1:gHXdDEiPDvqd1q1KwBDGQlgZY/BwY760zU2LhOZS5w0= cloud.google.com/go/kms v1.33.0 h1:pG0X78m212b2pv9N4fdMoUO69LuZGQ9kSvn8sHBOFAo= cloud.google.com/go/kms v1.33.0/go.mod h1:CSGvW6GnMQbY+1nOHcIzhMtHSbExXlOmCKjWtYVjcpA= -cloud.google.com/go/logging v1.18.0 h1:KhzZq+1cSkPH9YUaKLLhLtQxIHitVayBmk0sGfoM9+k= -cloud.google.com/go/logging v1.18.0/go.mod h1:ZGKnpBaURITh+g/uom2VhbiFoFWvejcrHPDhxFtU/gI= +cloud.google.com/go/logging v1.19.0 h1:NCqhdVUg3wQ8Cobdf16FDSuTGi3+6+hdSBHrY5TsR6Q= +cloud.google.com/go/logging v1.19.0/go.mod h1:i40NZCHC9Gqvod4yE+yQfDWwlgwW/SrshkkGibCHxcA= cloud.google.com/go/longrunning v1.2.0 h1:WjYH3YHBGCxGJP9M4dWGHBfXr/cFIjMkNgWcJj7/iMM= cloud.google.com/go/longrunning v1.2.0/go.mod h1:5KMQALFGOCtFoi2xSOA1u3H7WKlhmckgiyFw7+LGQp0= -cloud.google.com/go/monitoring v1.29.0 h1:AHhDsFaSax1/4k+qlIDX/SDGe6hggnfXJ9dkgD9qBPY= -cloud.google.com/go/monitoring v1.29.0/go.mod h1:72NOVjJXHY/HBfoLT0+qlCZBT059+9VXLeAnL2PeeVM= +cloud.google.com/go/monitoring v1.30.0 h1:r/d+JUbyKmJ8b07iznuKfzVzrIXTWxHQ3lBRm3x2LlY= +cloud.google.com/go/monitoring v1.30.0/go.mod h1:htlUR0QWVMrjFzZmN4LGnMAve9xB/eduwjmINxVZ8RM= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -741,8 +741,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.23.0 h1:Tchl7qkvE7Ip3y+ztvNufYFvkfqTe7NfLTYGIdJRLuE= -github.com/googleapis/gax-go/v2 v2.23.0/go.mod h1:rBQKOVJCdb8IFEzg+FCwlt1LP/xMDGuqUXhUG+XMXEg= +github.com/googleapis/gax-go/v2 v2.24.1 h1:AtqTN21IXMMWo99LiEVAiBfNNQmO40d8xUfZI640mc0= +github.com/googleapis/gax-go/v2 v2.24.1/go.mod h1:bWeBei0NVwaNZKb2y1HUBS7gLXIF3/Tu3pq7j8D2Tb0= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= @@ -2034,8 +2034,8 @@ google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20260622175928-b703f567277d h1:CP5omUq8AJTiWMrPKM1WRLJ7zZeXd9OPcQD3TbBNAyY= -google.golang.org/genproto v0.0.0-20260622175928-b703f567277d/go.mod h1:DrwuGJgFSEVNpv3S5Q5VxhRTvdnjauw9GtvwVOEARfA= +google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d h1:C9v1o0/4quuhOAfmRXA2j+we0PqZIp8traLdeogF3Ms= +google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d/go.mod h1:Wz2wFJntZFmLGo7pLDXZ3wYk5hyc0Mb+SkHhDDXT+lU= google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772 h1:4namukbyF7JY83aWHQwi9J5ugNTnDReLJ9ZcpqOpRB4= google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772/go.mod h1:1brfde68Npq6+WA75c1EHWPijZEG1kMus61ygPZfn4A= google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= @@ -2068,8 +2068,8 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.83.0 h1:JeNZEKJFbQxArAMl+hiytHauacDNqJUllNfmIMmpqnQ= -google.golang.org/grpc v1.83.0/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= +google.golang.org/grpc v1.83.1 h1:HIO0+BEtBP6soyqvqC8sNUjZ7bTs+0hFQuFF+RAy++Y= +google.golang.org/grpc v1.83.1/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 h1:ExN12ndbJ608cboPYflpTny6mXSzPrDLh0iTaVrRrds= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6/go.mod h1:6ytKWczdvnpnO+m+JiG9NjEDzR1FJfsnmJdG7B8QVZ8= From 19e53ec199b9aee3a66d62cd685a3b807387f4a0 Mon Sep 17 00:00:00 2001 From: Michael Petrov Date: Wed, 23 Sep 2026 19:28:12 +0200 Subject: [PATCH 070/327] ROX-36941: wait for namespace deletion in AdmissionControllerTest (#22802) Co-authored-by: Claude Opus 4.8 --- .../orchestratormanager/Kubernetes.groovy | 7 +++-- .../groovy/AdmissionControllerTest.groovy | 26 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy index 10d4cd84fa38e..14a7f0f7fac89 100644 --- a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy +++ b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy @@ -2680,8 +2680,11 @@ class Kubernetes { withRetry(2, 3) { client.namespaces().withName(ns).delete() } - if (waitForDeletion) { - waitForNamespaceDeletion(ns) + if (waitForDeletion && !waitForNamespaceDeletion(ns)) { + // Fail loudly: a namespace stuck Terminating leaks into later tests + // (e.g. NamespaceTest's ACS/orchestrator comparison) instead of being + // silently ignored. + throw new OrchestratorManagerException("Timed out waiting for namespace ${ns} to be deleted") } } diff --git a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy index 07a5f9c9f3308..c031ef3011efd 100644 --- a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy +++ b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy @@ -316,9 +316,16 @@ class AdmissionControllerTest extends BaseSpecification { if (created) { deleteDeploymentWithCaution(deployment) } - orchestrator.deleteNamespace(testNs, false) - if (policyId) { - PolicyService.deletePolicy(policyId) + try { + // Wait for full namespace deletion; a namespace left in Terminating state + // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). + orchestrator.deleteNamespace(testNs) + } finally { + // Delete the per-test policy even if the namespace deletion above times out + // and throws, otherwise the leftover policy affects later tests. + if (policyId) { + PolicyService.deletePolicy(policyId) + } } where: @@ -413,9 +420,16 @@ class AdmissionControllerTest extends BaseSpecification { if (created2) { deleteDeploymentWithCaution(deployment2) } - orchestrator.deleteNamespace(testNs, false) - if (policyId) { - PolicyService.deletePolicy(policyId) + try { + // Wait for full namespace deletion; a namespace left in Terminating state + // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). + orchestrator.deleteNamespace(testNs) + } finally { + // Delete the per-test policy even if the namespace deletion above times out + // and throws, otherwise the leftover policy affects later tests. + if (policyId) { + PolicyService.deletePolicy(policyId) + } } where: From 29658872243aab4bdaf47d857c47edc05ca6bf73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 21:50:50 +0200 Subject: [PATCH 071/327] chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.43.0 to 1.45.0 (#22896) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 12 ++++++------ go.sum | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/go.mod b/go.mod index 9b8518d4ba47b..80078a9f21b70 100644 --- a/go.mod +++ b/go.mod @@ -157,7 +157,7 @@ require ( golang.stackrox.io/grpc-http1 v0.5.1 google.golang.org/api v0.292.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d - google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772 + google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d google.golang.org/grpc v1.83.1 google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 google.golang.org/protobuf v1.36.12 @@ -447,13 +447,13 @@ require ( go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect go.opentelemetry.io/otel v1.45.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 // indirect go.opentelemetry.io/otel/metric v1.45.0 // indirect - go.opentelemetry.io/otel/sdk v1.44.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.44.0 // indirect + go.opentelemetry.io/otel/sdk v1.45.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.45.0 // indirect go.opentelemetry.io/otel/trace v1.45.0 // indirect - go.opentelemetry.io/proto/otlp v1.10.0 // indirect + go.opentelemetry.io/proto/otlp v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect diff --git a/go.sum b/go.sum index 9b43f6c4bf08d..d9bccc9609c5e 100644 --- a/go.sum +++ b/go.sum @@ -1474,10 +1474,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0 h1:8UQ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0/go.mod h1:2lmweYCiHYpEjQ/lSJBYhj9jP1zvCvQW4BqL9dnT7FQ= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 h1:w1K+pCJoPpQifuVpsKamUdn9U0zM3xUziVOqsGksUrY= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0/go.mod h1:HBy4BjzgVE8139ieRI75oXm3EcDN+6GhD88JT1Kjvxg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 h1:RAE+JPfvEmvy+0LzyUA25/SGawPwIUbZ6u0Wug54sLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0/go.mod h1:AGmbycVGEsRx9mXMZ75CsOyhSP6MFIcj/6dnG+vhVjk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 h1:QRefszxJmfPdjXUUm3j6iDzY03mTPXMjqErFqQ67vUg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0/go.mod h1:Tiz03lTBVBrm7eWZBOidzEaYaJa8tjwGUGv6d8mlTyk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 h1:fG5MCxGz8+2VtrN/WgqSpJFctVz24gpxj8CxkKmc8Ww= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0/go.mod h1:BmAYTn+3ysbRe+IU2msxmf5Rx3g6DHvex+tWI3LdhYI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 h1:3iZJKlCZufyRzPzlQhUIWVmfltrXuGyfjREgGP3UUjc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0/go.mod h1:/G+nUPfhq2e+qiXMGxMwumDrP5jtzU+mWN7/sjT2rak= go.opentelemetry.io/otel/exporters/prometheus v0.66.0 h1:vkrK8PAznv2NKt2r+kdu252ccGzkEqLc2aSXbQIALYQ= @@ -1492,19 +1492,19 @@ go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIE go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M= go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s= -go.opentelemetry.io/otel/metric/x v0.66.0 h1:YkCrx1zLOChi9ZcZ6euupOcsgzbVlec7D/xoEU1+cTA= -go.opentelemetry.io/otel/metric/x v0.66.0/go.mod h1:d1+BDj9t96do0/1LoU1ayfCv79ZgNE41qbhBvnMOBZk= -go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= -go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/metric/x v0.67.0 h1:PcicCNZFkZ4bXfSooXdo3WN7RBOVOtjVdo1wD358Uns= +go.opentelemetry.io/otel/metric/x v0.67.0/go.mod h1:FBjCWZe6wgcqxcMtjdGiClDKXb2YxxXii0CXftE4QtI= +go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw= +go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA= go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko= go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= -go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= -go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJjNEYILuiE3o= +go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA= go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= -go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= +go.opentelemetry.io/proto/otlp v1.11.0 h1:5rrYs0Ykyj50sdU/JU0x8etU+LubXWb+gED6TbEdMIk= +go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT72hLMhv8VwA8E= go.step.sm/crypto v0.87.0 h1:+u0pDz1OV9M/SswA6KtcQ3GSrYMMelbL//0W/ceJVYI= go.step.sm/crypto v0.87.0/go.mod h1:gBr1mpMiKs5804/Yt03uAoOBiw3DFxARZnGUKEUO82M= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -2036,8 +2036,8 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d h1:C9v1o0/4quuhOAfmRXA2j+we0PqZIp8traLdeogF3Ms= google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d/go.mod h1:Wz2wFJntZFmLGo7pLDXZ3wYk5hyc0Mb+SkHhDDXT+lU= -google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772 h1:4namukbyF7JY83aWHQwi9J5ugNTnDReLJ9ZcpqOpRB4= -google.golang.org/genproto/googleapis/api v0.0.0-20260727163830-6c54dddc4772/go.mod h1:1brfde68Npq6+WA75c1EHWPijZEG1kMus61ygPZfn4A= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= From 6c42c01e6b278289dc9fecfb32c76f82e7de061b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 01:14:15 +0200 Subject: [PATCH 072/327] chore(deps): bump google.golang.org/grpc from 1.83.1 to 1.83.2 (#22715) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 80078a9f21b70..4e9885af6a92c 100644 --- a/go.mod +++ b/go.mod @@ -158,7 +158,7 @@ require ( google.golang.org/api v0.292.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d - google.golang.org/grpc v1.83.1 + google.golang.org/grpc v1.83.2 google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 google.golang.org/protobuf v1.36.12 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 diff --git a/go.sum b/go.sum index d9bccc9609c5e..05243936b2c2f 100644 --- a/go.sum +++ b/go.sum @@ -2068,8 +2068,8 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.83.1 h1:HIO0+BEtBP6soyqvqC8sNUjZ7bTs+0hFQuFF+RAy++Y= -google.golang.org/grpc v1.83.1/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= +google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU= +google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 h1:ExN12ndbJ608cboPYflpTny6mXSzPrDLh0iTaVrRrds= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6/go.mod h1:6ytKWczdvnpnO+m+JiG9NjEDzR1FJfsnmJdG7B8QVZ8= From 53a3b76f155e45b5be11bcfbd739643301aa36d8 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Wed, 23 Sep 2026 19:27:37 -0400 Subject: [PATCH 073/327] ROX-33635: Delete ROX_BASE_IMAGE_DETECTION in ui (#19467) --- .../integration/baseImages/baseImages.test.ts | 7 ------- .../workloadCveOverviewPage.test.ts | 2 -- .../attributes/imageComponent.ts | 1 - .../Image/ImagePageVulnerabilities.tsx | 3 +-- .../ImageComponentVulnerabilitiesTable.cy.jsx | 3 +-- .../ImageComponentVulnerabilitiesTable.tsx | 20 +++++++------------ ui/apps/platform/src/routePaths.test.ts | 16 ++------------- ui/apps/platform/src/routePaths.ts | 1 - ui/apps/platform/src/types/featureFlag.ts | 1 - 9 files changed, 11 insertions(+), 43 deletions(-) diff --git a/ui/apps/platform/cypress/integration/baseImages/baseImages.test.ts b/ui/apps/platform/cypress/integration/baseImages/baseImages.test.ts index fd4cf8da93a38..ac126cc95443a 100644 --- a/ui/apps/platform/cypress/integration/baseImages/baseImages.test.ts +++ b/ui/apps/platform/cypress/integration/baseImages/baseImages.test.ts @@ -1,5 +1,4 @@ import withAuth from '../../helpers/basicAuth'; -import { hasFeatureFlag } from '../../helpers/features'; import { interactAndWaitForResponses } from '../../helpers/request'; import { getRegExpForTitleWithBranding } from '../../helpers/title'; @@ -8,12 +7,6 @@ import { addBaseImage, visitBaseImages, visitBaseImagesFromLeftNav } from './bas describe('Base Images', () => { withAuth(); - before(function () { - if (!hasFeatureFlag('ROX_BASE_IMAGE_DETECTION')) { - this.skip(); - } - }); - it('should navigate to Base Images page from left nav', () => { visitBaseImagesFromLeftNav(); diff --git a/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/workloadCveOverviewPage.test.ts b/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/workloadCveOverviewPage.test.ts index 5b685bca9a27e..12bb73e18817b 100644 --- a/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/workloadCveOverviewPage.test.ts +++ b/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/workloadCveOverviewPage.test.ts @@ -363,8 +363,6 @@ describe('Workload CVE overview page tests', () => { describe('Layer type filter tests', () => { it('should apply Layer type filter correctly', () => { - interceptAndOverrideFeatureFlags({ ROX_BASE_IMAGE_DETECTION: true }); - visitWorkloadCveOverview(); addCheckboxSelectFilter('Image component', 'Layer type', 'Base image'); diff --git a/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageComponent.ts b/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageComponent.ts index e4556f1ca8ea4..72e9c5fbeb2a2 100644 --- a/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageComponent.ts +++ b/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageComponent.ts @@ -35,7 +35,6 @@ export const LayerType: CompoundSearchFilterAttribute = { filterChipLabel: 'Image component layer type', searchTerm: 'Component Layer Type', inputType: 'select', - featureFlagDependency: ['ROX_BASE_IMAGE_DETECTION'], inputProps: { options: [ { label: 'Application', value: 'APPLICATION' }, diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx index 8fd7bf3743048..5c797f0017163 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx @@ -153,7 +153,6 @@ function ImagePageVulnerabilities({ setSearchFilter, }: ImagePageVulnerabilitiesProps) { const { isFeatureFlagEnabled } = useFeatureFlags(); - const isBaseImageDetectionEnabled = isFeatureFlagEnabled('ROX_BASE_IMAGE_DETECTION'); const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); const { analyticsTrack } = useAnalytics(); @@ -304,7 +303,7 @@ function ImagePageVulnerabilities({ - {isBaseImageDetectionEnabled && baseImage && ( + {baseImage && ( diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.cy.jsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.cy.jsx index 40539b413a11d..1aabe1ddf4b56 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.cy.jsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.cy.jsx @@ -5,8 +5,7 @@ import ImageComponentVulnerabilitiesTable from './ImageComponentVulnerabilitiesT const MockFeatureFlagsProvider = ({ children }) => ( - flag === 'ROX_BASE_IMAGE_DETECTION' || flag === 'ROX_SCANNER_V4', + isFeatureFlagEnabled: (flag) => flag === 'ROX_SCANNER_V4', isLoadingFeatureFlags: false, error: undefined, }} diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.tsx index 4632ef147f44e..0d73b14112fb4 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageComponentVulnerabilitiesTable.tsx @@ -61,13 +61,9 @@ function ImageComponentVulnerabilitiesTable({ const { isFeatureFlagEnabled } = useFeatureFlags(); const isAdvisoryColumnEnabled = isFeatureFlagEnabled('ROX_SCANNER_V4'); const isOriginColumnEnabled = isFeatureFlagEnabled('ROX_SCANNER_V4'); - const isLayerTypeColumnEnabled = isFeatureFlagEnabled('ROX_BASE_IMAGE_DETECTION'); const colSpanForDockerfileLayer = - 7 + - (isAdvisoryColumnEnabled ? 1 : 0) + - (isOriginColumnEnabled ? 1 : 0) + - (isLayerTypeColumnEnabled ? 1 : 0); + 8 + (isAdvisoryColumnEnabled ? 1 : 0) + (isOriginColumnEnabled ? 1 : 0); const { sortOption, getSortParams } = useTableSort({ sortFields, defaultSortOption }); const componentVulns = flattenImageComponentVulns( @@ -88,7 +84,7 @@ function ImageComponentVulnerabilitiesTable({ {isAdvisoryColumnEnabled && Advisory} Source {isOriginColumnEnabled && CVE origin} - {isLayerTypeColumnEnabled && Layer type} + Layer type Location @@ -140,13 +136,11 @@ function ImageComponentVulnerabilitiesTable({ {isOriginColumnEnabled && ( {getOriginDisplayName(origin)} )} - {isLayerTypeColumnEnabled && ( - - - - )} + + + diff --git a/ui/apps/platform/src/routePaths.test.ts b/ui/apps/platform/src/routePaths.test.ts index fb28cd02823be..4980660e36e16 100644 --- a/ui/apps/platform/src/routePaths.test.ts +++ b/ui/apps/platform/src/routePaths.test.ts @@ -14,28 +14,16 @@ import { getLinkToDeploymentInNetworkGraph, isRouteEnabled } from './routePaths' */ describe('routePaths', () => { describe('isRouteEnabled for base-images', () => { - it('should enable route when feature flag is enabled and user has ImageAdministration read access', () => { + it('should enable route when user has ImageAdministration read access', () => { const hasReadAccess: HasReadAccess = vi.fn( (resource) => resource === 'ImageAdministration' ); - const isFeatureFlagEnabled: IsFeatureFlagEnabled = vi.fn( - (flag) => flag === 'ROX_BASE_IMAGE_DETECTION' - ); + const isFeatureFlagEnabled: IsFeatureFlagEnabled = vi.fn(() => false); const enabled = isRouteEnabled({ hasReadAccess, isFeatureFlagEnabled }, 'base-images'); expect(enabled).toBe(true); expect(hasReadAccess).toHaveBeenCalledWith('ImageAdministration'); - expect(isFeatureFlagEnabled).toHaveBeenCalledWith('ROX_BASE_IMAGE_DETECTION'); - }); - - it('should disable route when feature flag is disabled', () => { - const hasReadAccess: HasReadAccess = vi.fn(() => true); - const isFeatureFlagEnabled: IsFeatureFlagEnabled = vi.fn(() => false); - - const enabled = isRouteEnabled({ hasReadAccess, isFeatureFlagEnabled }, 'base-images'); - - expect(enabled).toBe(false); }); it('should disable route when user lacks ImageAdministration read access', () => { diff --git a/ui/apps/platform/src/routePaths.ts b/ui/apps/platform/src/routePaths.ts index 15a3f0f002533..33b931c842619 100644 --- a/ui/apps/platform/src/routePaths.ts +++ b/ui/apps/platform/src/routePaths.ts @@ -410,7 +410,6 @@ const routeRequirementsMap: Record = { resourceAccessRequirements: everyResource(['Cluster']), }, 'base-images': { - featureFlagRequirements: allEnabled(['ROX_BASE_IMAGE_DETECTION']), resourceAccessRequirements: everyResource(['ImageAdministration']), }, 'vulnerability-management': { diff --git a/ui/apps/platform/src/types/featureFlag.ts b/ui/apps/platform/src/types/featureFlag.ts index 4251f28f5af30..c427d4e9101dd 100644 --- a/ui/apps/platform/src/types/featureFlag.ts +++ b/ui/apps/platform/src/types/featureFlag.ts @@ -2,7 +2,6 @@ // However, add strings in alphabetical order to minimize merge conflicts when multiple people add or delete strings. // prettier-ignore export type FeatureFlagEnvVar = - | 'ROX_BASE_IMAGE_DETECTION' | 'ROX_CISA_KEV' | 'ROX_CVE_FIX_TIMESTAMP' | 'ROX_DEPRECATED_COMPLIANCE_DASHBOARD' From cf05ee309c2660d006652d2d1d555eefa1fc0954 Mon Sep 17 00:00:00 2001 From: "J. Victor Martins" Date: Wed, 23 Sep 2026 22:00:56 -0700 Subject: [PATCH 074/327] ROX-36439: align v3 exporter with release-4.11 claircore bump (#22900) --- scanner/updater/version/VULNERABILITY_BUNDLE_VERSION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scanner/updater/version/VULNERABILITY_BUNDLE_VERSION b/scanner/updater/version/VULNERABILITY_BUNDLE_VERSION index 8cf08d06206d0..8409e0debc779 100644 --- a/scanner/updater/version/VULNERABILITY_BUNDLE_VERSION +++ b/scanner/updater/version/VULNERABILITY_BUNDLE_VERSION @@ -6,7 +6,7 @@ # This process ensures that each version's vulnerability data is accurately captured and maintained in accordance with its respective version. dev heads/master v2 heads/release-4.9.x/scanner-updater-v2 -# release-4.11 at 2026-08-06, after 4.11.3-rc.0. -v3 heads/2e8d7a35b1200eb29d5a75cad2a443719cf265e1 +# release-4.11 with claircore v1.5.55 +v3 heads/1e51a275092d9421b9acabaf09bca3ae3d59d3fc # master until the release branch is available. v4 heads/master From 2096e5229cb3cc8676e318c01609ce0de1ee8626 Mon Sep 17 00:00:00 2001 From: Dmitrii Dolgov <9erthalion6@gmail.com> Date: Thu, 24 Sep 2026 08:45:58 +0200 Subject: [PATCH 075/327] fix(ci): Enable SFA for OCP candidate (#22972) An OCP release candidate flavor is called "openshift-4-ocp/candidate", but enable_sfa_for_ocp does not know that, thus SFA is not enabled on nightlies for OCP release candidates. Fix that by introducing a special case and assuming if we run on such a flavor, it's new enough to satisfy SFA requirements. --- .openshift-ci/common.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.openshift-ci/common.py b/.openshift-ci/common.py index 06cebaab6985b..fdf0d0bd212e5 100644 --- a/.openshift-ci/common.py +++ b/.openshift-ci/common.py @@ -39,6 +39,14 @@ def enable_sfa_for_ocp(): """ try: ocp_variant = os.environ.get("CLUSTER_FLAVOR_VARIANT", "") + + # A special case, OCP release candidate version. Most certainly newer + # than we require. + if ocp_variant == "openshift-4-ocp/candidate": + os.environ["SFA_AGENT"] = "true" + log_print("Enabled SFA agent for OCP", ocp_variant) + return + expr = r"openshift-4-ocp/\w+-(?P\d+)\.(?P\d+)" m = re.match(expr, ocp_variant) if m: From ebad3670b316ddfd8e3de6a54b950dea824a51b0 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 07:19:28 +0000 Subject: [PATCH 076/327] chore(deps): update quay.io/rhacs-eng/konflux-tasks:latest docker digest to 06b877f (#23016) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/basic-component-pipeline.yaml | 6 +++--- .tekton/checks.yaml | 2 +- .tekton/create-custom-snapshot.yaml | 8 ++++---- .tekton/main-pipeline.yaml | 8 ++++---- .tekton/operator-bundle-pipeline.yaml | 8 ++++---- .tekton/operator-index-build.yaml | 8 ++++---- .tekton/retag-pipeline.yaml | 10 +++++----- .tekton/scanner-v4-pipeline.yaml | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.tekton/basic-component-pipeline.yaml b/.tekton/basic-component-pipeline.yaml index e794aa07eb2aa..ded1ab7f050ca 100644 --- a/.tekton/basic-component-pipeline.yaml +++ b/.tekton/basic-component-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/checks.yaml b/.tekton/checks.yaml index fd29e0fb2426c..85bdfaa2ce8f1 100644 --- a/.tekton/checks.yaml +++ b/.tekton/checks.yaml @@ -66,7 +66,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index d28c37768e656..1fa37a222d808 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -75,7 +75,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -224,7 +224,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -242,7 +242,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -315,7 +315,7 @@ spec: - name: name value: create-snapshot-from-bundle - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/main-pipeline.yaml b/.tekton/main-pipeline.yaml index 211d0915ba5fc..a6f8b2dbbb411 100644 --- a/.tekton/main-pipeline.yaml +++ b/.tekton/main-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -212,7 +212,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -228,7 +228,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -248,7 +248,7 @@ spec: - name: name value: fetch-external-networks - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/operator-bundle-pipeline.yaml b/.tekton/operator-bundle-pipeline.yaml index d3daf2a9cddda..cd0acc1e74e2a 100644 --- a/.tekton/operator-bundle-pipeline.yaml +++ b/.tekton/operator-bundle-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -272,7 +272,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -288,7 +288,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -329,7 +329,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 94dc047ab378a..f67d85c66a613 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -98,7 +98,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -214,7 +214,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -230,7 +230,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -276,7 +276,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/retag-pipeline.yaml b/.tekton/retag-pipeline.yaml index 9a81e73b72a13..10ce4bb760115 100644 --- a/.tekton/retag-pipeline.yaml +++ b/.tekton/retag-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -136,7 +136,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -154,7 +154,7 @@ spec: - name: name value: determine-dependency-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -170,7 +170,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -195,7 +195,7 @@ spec: - name: name value: retag-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles diff --git a/.tekton/scanner-v4-pipeline.yaml b/.tekton/scanner-v4-pipeline.yaml index f32e1196845c3..1285b72837557 100644 --- a/.tekton/scanner-v4-pipeline.yaml +++ b/.tekton/scanner-v4-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles @@ -247,7 +247,7 @@ spec: - name: name value: fetch-scanner-v4-vuln-mappings - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:c0d2afcf938180935f8227f1d564fa94c3807595e8782063030c80575d55f313 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae - name: kind value: task resolver: bundles From ce3ee19305a25d6ac5ffb7eae45d854da7b1cca2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 09:37:57 +0200 Subject: [PATCH 077/327] chore(deps): bump stackrox/actions/.github/workflows/periodic-retest-konflux-builds.yml from f4660e8ce6bd7558e782e8e7cd26bad8cfbb6b9f to 6691d5c300d4af17546145bdbbb9862c53975af4 (#22851) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/konflux-auto-retest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/konflux-auto-retest.yml b/.github/workflows/konflux-auto-retest.yml index 03dcac1d1f6a5..2a76babeb7de6 100644 --- a/.github/workflows/konflux-auto-retest.yml +++ b/.github/workflows/konflux-auto-retest.yml @@ -7,7 +7,7 @@ on: jobs: retest: - uses: stackrox/actions/.github/workflows/periodic-retest-konflux-builds.yml@f4660e8ce6bd7558e782e8e7cd26bad8cfbb6b9f # ratchet:stackrox/actions/.github/workflows/periodic-retest-konflux-builds.yml@v1 + uses: stackrox/actions/.github/workflows/periodic-retest-konflux-builds.yml@6691d5c300d4af17546145bdbbb9862c53975af4 # ratchet:stackrox/actions/.github/workflows/periodic-retest-konflux-builds.yml@v1 permissions: pull-requests: write issues: write From 988e4dbb56b0083ad9ad23008b076cc13ba2b7f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 09:38:31 +0200 Subject: [PATCH 078/327] chore(deps): bump stackrox/actions/roxie/install-cli from 43bb707aa4f32ead5bfb8d5ab11fb409f971ffc8 to 6691d5c300d4af17546145bdbbb9862c53975af4 (#22850) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/e2e-qa-tests.yaml | 2 +- .github/workflows/emailsender-central-compatibility.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-qa-tests.yaml b/.github/workflows/e2e-qa-tests.yaml index 56b47f044edf6..fe63f141908e0 100644 --- a/.github/workflows/e2e-qa-tests.yaml +++ b/.github/workflows/e2e-qa-tests.yaml @@ -189,7 +189,7 @@ jobs: run: echo "version=$(cat ROXIE_VERSION)" >> "$GITHUB_OUTPUT" - name: Install roxie - uses: stackrox/actions/roxie/install-cli@43bb707aa4f32ead5bfb8d5ab11fb409f971ffc8 # ratchet:stackrox/actions@v1 + uses: stackrox/actions/roxie/install-cli@6691d5c300d4af17546145bdbbb9862c53975af4 # ratchet:stackrox/actions@v1 with: version: "v${{ steps.roxie-version.outputs.version }}" diff --git a/.github/workflows/emailsender-central-compatibility.yaml b/.github/workflows/emailsender-central-compatibility.yaml index 7dd300125b10e..9600d3cf78c94 100644 --- a/.github/workflows/emailsender-central-compatibility.yaml +++ b/.github/workflows/emailsender-central-compatibility.yaml @@ -68,7 +68,7 @@ jobs: run: echo "version=$(cat stackrox/ROXIE_VERSION)" >> "$GITHUB_OUTPUT" - name: Install roxie - uses: stackrox/actions/roxie/install-cli@43bb707aa4f32ead5bfb8d5ab11fb409f971ffc8 # ratchet:stackrox/actions@v1 + uses: stackrox/actions/roxie/install-cli@6691d5c300d4af17546145bdbbb9862c53975af4 # ratchet:stackrox/actions@v1 with: version: "v${{ steps.roxie-version.outputs.version }}" From bcc6e50021f5c956225f6fdc71ff3323b275dda9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 10:46:56 +0200 Subject: [PATCH 079/327] chore(deps): bump the golang-org-x group with 5 updates (#23024) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 4e9885af6a92c..a7c34188710c9 100644 --- a/go.mod +++ b/go.mod @@ -144,16 +144,16 @@ require ( go.uber.org/mock v0.6.0 go.uber.org/zap v1.28.0 go.yaml.in/yaml/v3 v3.0.5 - golang.org/x/crypto v0.56.0 + golang.org/x/crypto v0.57.0 golang.org/x/mod v0.41.0 - golang.org/x/net v0.58.0 + golang.org/x/net v0.59.0 golang.org/x/oauth2 v0.36.0 golang.org/x/sync v0.23.0 golang.org/x/sys v0.48.0 - golang.org/x/term v0.45.0 - golang.org/x/text v0.41.0 + golang.org/x/term v0.46.0 + golang.org/x/text v0.42.0 golang.org/x/time v0.16.0 - golang.org/x/tools v0.49.0 + golang.org/x/tools v0.50.0 golang.stackrox.io/grpc-http1 v0.5.1 google.golang.org/api v0.292.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d diff --git a/go.sum b/go.sum index 05243936b2c2f..875d2ef52935c 100644 --- a/go.sum +++ b/go.sum @@ -1550,8 +1550,8 @@ golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqj golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= -golang.org/x/crypto v0.56.0 h1:GUh5Ii4J5jtcseSMiRqr1jXCNHoxjeV9Fmekc2oLy6Y= -golang.org/x/crypto v0.56.0/go.mod h1:OMW5y6CY9l38uPLmxU6l6pwcXp1obtLo3e6gT7gQR2I= +golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M= +golang.org/x/crypto v0.57.0/go.mod h1:Fdz0i5U6CoizGwLda9DttjSk6qlZo25zYNtR+ycvuZA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1670,8 +1670,8 @@ golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= -golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= +golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues= +golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1812,8 +1812,8 @@ golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= -golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= -golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= +golang.org/x/term v0.46.0 h1:3+OXuTbaKDgwk8jTi3aSLHRlmWqHEUDUtxnbFigO4YE= +golang.org/x/term v0.46.0/go.mod h1:+K02xbkittuwc0Am4abfA3Fc+XRGXkvBXNO88NCXPoc= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1833,8 +1833,8 @@ golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= -golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= +golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI= +golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1911,8 +1911,8 @@ golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg golang.org/x/tools v0.34.1-0.20250613162507-3f93fece84c7/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg= golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= -golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= -golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= +golang.org/x/tools v0.50.0 h1:c2ifzfcuY7L90lZ2aKd8S4K2NpASF08SZx9ZuJkHmSU= +golang.org/x/tools v0.50.0/go.mod h1:7ulVMw3831Mwi5EZD6RomGyffr4VFjuNYXf2BbCEAV0= golang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= From b93bdebd9641784179ec71714bb1ba33f46a3f32 Mon Sep 17 00:00:00 2001 From: Guzman Alvarez Date: Thu, 24 Sep 2026 11:19:46 +0200 Subject: [PATCH 080/327] fix(ci): amend manifest list on retry to avoid stale failure (#22856) --- scripts/ci/push-as-multiarch-manifest-list.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/ci/push-as-multiarch-manifest-list.sh b/scripts/ci/push-as-multiarch-manifest-list.sh index 6c55d6f5ed9b4..01c6387506ef2 100755 --- a/scripts/ci/push-as-multiarch-manifest-list.sh +++ b/scripts/ci/push-as-multiarch-manifest-list.sh @@ -22,7 +22,10 @@ do image_list+=("$arch_image") done -docker manifest create "$image" "${image_list[@]}" +# --amend: this script is retried on failure (see push_*_manifest_lists in +# scripts/ci/lib.sh), and "docker manifest create" errors out if a local +# manifest list of the same name already exists, which it would on a retry. +docker manifest create --amend "$image" "${image_list[@]}" # Try pushing manifest a few times for the case when quay.io has issues pushed=0 From 850962ee6bf8006f85c4dd0c6acd160c0414a944 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:42:16 +0200 Subject: [PATCH 081/327] chore(deps): bump sigs.k8s.io/kubebuilder/v4 from 4.15.0 to 4.16.0 in /operator/tools/kubebuilder (#22853) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/kubebuilder/go.mod | 23 ++++++----- operator/tools/kubebuilder/go.sum | 66 +++++++++++++------------------ 2 files changed, 39 insertions(+), 50 deletions(-) diff --git a/operator/tools/kubebuilder/go.mod b/operator/tools/kubebuilder/go.mod index 0225addfc86f7..adba09128eb2b 100644 --- a/operator/tools/kubebuilder/go.mod +++ b/operator/tools/kubebuilder/go.mod @@ -2,7 +2,7 @@ module github.com/stackrox/rox/operator/tools/kubebuilder go 1.26.3 -require sigs.k8s.io/kubebuilder/v4 v4.15.0 +require sigs.k8s.io/kubebuilder/v4 v4.16.0 require ( github.com/fxamacker/cbor/v2 v2.9.1 // indirect @@ -10,7 +10,6 @@ require ( github.com/gobuffalo/flect v1.0.3 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kr/pretty v0.3.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/spf13/afero v1.15.0 // indirect @@ -18,19 +17,19 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/mod v0.37.0 // indirect - golang.org/x/net v0.56.0 // indirect - golang.org/x/sync v0.21.0 // indirect - golang.org/x/text v0.38.0 // indirect - golang.org/x/tools v0.46.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + golang.org/x/mod v0.41.0 // indirect + golang.org/x/net v0.58.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/text v0.41.0 // indirect + golang.org/x/tools v0.49.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - k8s.io/apimachinery v0.36.2 // indirect + k8s.io/apimachinery v0.37.0 // indirect k8s.io/klog/v2 v2.140.0 // indirect - k8s.io/kube-openapi v0.0.0-20260414162039-ec9c827d403f // indirect - k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // indirect + k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect + k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.4.2 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/operator/tools/kubebuilder/go.sum b/operator/tools/kubebuilder/go.sum index 7577d7cafe457..c18e6f79e30c3 100644 --- a/operator/tools/kubebuilder/go.sum +++ b/operator/tools/kubebuilder/go.sum @@ -1,7 +1,6 @@ github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE= github.com/Masterminds/semver/v3 v3.5.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -27,27 +26,19 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/onsi/ginkgo/v2 v2.30.0 h1:zxM/9XneXFIy64j6/wAmBIX4zRC7Hu6U8XFNZvDnCQc= -github.com/onsi/ginkgo/v2 v2.30.0/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= -github.com/onsi/gomega v1.41.0 h1:OwKp4pXNgVxf6sCplzYo794OFNuoL2q2SBMU5NSWOjA= -github.com/onsi/gomega v1.41.0/go.mod h1:M/Uqpu/8qTjtzCLUA2zJHX9Iilrau25x1PdoSRbWh5A= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/onsi/ginkgo/v2 v2.32.1 h1:6tlvcDm/3sE8lGJbZ4+d4mO3RLy24/tQWOFzVSQNIfw= +github.com/onsi/ginkgo/v2 v2.32.1/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU= +github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= -github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= @@ -69,43 +60,42 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ= -golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0= -golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o= -golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec= -golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= -golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= -golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= -golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= -golang.org/x/tools v0.46.0 h1:7jTurBkPZu4moS/Uy4OQT1M+QBlsj3wejyZwsT8Z7rk= -golang.org/x/tools v0.46.0/go.mod h1:FrD85F8l+NWL+9XWBSyVSHO6Ne4jutsfIFba7AWQ5Ys= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +golang.org/x/mod v0.41.0 h1:qJmnOUb4YB+FsEuM3HcWucdZASCPGhsX6uljO6pog0c= +golang.org/x/mod v0.41.0/go.mod h1:Ek9pY8RKWXwsWvd3rQiHYtMqkjSUV+s1Rj7j4H5Ur6o= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/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= -k8s.io/apimachinery v0.36.2 h1:0PE/W/WNy1UX61NLbXY5TMbJ6UwLL6E6lAPkYrKFxbQ= -k8s.io/apimachinery v0.36.2/go.mod h1:fvf/HOLXq9RId0rnDIbN1OEBvHXdQbLMM8nu0LcBUf4= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20260414162039-ec9c827d403f h1:4Qiq0YAoQATdgmHALJWz9rJ4fj20pB3xebpB4CFNhYM= -k8s.io/kube-openapi v0.0.0-20260414162039-ec9c827d403f/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 h1:kBawHLSnx/mYHmRnNUf9d4CpjREbeZuxoSGOX/J+aYM= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad/go.mod h1:0/mqHCVhlumdJ3BhCfnjSZQE037nAhNodh1/hK0T8/I= +k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs= +k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= -sigs.k8s.io/kubebuilder/v4 v4.15.0 h1:LiTS6XCCmhxS0P7OXwpVqcoywlvbF3yK8G+tZjZF62A= -sigs.k8s.io/kubebuilder/v4 v4.15.0/go.mod h1:3Q0bwaT7zJg9V1wSqYOCClA29iAYkR9CVe+iqMuBg1w= +sigs.k8s.io/kubebuilder/v4 v4.16.0 h1:ay3e//yOWy2Jmi3JZnF8esrtCi0+/6jiPXiRtmW0Wu8= +sigs.k8s.io/kubebuilder/v4 v4.16.0/go.mod h1:ghrV2jGJIxjPVnzALWGVZyfpzIMzpMnN/LcYg7pZuZc= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0 h1:qmp2e3ZfFi1/jJbDGpD4mt3wyp6PE1NfKHCYLqgNQJo= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2 h1:qdOxHwrl2Kaag1aQEarlYcOA9vSyGCp3CIki3aW8c4Q= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= From 8da3938b88282a354c29d190a3b2d701ae8ab054 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:41:03 +0200 Subject: [PATCH 082/327] chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 (#22885) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a7c34188710c9..484cb848bca18 100644 --- a/go.mod +++ b/go.mod @@ -477,7 +477,7 @@ require ( modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.12.1 // indirect modernc.org/sqlite v1.58.0 // indirect - oras.land/oras-go/v2 v2.6.1 // indirect + oras.land/oras-go/v2 v2.6.2 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/kustomize/api v0.21.1 // indirect diff --git a/go.sum b/go.sum index 875d2ef52935c..f932612639f81 100644 --- a/go.sum +++ b/go.sum @@ -2213,8 +2213,8 @@ modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= -oras.land/oras-go/v2 v2.6.1 h1:bonOEkjLfp8tt6qXWRRWP6p1F+9octchOf2EqnWB4Zs= -oras.land/oras-go/v2 v2.6.1/go.mod h1:dhtFrFOuZuDtAVeZ9FUnaa5zfzplG3ZnFX9/uH1J/Yk= +oras.land/oras-go/v2 v2.6.2 h1:N04RXngAp1LJKTG6ifz3xHPipasEkWr+hFmInja5YKo= +oras.land/oras-go/v2 v2.6.2/go.mod h1:PlTtg4JTDJkDe8yVHpM2wz7/YDc00GVas+i4jAW2TZ4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 3b6dcc3bde552e8c12d6c4bca2169f45274236c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:41:22 +0200 Subject: [PATCH 083/327] chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 (#22395) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 484cb848bca18..a0edf0391dc83 100644 --- a/go.mod +++ b/go.mod @@ -134,7 +134,7 @@ require ( github.com/stackrox/pkcs7 v0.0.0-20240314170115-841ca6b5f88d github.com/stackrox/scanner v0.0.0-20240830165150-d133ba942d59 github.com/stolostron/cluster-lifecycle-api v0.0.0-20260330032750-43755d6ceb09 - github.com/stretchr/testify v1.11.1 + github.com/stretchr/testify v1.12.1 github.com/tidwall/gjson v1.19.0 github.com/tkuchiki/go-timezone v0.2.3 github.com/travelaudience/go-promhttp v1.0.1 diff --git a/go.sum b/go.sum index f932612639f81..13a8e545e60dd 100644 --- a/go.sum +++ b/go.sum @@ -1346,8 +1346,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= +github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= From 26ca6d5b8ba3aaed0ca86bf6c25ecc3775748ef2 Mon Sep 17 00:00:00 2001 From: Moritz Clasmeier <111092021+mclasmeier@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:50:21 +0200 Subject: [PATCH 084/327] ROX-37173: Don't send operator's first log message into void (#22229) --- operator/cmd/main.go | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/operator/cmd/main.go b/operator/cmd/main.go index 55537fdbeb212..fdcb412405a44 100644 --- a/operator/cmd/main.go +++ b/operator/cmd/main.go @@ -20,10 +20,12 @@ import ( "context" "crypto/tls" "flag" + "fmt" "os" "strconv" "time" + "github.com/go-logr/logr" "github.com/go-logr/zapr" configv1 "github.com/openshift/api/config/v1" consolev1 "github.com/openshift/api/console/v1" @@ -73,7 +75,6 @@ const ( ) var ( - setupLog = ctrl.Log.WithName("setup") scheme = runtime.NewScheme() enableProfiling = env.RegisterBooleanSetting("ENABLE_PROFILING", false) profilingThresholdFraction = env.RegisterSetting("PROFILING_THRESHOLD_FRACTION", env.WithDefault("0.8")) @@ -113,25 +114,27 @@ func init() { func main() { if err := run(); err != nil { - setupLog.Error(err, "fatal error") + fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) } } -func run() error { - setupLog.Info("Starting RHACS Operator", "version", version.GetMainVersion()) +type runtimeConfig struct { + metricsAddr string + enableLeaderElection bool + probeAddr string + enableHTTP2 bool +} - var metricsAddr string - var enableLeaderElection bool - var probeAddr string - var enableHTTP2 bool +func run() error { + var config runtimeConfig - flag.StringVar(&metricsAddr, "metrics-bind-address", "0.0.0.0:8443", "The address the metric endpoint binds to.") - flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") - flag.BoolVar(&enableLeaderElection, "leader-elect", false, + flag.StringVar(&config.metricsAddr, "metrics-bind-address", "0.0.0.0:8443", "The address the metric endpoint binds to.") + flag.StringVar(&config.probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.") + flag.BoolVar(&config.enableLeaderElection, "leader-elect", false, "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") - flag.BoolVar(&enableHTTP2, "enable-http2", enableHTTP2, "If HTTP/2 should be enabled for the metrics server.") + flag.BoolVar(&config.enableHTTP2, "enable-http2", false, "If HTTP/2 should be enabled for the metrics server.") opts := zap.Options{ Development: !buildinfo.ReleaseBuild, @@ -141,13 +144,20 @@ func run() error { zapLogger := zap.NewRaw(zap.UseFlagOptions(&opts)) ctrl.SetLogger(zapr.NewLogger(zapLogger)) + setupLog := ctrl.Log.WithName("setup") restore, err := rawZap.RedirectStdLogAt(zapLogger, zapcore.DebugLevel) if err != nil { return errors.Wrap(err, "unable to redirect std log") } defer restore() - clusterTLSProfile, tlsOpts, err := buildMetricsServerTLSOpts(enableHTTP2) + return runWithLogger(setupLog, config) +} + +func runWithLogger(setupLog logr.Logger, config runtimeConfig) error { + setupLog.Info("Starting RHACS Operator", "version", version.GetMainVersion()) + + clusterTLSProfile, tlsOpts, err := buildMetricsServerTLSOpts(setupLog, config.enableHTTP2) if err != nil { return err } @@ -165,7 +175,7 @@ func run() error { mgr, err := ctrl.NewManager(utils.GetRHACSConfigOrDie(), ctrl.Options{ Scheme: scheme, Metrics: server.Options{ - BindAddress: metricsAddr, + BindAddress: config.metricsAddr, SecureServing: true, FilterProvider: filters.WithAuthenticationAndAuthorization, TLSOpts: tlsOpts, @@ -183,8 +193,8 @@ func run() error { }, }, }, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, + HealthProbeBindAddress: config.probeAddr, + LeaderElection: config.enableLeaderElection, LeaderElectionID: "bf7ea6a2.stackrox.io", }) if err != nil { @@ -280,7 +290,7 @@ func run() error { // buildMetricsServerTLSOpts reads the cluster TLS profile and returns the // TLS options for the Operator's metrics server along with the cluster profile // for later use by the watcher and operand enricher. -func buildMetricsServerTLSOpts(enableHTTP2 bool) (*tlsprofile.ClusterTLSProfile, []func(c *tls.Config), error) { +func buildMetricsServerTLSOpts(setupLog logr.Logger, enableHTTP2 bool) (*tlsprofile.ClusterTLSProfile, []func(c *tls.Config), error) { bootstrapClient, err := ctrlClient.New(utils.GetRHACSConfigOrDie(), ctrlClient.Options{Scheme: scheme}) if err != nil { return nil, nil, errors.Wrap(err, "unable to create bootstrap client for TLS profile") From bdb0b23f77afa88a43a4258ddb2dfac49bc6a97e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:18:14 +0200 Subject: [PATCH 085/327] chore(deps): bump google.golang.org/protobuf from 1.36.11 to 1.36.12 in /tools/proto (#22363) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: StackRox PR Fixxxer --- generated/api/common/extended_rpc_status.pb.go | 2 +- generated/api/integrations/splunk_service.pb.go | 2 +- generated/api/v1/administration_events_service.pb.go | 2 +- generated/api/v1/administration_usage_service.pb.go | 2 +- generated/api/v1/alert_service.pb.go | 2 +- generated/api/v1/api_token_service.pb.go | 2 +- generated/api/v1/audit.pb.go | 2 +- generated/api/v1/auth_service.pb.go | 2 +- generated/api/v1/authprovider_service.pb.go | 2 +- generated/api/v1/backup_service.pb.go | 2 +- generated/api/v1/central_health_service.pb.go | 2 +- generated/api/v1/cloud_source_service.pb.go | 2 +- generated/api/v1/cluster_init_service.pb.go | 2 +- generated/api/v1/cluster_service.pb.go | 2 +- generated/api/v1/common.pb.go | 2 +- generated/api/v1/compliance_management_service.pb.go | 2 +- generated/api/v1/compliance_service.pb.go | 2 +- generated/api/v1/config_service.pb.go | 2 +- generated/api/v1/credential_expiry_service.pb.go | 2 +- generated/api/v1/cve_service.pb.go | 2 +- generated/api/v1/db_service.pb.go | 2 +- generated/api/v1/debug_service.pb.go | 2 +- generated/api/v1/declarative_config_health_service.pb.go | 2 +- generated/api/v1/delegated_registry_config_service.pb.go | 2 +- generated/api/v1/deployment_service.pb.go | 2 +- generated/api/v1/detection_service.pb.go | 2 +- generated/api/v1/discovered_cluster_service.pb.go | 2 +- generated/api/v1/empty.pb.go | 2 +- generated/api/v1/feature_flag_service.pb.go | 2 +- generated/api/v1/group_service.pb.go | 2 +- generated/api/v1/grpc_preference_service.pb.go | 2 +- generated/api/v1/image_integration_service.pb.go | 2 +- generated/api/v1/image_service.pb.go | 2 +- generated/api/v1/integration_health_service.pb.go | 2 +- generated/api/v1/metadata_service.pb.go | 2 +- generated/api/v1/mitre_service.pb.go | 2 +- generated/api/v1/namespace_service.pb.go | 2 +- generated/api/v1/network_baseline_service.pb.go | 2 +- generated/api/v1/network_graph_service.pb.go | 2 +- generated/api/v1/network_policy_service.pb.go | 2 +- generated/api/v1/node_service.pb.go | 2 +- generated/api/v1/notifications.pb.go | 2 +- generated/api/v1/notifier_service.pb.go | 2 +- generated/api/v1/pagination.pb.go | 2 +- generated/api/v1/ping_service.pb.go | 2 +- generated/api/v1/pod_service.pb.go | 2 +- generated/api/v1/policy_category_service.pb.go | 2 +- generated/api/v1/policy_service.pb.go | 2 +- generated/api/v1/probe_upload_service.pb.go | 2 +- generated/api/v1/process_baseline_service.pb.go | 2 +- generated/api/v1/process_listening_on_port_service.pb.go | 2 +- generated/api/v1/process_service.pb.go | 2 +- generated/api/v1/rbac_service.pb.go | 2 +- generated/api/v1/resource_collection_service.pb.go | 2 +- generated/api/v1/role_service.pb.go | 2 +- generated/api/v1/sbom.pb.go | 2 +- generated/api/v1/search_service.pb.go | 2 +- generated/api/v1/secret_service.pb.go | 2 +- generated/api/v1/sensor_upgrade_service.pb.go | 2 +- generated/api/v1/service_account_service.pb.go | 2 +- generated/api/v1/service_identity_service.pb.go | 2 +- generated/api/v1/signal.pb.go | 2 +- generated/api/v1/signature_integration_service.pb.go | 2 +- generated/api/v1/telemetry_service.pb.go | 2 +- generated/api/v1/traits.pb.go | 2 +- generated/api/v1/user_service.pb.go | 2 +- generated/api/v1/vuln_mgmt_service.pb.go | 2 +- generated/api/v2/base_image_service.pb.go | 2 +- generated/api/v2/common.pb.go | 2 +- generated/api/v2/compliance_common.pb.go | 2 +- generated/api/v2/compliance_integration_service.pb.go | 2 +- generated/api/v2/compliance_profile_service.pb.go | 2 +- generated/api/v2/compliance_results_service.pb.go | 2 +- generated/api/v2/compliance_results_stats_service.pb.go | 2 +- generated/api/v2/compliance_rule_service.pb.go | 2 +- generated/api/v2/compliance_scan_configuration_service.pb.go | 2 +- generated/api/v2/node_report_service.pb.go | 2 +- generated/api/v2/pagination.pb.go | 2 +- generated/api/v2/report_service.pb.go | 2 +- generated/api/v2/scan_component.pb.go | 2 +- generated/api/v2/search_query.pb.go | 2 +- generated/api/v2/user.pb.go | 2 +- generated/api/v2/virtual_machine_service.pb.go | 2 +- generated/api/v2/virtual_machine_v2_service.pb.go | 2 +- generated/api/v2/vuln_exception_service.pb.go | 2 +- generated/api/v2/vuln_state.pb.go | 2 +- generated/api/v2/vulnerability.pb.go | 2 +- generated/internalapi/central/auth.pb.go | 2 +- generated/internalapi/central/baseline_sync.pb.go | 2 +- generated/internalapi/central/cluster_config.pb.go | 2 +- generated/internalapi/central/cluster_metrics.pb.go | 2 +- generated/internalapi/central/cluster_status.pb.go | 2 +- generated/internalapi/central/compliance_operator.pb.go | 2 +- generated/internalapi/central/delegated_registry_config.pb.go | 2 +- generated/internalapi/central/deployment_enhancement.pb.go | 2 +- generated/internalapi/central/development_service.pb.go | 2 +- generated/internalapi/central/hello.pb.go | 2 +- generated/internalapi/central/image.pb.go | 2 +- generated/internalapi/central/local_scanner.pb.go | 2 +- generated/internalapi/central/network_baseline_sync.pb.go | 2 +- generated/internalapi/central/network_flow.pb.go | 2 +- generated/internalapi/central/policy_sync.pb.go | 2 +- .../central/process_listening_on_ports_update.pb.go | 2 +- .../internalapi/central/secured_cluster_cert_refresh.pb.go | 2 +- generated/internalapi/central/sensor_events.pb.go | 2 +- generated/internalapi/central/sensor_iservice.pb.go | 2 +- generated/internalapi/central/sensor_upgrade.pb.go | 2 +- .../internalapi/central/sensor_upgrade_ctrl_iservice.pb.go | 2 +- generated/internalapi/central/telemetry.pb.go | 2 +- generated/internalapi/central/v1/token_service.pb.go | 2 +- generated/internalapi/compliance/compliance_data.pb.go | 2 +- generated/internalapi/scanner/v4/common.pb.go | 2 +- generated/internalapi/scanner/v4/index_report.pb.go | 2 +- generated/internalapi/scanner/v4/indexer_service.pb.go | 2 +- generated/internalapi/scanner/v4/matcher_service.pb.go | 2 +- generated/internalapi/scanner/v4/vulnerability_report.pb.go | 2 +- generated/internalapi/sensor/admission_control.pb.go | 2 +- generated/internalapi/sensor/admission_control_iservice.pb.go | 2 +- generated/internalapi/sensor/collector.pb.go | 2 +- generated/internalapi/sensor/collector_iservice.pb.go | 2 +- generated/internalapi/sensor/compliance_iservice.pb.go | 2 +- generated/internalapi/sensor/deployment_iservice.pb.go | 2 +- generated/internalapi/sensor/fact.pb.go | 2 +- generated/internalapi/sensor/image_iservice.pb.go | 2 +- generated/internalapi/sensor/network_connection_info.pb.go | 2 +- .../internalapi/sensor/network_connection_iservice.pb.go | 2 +- generated/internalapi/sensor/network_enums.pb.go | 2 +- generated/internalapi/sensor/sfa.pb.go | 2 +- generated/internalapi/sensor/sfa_iservice.pb.go | 2 +- generated/internalapi/sensor/signal_iservice.pb.go | 2 +- generated/internalapi/virtualmachine/v1/index_report.pb.go | 2 +- generated/internalapi/virtualmachine/v1/virtual_machine.pb.go | 2 +- generated/internalapi/virtualmachine/v1/vm_service.pb.go | 2 +- generated/internalapi/wrapper/splunk_alert.pb.go | 2 +- generated/storage/administration_event.pb.go | 2 +- generated/storage/administration_usage.pb.go | 2 +- generated/storage/alert.pb.go | 2 +- generated/storage/api_token.pb.go | 2 +- generated/storage/auth_machine_to_machine.pb.go | 2 +- generated/storage/auth_provider.pb.go | 2 +- generated/storage/base_image.pb.go | 2 +- generated/storage/base_image_repository.pb.go | 2 +- generated/storage/blob.pb.go | 2 +- generated/storage/cloud_source.pb.go | 2 +- generated/storage/cluster.pb.go | 2 +- generated/storage/cluster_init.pb.go | 2 +- generated/storage/common.pb.go | 2 +- generated/storage/compliance.pb.go | 2 +- generated/storage/compliance_config.pb.go | 2 +- generated/storage/compliance_integration.pb.go | 2 +- generated/storage/compliance_operator.pb.go | 2 +- generated/storage/compliance_operator_v2.pb.go | 2 +- generated/storage/config.pb.go | 2 +- generated/storage/container_runtime.pb.go | 2 +- generated/storage/cve.pb.go | 2 +- generated/storage/declarative_config_health.pb.go | 2 +- generated/storage/delegated_registry_config.pb.go | 2 +- generated/storage/deployment.pb.go | 2 +- generated/storage/discovered_cluster.pb.go | 2 +- generated/storage/external_backup.pb.go | 2 +- generated/storage/file_access.pb.go | 2 +- generated/storage/group.pb.go | 2 +- generated/storage/hash.pb.go | 2 +- generated/storage/helm_cluster.pb.go | 2 +- generated/storage/http_endpoint.pb.go | 2 +- generated/storage/image.pb.go | 2 +- generated/storage/image_component.pb.go | 2 +- generated/storage/image_integration.pb.go | 2 +- generated/storage/image_v2.pb.go | 2 +- generated/storage/installation.pb.go | 2 +- generated/storage/integration_health.pb.go | 2 +- generated/storage/kube_event.pb.go | 2 +- generated/storage/labels.pb.go | 2 +- generated/storage/log.pb.go | 2 +- generated/storage/mitre.pb.go | 2 +- generated/storage/namespace_metadata.pb.go | 2 +- generated/storage/network_baseline.pb.go | 2 +- generated/storage/network_flow.pb.go | 2 +- generated/storage/network_graph_config.pb.go | 2 +- generated/storage/network_policy.pb.go | 2 +- generated/storage/node.pb.go | 2 +- generated/storage/node_component.pb.go | 2 +- generated/storage/node_integration.pb.go | 2 +- generated/storage/notification_schedule.pb.go | 2 +- generated/storage/notifier.pb.go | 2 +- generated/storage/notifier_enc_config.pb.go | 2 +- generated/storage/operation_status.pb.go | 2 +- generated/storage/orchestrator_integration.pb.go | 2 +- generated/storage/policy.pb.go | 2 +- generated/storage/policy_category.pb.go | 2 +- generated/storage/process_baseline.pb.go | 2 +- generated/storage/process_indicator.pb.go | 2 +- generated/storage/process_listening_on_port.pb.go | 2 +- generated/storage/rbac.pb.go | 2 +- generated/storage/relations.pb.go | 2 +- generated/storage/report_configuration.pb.go | 2 +- generated/storage/report_notifier_configuration.pb.go | 2 +- generated/storage/report_snapshot.pb.go | 2 +- generated/storage/resource_collection.pb.go | 2 +- generated/storage/risk.pb.go | 2 +- generated/storage/role.pb.go | 2 +- generated/storage/schedule.pb.go | 2 +- generated/storage/scope.pb.go | 2 +- generated/storage/secret.pb.go | 2 +- generated/storage/sensor_upgrade.pb.go | 2 +- generated/storage/service_account.pb.go | 2 +- generated/storage/service_identity.pb.go | 2 +- generated/storage/signature_integration.pb.go | 2 +- generated/storage/system_info.pb.go | 2 +- generated/storage/taints.pb.go | 2 +- generated/storage/telemetry.pb.go | 2 +- generated/storage/test.pb.go | 2 +- generated/storage/traits.pb.go | 2 +- generated/storage/user.pb.go | 2 +- generated/storage/version.pb.go | 2 +- generated/storage/virtual_machine.pb.go | 2 +- generated/storage/virtual_machine_component_v2.pb.go | 2 +- generated/storage/virtual_machine_cve_v2.pb.go | 2 +- generated/storage/virtual_machine_scan_v2.pb.go | 2 +- generated/storage/virtual_machine_v2.pb.go | 2 +- generated/storage/vuln_requests.pb.go | 2 +- generated/storage/vulnerability.pb.go | 2 +- generated/test/test.pb.go | 2 +- generated/tools/local-sensor/message.pb.go | 2 +- tools/proto/go.mod | 2 +- tools/proto/go.sum | 4 ++-- 226 files changed, 227 insertions(+), 227 deletions(-) diff --git a/generated/api/common/extended_rpc_status.pb.go b/generated/api/common/extended_rpc_status.pb.go index 2e4fd515fed3f..1b98d4df7d216 100644 --- a/generated/api/common/extended_rpc_status.pb.go +++ b/generated/api/common/extended_rpc_status.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/common/extended_rpc_status.proto diff --git a/generated/api/integrations/splunk_service.pb.go b/generated/api/integrations/splunk_service.pb.go index 78c283fc1e2fa..fb8e951bf08be 100644 --- a/generated/api/integrations/splunk_service.pb.go +++ b/generated/api/integrations/splunk_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/integrations/splunk_service.proto diff --git a/generated/api/v1/administration_events_service.pb.go b/generated/api/v1/administration_events_service.pb.go index 43eeec241c05d..d9a59d764f8de 100644 --- a/generated/api/v1/administration_events_service.pb.go +++ b/generated/api/v1/administration_events_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/administration_events_service.proto diff --git a/generated/api/v1/administration_usage_service.pb.go b/generated/api/v1/administration_usage_service.pb.go index 6e92409a7e7e3..8d53d6e5cd51f 100644 --- a/generated/api/v1/administration_usage_service.pb.go +++ b/generated/api/v1/administration_usage_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/administration_usage_service.proto diff --git a/generated/api/v1/alert_service.pb.go b/generated/api/v1/alert_service.pb.go index 3e23235d9c681..7c6cfa1d39954 100644 --- a/generated/api/v1/alert_service.pb.go +++ b/generated/api/v1/alert_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/alert_service.proto diff --git a/generated/api/v1/api_token_service.pb.go b/generated/api/v1/api_token_service.pb.go index bf9a3a7a27e33..fc0a1e08254a5 100644 --- a/generated/api/v1/api_token_service.pb.go +++ b/generated/api/v1/api_token_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/api_token_service.proto diff --git a/generated/api/v1/audit.pb.go b/generated/api/v1/audit.pb.go index d6061d0c60a33..21ac701c05122 100644 --- a/generated/api/v1/audit.pb.go +++ b/generated/api/v1/audit.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/audit.proto diff --git a/generated/api/v1/auth_service.pb.go b/generated/api/v1/auth_service.pb.go index a1a9293bb741a..f73e92a603e26 100644 --- a/generated/api/v1/auth_service.pb.go +++ b/generated/api/v1/auth_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/auth_service.proto diff --git a/generated/api/v1/authprovider_service.pb.go b/generated/api/v1/authprovider_service.pb.go index 6a330cdf80dfb..f8d8f077c2924 100644 --- a/generated/api/v1/authprovider_service.pb.go +++ b/generated/api/v1/authprovider_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/authprovider_service.proto diff --git a/generated/api/v1/backup_service.pb.go b/generated/api/v1/backup_service.pb.go index d34c9aa786c8c..7517816852110 100644 --- a/generated/api/v1/backup_service.pb.go +++ b/generated/api/v1/backup_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/backup_service.proto diff --git a/generated/api/v1/central_health_service.pb.go b/generated/api/v1/central_health_service.pb.go index f4c9e38293be9..bbdcdc6d51ef4 100644 --- a/generated/api/v1/central_health_service.pb.go +++ b/generated/api/v1/central_health_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/central_health_service.proto diff --git a/generated/api/v1/cloud_source_service.pb.go b/generated/api/v1/cloud_source_service.pb.go index e6835b0d88b25..dbbd311948e97 100644 --- a/generated/api/v1/cloud_source_service.pb.go +++ b/generated/api/v1/cloud_source_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/cloud_source_service.proto diff --git a/generated/api/v1/cluster_init_service.pb.go b/generated/api/v1/cluster_init_service.pb.go index 85a88915e3a19..c62740345a676 100644 --- a/generated/api/v1/cluster_init_service.pb.go +++ b/generated/api/v1/cluster_init_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/cluster_init_service.proto diff --git a/generated/api/v1/cluster_service.pb.go b/generated/api/v1/cluster_service.pb.go index 6426337fbb739..aa892aa0471b7 100644 --- a/generated/api/v1/cluster_service.pb.go +++ b/generated/api/v1/cluster_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/cluster_service.proto diff --git a/generated/api/v1/common.pb.go b/generated/api/v1/common.pb.go index 015f336224cb2..a459f0aed74a5 100644 --- a/generated/api/v1/common.pb.go +++ b/generated/api/v1/common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/common.proto diff --git a/generated/api/v1/compliance_management_service.pb.go b/generated/api/v1/compliance_management_service.pb.go index 5216c51320609..88b806e2b0d08 100644 --- a/generated/api/v1/compliance_management_service.pb.go +++ b/generated/api/v1/compliance_management_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/compliance_management_service.proto diff --git a/generated/api/v1/compliance_service.pb.go b/generated/api/v1/compliance_service.pb.go index 0e79d14433e1e..312ec3a6e252c 100644 --- a/generated/api/v1/compliance_service.pb.go +++ b/generated/api/v1/compliance_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/compliance_service.proto diff --git a/generated/api/v1/config_service.pb.go b/generated/api/v1/config_service.pb.go index 40837fbde2163..babbb3f1f7cd8 100644 --- a/generated/api/v1/config_service.pb.go +++ b/generated/api/v1/config_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/config_service.proto diff --git a/generated/api/v1/credential_expiry_service.pb.go b/generated/api/v1/credential_expiry_service.pb.go index a5f7347929bf2..caaf77268effa 100644 --- a/generated/api/v1/credential_expiry_service.pb.go +++ b/generated/api/v1/credential_expiry_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/credential_expiry_service.proto diff --git a/generated/api/v1/cve_service.pb.go b/generated/api/v1/cve_service.pb.go index c7793cfc68520..353f0bb81dd31 100644 --- a/generated/api/v1/cve_service.pb.go +++ b/generated/api/v1/cve_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/cve_service.proto diff --git a/generated/api/v1/db_service.pb.go b/generated/api/v1/db_service.pb.go index 30c74ac743f8c..1c38c412fd736 100644 --- a/generated/api/v1/db_service.pb.go +++ b/generated/api/v1/db_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/db_service.proto diff --git a/generated/api/v1/debug_service.pb.go b/generated/api/v1/debug_service.pb.go index aae29f1d51dd2..6e4848efff030 100644 --- a/generated/api/v1/debug_service.pb.go +++ b/generated/api/v1/debug_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/debug_service.proto diff --git a/generated/api/v1/declarative_config_health_service.pb.go b/generated/api/v1/declarative_config_health_service.pb.go index 6059cda2d6cb0..b5d64e94f95cf 100644 --- a/generated/api/v1/declarative_config_health_service.pb.go +++ b/generated/api/v1/declarative_config_health_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/declarative_config_health_service.proto diff --git a/generated/api/v1/delegated_registry_config_service.pb.go b/generated/api/v1/delegated_registry_config_service.pb.go index 86984982c6e58..1c02c02d58982 100644 --- a/generated/api/v1/delegated_registry_config_service.pb.go +++ b/generated/api/v1/delegated_registry_config_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/delegated_registry_config_service.proto diff --git a/generated/api/v1/deployment_service.pb.go b/generated/api/v1/deployment_service.pb.go index 2003993071140..ef061a27ec403 100644 --- a/generated/api/v1/deployment_service.pb.go +++ b/generated/api/v1/deployment_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/deployment_service.proto diff --git a/generated/api/v1/detection_service.pb.go b/generated/api/v1/detection_service.pb.go index c38b91ddd1363..d031244214079 100644 --- a/generated/api/v1/detection_service.pb.go +++ b/generated/api/v1/detection_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/detection_service.proto diff --git a/generated/api/v1/discovered_cluster_service.pb.go b/generated/api/v1/discovered_cluster_service.pb.go index d67e410e47c81..d90390f43f837 100644 --- a/generated/api/v1/discovered_cluster_service.pb.go +++ b/generated/api/v1/discovered_cluster_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/discovered_cluster_service.proto diff --git a/generated/api/v1/empty.pb.go b/generated/api/v1/empty.pb.go index 29b2451dc443b..58f3dd273b55d 100644 --- a/generated/api/v1/empty.pb.go +++ b/generated/api/v1/empty.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/empty.proto diff --git a/generated/api/v1/feature_flag_service.pb.go b/generated/api/v1/feature_flag_service.pb.go index 71964de453878..7054015e5656b 100644 --- a/generated/api/v1/feature_flag_service.pb.go +++ b/generated/api/v1/feature_flag_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/feature_flag_service.proto diff --git a/generated/api/v1/group_service.pb.go b/generated/api/v1/group_service.pb.go index 79eee42cb6a1a..3a10dba133c19 100644 --- a/generated/api/v1/group_service.pb.go +++ b/generated/api/v1/group_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/group_service.proto diff --git a/generated/api/v1/grpc_preference_service.pb.go b/generated/api/v1/grpc_preference_service.pb.go index 8e57e5ea24a42..4fa4723aa6ba1 100644 --- a/generated/api/v1/grpc_preference_service.pb.go +++ b/generated/api/v1/grpc_preference_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/grpc_preference_service.proto diff --git a/generated/api/v1/image_integration_service.pb.go b/generated/api/v1/image_integration_service.pb.go index 9d464ac7f4274..990fcb98237f5 100644 --- a/generated/api/v1/image_integration_service.pb.go +++ b/generated/api/v1/image_integration_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/image_integration_service.proto diff --git a/generated/api/v1/image_service.pb.go b/generated/api/v1/image_service.pb.go index 5175ee8c5578b..debf248ab5af0 100644 --- a/generated/api/v1/image_service.pb.go +++ b/generated/api/v1/image_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/image_service.proto diff --git a/generated/api/v1/integration_health_service.pb.go b/generated/api/v1/integration_health_service.pb.go index d0bcf266f4728..f30cbde79c49f 100644 --- a/generated/api/v1/integration_health_service.pb.go +++ b/generated/api/v1/integration_health_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/integration_health_service.proto diff --git a/generated/api/v1/metadata_service.pb.go b/generated/api/v1/metadata_service.pb.go index a0c8c7b88991c..c472242c142a9 100644 --- a/generated/api/v1/metadata_service.pb.go +++ b/generated/api/v1/metadata_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/metadata_service.proto diff --git a/generated/api/v1/mitre_service.pb.go b/generated/api/v1/mitre_service.pb.go index d16ed7fb3822d..d1b698411d4b4 100644 --- a/generated/api/v1/mitre_service.pb.go +++ b/generated/api/v1/mitre_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/mitre_service.proto diff --git a/generated/api/v1/namespace_service.pb.go b/generated/api/v1/namespace_service.pb.go index 9987f3a8e3b8d..479f1d2b05855 100644 --- a/generated/api/v1/namespace_service.pb.go +++ b/generated/api/v1/namespace_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/namespace_service.proto diff --git a/generated/api/v1/network_baseline_service.pb.go b/generated/api/v1/network_baseline_service.pb.go index f7898440bda13..63cba2bb08abf 100644 --- a/generated/api/v1/network_baseline_service.pb.go +++ b/generated/api/v1/network_baseline_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/network_baseline_service.proto diff --git a/generated/api/v1/network_graph_service.pb.go b/generated/api/v1/network_graph_service.pb.go index 561bb0d436488..14675ce92dad9 100644 --- a/generated/api/v1/network_graph_service.pb.go +++ b/generated/api/v1/network_graph_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/network_graph_service.proto diff --git a/generated/api/v1/network_policy_service.pb.go b/generated/api/v1/network_policy_service.pb.go index 134a03b6f236e..1bb454e9459f5 100644 --- a/generated/api/v1/network_policy_service.pb.go +++ b/generated/api/v1/network_policy_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/network_policy_service.proto diff --git a/generated/api/v1/node_service.pb.go b/generated/api/v1/node_service.pb.go index c4d46819af44a..d4e6d727974aa 100644 --- a/generated/api/v1/node_service.pb.go +++ b/generated/api/v1/node_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/node_service.proto diff --git a/generated/api/v1/notifications.pb.go b/generated/api/v1/notifications.pb.go index d1e211b7ca879..3793361470541 100644 --- a/generated/api/v1/notifications.pb.go +++ b/generated/api/v1/notifications.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/notifications.proto diff --git a/generated/api/v1/notifier_service.pb.go b/generated/api/v1/notifier_service.pb.go index 17f3804e00d72..c49f9e1b2ab43 100644 --- a/generated/api/v1/notifier_service.pb.go +++ b/generated/api/v1/notifier_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/notifier_service.proto diff --git a/generated/api/v1/pagination.pb.go b/generated/api/v1/pagination.pb.go index 67fcced57bd45..673948679eab8 100644 --- a/generated/api/v1/pagination.pb.go +++ b/generated/api/v1/pagination.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/pagination.proto diff --git a/generated/api/v1/ping_service.pb.go b/generated/api/v1/ping_service.pb.go index bff82ac06521c..a82b6d3e58ea7 100644 --- a/generated/api/v1/ping_service.pb.go +++ b/generated/api/v1/ping_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/ping_service.proto diff --git a/generated/api/v1/pod_service.pb.go b/generated/api/v1/pod_service.pb.go index 4908e85d853a3..3e7d8429e9531 100644 --- a/generated/api/v1/pod_service.pb.go +++ b/generated/api/v1/pod_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/pod_service.proto diff --git a/generated/api/v1/policy_category_service.pb.go b/generated/api/v1/policy_category_service.pb.go index 3243cb76f0ce5..a02160b93036c 100644 --- a/generated/api/v1/policy_category_service.pb.go +++ b/generated/api/v1/policy_category_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/policy_category_service.proto diff --git a/generated/api/v1/policy_service.pb.go b/generated/api/v1/policy_service.pb.go index d650c2722cc4f..503c54a5edf39 100644 --- a/generated/api/v1/policy_service.pb.go +++ b/generated/api/v1/policy_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/policy_service.proto diff --git a/generated/api/v1/probe_upload_service.pb.go b/generated/api/v1/probe_upload_service.pb.go index 46a14a15bc233..a38038150ccba 100644 --- a/generated/api/v1/probe_upload_service.pb.go +++ b/generated/api/v1/probe_upload_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/probe_upload_service.proto diff --git a/generated/api/v1/process_baseline_service.pb.go b/generated/api/v1/process_baseline_service.pb.go index e078981337d5a..40c8f1b92aa6c 100644 --- a/generated/api/v1/process_baseline_service.pb.go +++ b/generated/api/v1/process_baseline_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/process_baseline_service.proto diff --git a/generated/api/v1/process_listening_on_port_service.pb.go b/generated/api/v1/process_listening_on_port_service.pb.go index b028c17d133b8..b7773df360138 100644 --- a/generated/api/v1/process_listening_on_port_service.pb.go +++ b/generated/api/v1/process_listening_on_port_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/process_listening_on_port_service.proto diff --git a/generated/api/v1/process_service.pb.go b/generated/api/v1/process_service.pb.go index 031690f9996fd..7dbd8e40ae252 100644 --- a/generated/api/v1/process_service.pb.go +++ b/generated/api/v1/process_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/process_service.proto diff --git a/generated/api/v1/rbac_service.pb.go b/generated/api/v1/rbac_service.pb.go index 742ade005a9fe..09bc326a11fe2 100644 --- a/generated/api/v1/rbac_service.pb.go +++ b/generated/api/v1/rbac_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/rbac_service.proto diff --git a/generated/api/v1/resource_collection_service.pb.go b/generated/api/v1/resource_collection_service.pb.go index 0b71cbc3194f2..eb6720e5d5234 100644 --- a/generated/api/v1/resource_collection_service.pb.go +++ b/generated/api/v1/resource_collection_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/resource_collection_service.proto diff --git a/generated/api/v1/role_service.pb.go b/generated/api/v1/role_service.pb.go index cfe89975452c7..236017eb36dd0 100644 --- a/generated/api/v1/role_service.pb.go +++ b/generated/api/v1/role_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/role_service.proto diff --git a/generated/api/v1/sbom.pb.go b/generated/api/v1/sbom.pb.go index 5857f099a3d19..e5a28eab3710e 100644 --- a/generated/api/v1/sbom.pb.go +++ b/generated/api/v1/sbom.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/sbom.proto diff --git a/generated/api/v1/search_service.pb.go b/generated/api/v1/search_service.pb.go index 1a7e19fa32741..9b50e8b779b00 100644 --- a/generated/api/v1/search_service.pb.go +++ b/generated/api/v1/search_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/search_service.proto diff --git a/generated/api/v1/secret_service.pb.go b/generated/api/v1/secret_service.pb.go index c88e62cb63f80..9c480651181a1 100644 --- a/generated/api/v1/secret_service.pb.go +++ b/generated/api/v1/secret_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/secret_service.proto diff --git a/generated/api/v1/sensor_upgrade_service.pb.go b/generated/api/v1/sensor_upgrade_service.pb.go index 15d26cfdf661f..690ee71561cf4 100644 --- a/generated/api/v1/sensor_upgrade_service.pb.go +++ b/generated/api/v1/sensor_upgrade_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/sensor_upgrade_service.proto diff --git a/generated/api/v1/service_account_service.pb.go b/generated/api/v1/service_account_service.pb.go index b76622395e63a..5e1c0556f42e8 100644 --- a/generated/api/v1/service_account_service.pb.go +++ b/generated/api/v1/service_account_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/service_account_service.proto diff --git a/generated/api/v1/service_identity_service.pb.go b/generated/api/v1/service_identity_service.pb.go index abb0f106b4b7f..a7a8d1a0af870 100644 --- a/generated/api/v1/service_identity_service.pb.go +++ b/generated/api/v1/service_identity_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/service_identity_service.proto diff --git a/generated/api/v1/signal.pb.go b/generated/api/v1/signal.pb.go index c54ddaf697f5a..059076c5abc56 100644 --- a/generated/api/v1/signal.pb.go +++ b/generated/api/v1/signal.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/signal.proto diff --git a/generated/api/v1/signature_integration_service.pb.go b/generated/api/v1/signature_integration_service.pb.go index fbed8847a24d2..ccff377da6b66 100644 --- a/generated/api/v1/signature_integration_service.pb.go +++ b/generated/api/v1/signature_integration_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/signature_integration_service.proto diff --git a/generated/api/v1/telemetry_service.pb.go b/generated/api/v1/telemetry_service.pb.go index 4923cccc45643..b7961504d70ce 100644 --- a/generated/api/v1/telemetry_service.pb.go +++ b/generated/api/v1/telemetry_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/telemetry_service.proto diff --git a/generated/api/v1/traits.pb.go b/generated/api/v1/traits.pb.go index 413295858e8b4..2fbf9683cedbf 100644 --- a/generated/api/v1/traits.pb.go +++ b/generated/api/v1/traits.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/traits.proto diff --git a/generated/api/v1/user_service.pb.go b/generated/api/v1/user_service.pb.go index 5db9fbf6de584..2ab345487c4d1 100644 --- a/generated/api/v1/user_service.pb.go +++ b/generated/api/v1/user_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/user_service.proto diff --git a/generated/api/v1/vuln_mgmt_service.pb.go b/generated/api/v1/vuln_mgmt_service.pb.go index 09a84733debfc..7b48309d83bc4 100644 --- a/generated/api/v1/vuln_mgmt_service.pb.go +++ b/generated/api/v1/vuln_mgmt_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v1/vuln_mgmt_service.proto diff --git a/generated/api/v2/base_image_service.pb.go b/generated/api/v2/base_image_service.pb.go index e14ce1c99dfb9..0ee3a84f97fe0 100644 --- a/generated/api/v2/base_image_service.pb.go +++ b/generated/api/v2/base_image_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/base_image_service.proto diff --git a/generated/api/v2/common.pb.go b/generated/api/v2/common.pb.go index 46c6af89b3828..05518776c4403 100644 --- a/generated/api/v2/common.pb.go +++ b/generated/api/v2/common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/common.proto diff --git a/generated/api/v2/compliance_common.pb.go b/generated/api/v2/compliance_common.pb.go index ba7c41a32adee..d92f5c5cbc5d6 100644 --- a/generated/api/v2/compliance_common.pb.go +++ b/generated/api/v2/compliance_common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_common.proto diff --git a/generated/api/v2/compliance_integration_service.pb.go b/generated/api/v2/compliance_integration_service.pb.go index 769817cd4bcae..7a9ea6cae2642 100644 --- a/generated/api/v2/compliance_integration_service.pb.go +++ b/generated/api/v2/compliance_integration_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_integration_service.proto diff --git a/generated/api/v2/compliance_profile_service.pb.go b/generated/api/v2/compliance_profile_service.pb.go index f16414001848c..7336af6368561 100644 --- a/generated/api/v2/compliance_profile_service.pb.go +++ b/generated/api/v2/compliance_profile_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_profile_service.proto diff --git a/generated/api/v2/compliance_results_service.pb.go b/generated/api/v2/compliance_results_service.pb.go index d3960013e7c7e..65cd85ab10ffe 100644 --- a/generated/api/v2/compliance_results_service.pb.go +++ b/generated/api/v2/compliance_results_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_results_service.proto diff --git a/generated/api/v2/compliance_results_stats_service.pb.go b/generated/api/v2/compliance_results_stats_service.pb.go index b2858c0c473c0..aad9bbc9b9a98 100644 --- a/generated/api/v2/compliance_results_stats_service.pb.go +++ b/generated/api/v2/compliance_results_stats_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_results_stats_service.proto diff --git a/generated/api/v2/compliance_rule_service.pb.go b/generated/api/v2/compliance_rule_service.pb.go index 018f0515d91f3..f962e1500e898 100644 --- a/generated/api/v2/compliance_rule_service.pb.go +++ b/generated/api/v2/compliance_rule_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_rule_service.proto diff --git a/generated/api/v2/compliance_scan_configuration_service.pb.go b/generated/api/v2/compliance_scan_configuration_service.pb.go index c5e288dec6d33..bdb65f6518c61 100644 --- a/generated/api/v2/compliance_scan_configuration_service.pb.go +++ b/generated/api/v2/compliance_scan_configuration_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/compliance_scan_configuration_service.proto diff --git a/generated/api/v2/node_report_service.pb.go b/generated/api/v2/node_report_service.pb.go index 47da5df35034e..2c30b83c3ad23 100644 --- a/generated/api/v2/node_report_service.pb.go +++ b/generated/api/v2/node_report_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/node_report_service.proto diff --git a/generated/api/v2/pagination.pb.go b/generated/api/v2/pagination.pb.go index 872cc707cd73a..4caf365cac11a 100644 --- a/generated/api/v2/pagination.pb.go +++ b/generated/api/v2/pagination.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/pagination.proto diff --git a/generated/api/v2/report_service.pb.go b/generated/api/v2/report_service.pb.go index f33e6d1df9466..a0e3d59f5b211 100644 --- a/generated/api/v2/report_service.pb.go +++ b/generated/api/v2/report_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/report_service.proto diff --git a/generated/api/v2/scan_component.pb.go b/generated/api/v2/scan_component.pb.go index a28631c792fe7..1c34fc2650d30 100644 --- a/generated/api/v2/scan_component.pb.go +++ b/generated/api/v2/scan_component.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/scan_component.proto diff --git a/generated/api/v2/search_query.pb.go b/generated/api/v2/search_query.pb.go index bf921ff60f374..af455db782c5b 100644 --- a/generated/api/v2/search_query.pb.go +++ b/generated/api/v2/search_query.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/search_query.proto diff --git a/generated/api/v2/user.pb.go b/generated/api/v2/user.pb.go index 00506829287a8..b594a8bec8d52 100644 --- a/generated/api/v2/user.pb.go +++ b/generated/api/v2/user.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/user.proto diff --git a/generated/api/v2/virtual_machine_service.pb.go b/generated/api/v2/virtual_machine_service.pb.go index 3fb3ad8e65eac..2b63475d9a674 100644 --- a/generated/api/v2/virtual_machine_service.pb.go +++ b/generated/api/v2/virtual_machine_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/virtual_machine_service.proto diff --git a/generated/api/v2/virtual_machine_v2_service.pb.go b/generated/api/v2/virtual_machine_v2_service.pb.go index 61bd7b26f1f40..f57b4bf3b44e3 100644 --- a/generated/api/v2/virtual_machine_v2_service.pb.go +++ b/generated/api/v2/virtual_machine_v2_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/virtual_machine_v2_service.proto diff --git a/generated/api/v2/vuln_exception_service.pb.go b/generated/api/v2/vuln_exception_service.pb.go index 4fc43b0fba1fa..e7bc42d269992 100644 --- a/generated/api/v2/vuln_exception_service.pb.go +++ b/generated/api/v2/vuln_exception_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/vuln_exception_service.proto diff --git a/generated/api/v2/vuln_state.pb.go b/generated/api/v2/vuln_state.pb.go index c37d616e94f1b..6edbc792a07a8 100644 --- a/generated/api/v2/vuln_state.pb.go +++ b/generated/api/v2/vuln_state.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/vuln_state.proto diff --git a/generated/api/v2/vulnerability.pb.go b/generated/api/v2/vulnerability.pb.go index 18099224a6193..0da91357ddea9 100644 --- a/generated/api/v2/vulnerability.pb.go +++ b/generated/api/v2/vulnerability.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: api/v2/vulnerability.proto diff --git a/generated/internalapi/central/auth.pb.go b/generated/internalapi/central/auth.pb.go index 98310971c11fa..0dbfada5ec090 100644 --- a/generated/internalapi/central/auth.pb.go +++ b/generated/internalapi/central/auth.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/auth.proto diff --git a/generated/internalapi/central/baseline_sync.pb.go b/generated/internalapi/central/baseline_sync.pb.go index f4d7faf9c78a6..03f6b169863ae 100644 --- a/generated/internalapi/central/baseline_sync.pb.go +++ b/generated/internalapi/central/baseline_sync.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/baseline_sync.proto diff --git a/generated/internalapi/central/cluster_config.pb.go b/generated/internalapi/central/cluster_config.pb.go index d9340b258415d..a0edcdf059287 100644 --- a/generated/internalapi/central/cluster_config.pb.go +++ b/generated/internalapi/central/cluster_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/cluster_config.proto diff --git a/generated/internalapi/central/cluster_metrics.pb.go b/generated/internalapi/central/cluster_metrics.pb.go index db9f16eb351f9..cdf3289ee21d9 100644 --- a/generated/internalapi/central/cluster_metrics.pb.go +++ b/generated/internalapi/central/cluster_metrics.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/cluster_metrics.proto diff --git a/generated/internalapi/central/cluster_status.pb.go b/generated/internalapi/central/cluster_status.pb.go index 469bf3766797d..b33a449c6d802 100644 --- a/generated/internalapi/central/cluster_status.pb.go +++ b/generated/internalapi/central/cluster_status.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/cluster_status.proto diff --git a/generated/internalapi/central/compliance_operator.pb.go b/generated/internalapi/central/compliance_operator.pb.go index ded411391134d..49c13bbf8686c 100644 --- a/generated/internalapi/central/compliance_operator.pb.go +++ b/generated/internalapi/central/compliance_operator.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/compliance_operator.proto diff --git a/generated/internalapi/central/delegated_registry_config.pb.go b/generated/internalapi/central/delegated_registry_config.pb.go index 2b52fcd7c6deb..6fcdf4cb2f17a 100644 --- a/generated/internalapi/central/delegated_registry_config.pb.go +++ b/generated/internalapi/central/delegated_registry_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/delegated_registry_config.proto diff --git a/generated/internalapi/central/deployment_enhancement.pb.go b/generated/internalapi/central/deployment_enhancement.pb.go index e8efe5675e331..82700235ecd76 100644 --- a/generated/internalapi/central/deployment_enhancement.pb.go +++ b/generated/internalapi/central/deployment_enhancement.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/deployment_enhancement.proto diff --git a/generated/internalapi/central/development_service.pb.go b/generated/internalapi/central/development_service.pb.go index d5beefb4c85e6..80058f8093a05 100644 --- a/generated/internalapi/central/development_service.pb.go +++ b/generated/internalapi/central/development_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/development_service.proto diff --git a/generated/internalapi/central/hello.pb.go b/generated/internalapi/central/hello.pb.go index 874368738bfee..5720311cf4bdd 100644 --- a/generated/internalapi/central/hello.pb.go +++ b/generated/internalapi/central/hello.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/hello.proto diff --git a/generated/internalapi/central/image.pb.go b/generated/internalapi/central/image.pb.go index 25305a6e5585c..85e1a447b3475 100644 --- a/generated/internalapi/central/image.pb.go +++ b/generated/internalapi/central/image.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/image.proto diff --git a/generated/internalapi/central/local_scanner.pb.go b/generated/internalapi/central/local_scanner.pb.go index 803964ec1fbbd..2209659e9768b 100644 --- a/generated/internalapi/central/local_scanner.pb.go +++ b/generated/internalapi/central/local_scanner.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/local_scanner.proto diff --git a/generated/internalapi/central/network_baseline_sync.pb.go b/generated/internalapi/central/network_baseline_sync.pb.go index aec1571dd98d8..d2a1090fdcbc8 100644 --- a/generated/internalapi/central/network_baseline_sync.pb.go +++ b/generated/internalapi/central/network_baseline_sync.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/network_baseline_sync.proto diff --git a/generated/internalapi/central/network_flow.pb.go b/generated/internalapi/central/network_flow.pb.go index fb9f918627c6f..ea6da89962369 100644 --- a/generated/internalapi/central/network_flow.pb.go +++ b/generated/internalapi/central/network_flow.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/network_flow.proto diff --git a/generated/internalapi/central/policy_sync.pb.go b/generated/internalapi/central/policy_sync.pb.go index 532b9c8020cff..8477cde92b692 100644 --- a/generated/internalapi/central/policy_sync.pb.go +++ b/generated/internalapi/central/policy_sync.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/policy_sync.proto diff --git a/generated/internalapi/central/process_listening_on_ports_update.pb.go b/generated/internalapi/central/process_listening_on_ports_update.pb.go index 87aabe9a70a6e..0adb573d5fc14 100644 --- a/generated/internalapi/central/process_listening_on_ports_update.pb.go +++ b/generated/internalapi/central/process_listening_on_ports_update.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/process_listening_on_ports_update.proto diff --git a/generated/internalapi/central/secured_cluster_cert_refresh.pb.go b/generated/internalapi/central/secured_cluster_cert_refresh.pb.go index d29951663abb5..2a8aa24d86315 100644 --- a/generated/internalapi/central/secured_cluster_cert_refresh.pb.go +++ b/generated/internalapi/central/secured_cluster_cert_refresh.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/secured_cluster_cert_refresh.proto diff --git a/generated/internalapi/central/sensor_events.pb.go b/generated/internalapi/central/sensor_events.pb.go index 3a567cb1fb43e..32c8efbcc3d04 100644 --- a/generated/internalapi/central/sensor_events.pb.go +++ b/generated/internalapi/central/sensor_events.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/sensor_events.proto diff --git a/generated/internalapi/central/sensor_iservice.pb.go b/generated/internalapi/central/sensor_iservice.pb.go index 61ca5245e77b4..835caba41697b 100644 --- a/generated/internalapi/central/sensor_iservice.pb.go +++ b/generated/internalapi/central/sensor_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/sensor_iservice.proto diff --git a/generated/internalapi/central/sensor_upgrade.pb.go b/generated/internalapi/central/sensor_upgrade.pb.go index 0217c7996b8ce..03e18f908e9c5 100644 --- a/generated/internalapi/central/sensor_upgrade.pb.go +++ b/generated/internalapi/central/sensor_upgrade.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/sensor_upgrade.proto diff --git a/generated/internalapi/central/sensor_upgrade_ctrl_iservice.pb.go b/generated/internalapi/central/sensor_upgrade_ctrl_iservice.pb.go index 11ed075adf498..cf8e6b1027d39 100644 --- a/generated/internalapi/central/sensor_upgrade_ctrl_iservice.pb.go +++ b/generated/internalapi/central/sensor_upgrade_ctrl_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/sensor_upgrade_ctrl_iservice.proto diff --git a/generated/internalapi/central/telemetry.pb.go b/generated/internalapi/central/telemetry.pb.go index fff1ae98a6a00..a21c999c5b8c1 100644 --- a/generated/internalapi/central/telemetry.pb.go +++ b/generated/internalapi/central/telemetry.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/telemetry.proto diff --git a/generated/internalapi/central/v1/token_service.pb.go b/generated/internalapi/central/v1/token_service.pb.go index 44d13cacd94c5..e8045d252b33b 100644 --- a/generated/internalapi/central/v1/token_service.pb.go +++ b/generated/internalapi/central/v1/token_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/central/v1/token_service.proto diff --git a/generated/internalapi/compliance/compliance_data.pb.go b/generated/internalapi/compliance/compliance_data.pb.go index f83af5017b2c2..e9eef707766e8 100644 --- a/generated/internalapi/compliance/compliance_data.pb.go +++ b/generated/internalapi/compliance/compliance_data.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/compliance/compliance_data.proto diff --git a/generated/internalapi/scanner/v4/common.pb.go b/generated/internalapi/scanner/v4/common.pb.go index 0e880bdfa519d..67299462678e8 100644 --- a/generated/internalapi/scanner/v4/common.pb.go +++ b/generated/internalapi/scanner/v4/common.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/scanner/v4/common.proto diff --git a/generated/internalapi/scanner/v4/index_report.pb.go b/generated/internalapi/scanner/v4/index_report.pb.go index 8ef70bab7f8ec..ef57844231a47 100644 --- a/generated/internalapi/scanner/v4/index_report.pb.go +++ b/generated/internalapi/scanner/v4/index_report.pb.go @@ -3,7 +3,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/scanner/v4/index_report.proto diff --git a/generated/internalapi/scanner/v4/indexer_service.pb.go b/generated/internalapi/scanner/v4/indexer_service.pb.go index 5febdad9a7344..aea3b37eed023 100644 --- a/generated/internalapi/scanner/v4/indexer_service.pb.go +++ b/generated/internalapi/scanner/v4/indexer_service.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/scanner/v4/indexer_service.proto diff --git a/generated/internalapi/scanner/v4/matcher_service.pb.go b/generated/internalapi/scanner/v4/matcher_service.pb.go index 93368d7f63fa2..c3b614afc7077 100644 --- a/generated/internalapi/scanner/v4/matcher_service.pb.go +++ b/generated/internalapi/scanner/v4/matcher_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/scanner/v4/matcher_service.proto diff --git a/generated/internalapi/scanner/v4/vulnerability_report.pb.go b/generated/internalapi/scanner/v4/vulnerability_report.pb.go index 3bd16abc49155..ffab5a0dbef8a 100644 --- a/generated/internalapi/scanner/v4/vulnerability_report.pb.go +++ b/generated/internalapi/scanner/v4/vulnerability_report.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/scanner/v4/vulnerability_report.proto diff --git a/generated/internalapi/sensor/admission_control.pb.go b/generated/internalapi/sensor/admission_control.pb.go index c43f3c244cb34..c1adff451079a 100644 --- a/generated/internalapi/sensor/admission_control.pb.go +++ b/generated/internalapi/sensor/admission_control.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/admission_control.proto diff --git a/generated/internalapi/sensor/admission_control_iservice.pb.go b/generated/internalapi/sensor/admission_control_iservice.pb.go index e01e909a96d3e..e9cb91ee552f6 100644 --- a/generated/internalapi/sensor/admission_control_iservice.pb.go +++ b/generated/internalapi/sensor/admission_control_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/admission_control_iservice.proto diff --git a/generated/internalapi/sensor/collector.pb.go b/generated/internalapi/sensor/collector.pb.go index 2a95c1d7facd3..f9ef7f7c936e3 100644 --- a/generated/internalapi/sensor/collector.pb.go +++ b/generated/internalapi/sensor/collector.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/collector.proto diff --git a/generated/internalapi/sensor/collector_iservice.pb.go b/generated/internalapi/sensor/collector_iservice.pb.go index 96efa3e0321b9..9d48eda3a6234 100644 --- a/generated/internalapi/sensor/collector_iservice.pb.go +++ b/generated/internalapi/sensor/collector_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/collector_iservice.proto diff --git a/generated/internalapi/sensor/compliance_iservice.pb.go b/generated/internalapi/sensor/compliance_iservice.pb.go index 041c11c982e9e..fb1533932bca2 100644 --- a/generated/internalapi/sensor/compliance_iservice.pb.go +++ b/generated/internalapi/sensor/compliance_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/compliance_iservice.proto diff --git a/generated/internalapi/sensor/deployment_iservice.pb.go b/generated/internalapi/sensor/deployment_iservice.pb.go index 82e9efadd2409..23963030dfb0e 100644 --- a/generated/internalapi/sensor/deployment_iservice.pb.go +++ b/generated/internalapi/sensor/deployment_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/deployment_iservice.proto diff --git a/generated/internalapi/sensor/fact.pb.go b/generated/internalapi/sensor/fact.pb.go index 1c5fac5e74654..11d3811fbace7 100644 --- a/generated/internalapi/sensor/fact.pb.go +++ b/generated/internalapi/sensor/fact.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/fact.proto diff --git a/generated/internalapi/sensor/image_iservice.pb.go b/generated/internalapi/sensor/image_iservice.pb.go index 21c13768dfd81..1827aa49de2f9 100644 --- a/generated/internalapi/sensor/image_iservice.pb.go +++ b/generated/internalapi/sensor/image_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/image_iservice.proto diff --git a/generated/internalapi/sensor/network_connection_info.pb.go b/generated/internalapi/sensor/network_connection_info.pb.go index 1e4dea02732ec..80cb31835ed4b 100644 --- a/generated/internalapi/sensor/network_connection_info.pb.go +++ b/generated/internalapi/sensor/network_connection_info.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/network_connection_info.proto diff --git a/generated/internalapi/sensor/network_connection_iservice.pb.go b/generated/internalapi/sensor/network_connection_iservice.pb.go index 832a4e7718f1a..205af81b2f734 100644 --- a/generated/internalapi/sensor/network_connection_iservice.pb.go +++ b/generated/internalapi/sensor/network_connection_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/network_connection_iservice.proto diff --git a/generated/internalapi/sensor/network_enums.pb.go b/generated/internalapi/sensor/network_enums.pb.go index 745fdb6eca418..3e5af29aa0212 100644 --- a/generated/internalapi/sensor/network_enums.pb.go +++ b/generated/internalapi/sensor/network_enums.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/network_enums.proto diff --git a/generated/internalapi/sensor/sfa.pb.go b/generated/internalapi/sensor/sfa.pb.go index 7e484946ff09a..5b692eb8ede3a 100644 --- a/generated/internalapi/sensor/sfa.pb.go +++ b/generated/internalapi/sensor/sfa.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/sfa.proto diff --git a/generated/internalapi/sensor/sfa_iservice.pb.go b/generated/internalapi/sensor/sfa_iservice.pb.go index acbc88d078122..a0fe9781bdf8d 100644 --- a/generated/internalapi/sensor/sfa_iservice.pb.go +++ b/generated/internalapi/sensor/sfa_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/sfa_iservice.proto diff --git a/generated/internalapi/sensor/signal_iservice.pb.go b/generated/internalapi/sensor/signal_iservice.pb.go index f719986c05bdf..a60cecc1da7e1 100644 --- a/generated/internalapi/sensor/signal_iservice.pb.go +++ b/generated/internalapi/sensor/signal_iservice.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/sensor/signal_iservice.proto diff --git a/generated/internalapi/virtualmachine/v1/index_report.pb.go b/generated/internalapi/virtualmachine/v1/index_report.pb.go index 61269d35286d4..f82fea0df92c2 100644 --- a/generated/internalapi/virtualmachine/v1/index_report.pb.go +++ b/generated/internalapi/virtualmachine/v1/index_report.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/virtualmachine/v1/index_report.proto diff --git a/generated/internalapi/virtualmachine/v1/virtual_machine.pb.go b/generated/internalapi/virtualmachine/v1/virtual_machine.pb.go index 5921d62ac5a53..a68ca4d0d3d13 100644 --- a/generated/internalapi/virtualmachine/v1/virtual_machine.pb.go +++ b/generated/internalapi/virtualmachine/v1/virtual_machine.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/virtualmachine/v1/virtual_machine.proto diff --git a/generated/internalapi/virtualmachine/v1/vm_service.pb.go b/generated/internalapi/virtualmachine/v1/vm_service.pb.go index 0944d64b27b20..e209febc395c0 100644 --- a/generated/internalapi/virtualmachine/v1/vm_service.pb.go +++ b/generated/internalapi/virtualmachine/v1/vm_service.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/virtualmachine/v1/vm_service.proto diff --git a/generated/internalapi/wrapper/splunk_alert.pb.go b/generated/internalapi/wrapper/splunk_alert.pb.go index 5f337f671b73b..e9059584398c6 100644 --- a/generated/internalapi/wrapper/splunk_alert.pb.go +++ b/generated/internalapi/wrapper/splunk_alert.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: internalapi/wrapper/splunk_alert.proto diff --git a/generated/storage/administration_event.pb.go b/generated/storage/administration_event.pb.go index df9d45e84de39..e9be271076741 100644 --- a/generated/storage/administration_event.pb.go +++ b/generated/storage/administration_event.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/administration_event.proto diff --git a/generated/storage/administration_usage.pb.go b/generated/storage/administration_usage.pb.go index 6dd7fe42016e1..5a47c7315b122 100644 --- a/generated/storage/administration_usage.pb.go +++ b/generated/storage/administration_usage.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/administration_usage.proto diff --git a/generated/storage/alert.pb.go b/generated/storage/alert.pb.go index 5efdec723b73f..0cb19c88a4b7b 100644 --- a/generated/storage/alert.pb.go +++ b/generated/storage/alert.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/alert.proto diff --git a/generated/storage/api_token.pb.go b/generated/storage/api_token.pb.go index 553d80929e232..ccf6a95ad4ece 100644 --- a/generated/storage/api_token.pb.go +++ b/generated/storage/api_token.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/api_token.proto diff --git a/generated/storage/auth_machine_to_machine.pb.go b/generated/storage/auth_machine_to_machine.pb.go index 75595ab528119..8dee2c425a520 100644 --- a/generated/storage/auth_machine_to_machine.pb.go +++ b/generated/storage/auth_machine_to_machine.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/auth_machine_to_machine.proto diff --git a/generated/storage/auth_provider.pb.go b/generated/storage/auth_provider.pb.go index 116d32ff70de4..6894934e299ac 100644 --- a/generated/storage/auth_provider.pb.go +++ b/generated/storage/auth_provider.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/auth_provider.proto diff --git a/generated/storage/base_image.pb.go b/generated/storage/base_image.pb.go index 2302244fc1d57..91e6f9bdd80b6 100644 --- a/generated/storage/base_image.pb.go +++ b/generated/storage/base_image.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/base_image.proto diff --git a/generated/storage/base_image_repository.pb.go b/generated/storage/base_image_repository.pb.go index 98275adf0ee64..71c3665241dbe 100644 --- a/generated/storage/base_image_repository.pb.go +++ b/generated/storage/base_image_repository.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/base_image_repository.proto diff --git a/generated/storage/blob.pb.go b/generated/storage/blob.pb.go index de4cb680fa39d..71f5d355b89d2 100644 --- a/generated/storage/blob.pb.go +++ b/generated/storage/blob.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/blob.proto diff --git a/generated/storage/cloud_source.pb.go b/generated/storage/cloud_source.pb.go index 645bc74b61d5a..512ac32e377cb 100644 --- a/generated/storage/cloud_source.pb.go +++ b/generated/storage/cloud_source.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/cloud_source.proto diff --git a/generated/storage/cluster.pb.go b/generated/storage/cluster.pb.go index b032df461b173..6b327ad571102 100644 --- a/generated/storage/cluster.pb.go +++ b/generated/storage/cluster.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/cluster.proto diff --git a/generated/storage/cluster_init.pb.go b/generated/storage/cluster_init.pb.go index e145a4a0f8d52..76809c3446204 100644 --- a/generated/storage/cluster_init.pb.go +++ b/generated/storage/cluster_init.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/cluster_init.proto diff --git a/generated/storage/common.pb.go b/generated/storage/common.pb.go index 0019e4dfbfa26..5de76e47c3144 100644 --- a/generated/storage/common.pb.go +++ b/generated/storage/common.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/common.proto diff --git a/generated/storage/compliance.pb.go b/generated/storage/compliance.pb.go index a50a75801c3f2..c1747d82f5353 100644 --- a/generated/storage/compliance.pb.go +++ b/generated/storage/compliance.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/compliance.proto diff --git a/generated/storage/compliance_config.pb.go b/generated/storage/compliance_config.pb.go index 2c2541f8c00bb..39f7b1941bf93 100644 --- a/generated/storage/compliance_config.pb.go +++ b/generated/storage/compliance_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/compliance_config.proto diff --git a/generated/storage/compliance_integration.pb.go b/generated/storage/compliance_integration.pb.go index 43ba8b37010b3..2ea6bb1a2d1cb 100644 --- a/generated/storage/compliance_integration.pb.go +++ b/generated/storage/compliance_integration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/compliance_integration.proto diff --git a/generated/storage/compliance_operator.pb.go b/generated/storage/compliance_operator.pb.go index 22e7bc33f22b9..09a4962f8d3c6 100644 --- a/generated/storage/compliance_operator.pb.go +++ b/generated/storage/compliance_operator.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/compliance_operator.proto diff --git a/generated/storage/compliance_operator_v2.pb.go b/generated/storage/compliance_operator_v2.pb.go index 5ad5bbeb070b2..a6d253464298f 100644 --- a/generated/storage/compliance_operator_v2.pb.go +++ b/generated/storage/compliance_operator_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/compliance_operator_v2.proto diff --git a/generated/storage/config.pb.go b/generated/storage/config.pb.go index d0e5a336d1bec..96c75b18bff25 100644 --- a/generated/storage/config.pb.go +++ b/generated/storage/config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/config.proto diff --git a/generated/storage/container_runtime.pb.go b/generated/storage/container_runtime.pb.go index 5b0cbfc4c857b..2aff805dfac12 100644 --- a/generated/storage/container_runtime.pb.go +++ b/generated/storage/container_runtime.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/container_runtime.proto diff --git a/generated/storage/cve.pb.go b/generated/storage/cve.pb.go index a3d5625cef0b2..62dd566ae5313 100644 --- a/generated/storage/cve.pb.go +++ b/generated/storage/cve.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/cve.proto diff --git a/generated/storage/declarative_config_health.pb.go b/generated/storage/declarative_config_health.pb.go index 2774a543154a8..ab8ae734357da 100644 --- a/generated/storage/declarative_config_health.pb.go +++ b/generated/storage/declarative_config_health.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/declarative_config_health.proto diff --git a/generated/storage/delegated_registry_config.pb.go b/generated/storage/delegated_registry_config.pb.go index e95aa9ab08de4..0c37b53103134 100644 --- a/generated/storage/delegated_registry_config.pb.go +++ b/generated/storage/delegated_registry_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/delegated_registry_config.proto diff --git a/generated/storage/deployment.pb.go b/generated/storage/deployment.pb.go index 652446d8996e5..e239a6b485255 100644 --- a/generated/storage/deployment.pb.go +++ b/generated/storage/deployment.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/deployment.proto diff --git a/generated/storage/discovered_cluster.pb.go b/generated/storage/discovered_cluster.pb.go index 305e3e5415b3d..44af51e85fd49 100644 --- a/generated/storage/discovered_cluster.pb.go +++ b/generated/storage/discovered_cluster.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/discovered_cluster.proto diff --git a/generated/storage/external_backup.pb.go b/generated/storage/external_backup.pb.go index 139ce582c3ace..a3abba232dbe3 100644 --- a/generated/storage/external_backup.pb.go +++ b/generated/storage/external_backup.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/external_backup.proto diff --git a/generated/storage/file_access.pb.go b/generated/storage/file_access.pb.go index 4c1a916c401b9..af066b531e822 100644 --- a/generated/storage/file_access.pb.go +++ b/generated/storage/file_access.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/file_access.proto diff --git a/generated/storage/group.pb.go b/generated/storage/group.pb.go index 0a7256ef0ca46..6e8dfd698d8d5 100644 --- a/generated/storage/group.pb.go +++ b/generated/storage/group.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/group.proto diff --git a/generated/storage/hash.pb.go b/generated/storage/hash.pb.go index fafb3d2e6e183..af6d811abd811 100644 --- a/generated/storage/hash.pb.go +++ b/generated/storage/hash.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/hash.proto diff --git a/generated/storage/helm_cluster.pb.go b/generated/storage/helm_cluster.pb.go index 6a4925aa0b167..7097f25b31a47 100644 --- a/generated/storage/helm_cluster.pb.go +++ b/generated/storage/helm_cluster.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/helm_cluster.proto diff --git a/generated/storage/http_endpoint.pb.go b/generated/storage/http_endpoint.pb.go index 40c5fe6f9220b..a67789f8acf25 100644 --- a/generated/storage/http_endpoint.pb.go +++ b/generated/storage/http_endpoint.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/http_endpoint.proto diff --git a/generated/storage/image.pb.go b/generated/storage/image.pb.go index 9e7c6399be2c8..514f86d078138 100644 --- a/generated/storage/image.pb.go +++ b/generated/storage/image.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/image.proto diff --git a/generated/storage/image_component.pb.go b/generated/storage/image_component.pb.go index 6f19b3ae98933..f3de77c18fa76 100644 --- a/generated/storage/image_component.pb.go +++ b/generated/storage/image_component.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/image_component.proto diff --git a/generated/storage/image_integration.pb.go b/generated/storage/image_integration.pb.go index a07822bbcd53f..5bd60d6f5a3de 100644 --- a/generated/storage/image_integration.pb.go +++ b/generated/storage/image_integration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/image_integration.proto diff --git a/generated/storage/image_v2.pb.go b/generated/storage/image_v2.pb.go index 91c8fec274ec4..5ad060b592d96 100644 --- a/generated/storage/image_v2.pb.go +++ b/generated/storage/image_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/image_v2.proto diff --git a/generated/storage/installation.pb.go b/generated/storage/installation.pb.go index 9116f619063db..d4377c57509ca 100644 --- a/generated/storage/installation.pb.go +++ b/generated/storage/installation.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/installation.proto diff --git a/generated/storage/integration_health.pb.go b/generated/storage/integration_health.pb.go index 1db17d2ebdc65..19730f4b31677 100644 --- a/generated/storage/integration_health.pb.go +++ b/generated/storage/integration_health.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/integration_health.proto diff --git a/generated/storage/kube_event.pb.go b/generated/storage/kube_event.pb.go index f16d6361dd25a..dfb2371d0fefb 100644 --- a/generated/storage/kube_event.pb.go +++ b/generated/storage/kube_event.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/kube_event.proto diff --git a/generated/storage/labels.pb.go b/generated/storage/labels.pb.go index efef57b7c92a3..564be4ea5bea5 100644 --- a/generated/storage/labels.pb.go +++ b/generated/storage/labels.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/labels.proto diff --git a/generated/storage/log.pb.go b/generated/storage/log.pb.go index 8d97ea23b666a..ccc10571fb333 100644 --- a/generated/storage/log.pb.go +++ b/generated/storage/log.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/log.proto diff --git a/generated/storage/mitre.pb.go b/generated/storage/mitre.pb.go index ce55aad910033..eae305559454e 100644 --- a/generated/storage/mitre.pb.go +++ b/generated/storage/mitre.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/mitre.proto diff --git a/generated/storage/namespace_metadata.pb.go b/generated/storage/namespace_metadata.pb.go index d1f325690d21a..416992ff47e30 100644 --- a/generated/storage/namespace_metadata.pb.go +++ b/generated/storage/namespace_metadata.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/namespace_metadata.proto diff --git a/generated/storage/network_baseline.pb.go b/generated/storage/network_baseline.pb.go index 5eb542d00dac6..9aeff948794ed 100644 --- a/generated/storage/network_baseline.pb.go +++ b/generated/storage/network_baseline.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/network_baseline.proto diff --git a/generated/storage/network_flow.pb.go b/generated/storage/network_flow.pb.go index f414d43499582..8c1037154ceca 100644 --- a/generated/storage/network_flow.pb.go +++ b/generated/storage/network_flow.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/network_flow.proto diff --git a/generated/storage/network_graph_config.pb.go b/generated/storage/network_graph_config.pb.go index d4d827735d388..f997b69b2bec9 100644 --- a/generated/storage/network_graph_config.pb.go +++ b/generated/storage/network_graph_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/network_graph_config.proto diff --git a/generated/storage/network_policy.pb.go b/generated/storage/network_policy.pb.go index 7c54d9d2c5c07..5a024cf1fbcfc 100644 --- a/generated/storage/network_policy.pb.go +++ b/generated/storage/network_policy.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/network_policy.proto diff --git a/generated/storage/node.pb.go b/generated/storage/node.pb.go index cc9988e90a4f6..26f5199b75a28 100644 --- a/generated/storage/node.pb.go +++ b/generated/storage/node.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/node.proto diff --git a/generated/storage/node_component.pb.go b/generated/storage/node_component.pb.go index 11103bf02cf2e..e64871d9945e0 100644 --- a/generated/storage/node_component.pb.go +++ b/generated/storage/node_component.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/node_component.proto diff --git a/generated/storage/node_integration.pb.go b/generated/storage/node_integration.pb.go index 62f2462fc3288..705aba38b1421 100644 --- a/generated/storage/node_integration.pb.go +++ b/generated/storage/node_integration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/node_integration.proto diff --git a/generated/storage/notification_schedule.pb.go b/generated/storage/notification_schedule.pb.go index b2bbe7ce7762d..5fc49b03dcac7 100644 --- a/generated/storage/notification_schedule.pb.go +++ b/generated/storage/notification_schedule.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/notification_schedule.proto diff --git a/generated/storage/notifier.pb.go b/generated/storage/notifier.pb.go index 251d60ffc26b2..b18b3e0af803d 100644 --- a/generated/storage/notifier.pb.go +++ b/generated/storage/notifier.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/notifier.proto diff --git a/generated/storage/notifier_enc_config.pb.go b/generated/storage/notifier_enc_config.pb.go index 81a3a16a931f3..be1f06c80499c 100644 --- a/generated/storage/notifier_enc_config.pb.go +++ b/generated/storage/notifier_enc_config.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/notifier_enc_config.proto diff --git a/generated/storage/operation_status.pb.go b/generated/storage/operation_status.pb.go index 52d2abff8fa90..3fd6f13c5ba2a 100644 --- a/generated/storage/operation_status.pb.go +++ b/generated/storage/operation_status.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/operation_status.proto diff --git a/generated/storage/orchestrator_integration.pb.go b/generated/storage/orchestrator_integration.pb.go index 11e713af2a7df..76d6ce66b1d1d 100644 --- a/generated/storage/orchestrator_integration.pb.go +++ b/generated/storage/orchestrator_integration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/orchestrator_integration.proto diff --git a/generated/storage/policy.pb.go b/generated/storage/policy.pb.go index c99de9332733b..3f2a48f2c108c 100644 --- a/generated/storage/policy.pb.go +++ b/generated/storage/policy.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/policy.proto diff --git a/generated/storage/policy_category.pb.go b/generated/storage/policy_category.pb.go index 1d9f7c240caee..9f251b985de73 100644 --- a/generated/storage/policy_category.pb.go +++ b/generated/storage/policy_category.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/policy_category.proto diff --git a/generated/storage/process_baseline.pb.go b/generated/storage/process_baseline.pb.go index 60b8012737c28..5514b838e8e50 100644 --- a/generated/storage/process_baseline.pb.go +++ b/generated/storage/process_baseline.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/process_baseline.proto diff --git a/generated/storage/process_indicator.pb.go b/generated/storage/process_indicator.pb.go index 8bb409310fb2b..42af97489fbef 100644 --- a/generated/storage/process_indicator.pb.go +++ b/generated/storage/process_indicator.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/process_indicator.proto diff --git a/generated/storage/process_listening_on_port.pb.go b/generated/storage/process_listening_on_port.pb.go index aed79161edf94..d6f7d2bf73396 100644 --- a/generated/storage/process_listening_on_port.pb.go +++ b/generated/storage/process_listening_on_port.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/process_listening_on_port.proto diff --git a/generated/storage/rbac.pb.go b/generated/storage/rbac.pb.go index c792bfb7cd9a2..dbde734a53ab8 100644 --- a/generated/storage/rbac.pb.go +++ b/generated/storage/rbac.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/rbac.proto diff --git a/generated/storage/relations.pb.go b/generated/storage/relations.pb.go index 9fa78603c26f5..1e51ad5cb2adc 100644 --- a/generated/storage/relations.pb.go +++ b/generated/storage/relations.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/relations.proto diff --git a/generated/storage/report_configuration.pb.go b/generated/storage/report_configuration.pb.go index 72ad19441b0a3..3f969710bdc18 100644 --- a/generated/storage/report_configuration.pb.go +++ b/generated/storage/report_configuration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/report_configuration.proto diff --git a/generated/storage/report_notifier_configuration.pb.go b/generated/storage/report_notifier_configuration.pb.go index 19dfa872e83af..7f687465c3762 100644 --- a/generated/storage/report_notifier_configuration.pb.go +++ b/generated/storage/report_notifier_configuration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/report_notifier_configuration.proto diff --git a/generated/storage/report_snapshot.pb.go b/generated/storage/report_snapshot.pb.go index 54acf8958dd53..5d0e879a64623 100644 --- a/generated/storage/report_snapshot.pb.go +++ b/generated/storage/report_snapshot.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/report_snapshot.proto diff --git a/generated/storage/resource_collection.pb.go b/generated/storage/resource_collection.pb.go index 70e708df4febe..9b42e2f8865ad 100644 --- a/generated/storage/resource_collection.pb.go +++ b/generated/storage/resource_collection.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/resource_collection.proto diff --git a/generated/storage/risk.pb.go b/generated/storage/risk.pb.go index 146a00fa04b64..27ad23016ba5a 100644 --- a/generated/storage/risk.pb.go +++ b/generated/storage/risk.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/risk.proto diff --git a/generated/storage/role.pb.go b/generated/storage/role.pb.go index 095b43889468b..b140ce12e3969 100644 --- a/generated/storage/role.pb.go +++ b/generated/storage/role.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/role.proto diff --git a/generated/storage/schedule.pb.go b/generated/storage/schedule.pb.go index c39adb9ca6945..696be25aea17e 100644 --- a/generated/storage/schedule.pb.go +++ b/generated/storage/schedule.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/schedule.proto diff --git a/generated/storage/scope.pb.go b/generated/storage/scope.pb.go index 1b16ac4a200e5..4c74ece92a4cb 100644 --- a/generated/storage/scope.pb.go +++ b/generated/storage/scope.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/scope.proto diff --git a/generated/storage/secret.pb.go b/generated/storage/secret.pb.go index 62340b587afc8..d793f8b30e3f9 100644 --- a/generated/storage/secret.pb.go +++ b/generated/storage/secret.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/secret.proto diff --git a/generated/storage/sensor_upgrade.pb.go b/generated/storage/sensor_upgrade.pb.go index ea91a650104d0..a755cd2a7b3da 100644 --- a/generated/storage/sensor_upgrade.pb.go +++ b/generated/storage/sensor_upgrade.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/sensor_upgrade.proto diff --git a/generated/storage/service_account.pb.go b/generated/storage/service_account.pb.go index 090ab6d6bc01c..9e1dffac42593 100644 --- a/generated/storage/service_account.pb.go +++ b/generated/storage/service_account.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/service_account.proto diff --git a/generated/storage/service_identity.pb.go b/generated/storage/service_identity.pb.go index 977969b3c14c1..c5b86d165673d 100644 --- a/generated/storage/service_identity.pb.go +++ b/generated/storage/service_identity.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/service_identity.proto diff --git a/generated/storage/signature_integration.pb.go b/generated/storage/signature_integration.pb.go index fb77716dd328c..ba5e6066215fc 100644 --- a/generated/storage/signature_integration.pb.go +++ b/generated/storage/signature_integration.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/signature_integration.proto diff --git a/generated/storage/system_info.pb.go b/generated/storage/system_info.pb.go index 7610f92952411..9a785ad00ca21 100644 --- a/generated/storage/system_info.pb.go +++ b/generated/storage/system_info.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/system_info.proto diff --git a/generated/storage/taints.pb.go b/generated/storage/taints.pb.go index 70442763e613b..0d65db63da121 100644 --- a/generated/storage/taints.pb.go +++ b/generated/storage/taints.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/taints.proto diff --git a/generated/storage/telemetry.pb.go b/generated/storage/telemetry.pb.go index 92ee31589a4c4..f668c57b255ae 100644 --- a/generated/storage/telemetry.pb.go +++ b/generated/storage/telemetry.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/telemetry.proto diff --git a/generated/storage/test.pb.go b/generated/storage/test.pb.go index f7a42207b4636..4eb02802084ca 100644 --- a/generated/storage/test.pb.go +++ b/generated/storage/test.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/test.proto diff --git a/generated/storage/traits.pb.go b/generated/storage/traits.pb.go index 2b52cd5e6ca8c..95d2420db81f3 100644 --- a/generated/storage/traits.pb.go +++ b/generated/storage/traits.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/traits.proto diff --git a/generated/storage/user.pb.go b/generated/storage/user.pb.go index 8cf1a7c6ffe81..f014ea07d7778 100644 --- a/generated/storage/user.pb.go +++ b/generated/storage/user.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/user.proto diff --git a/generated/storage/version.pb.go b/generated/storage/version.pb.go index 07cbb4044198f..010bae61d2933 100644 --- a/generated/storage/version.pb.go +++ b/generated/storage/version.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/version.proto diff --git a/generated/storage/virtual_machine.pb.go b/generated/storage/virtual_machine.pb.go index 3e6238c18d3cc..5b11e46a5573b 100644 --- a/generated/storage/virtual_machine.pb.go +++ b/generated/storage/virtual_machine.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/virtual_machine.proto diff --git a/generated/storage/virtual_machine_component_v2.pb.go b/generated/storage/virtual_machine_component_v2.pb.go index 5c49311e552dc..cbbccf82b8dec 100644 --- a/generated/storage/virtual_machine_component_v2.pb.go +++ b/generated/storage/virtual_machine_component_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/virtual_machine_component_v2.proto diff --git a/generated/storage/virtual_machine_cve_v2.pb.go b/generated/storage/virtual_machine_cve_v2.pb.go index 97caffbf5325b..130097ac3e344 100644 --- a/generated/storage/virtual_machine_cve_v2.pb.go +++ b/generated/storage/virtual_machine_cve_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/virtual_machine_cve_v2.proto diff --git a/generated/storage/virtual_machine_scan_v2.pb.go b/generated/storage/virtual_machine_scan_v2.pb.go index 3f0adad8f9afb..cf2317cc60247 100644 --- a/generated/storage/virtual_machine_scan_v2.pb.go +++ b/generated/storage/virtual_machine_scan_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/virtual_machine_scan_v2.proto diff --git a/generated/storage/virtual_machine_v2.pb.go b/generated/storage/virtual_machine_v2.pb.go index c9e7e603482a2..c228772e3559d 100644 --- a/generated/storage/virtual_machine_v2.pb.go +++ b/generated/storage/virtual_machine_v2.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/virtual_machine_v2.proto diff --git a/generated/storage/vuln_requests.pb.go b/generated/storage/vuln_requests.pb.go index 4c9821d23dd56..b17ccd4bdb986 100644 --- a/generated/storage/vuln_requests.pb.go +++ b/generated/storage/vuln_requests.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/vuln_requests.proto diff --git a/generated/storage/vulnerability.pb.go b/generated/storage/vulnerability.pb.go index 4d5bcd07dc214..95e619dea61a9 100644 --- a/generated/storage/vulnerability.pb.go +++ b/generated/storage/vulnerability.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: storage/vulnerability.proto diff --git a/generated/test/test.pb.go b/generated/test/test.pb.go index 5bc6afe472a3d..f17e92627291e 100644 --- a/generated/test/test.pb.go +++ b/generated/test/test.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: test/test.proto diff --git a/generated/tools/local-sensor/message.pb.go b/generated/tools/local-sensor/message.pb.go index fdd50698a2b55..a0b724624c413 100644 --- a/generated/tools/local-sensor/message.pb.go +++ b/generated/tools/local-sensor/message.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.11 +// protoc-gen-go v1.36.12 // protoc v6.32.1 // source: tools/local-sensor/message.proto diff --git a/tools/proto/go.mod b/tools/proto/go.mod index b86088a333a04..756534936b74e 100644 --- a/tools/proto/go.mod +++ b/tools/proto/go.mod @@ -6,7 +6,7 @@ require ( github.com/bufbuild/buf v1.72.0 github.com/favadi/protoc-go-inject-tag v1.4.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2 - google.golang.org/protobuf v1.36.11 + google.golang.org/protobuf v1.36.12 ) require ( diff --git a/tools/proto/go.sum b/tools/proto/go.sum index d51ed71ab7c1d..bb43d3e61bf8b 100644 --- a/tools/proto/go.sum +++ b/tools/proto/go.sum @@ -217,8 +217,8 @@ google.golang.org/grpc v1.81.0 h1:W3G9N3KQf3BU+YuCtGKJk0CmxQNbAISICD/9AORxLIw= google.golang.org/grpc v1.81.0/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2 h1:rgSNvqscFZ1JgV/4wH5GOsZFSFkR2Eua9As3KIr2LlM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2/go.mod h1:iMEtFwDlAhjDU9L5mY6U1XLwlIId/G3h+QcBHDIvrJ8= -google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= -google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= +google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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= From 9c040721455443072470a8fbaaa6402a0e20a751 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:39:37 +0200 Subject: [PATCH 086/327] chore(deps): bump github.com/mikefarah/yq/v4 from 4.53.3 to 4.53.6 in /operator/tools/yq (#22469) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/yq/go.mod | 23 +++++++++--------- operator/tools/yq/go.sum | 50 +++++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 35 deletions(-) diff --git a/operator/tools/yq/go.mod b/operator/tools/yq/go.mod index 2e37eb540e772..73b47acec8e29 100644 --- a/operator/tools/yq/go.mod +++ b/operator/tools/yq/go.mod @@ -2,13 +2,14 @@ module github.com/stackrox/rox/operator/tools/yq go 1.26.3 -require github.com/mikefarah/yq/v4 v4.53.3 +require github.com/mikefarah/yq/v4 v4.53.6 require ( github.com/a8m/envsubst v1.4.3 // indirect github.com/agext/levenshtein v1.2.1 // indirect github.com/alecthomas/participle/v2 v2.1.4 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/apparentlymart/go-textseg/v17 v17.0.1 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/elliotchance/orderedmap v1.8.0 // indirect github.com/fatih/color v1.19.0 // indirect @@ -19,20 +20,20 @@ require ( github.com/hashicorp/hcl/v2 v2.24.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jinzhu/copier v0.4.0 // indirect - github.com/magiconair/properties v1.8.10 // indirect + github.com/magiconair/properties v1.18.11 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/pelletier/go-toml/v2 v2.3.1 // indirect + github.com/pelletier/go-toml/v2 v2.4.3 // indirect github.com/spf13/cobra v1.10.2 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/yuin/gopher-lua v1.1.2 // indirect - github.com/zclconf/go-cty v1.18.1 // indirect - go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect - golang.org/x/mod v0.36.0 // indirect - golang.org/x/net v0.55.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect - golang.org/x/tools v0.44.0 // indirect + github.com/zclconf/go-cty v1.19.0 // indirect + go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect + golang.org/x/mod v0.40.0 // indirect + golang.org/x/net v0.58.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.41.0 // indirect + golang.org/x/tools v0.49.0 // indirect ) diff --git a/operator/tools/yq/go.sum b/operator/tools/yq/go.sum index 1597a5ce1c948..6b0189e7efba9 100644 --- a/operator/tools/yq/go.sum +++ b/operator/tools/yq/go.sum @@ -6,10 +6,12 @@ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8v github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/participle/v2 v2.1.4 h1:W/H79S8Sat/krZ3el6sQMvMaahJ+XcM9WSI2naI7w2U= github.com/alecthomas/participle/v2 v2.1.4/go.mod h1:8tqVbpTX20Ru4NfYQgZf4mP18eXPTBViyMWiArNEgGI= -github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= -github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/alecthomas/repr v0.5.4 h1:OVP7JEcuzU9CCDsT6STCr3rg17oQfWILtPWd2EG0uN4= +github.com/alecthomas/repr v0.5.4/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= +github.com/apparentlymart/go-textseg/v17 v17.0.1 h1:bpMXRgQ5cEoRNuQke1a80/Nl6w3G5eoIbWo9f3gXkAs= +github.com/apparentlymart/go-textseg/v17 v17.0.1/go.mod h1:fa8X4jgGeevslICIY6LcdjkSecWnXmYd9Lk34z/VxZs= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= 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= @@ -38,18 +40,18 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= -github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= -github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/magiconair/properties v1.18.11 h1:j5ozYZl0zCjG7ahMDH0GWIobOvvUzT0BdAguG0ViKy0= +github.com/magiconair/properties v1.18.11/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= 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.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mikefarah/yq/v4 v4.53.3 h1:S0kwPkINdOjgPskW5CfYTGo/Vt7c3gUnUkKSp7CNqD0= -github.com/mikefarah/yq/v4 v4.53.3/go.mod h1:4mvgujMtSAB3lA27+lwg8eIud/4QUQw2/1rLbxgiauw= +github.com/mikefarah/yq/v4 v4.53.6 h1:5vB15LTZRvrF6z/metQF31bmF63SjDzCKKX8o8UemQQ= +github.com/mikefarah/yq/v4 v4.53.6/go.mod h1:3tmDcCSTOTUFa5Z1X8R4j0H1kauIwNo2wjKq9sLyAh4= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= -github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pelletier/go-toml/v2 v2.4.3 h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY= +github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -65,26 +67,26 @@ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5Cc github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/yuin/gopher-lua v1.1.2 h1:yF/FjE3hD65tBbt0VXLE13HWS9h34fdzJmrWRXwobGA= github.com/yuin/gopher-lua v1.1.2/go.mod h1:7aRmXIWl37SqRf0koeyylBEzJ+aPt8A+mmkQ4f1ntR8= -github.com/zclconf/go-cty v1.18.1 h1:yEGE8M4iIZlyKQURZNb2SnEyZlZHUcBCnx6KF81KuwM= -github.com/zclconf/go-cty v1.18.1/go.mod h1:qpnV6EDNgC1sns/AleL1fvatHw72j+S+nS+MJ+T2CSg= +github.com/zclconf/go-cty v1.19.0 h1:IV8WdqYZc2c5rLX9bEoLNXKojBAp0MZPBHMIrCoa/s4= +github.com/zclconf/go-cty v1.19.0/go.mod h1:12W89jGn3JCOIQi7infWr9m80rOkb5RNYJqXMZcN4c8= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -go.yaml.in/yaml/v4 v4.0.0-rc.4 h1:UP4+v6fFrBIb1l934bDl//mmnoIZEDK0idg1+AIvX5U= -go.yaml.in/yaml/v4 v4.0.0-rc.4/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= -golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= -golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4= +go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= +golang.org/x/mod v0.40.0 h1:hUv+3cXcdRHz08UmSiOob7sadHig73uo5bkXxQ/tvUs= +golang.org/x/mod v0.40.0/go.mod h1:0/weTWkPWGBikyTWAX3dkjVztMmBA5hM0DH6BElSupE= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= -golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= -golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From 3b211d8e61f0e0572c661908ac81413c756dbc91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:49:46 +0200 Subject: [PATCH 087/327] chore(deps): bump google.golang.org/api from 0.292.0 to 0.298.0 (#22772) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index a0edf0391dc83..8d1cc4b6f294d 100644 --- a/go.mod +++ b/go.mod @@ -155,7 +155,7 @@ require ( golang.org/x/time v0.16.0 golang.org/x/tools v0.50.0 golang.stackrox.io/grpc-http1 v0.5.1 - google.golang.org/api v0.292.0 + google.golang.org/api v0.298.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d google.golang.org/grpc v1.83.2 @@ -189,7 +189,7 @@ require ( al.essio.dev/pkg/shellescape v1.6.0 // indirect cel.dev/expr v0.25.2 // indirect cloud.google.com/go v0.123.0 // indirect - cloud.google.com/go/auth v0.22.0 // indirect + cloud.google.com/go/auth v0.23.2 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/iam v1.13.0 // indirect cloud.google.com/go/longrunning v1.2.0 // indirect @@ -318,7 +318,7 @@ require ( github.com/google/go-querystring v1.2.0 // indirect github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 // indirect github.com/google/s2a-go v0.1.9 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.19 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.20 // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/grafana/pyroscope-go/godeltaprof v0.1.11 // indirect @@ -458,7 +458,7 @@ require ( go.yaml.in/yaml/v2 v2.4.4 // indirect golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect diff --git a/go.sum b/go.sum index 13a8e545e60dd..510ca0b198da8 100644 --- a/go.sum +++ b/go.sum @@ -34,8 +34,8 @@ cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= cloud.google.com/go/artifactregistry v1.26.0 h1:iq5kkdY2FJY8RkkNghUelb3EOcqyy7dVhfDGVk/Xw9g= cloud.google.com/go/artifactregistry v1.26.0/go.mod h1:c5FPi5GtDBP+OAr5kKhCBNQDT9ZgAyobXQjekx93VWs= -cloud.google.com/go/auth v0.22.0 h1:Xp9wAKkLoeaYb5pYZZoQGz4E9sdPxIbzS3gywZE3ciQ= -cloud.google.com/go/auth v0.22.0/go.mod h1:M9o2Oz+YI2jAfxewJgb1vyI3vceHF+eohmxyzmrl+9s= +cloud.google.com/go/auth v0.23.2 h1:pxSCpfiji41hpzpPdMCftEUCezpgpqmmDdYiAjCKXxo= +cloud.google.com/go/auth v0.23.2/go.mod h1:4DhBRcqvtljQN3dJ57qtqbib5ZGCYE5f2crfiiC2EM0= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -735,8 +735,8 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/googleapis/enterprise-certificate-proxy v0.3.19 h1:mMOE7DN2+p76/EdIrmAy9B9bH+yC4563vmnJ34QR8i4= -github.com/googleapis/enterprise-certificate-proxy v0.3.19/go.mod h1:rSEsBUemEBZEexP2y6jPp16LUmUbjmSbcPMQizR0o4k= +github.com/googleapis/enterprise-certificate-proxy v0.3.20 h1:t/xL64VUoN69MuMRQuJETqYGOw4Z9mSRJK9epIEtwFk= +github.com/googleapis/enterprise-certificate-proxy v0.3.20/go.mod h1:L3D/IQExI6LqEjBdXcZQ1WluSgigQmSwBboFstVPM4w= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1961,8 +1961,8 @@ google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdr google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= -google.golang.org/api v0.292.0 h1:Ewiwo/GTtiaPZSNAZQUcWLh8AYDEoPmIXyJfeoTSMHU= -google.golang.org/api v0.292.0/go.mod h1:07kjmMnFGm2RQuCza2EZM/5N68G/fVvFb1xKjWqoFA0= +google.golang.org/api v0.298.0 h1:YW18RkHBMZBA1ergX0m4biagzgbiPTb2uTsRsDPWNRY= +google.golang.org/api v0.298.0/go.mod h1:02qB8+Ox1ZFzcaKFMguy1nQLJmSIyvV6Ff4txJEXtl4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2038,8 +2038,8 @@ google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d h1:C9v1o0/4quuhOAf google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d/go.mod h1:Wz2wFJntZFmLGo7pLDXZ3wYk5hyc0Mb+SkHhDDXT+lU= google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688 h1:cYNAzI2sUwhmCcoj9TxvihSrqsxt6uIkj3rDRhSDmW4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688/go.mod h1:DjtHYE8FKJLivXcBEjGwndXfIC23G0VpXiXKqG179uA= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= From 5f44dc4e54f6f87777a5c6b5138a2c76e756aa4c Mon Sep 17 00:00:00 2001 From: David Vail Date: Thu, 24 Sep 2026 09:30:24 -0400 Subject: [PATCH 088/327] ROX-37121: Loosen selectors for OCP plugin version selection (#23015) --- ui/apps/platform/cypress/integration-ocp/smoke.test.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui/apps/platform/cypress/integration-ocp/smoke.test.ts b/ui/apps/platform/cypress/integration-ocp/smoke.test.ts index 13cfd9b1a9cbb..ff6b5fa915c08 100644 --- a/ui/apps/platform/cypress/integration-ocp/smoke.test.ts +++ b/ui/apps/platform/cypress/integration-ocp/smoke.test.ts @@ -32,12 +32,10 @@ describe('Basic tests of the OCP plugin', () => { it('should display plugin information in cluster settings', () => { visitConsoleDynamicPluginsStatusPage(); - cy.get('td[data-label="name"]:contains("advanced-cluster-security")') + cy.get('td:has(a:contains("advanced-cluster-security"))') .parent() .within(() => { - cy.get('td[data-label="version"]') - .invoke('text') - .should('match', /^[1-9]\d*\.\d+\.\d+/); + cy.contains('td', /^[1-9]\d*\.\d+\.\d+/); }); }); }); From 88a74e8f8e3b85ad96d01916fe9c5cd2c8cf365b Mon Sep 17 00:00:00 2001 From: Tom Martensen Date: Thu, 24 Sep 2026 15:41:31 +0200 Subject: [PATCH 089/327] ROX-35277: add MERGE_WINDOW file (#22786) --- scripts/release-tools/MERGE_WINDOW | 1 + scripts/release-tools/README.md | 33 +++++++++++++----------------- 2 files changed, 15 insertions(+), 19 deletions(-) create mode 100644 scripts/release-tools/MERGE_WINDOW diff --git a/scripts/release-tools/MERGE_WINDOW b/scripts/release-tools/MERGE_WINDOW new file mode 100644 index 0000000000000..10e31f59d7a41 --- /dev/null +++ b/scripts/release-tools/MERGE_WINDOW @@ -0,0 +1 @@ +OPEN diff --git a/scripts/release-tools/README.md b/scripts/release-tools/README.md index 615f6821a4c5e..6ef54f10a1a85 100644 --- a/scripts/release-tools/README.md +++ b/scripts/release-tools/README.md @@ -1,28 +1,23 @@ -# Upstream Release Tools +# Release Helpers and Configuration -This directory contains a selection of scripts that automate selected mundane manual steps (a.k.a toil) in the upstream release process. +This directory contains a selection of helper scripts and configuration for the StackRox release process. -:warning: The scripts are bleeding-edge - there is no guarantee that they would work for you the way they work for me. Test coverage is currently not provided.:warning: +## Contents -## Meta +### Long-running cluster -This document describes the intention behind the scripts in this folder. -We acknowledge that different developers may run some parts of the release differently, use different tools, and prefer different programming languages. -Some parts could have been definitely done better than they currently are, however the balance of time, effort, and usability at the time of the release resulted exactly in this state. -Thus, it is fully okay to: +For the purposes of configuring workloads on the long-running cluster (created as part of the release process), there are directories containing configuration: -- use these scripts partially or not at all, -- replace them with something better, -- add functionalities, bugfixes, or tests. +- `kube-burner-configs` +- `long-running-cluster` -## Prerequisites +### Cluster access -The scripts described here require the following env variables to exist and have correct values: +To access long-running and upgrade clusters created during the release process, there are two scripts and a library of shared functions. -```shell -export RELEASE=3.69 -export RC_NUMBER=1 +### Merge Window -export INFRA_TOKEN="xxx" # generate under https://infra.stackrox.com/ -export JIRA_TOKEN="yyy" # generate under https://issues.redhat.com/secure/ViewProfile.jspa?selectedTab=com.atlassian.pats.pats-plugin:jira-user-personal-access-tokens -``` +When on a release branch, the `MERGE_WINDOW` file describes whether or not changes are allowed to be merged to the respective release branch. +It contains either "OPEN" or "CLOSED". +These states are set through release automation. +Follow the documented process in case you need to bypass a closed merge window. From 4010c82856f9a8ff9e97717af5afea8eabd71028 Mon Sep 17 00:00:00 2001 From: David Shrewsberry <99685630+dashrews78@users.noreply.github.com> Date: Thu, 24 Sep 2026 10:50:33 -0400 Subject: [PATCH 090/327] ROX-36978: remove potentially aggressive node settings (#22936) --- deploy/common/k8sbased.sh | 18 ++++++++++-------- .../src/test/groovy/NodeIndexTest.groovy | 8 +------- tests/e2e/lib-compat.sh | 4 ++++ tests/e2e/lib.sh | 14 ++++++++------ 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/deploy/common/k8sbased.sh b/deploy/common/k8sbased.sh index ca845f3558327..c8bd48861efb1 100644 --- a/deploy/common/k8sbased.sh +++ b/deploy/common/k8sbased.sh @@ -944,20 +944,18 @@ function launch_sensor { extra_helm_config+=(--set "virtualMachines.enabled=false") fi - # Shorten node-scan cadence for e2e (production: 5m initial, 4h interval). - # Matcher-not-ready drops the first index as unretryable; a short interval - # covers the next scan without restarting collector. - helm_args+=( - --set customize.envVars.ROX_NODE_SCANNING_MAX_INITIAL_WAIT=1s - --set customize.envVars.ROX_NODE_SCANNING_INTERVAL=30s - ) - if [[ -n "$LOGLEVEL" ]]; then helm_args+=( --set customize.envVars.LOGLEVEL="${LOGLEVEL}" ) fi + # Scan every 9-11 minutes with Helm deployments. + helm_args+=( + --set customize.envVars.ROX_NODE_SCANNING_INTERVAL=10m + --set customize.envVars.ROX_NODE_SCANNING_INTERVAL_DEVIATION=60s + ) + if [[ -n "${ROX_NETFLOW_BATCHING:-}" ]]; then helm_args+=( --set customize.envVars.ROX_NETFLOW_BATCHING="${ROX_NETFLOW_BATCHING}" @@ -1103,6 +1101,10 @@ function launch_sensor { if [[ "${#sensor_env[@]}" -gt 0 ]]; then kubectl -n "${sensor_namespace}" set env deploy/sensor "${sensor_env[@]}" fi + + # Scan every 9-11 minutes with manifest deployments. + kubectl -n "${sensor_namespace}" set env ds/collector --containers=compliance \ + ROX_NODE_SCANNING_INTERVAL=10m ROX_NODE_SCANNING_INTERVAL_DEVIATION=60s fi collector_env=() diff --git a/qa-tests-backend/src/test/groovy/NodeIndexTest.groovy b/qa-tests-backend/src/test/groovy/NodeIndexTest.groovy index 6c101aa005ca7..68963fb8e9be0 100644 --- a/qa-tests-backend/src/test/groovy/NodeIndexTest.groovy +++ b/qa-tests-backend/src/test/groovy/NodeIndexTest.groovy @@ -31,8 +31,6 @@ class NodeIndexTest extends BaseSpecification { given: "Scanner V4 is enabled and the cluster has nodes" Assume.assumeTrue("Scanner V4 node indexing is required", scannerV4Enabled) - List nodes = NodeService.getNodes() - assert nodes.size() > 0 when: "scanner-v4-matcher is ready so index reports can be enriched" @@ -40,14 +38,10 @@ class NodeIndexTest extends BaseSpecification { waitForTrue(20, 6) { orchestrator.deploymentReady(Constants.STACKROX_NAMESPACE, "scanner-v4-matcher") } - // Matcher-not-ready drops the first index report as unretryable. CI deploy - // sets ROX_NODE_SCANNING_MAX_INITIAL_WAIT=1s and ROX_NODE_SCANNING_INTERVAL=30s - // so a later scan lands after matcher is up without restarting collector. - then: "each OpenShift node scan has RPM packages, not only kubelet/kernel/runtime" withRetry(12, 30) { - nodes = NodeService.getNodes() + List nodes = NodeService.getNodes() assert nodes.size() > 0, "Expected to find at least one node" nodes.each { node -> assert node.getScan(), "Expected to find a nodeScan on the node" diff --git a/tests/e2e/lib-compat.sh b/tests/e2e/lib-compat.sh index 2ff61f96818ec..f48b7e4dfecc8 100644 --- a/tests/e2e/lib-compat.sh +++ b/tests/e2e/lib-compat.sh @@ -153,6 +153,10 @@ roxie_config_from_environment_compat() { env_with_default ROX_NETFLOW_BATCHING "true" # pkg/env/sensor.go. env_with_default ROX_NETFLOW_CACHE_LIMITING "true" # pkg/env/sensor.go. + # Scan every 9-11 minutes in roxie-deployed QA tests, including GHA. + env_with_default ROX_NODE_SCANNING_INTERVAL "10m" + env_with_default ROX_NODE_SCANNING_INTERVAL_DEVIATION "60s" + collect_feature_flags ) diff --git a/tests/e2e/lib.sh b/tests/e2e/lib.sh index dc0a4c2a6e377..545859fefc55b 100755 --- a/tests/e2e/lib.sh +++ b/tests/e2e/lib.sh @@ -297,6 +297,10 @@ securedCluster: clusterName: remote EOF + # Scan every 9-11 minutes during compatibility tests. + set_custom_env "$config_file" "securedCluster" "ROX_NODE_SCANNING_INTERVAL" "10m" + set_custom_env "$config_file" "securedCluster" "ROX_NODE_SCANNING_INTERVAL_DEVIATION" "60s" + # Expose plaintext endpoints required by endpoints_test.go. set_custom_env "$config_file" "central" "ROX_PLAINTEXT_ENDPOINTS" "8080,grpc@8081" @@ -749,13 +753,11 @@ deploy_sensor_via_operator() { fi customize_envVars="" - # Shorten node-scan cadence for e2e (production: 5m initial, 4h interval). - # Matcher-not-ready drops the first index as unretryable; a short interval - # covers the next scan without restarting collector. - customize_envVars+=$'\n - name: ROX_NODE_SCANNING_MAX_INITIAL_WAIT' - customize_envVars+=$'\n value: "1s"' + # Scan every 9-11 minutes during operator-deployed e2e tests. customize_envVars+=$'\n - name: ROX_NODE_SCANNING_INTERVAL' - customize_envVars+=$'\n value: "30s"' + customize_envVars+=$'\n value: "10m"' + customize_envVars+=$'\n - name: ROX_NODE_SCANNING_INTERVAL_DEVIATION' + customize_envVars+=$'\n value: "60s"' if [[ -n "${ROX_NETFLOW_BATCHING:-}" ]]; then customize_envVars+=$'\n - name: ROX_NETFLOW_BATCHING' customize_envVars+=$'\n value: "'"${ROX_NETFLOW_BATCHING}"'"' From f49ce99de990f3e425177609b731a10f6a2cba44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:21:23 +0200 Subject: [PATCH 091/327] chore(deps): bump github.com/aws/smithy-go from 1.28.1 to 1.28.2 (#22526) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8d1cc4b6f294d..aacefbf59faf9 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1 github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 - github.com/aws/smithy-go v1.28.1 + github.com/aws/smithy-go v1.28.2 github.com/bmatcuk/doublestar/v4 v4.10.0 github.com/cenkalti/backoff/v4 v4.3.0 github.com/cespare/xxhash/v2 v2.3.0 diff --git a/go.sum b/go.sum index 510ca0b198da8..245ebecfd2d3f 100644 --- a/go.sum +++ b/go.sum @@ -255,8 +255,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 h1:obhahQXDEdVEv8y5bTKXR30L github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0/go.mod h1:6twZZ/aXHNy1vXUO8koUbp++MYzMASkOgEBdkbJYmO0= github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 h1:Zpnqa6XtrNzXZnwbdCqHOXpXhMsa01ql/pcRQ1sb4hk= github.com/aws/aws-sdk-go-v2/service/sts v1.51.0/go.mod h1:/8JRcdTt//hG0Q4BTmGbuOplT7ABe+5rdtqUHqXvYIM= -github.com/aws/smithy-go v1.28.1 h1:R/nXH00c8qcfCzQVELtRw+eLQWtzv+VAIEFJ1/xxXlQ= -github.com/aws/smithy-go v1.28.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/smithy-go v1.28.2 h1:myhcykQcatTul2B/zITjDk203G7t0awUAs1hVry5Bvg= +github.com/aws/smithy-go v1.28.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/beevik/etree v1.7.0 h1:xjBk9O4p4x7D1YajePjfLzdaFC4/uYUENA7P0pv6gXA= From 7c49bc57558c43723bae34223c6c79b21d44e962 Mon Sep 17 00:00:00 2001 From: Brad Rogers <61400697+bradr5@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:18:02 -0500 Subject: [PATCH 092/327] ROX-37188: Remove Node Reports feature flag in UI (#23012) --- .../reports/reportsOverviewNav.test.ts | 6 +--- .../Overview/NodeCvesOverviewPage.tsx | 36 +++++++++---------- ui/apps/platform/src/routePaths.ts | 1 - ui/apps/platform/src/types/featureFlag.ts | 1 - 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/ui/apps/platform/cypress/integration/vulnerabilities/reports/reportsOverviewNav.test.ts b/ui/apps/platform/cypress/integration/vulnerabilities/reports/reportsOverviewNav.test.ts index 68e360a6b7555..49ef7cc346922 100644 --- a/ui/apps/platform/cypress/integration/vulnerabilities/reports/reportsOverviewNav.test.ts +++ b/ui/apps/platform/cypress/integration/vulnerabilities/reports/reportsOverviewNav.test.ts @@ -1,8 +1,5 @@ import withAuth from '../../../helpers/basicAuth'; -import { - interceptAndOverrideFeatureFlags, - interceptAndOverridePermissions, -} from '../../../helpers/request'; +import { interceptAndOverridePermissions } from '../../../helpers/request'; import { visit } from '../../../helpers/visit'; import pf6 from '../../../selectors/pf6'; @@ -24,7 +21,6 @@ describe('Vulnerability Reports Overview Navigation', () => { it('navigates to the node vulnerability reports page', () => { interceptAndOverridePermissions({ Cluster: 'READ_ACCESS', Node: 'READ_ACCESS' }); - interceptAndOverrideFeatureFlags({ ROX_NODE_VULNERABILITY_REPORTS: true }); visit(vulnerabilityReportsOverviewPath); diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/NodeCves/Overview/NodeCvesOverviewPage.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/NodeCves/Overview/NodeCvesOverviewPage.tsx index 7a58cf3a96787..4aae855f98bcc 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/NodeCves/Overview/NodeCvesOverviewPage.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/NodeCves/Overview/NodeCvesOverviewPage.tsx @@ -159,16 +159,14 @@ function NodeCvesOverviewPage() { trackAppliedFilter(NODE_CVE_FILTER_APPLIED, searchPayload); }} > - {isFeatureFlagEnabled('ROX_NODE_VULNERABILITY_REPORTS') && ( - { - setIsCreateViewBasedReportModalOpen(true); - }} - onSelectCreateScheduledReport={() => { - navigate(createScheduledReportForNodeVulnerabilitiesURL(querySearchFilter)); - }} - /> - )} + { + setIsCreateViewBasedReportModalOpen(true); + }} + onSelectCreateScheduledReport={() => { + navigate(createScheduledReportForNodeVulnerabilitiesURL(querySearchFilter)); + }} + /> ); @@ -301,16 +299,14 @@ function NodeCvesOverviewPage() { /> )} - {isFeatureFlagEnabled('ROX_NODE_VULNERABILITY_REPORTS') && ( - - )} + ); } diff --git a/ui/apps/platform/src/routePaths.ts b/ui/apps/platform/src/routePaths.ts index 33b931c842619..af58e7a11e86f 100644 --- a/ui/apps/platform/src/routePaths.ts +++ b/ui/apps/platform/src/routePaths.ts @@ -387,7 +387,6 @@ const routeRequirementsMap: Record = { resourceAccessRequirements: everyResource(['Deployment', 'Image']), }, 'vulnerabilities/reports/nodes': { - featureFlagRequirements: allEnabled(['ROX_NODE_VULNERABILITY_REPORTS']), resourceAccessRequirements: everyResource(['Cluster', 'Node']), }, 'vulnerabilities/user-workloads': { diff --git a/ui/apps/platform/src/types/featureFlag.ts b/ui/apps/platform/src/types/featureFlag.ts index c427d4e9101dd..4e9e1d3845522 100644 --- a/ui/apps/platform/src/types/featureFlag.ts +++ b/ui/apps/platform/src/types/featureFlag.ts @@ -12,7 +12,6 @@ export type FeatureFlagEnvVar = | 'ROX_LEGACY_SCANNER' | 'ROX_LIGHTSPEED_RISK_SUMMARY' | 'ROX_NODE_INDEX_ENABLED' - | 'ROX_NODE_VULNERABILITY_REPORTS' | 'ROX_POLICY_CRITERIA_MODAL' | 'ROX_SCANNER_V4' | 'ROX_SENSITIVE_FILE_ACTIVITY' From 92b9d3903d6bf71479241b4f93df7befcfad0b2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:37:08 +0200 Subject: [PATCH 093/327] chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /tools/test (#22577) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tools/test/go.mod | 46 ++++++------ tools/test/go.sum | 187 +++++++++++++--------------------------------- 2 files changed, 73 insertions(+), 160 deletions(-) diff --git a/tools/test/go.mod b/tools/test/go.mod index 507306861087c..4eeed19adcd11 100644 --- a/tools/test/go.mod +++ b/tools/test/go.mod @@ -9,19 +9,19 @@ require ( ) require ( - cloud.google.com/go/auth v0.5.1 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect + cloud.google.com/go/auth v0.18.2 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect - cloud.google.com/go/monitoring v1.19.0 // indirect + cloud.google.com/go/monitoring v1.24.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/s2a-go v0.1.7 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.4 // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect + github.com/googleapis/gax-go/v2 v2.17.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -31,24 +31,24 @@ require ( github.com/prometheus/prom2json v1.3.3 // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.10 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 // indirect - go.opentelemetry.io/otel v1.43.0 // indirect - go.opentelemetry.io/otel/metric v1.43.0 // indirect - go.opentelemetry.io/otel/trace v1.43.0 // indirect - golang.org/x/crypto v0.52.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.44.0 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.44.0 // indirect + golang.org/x/crypto v0.55.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/net v0.55.0 // indirect + golang.org/x/net v0.58.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect - golang.org/x/time v0.5.0 // indirect - google.golang.org/api v0.183.0 // indirect - google.golang.org/genproto v0.0.0-20240610135401-a8a62080eff3 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 // indirect - google.golang.org/grpc v1.82.1 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.41.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/api v0.264.0 // indirect + google.golang.org/genproto v0.0.0-20260128011058-8636f8732409 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/grpc v1.83.2 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/tools/test/go.sum b/tools/test/go.sum index f7ff091e5b80e..b84af8b3dd2ab 100644 --- a/tools/test/go.sum +++ b/tools/test/go.sum @@ -1,73 +1,44 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= -cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= -cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= -cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= +cloud.google.com/go/auth v0.18.2 h1:+Nbt5Ev0xEqxlNjd6c+yYUeosQ5TtEUaNcN/3FozlaM= +cloud.google.com/go/auth v0.18.2/go.mod h1:xD+oY7gcahcu7G2SG2DsBerfFxgPAJz17zz2joOFF3M= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= -cloud.google.com/go/monitoring v1.19.0 h1:NCXf8hfQi+Kmr56QJezXRZ6GPb80ZI7El1XztyUuLQI= -cloud.google.com/go/monitoring v1.19.0/go.mod h1:25IeMR5cQ5BoZ8j1eogHE5VPJLlReQ7zFp5OiLgiGZw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE= +cloud.google.com/go/monitoring v1.24.3/go.mod h1:nYP6W0tm3N9H/bOw8am7t62YTzZY+zUeQ+Bi6+2eonI= 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/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik= github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2/go.mod h1:qwXFYgsP6T7XnJtbKlf1HP8AjxZZyzxMmc+Lq5GjlU4= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -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/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA= github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ= github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQOAOHNYMALuowAnbjjEMkkWOi6A= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds= github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= -github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= -github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= -github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= +github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao= +github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8= +github.com/googleapis/gax-go/v2 v2.17.0 h1:RksgfBpxqff0EZkDWYuz9q/uWsTVz+kf43LsZ1J6SMc= +github.com/googleapis/gax-go/v2 v2.17.0/go.mod h1:mzaqghpQp4JDh3HvADwrat+6M3MOIDp5YKHhb9PAgDY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jstemmer/go-junit-report/v2 v2.1.0 h1:X3+hPYlSczH9IMIpSC9CQSZA0L+BipYafciZUWHEmsc= @@ -78,10 +49,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= @@ -98,111 +67,55 @@ github.com/stackrox/image-prefetcher/deploy v0.5.2 h1:b8VP/i6xD46aAxMHq9nLgyq4vM github.com/stackrox/image-prefetcher/deploy v0.5.2/go.mod h1:bAhl/GuKJnAchWpAYkEaoqfaJHqCkbBKhLDWHm1GXLs= github.com/stackrox/prometheus-metric-parser v0.0.0-20240718111853-be492d554cd5 h1:gAg8XyBlWRq8Ia4uTPmhNUnVYtiDN4eiqviJ+tD87xw= github.com/stackrox/prometheus-metric-parser v0.0.0-20240718111853-be492d554cd5/go.mod h1:y4d4bwvOygvByIxM/g0XCzBKMryqXilCk4Lj+mMBsVM= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0 h1:vS1Ao/R55RNV4O7TA2Qopok8yN+X0LIP6RVWLFkprck= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.52.0/go.mod h1:BMsdeOxN04K0L5FNUBfjFdvwWGNe/rkmSwH4Aelu/X0= -go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= -go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= -go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= -go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= -go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= -go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= -go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= -golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 h1:LoYXNGAShUG3m/ehNk4iFctuhGX/+R1ZpfJ4/ia80JM= golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/api v0.183.0 h1:PNMeRDwo1pJdgNcFQ9GstuLe/noWKIc89pRWRLMvLwE= -google.golang.org/api v0.183.0/go.mod h1:q43adC5/pHoSZTx5h2mSmdF7NcyfW9JuDyIOJAgS9ZQ= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240610135401-a8a62080eff3 h1:8RTI1cmuvdY9J7q/jpJWEj5UfgWjhV5MCoXaYmwLBYQ= -google.golang.org/genproto v0.0.0-20240610135401-a8a62080eff3/go.mod h1:qb66gsewNb7Ghv1enkhJiRfYGWUklv3n6G8UvprOhzA= -google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478 h1:yQugLulqltosq0B/f8l4w9VryjV+N/5gcW0jQ3N8Qec= -google.golang.org/genproto/googleapis/api v0.0.0-20260414002931-afd174a4e478/go.mod h1:C6ADNqOxbgdUUeRTU+LCHDPB9ttAMCTff6auwCVa4uc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478 h1:RmoJA1ujG+/lRGNfUnOMfhCy5EipVMyvUE+KNbPbTlw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260414002931-afd174a4e478/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= -google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/api v0.264.0 h1:+Fo3DQXBK8gLdf8rFZ3uLu39JpOnhvzJrLMQSoSYZJM= +google.golang.org/api v0.264.0/go.mod h1:fAU1xtNNisHgOF5JooAs8rRaTkl2rT3uaoNGo9NS3R8= +google.golang.org/genproto v0.0.0-20260128011058-8636f8732409 h1:VQZ/yAbAtjkHgH80teYd2em3xtIkkHd7ZhqfH2N9CsM= +google.golang.org/genproto v0.0.0-20260128011058-8636f8732409/go.mod h1:rxKD3IEILWEu3P44seeNOAwZN4SaoKaQ/2eTg4mM6EM= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU= +google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/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= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 6aeeb020bc24be504791734b856a5b9c99fc845a Mon Sep 17 00:00:00 2001 From: AJ Heflin <77823405+ajheflin@users.noreply.github.com> Date: Thu, 24 Sep 2026 16:51:59 -0400 Subject: [PATCH 094/327] fix(ui): clarify KEV policy criterion labels (#22864) Co-authored-by: Van Wilson --- .../Wizard/Step3/policyCriteriaDescriptors.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx b/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx index 1cc6724e8141c..3443e3bb474eb 100644 --- a/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx +++ b/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx @@ -684,19 +684,19 @@ export const policyCriteriaDescriptors: Descriptor[] = [ lifecycleStages: ['BUILD', 'DEPLOY', 'RUNTIME'], }, { - label: 'CISA KEV', + label: 'Known Exploited CVE', name: 'CISA KEV', - shortName: 'CISA KEV', - longName: 'CISA Known Exploited Vulnerabilities catalog', + shortName: 'Known exploited CVE', + longName: 'Known exploited vulnerabilities from the CISA KEV catalog', category: policyCriteriaCategories.IMAGE_SCANNING, type: 'radioGroup', radioButtons: [ { - text: 'CVE is in CISA KEV catalog (known exploited)', + text: 'Yes', value: true, }, { - text: 'CVE is not in CISA KEV catalog', + text: 'No', value: false, }, ], From 9d8c61a3e1f448b7fc745439b5b02c18f0dc5e4b Mon Sep 17 00:00:00 2001 From: Khushboo Sancheti <42253461+clickboo@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:15:11 -0700 Subject: [PATCH 095/327] ROX-37158: add workload type exclusion flag and capability (#22960) --- pkg/centralsensor/caps_list.go | 5 +++++ pkg/features/list.go | 3 +++ sensor/common/detector/detector.go | 6 +++++- tests/e2e/lib-compat.sh | 1 + tests/e2e/lib.sh | 7 +++++++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pkg/centralsensor/caps_list.go b/pkg/centralsensor/caps_list.go index 6a90ecbaa50b8..2cbfbdf727d5a 100644 --- a/pkg/centralsensor/caps_list.go +++ b/pkg/centralsensor/caps_list.go @@ -109,4 +109,9 @@ const ( // VirtualMachineTelemetryCap lets Central distinguish "VM scanning off on // a new Sensor" from "old Sensor that predates VM telemetry fields." VirtualMachineTelemetryCap SensorCapability = "VirtualMachineTelemetry" + + // WorkloadTypeExclusionCap identifies the capability of Sensor to honor + // Exclusion.exclude_by_type rules. Central strips those rules when syncing + // policies to Sensors that lack this capability. + WorkloadTypeExclusionCap SensorCapability = "WorkloadTypeExclusion" ) diff --git a/pkg/features/list.go b/pkg/features/list.go index dc632d82f305f..f650124fef654 100644 --- a/pkg/features/list.go +++ b/pkg/features/list.go @@ -146,6 +146,9 @@ var ( // EvaluationFilter enables evaluation filtering in policy evaluation. EvaluationFilter = registerFeature("Enable evaluation filtering in policy evaluation", "ROX_EVALUATION_FILTER", enabled) + // PolicyWorkloadTypeExclusion enables excluding all workloads of selected Kubernetes kinds (Job, CronJob) from a policy. + PolicyWorkloadTypeExclusion = registerFeature("Enable excluding all workloads of a given type from a policy", "ROX_POLICY_WORKLOAD_TYPE_EXCLUSION") + // UISecretsPageMigration enables the secrets list page under the Risk section UISecretsPageMigration = registerFeature("Display secrets list page under Risk section", "ROX_UI_SECRETS_PAGE_MIGRATION") diff --git a/sensor/common/detector/detector.go b/sensor/common/detector/detector.go index ef9b94103e2ef..91a329abf3c20 100644 --- a/sensor/common/detector/detector.go +++ b/sensor/common/detector/detector.go @@ -427,7 +427,11 @@ func (d *detectorImpl) Notify(e common.SensorComponentEvent) { } func (d *detectorImpl) Capabilities() []centralsensor.SensorCapability { - return []centralsensor.SensorCapability{centralsensor.SensorDetectionCap} + caps := []centralsensor.SensorCapability{centralsensor.SensorDetectionCap} + if features.PolicyWorkloadTypeExclusion.Enabled() { + caps = append(caps, centralsensor.WorkloadTypeExclusionCap) + } + return caps } // ProcessPolicySync reconciles policies and flush all deployments through the detector diff --git a/tests/e2e/lib-compat.sh b/tests/e2e/lib-compat.sh index f48b7e4dfecc8..85b686fcbfec2 100644 --- a/tests/e2e/lib-compat.sh +++ b/tests/e2e/lib-compat.sh @@ -205,6 +205,7 @@ collect_feature_flags() { env_with_default ROX_NODE_VULNERABILITY_REPORTS "true" env_with_default ROX_TAILORED_PROFILES "true" env_with_default ROX_INIT_CONTAINER_SUPPORT "true" + env_with_default ROX_POLICY_WORKLOAD_TYPE_EXCLUSION "true" env_with_default ROX_VIRTUAL_MACHINES_ENHANCED_DATA_MODEL "true" env_with_default ROX_LABEL_BASED_POLICY_SCOPING "true" env_with_default ROX_POLICY_CRITERIA_MODAL "true" diff --git a/tests/e2e/lib.sh b/tests/e2e/lib.sh index 545859fefc55b..3f074bec50f45 100755 --- a/tests/e2e/lib.sh +++ b/tests/e2e/lib.sh @@ -444,6 +444,7 @@ export_test_environment() { ci_export ROX_NETFLOW_BATCHING "${ROX_NETFLOW_BATCHING:-true}" ci_export ROX_NETFLOW_CACHE_LIMITING "${ROX_NETFLOW_CACHE_LIMITING:-true}" ci_export ROX_INIT_CONTAINER_SUPPORT "${ROX_INIT_CONTAINER_SUPPORT:-true}" + ci_export ROX_POLICY_WORKLOAD_TYPE_EXCLUSION "${ROX_POLICY_WORKLOAD_TYPE_EXCLUSION:-true}" ci_export ROX_VIRTUAL_MACHINES_ENHANCED_DATA_MODEL "${ROX_VIRTUAL_MACHINES_ENHANCED_DATA_MODEL:-true}" ci_export ROX_UI_SECRETS_PAGE_MIGRATION "${ROX_UI_SECRETS_PAGE_MIGRATION:-true}" ci_export ROX_AI_INTEGRATIONS "${ROX_AI_INTEGRATIONS:-true}" @@ -624,6 +625,8 @@ deploy_central_via_operator() { customize_envVars+=$'\n value: "true"' customize_envVars+=$'\n - name: ROX_INIT_CONTAINER_SUPPORT' customize_envVars+=$'\n value: "true"' + customize_envVars+=$'\n - name: ROX_POLICY_WORKLOAD_TYPE_EXCLUSION' + customize_envVars+=$'\n value: "true"' customize_envVars+=$'\n - name: ROX_VIRTUAL_MACHINES_ENHANCED_DATA_MODEL' customize_envVars+=$'\n value: "'"${ROX_VIRTUAL_MACHINES_ENHANCED_DATA_MODEL:-true}"'"' customize_envVars+=$'\n - name: ROX_UI_SECRETS_PAGE_MIGRATION' @@ -775,6 +778,10 @@ deploy_sensor_via_operator() { customize_envVars+=$'\n - name: ROX_INIT_CONTAINER_SUPPORT' customize_envVars+=$'\n value: "'"${ROX_INIT_CONTAINER_SUPPORT}"'"' fi + if [[ -n "${ROX_POLICY_WORKLOAD_TYPE_EXCLUSION:-}" ]]; then + customize_envVars+=$'\n - name: ROX_POLICY_WORKLOAD_TYPE_EXCLUSION' + customize_envVars+=$'\n value: "'"${ROX_POLICY_WORKLOAD_TYPE_EXCLUSION}"'"' + fi local scannerV4DbPersistenceYaml scannerV4DbPersistenceYaml="$(_scanner_v4_db_persistence_yaml)" From 8330205f3acfcf513fddb72638795ea7bfa7254f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Valero=20Mart=C3=ADn?= Date: Fri, 25 Sep 2026 08:53:59 +0200 Subject: [PATCH 096/327] feat: add Central version header for roxctl skew detection (#22692) Co-authored-by: Claude --- CHANGELOG.md | 2 + central/main.go | 3 + pkg/clientconn/roxctl_command_header.go | 5 + pkg/grpc/versionheader/interceptor.go | 27 +++ .../centralgrpc/connect_to_central.go | 2 +- roxctl/common/connection.go | 40 ++- roxctl/common/environment/environment-impl.go | 1 + roxctl/common/versioncheck/check.go | 87 +++++++ roxctl/common/versioncheck/check_test.go | 227 ++++++++++++++++++ tests/metadata_test.go | 40 ++- 10 files changed, 420 insertions(+), 14 deletions(-) create mode 100644 pkg/grpc/versionheader/interceptor.go create mode 100644 roxctl/common/versioncheck/check.go create mode 100644 roxctl/common/versioncheck/check_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 698d94710d7da..8ec9b661ee677 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ Changes should still be described appropriately in JIRA/doc input pages, for inc ### Technical Changes +- ROX-37048: Central writes its version in `Rh-Central-Version` gRPC response header to authenticated clients. `roxctl` compares this version with its own version and reports a warning to stderr if the version skew is outside of a supported range. + ## [5.0.0] diff --git a/central/main.go b/central/main.go index c45ba2561361c..1a2d2a2c1d37a 100755 --- a/central/main.go +++ b/central/main.go @@ -218,6 +218,7 @@ import ( "github.com/stackrox/rox/pkg/grpc/errors" "github.com/stackrox/rox/pkg/grpc/ratelimit" "github.com/stackrox/rox/pkg/grpc/routes" + "github.com/stackrox/rox/pkg/grpc/versionheader" "github.com/stackrox/rox/pkg/httputil/proxy" "github.com/stackrox/rox/pkg/logging" "github.com/stackrox/rox/pkg/memlimit" @@ -661,6 +662,8 @@ func startGRPCServer() { centralSAC.GetEnricher().GetPreAuthContextEnricher(authzTraceSink), ) + config.UnaryInterceptors = append(config.UnaryInterceptors, versionheader.CentralVersionServerInterceptor()) + // Telemetry client has to add interceptors before starting the server. c := phonehomeClient.Singleton() config.HTTPInterceptors = append(config.HTTPInterceptors, c.GetHTTPInterceptor()) diff --git a/pkg/clientconn/roxctl_command_header.go b/pkg/clientconn/roxctl_command_header.go index 80dd0bddb54d5..16750449bc5dc 100644 --- a/pkg/clientconn/roxctl_command_header.go +++ b/pkg/clientconn/roxctl_command_header.go @@ -12,3 +12,8 @@ const RoxctlCommandIndexHeader = "Rh-Roxctl-Command-Index" // ExecutionEnvironment is the HTTP header name with the custom execution // environment string. Can be supplied by roxctl, or any other API client. const ExecutionEnvironment = "Rh-Execution-Environment" + +// CentralVersionHeader is the gRPC response metadata key carrying the +// Central version. Set by Central for authenticated requests so that +// clients (e.g. roxctl) can detect version skew without an extra RPC. +const CentralVersionHeader = "Rh-Central-Version" diff --git a/pkg/grpc/versionheader/interceptor.go b/pkg/grpc/versionheader/interceptor.go new file mode 100644 index 0000000000000..98bc6b08bed29 --- /dev/null +++ b/pkg/grpc/versionheader/interceptor.go @@ -0,0 +1,27 @@ +package versionheader + +import ( + "context" + + "github.com/stackrox/rox/pkg/clientconn" + "github.com/stackrox/rox/pkg/grpc/authn" + "github.com/stackrox/rox/pkg/version" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" +) + +// CentralVersionServerInterceptor returns a gRPC unary server interceptor that sets the +// Central version in the response header for authenticated requests. +func CentralVersionServerInterceptor() grpc.UnaryServerInterceptor { + return func(ctx context.Context, req any, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) { + setVersionHeader(ctx) + return handler(ctx, req) + } +} + +func setVersionHeader(ctx context.Context) { + if authn.IdentityFromContextOrNil(ctx) == nil { + return + } + _ = grpc.SetHeader(ctx, metadata.Pairs(clientconn.CentralVersionHeader, version.GetMainVersion())) +} diff --git a/pkg/testutils/centralgrpc/connect_to_central.go b/pkg/testutils/centralgrpc/connect_to_central.go index 2c44b6a2cfa1d..ce5dc1408d8ea 100644 --- a/pkg/testutils/centralgrpc/connect_to_central.go +++ b/pkg/testutils/centralgrpc/connect_to_central.go @@ -72,7 +72,7 @@ func RoxAPIEndpoint(t testutils.T) string { // UnauthenticatedGRPCConnectionToCentral is like GRPCConnectionToCentral, // but does not inject credentials into the request. func UnauthenticatedGRPCConnectionToCentral(t *testing.T) *grpc.ClientConn { - return grpcConnectionToCentral(t, nil) + return grpcConnectionToCentral(t) } // GRPCConnectionToCentral returns a GRPC connection to Central, which can be used in E2E tests. diff --git a/roxctl/common/connection.go b/roxctl/common/connection.go index 19246279db05e..a60d8a17b16e7 100644 --- a/roxctl/common/connection.go +++ b/roxctl/common/connection.go @@ -3,6 +3,7 @@ package common import ( "context" "crypto/tls" + "io" "net" "strings" "time" @@ -16,6 +17,7 @@ import ( "github.com/stackrox/rox/pkg/roxctl/common" "github.com/stackrox/rox/roxctl/common/auth" "github.com/stackrox/rox/roxctl/common/flags" + "github.com/stackrox/rox/roxctl/common/versioncheck" http1DowngradeClient "golang.stackrox.io/grpc-http1/client" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -33,6 +35,15 @@ func WithRetryTimeout(timeout time.Duration) GRPCOption { } } +// WithVersionCheck enables version compatibility checking on gRPC responses. +// Warnings are written to w at most once when a version incompatibility is +// detected from the Central version response header. +func WithVersionCheck(w io.Writer) GRPCOption { + return func(config *grpcConfig) { + config.versionCheckWriter = w + } +} + // GetGRPCConnection gets a grpc connection to Central with the correct auth func GetGRPCConnection(am auth.Method, connectionOpts ...GRPCOption) (*grpc.ClientConn, error) { endpoint, serverName, usePlaintext, err := ConnectNames() @@ -67,14 +78,15 @@ func GetGRPCConnection(am auth.Method, connectionOpts ...GRPCOption) (*grpc.Clie } type grpcConfig struct { - usePlaintext bool - insecure bool - opts clientconn.Options - serverName string - useDirectGRPC bool - forceHTTP1 bool - endpoint string - retryTimeout time.Duration + usePlaintext bool + insecure bool + opts clientconn.Options + serverName string + useDirectGRPC bool + forceHTTP1 bool + endpoint string + retryTimeout time.Duration + versionCheckWriter io.Writer } func makeCtxWithCommandHeader(ctx context.Context) context.Context { @@ -122,13 +134,19 @@ func createGRPCConn(c grpcConfig) (*grpc.ClientConn, error) { grpc_retry.WithRetriable(shouldRetry), } + unaryInterceptors := []grpc.UnaryClientInterceptor{ + addCommandHeaderUnaryInterceptor, + grpc_retry.UnaryClientInterceptor(retryOpts...), + } + if c.versionCheckWriter != nil { + unaryInterceptors = append(unaryInterceptors, versioncheck.CentralVersionClientInterceptor(c.versionCheckWriter)) + } + grpcDialOpts := []grpc.DialOption{ grpc.WithChainStreamInterceptor( addCommandHeaderStreamInterceptor, grpc_retry.StreamClientInterceptor(retryOpts...)), - grpc.WithChainUnaryInterceptor( - addCommandHeaderUnaryInterceptor, - grpc_retry.UnaryClientInterceptor(retryOpts...)), + grpc.WithChainUnaryInterceptor(unaryInterceptors...), } if c.usePlaintext { diff --git a/roxctl/common/environment/environment-impl.go b/roxctl/common/environment/environment-impl.go index 1833f212aa496..63627eedffd89 100644 --- a/roxctl/common/environment/environment-impl.go +++ b/roxctl/common/environment/environment-impl.go @@ -94,6 +94,7 @@ func (c *cliEnvironmentImpl) GRPCConnection(connectionOpts ...common.GRPCOption) if err != nil { return nil, errors.Wrap(err, "determining auth method") } + connectionOpts = append(connectionOpts, common.WithVersionCheck(c.io.ErrOut())) connection, err := common.GetGRPCConnection(am, connectionOpts...) return connection, errors.WithStack(err) } diff --git a/roxctl/common/versioncheck/check.go b/roxctl/common/versioncheck/check.go new file mode 100644 index 0000000000000..58f979fb799fd --- /dev/null +++ b/roxctl/common/versioncheck/check.go @@ -0,0 +1,87 @@ +package versioncheck + +import ( + "context" + "fmt" + "io" + "strings" + "sync/atomic" + + "github.com/stackrox/rox/pkg/clientconn" + "github.com/stackrox/rox/pkg/version" + "github.com/stackrox/rox/pkg/version/productstreams" + "github.com/stackrox/rox/pkg/version/versioncompatibility" + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" +) + +// CentralVersionClientInterceptor returns a gRPC unary client interceptor that reads +// the Central version from response header and emits a warning if the +// versions of Central and roxctl are incompatible. The warning is emitted at most once per +// interceptor instance. +func CentralVersionClientInterceptor(w io.Writer) grpc.UnaryClientInterceptor { + var checked atomic.Bool + return func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { + var md metadata.MD + opts = append(opts, grpc.Header(&md)) + // Response headers are populated after the RPC completes. + err := invoker(ctx, method, req, reply, cc, opts...) + if vals := md.Get(clientconn.CentralVersionHeader); len(vals) > 0 { + if !checked.Swap(true) { + checkAndWarn(vals[0], w) + } + } + return err + } +} + +func checkAndWarn(centralVersion string, w io.Writer) bool { + remoteXY, err := productstreams.ParseXYFromVersionString(centralVersion) + if err != nil { + return false + } + roxctlVersion := version.GetMainVersion() + localXY, err := productstreams.ParseXYFromVersionString(roxctlVersion) + if err != nil { + return false + } + if localXY == remoteXY { + return false + } + + compat, err := versioncompatibility.ClassifyVersion(remoteXY) + if err != nil { + return false + } + if compat != versioncompatibility.IncompatibleAhead && compat != versioncompatibility.IncompatibleBehind { + return false + } + + versionRange, err := versioncompatibility.CompatibleVersions() + if err != nil { + return false + } + compatRange := formatVersionRange(versionRange) + + var direction string + if compat == versioncompatibility.IncompatibleAhead { + direction = "too old" + } else { + direction = "too new" + } + fmt.Fprintf(w, "Warning: Your roxctl %s is %s for this Central %s. "+ + "Correct functioning is not guaranteed. "+ + "Use roxctl version matching the Central version or at least such that the Central version is within the roxctl compatibility range.\n", + roxctlVersion, direction, centralVersion) + fmt.Fprintf(w, " roxctl: %s | Central: %s | Compatible Centrals: %s\n", + roxctlVersion, centralVersion, compatRange) + return true +} + +func formatVersionRange(versions []productstreams.XYVersion) string { + strs := make([]string, len(versions)) + for i, v := range versions { + strs[i] = v.String() + } + return strings.Join(strs, ", ") +} diff --git a/roxctl/common/versioncheck/check_test.go b/roxctl/common/versioncheck/check_test.go new file mode 100644 index 0000000000000..4551678f69001 --- /dev/null +++ b/roxctl/common/versioncheck/check_test.go @@ -0,0 +1,227 @@ +package versioncheck + +import ( + "bytes" + "context" + "net" + "testing" + + v1 "github.com/stackrox/rox/generated/api/v1" + "github.com/stackrox/rox/pkg/clientconn" + "github.com/stackrox/rox/pkg/grpc/authn" + "github.com/stackrox/rox/pkg/grpc/versionheader" + "github.com/stackrox/rox/pkg/version/testutils" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/test/bufconn" +) + +func TestCheckAndWarn(t *testing.T) { + cases := map[string]struct { + localVersion string + centralVersion string + expectWarning string + }{ + "same version": { + localVersion: "4.8.0", + centralVersion: "4.8.0", + }, + "same XY different patch": { + localVersion: "4.8.0", + centralVersion: "4.8.1", + }, + "compatible behind within range": { + localVersion: "4.8.0", + centralVersion: "4.6.0", + }, + "compatible ahead within range": { + localVersion: "4.8.0", + centralVersion: "4.10.0", + }, + "incompatible behind": { + localVersion: "4.8.0", + centralVersion: "4.3.0", + expectWarning: "too new", + }, + "incompatible ahead": { + localVersion: "4.8.0", + centralVersion: "4.15.0", + expectWarning: "too old", + }, + "invalid central version": { + localVersion: "4.8.0", + centralVersion: "invalid", + }, + "invalid local version": { + localVersion: "invalid", + centralVersion: "4.10.1", + }, + } + + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + testutils.SetMainVersion(t, tc.localVersion) + + var buf bytes.Buffer + result := checkAndWarn(tc.centralVersion, &buf) + + assert.Equal(t, tc.expectWarning != "", result, "return value mismatch") + if tc.expectWarning != "" { + assert.Contains(t, buf.String(), tc.expectWarning) + assert.Contains(t, buf.String(), "Compatible Centrals:") + } else { + assert.Empty(t, buf.String()) + } + }) + } +} + +func TestCentralVersionClientInterceptor(t *testing.T) { + cases := map[string]struct { + centralVersion string + expectWarning string + }{ + "incompatible version warns": { + centralVersion: "4.2.0", + expectWarning: "too new", + }, + "compatible version is silent": { + centralVersion: "4.10.6", + }, + } + + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + testutils.SetMainVersion(t, "4.8.0") + + var buf bytes.Buffer + conn := setupServerAndClient(t, + []grpc.UnaryServerInterceptor{injectVersionHeaderInterceptor(t, tc.centralVersion)}, + []grpc.UnaryClientInterceptor{CentralVersionClientInterceptor(&buf)}, + ) + + client := v1.NewMetadataServiceClient(conn) + _, err := client.GetMetadata(context.Background(), &v1.Empty{}) + require.NoError(t, err) + + if tc.expectWarning != "" { + assert.Contains(t, buf.String(), tc.expectWarning) + assert.Contains(t, buf.String(), "Compatible Centrals:") + } else { + assert.Empty(t, buf.String()) + } + }) + } +} + +func TestCentralVersionClientInterceptor_WithRealServerInterceptor(t *testing.T) { + // When the client is authenticated, CentralVersionServerInterceptor serves the same version so no warning is raised. + // When the client is not authenticated, CentralVersionServerInterceptor does not return the header and no warning is raised either. + cases := map[string]struct { + authenticated bool + }{ + "authenticated with matching versions is silent": {authenticated: true}, + "anonymous is silent": {authenticated: false}, + } + + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + testutils.SetMainVersion(t, "4.8.0") + + var serverInterceptors []grpc.UnaryServerInterceptor + if tc.authenticated { + serverInterceptors = append(serverInterceptors, injectIdentityInterceptor(t)) + } + serverInterceptors = append(serverInterceptors, versionheader.CentralVersionServerInterceptor()) + + var buf bytes.Buffer + conn := setupServerAndClient(t, + serverInterceptors, + []grpc.UnaryClientInterceptor{CentralVersionClientInterceptor(&buf)}, + ) + + client := v1.NewMetadataServiceClient(conn) + _, err := client.GetMetadata(context.Background(), &v1.Empty{}) + require.NoError(t, err) + + assert.Empty(t, buf.String()) + }) + } +} + +func TestCentralVersionClientInterceptor_WarnsOnlyOnce(t *testing.T) { + testutils.SetMainVersion(t, "4.8.0") + + var buf bytes.Buffer + conn := setupServerAndClient(t, + []grpc.UnaryServerInterceptor{ + injectIdentityInterceptor(t), + injectVersionHeaderInterceptor(t, "4.2.0"), + }, + []grpc.UnaryClientInterceptor{CentralVersionClientInterceptor(&buf)}, + ) + + client := v1.NewMetadataServiceClient(conn) + _, err := client.GetMetadata(context.Background(), &v1.Empty{}) + require.NoError(t, err) + assert.NotEmpty(t, buf.String()) + + buf.Reset() + + _, err = client.GetMetadata(context.Background(), &v1.Empty{}) + require.NoError(t, err) + assert.Empty(t, buf.String(), "warning should not be emitted a second time") +} + +// --- helpers and mocks --- + +type fakeIdentity struct { + authn.Identity +} + +type fakeMetadataServer struct { + v1.UnimplementedMetadataServiceServer +} + +func (f *fakeMetadataServer) GetMetadata(_ context.Context, _ *v1.Empty) (*v1.Metadata, error) { + return &v1.Metadata{Version: "test"}, nil +} + +func setupServerAndClient(t *testing.T, serverInterceptors []grpc.UnaryServerInterceptor, clientInterceptors []grpc.UnaryClientInterceptor) *grpc.ClientConn { + listener := bufconn.Listen(1024 * 1024) + server := grpc.NewServer(grpc.ChainUnaryInterceptor(serverInterceptors...)) + v1.RegisterMetadataServiceServer(server, &fakeMetadataServer{}) + + go func() { + assert.NoError(t, server.Serve(listener)) + }() + t.Cleanup(server.Stop) + + conn, err := grpc.NewClient("passthrough:///bufnet", + grpc.WithContextDialer(func(ctx context.Context, _ string) (net.Conn, error) { + return listener.DialContext(ctx) + }), + grpc.WithTransportCredentials(insecure.NewCredentials()), + grpc.WithChainUnaryInterceptor(clientInterceptors...), + ) + require.NoError(t, err) + t.Cleanup(func() { assert.NoError(t, conn.Close()) }) + return conn +} + +func injectIdentityInterceptor(t testing.TB) grpc.UnaryServerInterceptor { + return func(ctx context.Context, req any, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) { + ctx = authn.ContextWithIdentity(ctx, fakeIdentity{}, t) + return handler(ctx, req) + } +} + +func injectVersionHeaderInterceptor(t testing.TB, centralVersion string) grpc.UnaryServerInterceptor { + return func(ctx context.Context, req any, _ *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) { + require.NoError(t, grpc.SetHeader(ctx, metadata.Pairs(clientconn.CentralVersionHeader, centralVersion))) + return handler(ctx, req) + } +} diff --git a/tests/metadata_test.go b/tests/metadata_test.go index fa9521ff7ffb8..eb74145da8d70 100644 --- a/tests/metadata_test.go +++ b/tests/metadata_test.go @@ -10,20 +10,56 @@ import ( v1 "github.com/stackrox/rox/generated/api/v1" "github.com/stackrox/rox/pkg/buildinfo" + "github.com/stackrox/rox/pkg/clientconn" "github.com/stackrox/rox/pkg/testutils/centralgrpc" "github.com/stackrox/rox/pkg/version" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/grpc" + "google.golang.org/grpc/metadata" ) func getMetadata(t *testing.T, conn *grpc.ClientConn) *v1.Metadata { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() service := v1.NewMetadataServiceClient(conn) - metadata, err := service.GetMetadata(ctx, &v1.Empty{}) + resp, err := service.GetMetadata(ctx, &v1.Empty{}) require.NoError(t, err) - return metadata + return resp +} + +func TestCentralVersionHeader(t *testing.T) { + conn := centralgrpc.GRPCConnectionToCentral(t) + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + var metadataMD metadata.MD + resp, err := v1.NewMetadataServiceClient(conn).GetMetadata(ctx, &v1.Empty{}, grpc.Header(&metadataMD)) + require.NoError(t, err) + + metadataVals := metadataMD.Get(clientconn.CentralVersionHeader) + require.Len(t, metadataVals, 1, "expected %s response header from GetMetadata", clientconn.CentralVersionHeader) + assert.Equal(t, resp.GetVersion(), metadataVals[0]) + + pingVals := pingAndGetHeader(t, conn, ctx) + require.Len(t, pingVals, 1, "expected %s response header from Ping", clientconn.CentralVersionHeader) + assert.Equal(t, metadataVals[0], pingVals[0], "version header must be consistent across services") +} + +func TestCentralVersionHeader_AbsentForAnonymous(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + vals := pingAndGetHeader(t, centralgrpc.UnauthenticatedGRPCConnectionToCentral(t), ctx) + assert.Empty(t, vals, "anonymous requests must not receive %s", clientconn.CentralVersionHeader) +} + +func pingAndGetHeader(t *testing.T, conn *grpc.ClientConn, ctx context.Context) []string { + var md metadata.MD + _, err := v1.NewPingServiceClient(conn).Ping(ctx, &v1.Empty{}, grpc.Header(&md)) + require.NoError(t, err) + return md.Get(clientconn.CentralVersionHeader) } func TestMetadataIsSetCorrectly(t *testing.T) { From ad44dd4c54dacadfd05859bcd6da77e0bb98d696 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:04 +0200 Subject: [PATCH 097/327] chore(deps): bump github.com/onsi/gomega from 1.42.1 to 1.43.1 (#23069) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index aacefbf59faf9..03585d079f1ea 100644 --- a/go.mod +++ b/go.mod @@ -92,7 +92,7 @@ require ( github.com/nxadm/tail v1.4.11 github.com/olekukonko/tablewriter v1.1.4 github.com/onsi/ginkgo/v2 v2.32.1 - github.com/onsi/gomega v1.42.1 + github.com/onsi/gomega v1.43.1 github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.1 github.com/openshift-online/ocm-sdk-go v0.1.509 diff --git a/go.sum b/go.sum index 245ebecfd2d3f..a1b8d161668ef 100644 --- a/go.sum +++ b/go.sum @@ -1074,8 +1074,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.42.1 h1:iN1rCUX+44NZ1Dc97MPoeFYbFR0vh8zxoxMFwKdyZ6I= -github.com/onsi/gomega v1.42.1/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= +github.com/onsi/gomega v1.43.1 h1:vGIPFuYrIO6/0Z09s0I0QQQgFchiX4+tb1re3MScJYo= +github.com/onsi/gomega v1.43.1/go.mod h1:e/C2HwaZ1DhvjzXXuFhcR7hY7Sh9pl7MmoWKEjzwcdA= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= From 9e3bf38519fde104271ffb067f1f1e01243cea06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:09 +0200 Subject: [PATCH 098/327] chore(deps): bump github.com/RoaringBitmap/roaring/v2 from 2.26.0 to 2.29.0 (#23067) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 03585d079f1ea..78f190e0edf94 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/Masterminds/sprig/v3 v3.3.0 github.com/NYTimes/gziphandler v1.1.1 github.com/PagerDuty/go-pagerduty v1.8.0 - github.com/RoaringBitmap/roaring/v2 v2.26.0 + github.com/RoaringBitmap/roaring/v2 v2.29.0 github.com/Shopify/toxiproxy/v2 v2.12.0 github.com/VividCortex/ewma v1.2.0 github.com/adhocore/gronx v1.20.3 diff --git a/go.sum b/go.sum index a1b8d161668ef..f6cf445d5aa6b 100644 --- a/go.sum +++ b/go.sum @@ -171,8 +171,8 @@ github.com/RaduBerinde/axisds v0.1.0 h1:YItk/RmU5nvlsv/awo2Fjx97Mfpt4JfgtEVAGPrL github.com/RaduBerinde/axisds v0.1.0/go.mod h1:UHGJonU9z4YYGKJxSaC6/TNcLOBptpmM5m2Cksbnw0Y= github.com/RaduBerinde/btreemap v0.0.0-20250419174037-3d62b7205d54 h1:bsU8Tzxr/PNz75ayvCnxKZWEYdLMPDkUgticP4a4Bvk= github.com/RaduBerinde/btreemap v0.0.0-20250419174037-3d62b7205d54/go.mod h1:0tr7FllbE9gJkHq7CVeeDDFAFKQVy5RnCSSNBOvdqbc= -github.com/RoaringBitmap/roaring/v2 v2.26.0 h1:K30ZxF4vZcIKvJsbmgfiep2K64f+dILJqkYGoj4xnwU= -github.com/RoaringBitmap/roaring/v2 v2.26.0/go.mod h1:BZufmFbox589n3j5eOmyTaLSGXbRLc2LmQvjKjzSEGU= +github.com/RoaringBitmap/roaring/v2 v2.29.0 h1:jSjxqZEqiF9W5dHUFsemupb9bnLaQJwZVe5yMetbsZg= +github.com/RoaringBitmap/roaring/v2 v2.29.0/go.mod h1:BZufmFbox589n3j5eOmyTaLSGXbRLc2LmQvjKjzSEGU= github.com/Shopify/toxiproxy/v2 v2.12.0 h1:d1x++lYZg/zijXPPcv7PH0MvHMzEI5aX/YuUi/Sw+yg= github.com/Shopify/toxiproxy/v2 v2.12.0/go.mod h1:R9Z38Pw6k2cGZWXHe7tbxjGW9azmY1KbDQJ1kd+h7Tk= github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= From 44fddf00bce6ce722a7d0d4bcc6887b5fbe695a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:13 +0200 Subject: [PATCH 099/327] chore(deps): bump the aws-sdk-go-v2 group with 2 updates (#23065) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 78f190e0edf94..d72381dc6006c 100644 --- a/go.mod +++ b/go.mod @@ -29,9 +29,9 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.33.5 github.com/aws/aws-sdk-go-v2/credentials v1.20.5 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8 github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2 github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 github.com/aws/smithy-go v1.28.2 diff --git a/go.sum b/go.sum index f6cf445d5aa6b..b9b635990640c 100644 --- a/go.sum +++ b/go.sum @@ -223,8 +223,8 @@ github.com/aws/aws-sdk-go-v2/credentials v1.20.5 h1:wklUVvHMc9xTQ3rcp49/ISpiMnhb github.com/aws/aws-sdk-go-v2/credentials v1.20.5/go.mod h1:fyEdrn6ccLFOkoK84j5bQyGTxp9zPt5l2XMhxf4DVZs= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 h1:AM4hHjww+PSFtt6E+UrBrPlZkWsePCLEt9AjkfQX+yM= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0/go.mod h1:3x/yXezeQjpOvBb4jEMxrS8SXvpdvJ5abv6l5c1gWM8= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7 h1:omtMzSxsMhRDJzG/1bzT4dLA+jybY/nQLwEuoxt52yI= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.7/go.mod h1:oTPLfqQ08mCCN1qIkuZUsu0x6Iv/N7YEDax5qhCwN+o= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8 h1:U3VOx/+sECXsoZYT9/mUntdGQNaWHDpJk/Tp6SCfOGk= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8/go.mod h1:QVOKByJxYvyW5jiGDh36l4dnTEq+mCZrsenNyrhbs7Q= github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 h1:Hp/VgjP0BysR3OgLlR057Vz2LcbbVnoWeJ+3qWiS/fY= github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3/go.mod h1:nwGV5qw7F1IZPgxCvA/ph8N2TAuz+BkRG/bXn808qMA= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 h1:MUaM4f+kj1ZIBPZfUS8cxP1GKXXZtHJjAthy93AN7SM= @@ -243,8 +243,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 h1:L8vIOxylma91Tc github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3/go.mod h1:fmPIZQzTExYuBNWFyi1P7IoDjvskgphXqK1yObMzusM= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0 h1:uB8ymkVosyourmGXCZHyWhJ4wuKA4xq3ii2dVMPtBZY= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0/go.mod h1:rK4RITSY/qJw3qVJ7p19fceOWuvrisqqOChFkX05n5I= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1 h1:cFHmwLxZPvtoAlo79MboURL2+7b0TMHycnrcf5VZNXk= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.1/go.mod h1:/uA+2Qj4jd5qBWagVC1AyzzDFXVK997E7U04w7Kw0wI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2 h1:2qsrxKfGgJrHBp4udIsZZVJGTX5lySaY9cJbZRB4J2Y= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2/go.mod h1:/uA+2Qj4jd5qBWagVC1AyzzDFXVK997E7U04w7Kw0wI= github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 h1:sccblHjf5Swf5xjlBTAUT0Jc0m/KZW0PQP511Cto83A= github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0/go.mod h1:39oJ1/fl7d10t0e9rtp/a+50tRLyDPSaccCZF3xXrcc= github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 h1:ZD5qFpWcaOKdTuhBi431pIDkCgrMkMlMT6jlpSPoIRI= From e45378f876ddc88c048540dc393824a233723b92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:28 +0200 Subject: [PATCH 100/327] chore(deps): bump google.golang.org/api from 0.298.0 to 0.299.0 (#23070) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 24 ++++++++++++------------ go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/go.mod b/go.mod index d72381dc6006c..b592b9c4e621a 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.7 require ( cloud.google.com/go/artifactregistry v1.26.0 - cloud.google.com/go/compute/metadata v0.9.0 + cloud.google.com/go/compute/metadata v0.9.1 cloud.google.com/go/containeranalysis v0.19.0 cloud.google.com/go/securitycenter v1.46.0 cloud.google.com/go/storage v1.64.0 @@ -147,7 +147,7 @@ require ( golang.org/x/crypto v0.57.0 golang.org/x/mod v0.41.0 golang.org/x/net v0.59.0 - golang.org/x/oauth2 v0.36.0 + golang.org/x/oauth2 v0.37.0 golang.org/x/sync v0.23.0 golang.org/x/sys v0.48.0 golang.org/x/term v0.46.0 @@ -155,10 +155,10 @@ require ( golang.org/x/time v0.16.0 golang.org/x/tools v0.50.0 golang.stackrox.io/grpc-http1 v0.5.1 - google.golang.org/api v0.298.0 + google.golang.org/api v0.299.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d - google.golang.org/grpc v1.83.2 + google.golang.org/grpc v1.84.0 google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 google.golang.org/protobuf v1.36.12 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 @@ -189,7 +189,7 @@ require ( al.essio.dev/pkg/shellescape v1.6.0 // indirect cel.dev/expr v0.25.2 // indirect cloud.google.com/go v0.123.0 // indirect - cloud.google.com/go/auth v0.23.2 // indirect + cloud.google.com/go/auth v0.23.3 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/iam v1.13.0 // indirect cloud.google.com/go/longrunning v1.2.0 // indirect @@ -200,7 +200,7 @@ require ( github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 // indirect github.com/ComplianceAsCode/compliance-sdk v0.0.0-20250925092238-0b432985772e // indirect github.com/DataDog/zstd v1.5.7 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.57.0 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.57.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect @@ -269,7 +269,7 @@ require ( github.com/facebookincubator/flog v0.0.0-20190930132826-d2511d0ce33c // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/fatih/structs v1.1.0 // indirect - github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/felixge/httpsnoop v1.1.0 // indirect github.com/fsnotify/fsnotify v1.10.1 // indirect github.com/fxamacker/cbor/v2 v2.9.1 // indirect github.com/getsentry/sentry-go v0.34.0 // indirect @@ -317,8 +317,8 @@ require ( github.com/google/cel-go v0.31.0 // indirect github.com/google/go-querystring v1.2.0 // indirect github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 // indirect - github.com/google/s2a-go v0.1.9 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.20 // indirect + github.com/google/s2a-go v0.1.10 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.22 // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/grafana/pyroscope-go/godeltaprof v0.1.11 // indirect @@ -417,7 +417,7 @@ require ( github.com/spdx/tools-golang v0.5.7 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect - github.com/spiffe/go-spiffe/v2 v2.7.0 // indirect + github.com/spiffe/go-spiffe/v2 v2.8.1 // indirect github.com/stackrox/dotnet-scraper v0.0.0-20201023051640-72ef543323dd // indirect github.com/stackrox/istio-cves v0.0.0-20221007013142-0bde9b541ec8 // indirect github.com/stackrox/k8s-cves v0.0.0-20220818200547-7d0d1420c58d // indirect @@ -445,7 +445,7 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect go.opentelemetry.io/otel v1.45.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 // indirect @@ -458,7 +458,7 @@ require ( go.yaml.in/yaml/v2 v2.4.4 // indirect golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect diff --git a/go.sum b/go.sum index b9b635990640c..28eccdfe29a7a 100644 --- a/go.sum +++ b/go.sum @@ -34,8 +34,8 @@ cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= cloud.google.com/go/artifactregistry v1.26.0 h1:iq5kkdY2FJY8RkkNghUelb3EOcqyy7dVhfDGVk/Xw9g= cloud.google.com/go/artifactregistry v1.26.0/go.mod h1:c5FPi5GtDBP+OAr5kKhCBNQDT9ZgAyobXQjekx93VWs= -cloud.google.com/go/auth v0.23.2 h1:pxSCpfiji41hpzpPdMCftEUCezpgpqmmDdYiAjCKXxo= -cloud.google.com/go/auth v0.23.2/go.mod h1:4DhBRcqvtljQN3dJ57qtqbib5ZGCYE5f2crfiiC2EM0= +cloud.google.com/go/auth v0.23.3 h1:UMK+oBtuNGMCR/6i6mmySUItqjOazpJrbmZyhGbGBWo= +cloud.google.com/go/auth v0.23.3/go.mod h1:fClbry28fo7XkxhSeT6AQtAVAp6Jy0fW9N99PoPNPFM= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= @@ -45,8 +45,8 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= -cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +cloud.google.com/go/compute/metadata v0.9.1 h1:CTE1OWBQ0vnF5uHwdFAQJvMQ0Fi/KRcqqKTo9V0F8Ik= +cloud.google.com/go/compute/metadata v0.9.1/go.mod h1:NtnlvB6X3t4R6xSWyVX/ZWk493PCxGQlhI/iqxh4M8I= cloud.google.com/go/containeranalysis v0.19.0 h1:89ZhFvJHWzX9/jUJy/IEVbtSa2hv4+NtsvwWMEsUYnY= cloud.google.com/go/containeranalysis v0.19.0/go.mod h1:Zq0XHzUIa0oTa7H6aSR8HWqeJnoRI9syUcYJzfozjZQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= @@ -135,8 +135,8 @@ github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0 h1:l7+6kwRMJNwdCvYdDl7Eax+wzEYHSnNY7zrrfbhDdTA= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.33.0/go.mod h1:pJTkW8hEUIIi3Pf65lPZOnn4Y81yCllX6IWk2jNXdkM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0 h1:yzIYdwuro811Z27D3T80Wkd3rqZzb0K43nner7Eh1yE= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0/go.mod h1:pJTkW8hEUIIi3Pf65lPZOnn4Y81yCllX6IWk2jNXdkM= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.57.0 h1:jLdiS1vO+XJFyDSWRHBx56r4s/NNtcl5J6KyCcWUX/w= github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.57.0/go.mod h1:8lmpHY+1VRoteiOwyrQMDt1YGXOrFKCz+1wJW7n3ODY= github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.57.0 h1:cSjUzZ7KU8hicTgzaSv9NmSyM9fTVK3y5lsBUl3wOis= @@ -452,8 +452,8 @@ github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.1.0 h1:3YtUj32ZZkqZtt3sZZsClsymw/QDuVfpNhoA31zeORc= +github.com/felixge/httpsnoop v1.1.0/go.mod h1:Zqxgdd+1Rkcz8euOqdr7lqgCRJztwr5hp9vDSi5UZCE= github.com/foxcpp/go-mockdns v1.2.0 h1:omK3OrHRD1IWJz1FuFBCFquhXslXoF17OvBS6JPzZF0= github.com/foxcpp/go-mockdns v1.2.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -727,16 +727,16 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 h1:LMLX+LgTNWpfvCBdFebv6EsYotImrt/Ppc5cXIriCSo= github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3/go.mod h1:jl5iWTm0/hd5PjEYEOuwAJ57L/CibdZfrqZ5XA5GrCk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= -github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= +github.com/google/s2a-go v0.1.10 h1:EMp+aOuXN6l8cE/gjF5Bt+vyZxsUuyCWe9chDWR/+uU= +github.com/google/s2a-go v0.1.10/go.mod h1:pz4tyvwXvJLLbyrkh6FW1eS2zPUXMaTmyNhYtyP2tNw= github.com/google/trillian v1.7.3 h1:hziW+vo4czis48tzx2GK5xRBl/ZxBA9B0/UR5avXOro= github.com/google/trillian v1.7.3/go.mod h1:qh8iy4x/GvnVXUBd5pK4oncuT1Y9vVYfibQVsR/WpKg= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 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/googleapis/enterprise-certificate-proxy v0.3.20 h1:t/xL64VUoN69MuMRQuJETqYGOw4Z9mSRJK9epIEtwFk= -github.com/googleapis/enterprise-certificate-proxy v0.3.20/go.mod h1:L3D/IQExI6LqEjBdXcZQ1WluSgigQmSwBboFstVPM4w= +github.com/googleapis/enterprise-certificate-proxy v0.3.22 h1:NU4XpII6jD+Dxcot94fqjE+AfJoE/lQP9q3faYGzC/c= +github.com/googleapis/enterprise-certificate-proxy v0.3.22/go.mod h1:L3D/IQExI6LqEjBdXcZQ1WluSgigQmSwBboFstVPM4w= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1287,8 +1287,8 @@ github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3A github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= -github.com/spiffe/go-spiffe/v2 v2.7.0 h1:uXe1MflJoHw58wAUvxVlcM7WpKtijWG7I1UidcGh6g4= -github.com/spiffe/go-spiffe/v2 v2.7.0/go.mod h1:47Q0Q9/AqGha8QLHp+kxpH4Wca7X7EnOtlIJy3mxZ3U= +github.com/spiffe/go-spiffe/v2 v2.8.1 h1:eXZMLsu+3MLEPJyGJkolqtVrteZfQdUpOWj6LTiDl/E= +github.com/spiffe/go-spiffe/v2 v2.8.1/go.mod h1:47Q0Q9/AqGha8QLHp+kxpH4Wca7X7EnOtlIJy3mxZ3U= github.com/stackrox/docker-registry-client v0.2.0 h1:91TLimNkFgdwO9QF8rUC57DoLGiTAgDKm2KhLI2xkLU= github.com/stackrox/docker-registry-client v0.2.0/go.mod h1:4TU+pA11iczIvhtL0own2OJcJXc1o26tBHDivaXhlZU= github.com/stackrox/dotnet-scraper v0.0.0-20201023051640-72ef543323dd h1:vEjp7Q66zd4W72//Uk3uyVN50Mh/nFLbN9pb7CVK7mE= @@ -1462,8 +1462,8 @@ go.opentelemetry.io/contrib/exporters/autoexport v0.67.0 h1:4fnRcNpc6YFtG3zsFw9a go.opentelemetry.io/contrib/exporters/autoexport v0.67.0/go.mod h1:qTvIHMFKoxW7HXg02gm6/Wofhq5p3Ib/A/NNt1EoBSQ= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 h1:0Qx7VGBacMm9ZENQ7TnNObTYI4ShC+lHI16seduaxZo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0/go.mod h1:Sje3i3MjSPKTSPvVWCaL8ugBzJwik3u4smCjUeuupqg= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 h1:CqXxU8VOmDefoh0+ztfGaymYbhdB/tT3zs79QaZTNGY= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0/go.mod h1:BuhAPThV8PBHBvg8ZzZ/Ok3idOdhWIodywz2xEcRbJo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU= go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 h1:Dn8rkudDzY6KV9dr/D/bTUuWgqDf9xe0rr4G2elrn0Y= @@ -1961,8 +1961,8 @@ google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdr google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= -google.golang.org/api v0.298.0 h1:YW18RkHBMZBA1ergX0m4biagzgbiPTb2uTsRsDPWNRY= -google.golang.org/api v0.298.0/go.mod h1:02qB8+Ox1ZFzcaKFMguy1nQLJmSIyvV6Ff4txJEXtl4= +google.golang.org/api v0.299.0 h1:b3K+ydSMd0kh6TQI6bJyApRQfqQX2MfSOaVkpM59mJw= +google.golang.org/api v0.299.0/go.mod h1:zlR3GVA8b2R5nv5Ij9UWe37StVB3cxDD7DBFi4ZFsHw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2038,8 +2038,8 @@ google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d h1:C9v1o0/4quuhOAf google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d/go.mod h1:Wz2wFJntZFmLGo7pLDXZ3wYk5hyc0Mb+SkHhDDXT+lU= google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688 h1:cYNAzI2sUwhmCcoj9TxvihSrqsxt6uIkj3rDRhSDmW4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260819154853-08b0e4226688/go.mod h1:DjtHYE8FKJLivXcBEjGwndXfIC23G0VpXiXKqG179uA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 h1:b0xCahf3FK2m2Cv0p4vTozGPWncCvLfwV86UNg8xWU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459/go.mod h1:OaIUM3+LpYcK2GXM4FTmhWoIq371Owdr+Cc7/BsYHHc= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2068,8 +2068,8 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU= -google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8= +google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0= +google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 h1:ExN12ndbJ608cboPYflpTny6mXSzPrDLh0iTaVrRrds= google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6/go.mod h1:6ytKWczdvnpnO+m+JiG9NjEDzR1FJfsnmJdG7B8QVZ8= From 79b9f802039c826bd6ab7230ed6797014a535fbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:45 +0200 Subject: [PATCH 101/327] chore(deps): bump github.com/prometheus/common from 0.70.1 to 0.71.0 (#23066) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b592b9c4e621a..1833db41889be 100644 --- a/go.mod +++ b/go.mod @@ -110,7 +110,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 github.com/prometheus/client_golang v1.24.1 github.com/prometheus/client_model v0.6.2 - github.com/prometheus/common v0.70.1 + github.com/prometheus/common v0.71.0 github.com/quay/claircore v1.6.1-0.20260916195820-3902930ff815 github.com/quay/claircore/toolkit v1.7.0 github.com/quay/zlog/v2 v2.1.1 diff --git a/go.sum b/go.sum index 28eccdfe29a7a..9ed09da42219f 100644 --- a/go.sum +++ b/go.sum @@ -1160,8 +1160,8 @@ github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7q github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.70.1 h1:1HvjP4D5oL3t8RsPlwxA9onvvStjtIHYE5XuuwOi/PY= -github.com/prometheus/common v0.70.1/go.mod h1:VdFUQDMZK3VLkurFUVhia6uys/0suUp86TJz5qbJRhc= +github.com/prometheus/common v0.71.0 h1:9KDAKb7Mj3HEVKyFCK6Dc/HIwlBzZIN2l7/lrHl3KK8= +github.com/prometheus/common v0.71.0/go.mod h1:CLJ5H8TEsGX8bl31BdMkfhIZ+QmZ9tBPPotUxUbfcmk= github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= From bac2a18decfb460494441fbc361da51895cc0e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 13:40:02 +0200 Subject: [PATCH 102/327] chore(deps): bump github.com/containerd/containerd from 1.7.33 to 1.7.35 in /operator/tools/operator-sdk (#22758) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/operator-sdk/go.mod | 2 +- operator/tools/operator-sdk/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/operator/tools/operator-sdk/go.mod b/operator/tools/operator-sdk/go.mod index f235f2ab529e9..017715960a436 100644 --- a/operator/tools/operator-sdk/go.mod +++ b/operator/tools/operator-sdk/go.mod @@ -28,7 +28,7 @@ require ( github.com/chai2010/gettext-go v1.0.2 // indirect github.com/clipperhouse/uax29/v2 v2.6.0 // indirect github.com/containerd/cgroups/v3 v3.1.2 // indirect - github.com/containerd/containerd v1.7.33 // indirect + github.com/containerd/containerd v1.7.35 // indirect github.com/containerd/containerd/api v1.10.0 // indirect github.com/containerd/continuity v0.4.5 // indirect github.com/containerd/errdefs v1.0.0 // indirect diff --git a/operator/tools/operator-sdk/go.sum b/operator/tools/operator-sdk/go.sum index 89b1b7ac57e76..c16a85d690c9e 100644 --- a/operator/tools/operator-sdk/go.sum +++ b/operator/tools/operator-sdk/go.sum @@ -58,8 +58,8 @@ github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsV github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/cgroups/v3 v3.1.2 h1:OSosXMtkhI6Qove637tg1XgK4q+DhR0mX8Wi8EhrHa4= github.com/containerd/cgroups/v3 v3.1.2/go.mod h1:PKZ2AcWmSBsY/tJUVhtS/rluX0b1uq1GmPO1ElCmbOw= -github.com/containerd/containerd v1.7.33 h1:iAkYGC/ifR/V+0eR4iXWHNGYUF0DF2PmGV5iz4Irj5M= -github.com/containerd/containerd v1.7.33/go.mod h1:gSbSCVjPCdkfJCjyrzz7aRC+xFlqVbatNpfHfVCYGUM= +github.com/containerd/containerd v1.7.35 h1:7AU2T1qI2OdNBmKkreWZ7kASHUNFItN5Hgejd9sY938= +github.com/containerd/containerd v1.7.35/go.mod h1:ozI//0TomTCLPhQREnx0IXDIQMg+Fk7yTtg9fNvU8EQ= github.com/containerd/containerd/api v1.10.0 h1:5n0oHYVBwN4VhoX9fFykCV9dF1/BvAXeg2F8W6UYq1o= github.com/containerd/containerd/api v1.10.0/go.mod h1:NBm1OAk8ZL+LG8R0ceObGxT5hbUYj7CzTmR3xh0DlMM= github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= From f57b351187f116a50a1f22f7575be0d154aaea67 Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Fri, 25 Sep 2026 18:10:46 +0200 Subject: [PATCH 103/327] chore(ci): Make byodb tests opt-in via label (#23049) --- .github/workflows/e2e-dispatch.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-dispatch.yaml b/.github/workflows/e2e-dispatch.yaml index 50696c5561e63..178a967d166e7 100644 --- a/.github/workflows/e2e-dispatch.yaml +++ b/.github/workflows/e2e-dispatch.yaml @@ -105,7 +105,7 @@ jobs: print(f'{k} = {v}') jobs_registry = [ - Job(name='e2e-byodb-tests'), + Job(name='e2e-byodb-tests', require_pr_label=True), Job(name='e2e-db-backup-restore-tests'), Job(name='e2e-gke-upgrade-tests'), Job(name='e2e-nongroovy-tests'), From 241e72d82e2da997793eb14596406ff4dab13413 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Sep 2026 19:38:42 +0200 Subject: [PATCH 104/327] chore(deps): bump github.com/bufbuild/buf from 1.72.0 to 1.73.0 in /tools/proto (#22852) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: StackRox PR Fixxxer --- tools/proto/go.mod | 78 ++++++++++---------- tools/proto/go.sum | 173 ++++++++++++++++++++++----------------------- 2 files changed, 125 insertions(+), 126 deletions(-) diff --git a/tools/proto/go.mod b/tools/proto/go.mod index 756534936b74e..cf4a606c9fb9a 100644 --- a/tools/proto/go.mod +++ b/tools/proto/go.mod @@ -1,35 +1,36 @@ module github.com/stackrox/stackrox/tools/proto -go 1.26.3 +go 1.26.7 require ( - github.com/bufbuild/buf v1.72.0 + github.com/bufbuild/buf v1.73.0 github.com/favadi/protoc-go-inject-tag v1.4.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2 google.golang.org/protobuf v1.36.12 ) require ( - buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20260626152828-968bf0468096.1 // indirect - buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.11-20250109164928-1da0de137947.1 // indirect - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260709200747-435963d16310.1 // indirect - buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260713175918-10d915f5b43b.1 // indirect - buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.11-20260713175918-10d915f5b43b.1 // indirect - buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1 // indirect - buf.build/go/app v0.2.1-0.20260626143626-be153867abea // indirect + buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.2 // indirect + buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.12-20250109164928-1da0de137947.2 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.12-20260825204119-511051f7f437.2 // indirect + buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260831211851-b4432e12a6e7.1 // indirect + buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.12-20260831211851-b4432e12a6e7.2 // indirect + buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.12-20241007202033-cf42259fcbfc.2 // indirect + buf.build/go/app v0.2.1-0.20260824172350-b0e76892c61a // indirect buf.build/go/bufplugin v0.10.0 // indirect buf.build/go/bufprivateusage v0.1.0 // indirect buf.build/go/interrupt v1.1.0 // indirect - buf.build/go/protovalidate v1.2.0 // indirect + buf.build/go/protovalidate v1.4.0 // indirect buf.build/go/protoyaml v0.7.0 // indirect buf.build/go/spdx v0.2.0 // indirect buf.build/go/standard v0.1.1-0.20260325175353-2b287e071df5 // indirect - cel.dev/expr v0.25.2 // indirect + cel.dev/cel-go v0.32.0 // indirect + cel.dev/expr v0.25.3 // indirect connectrpc.com/connect v1.20.0 // indirect connectrpc.com/otelconnect v0.9.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/antlr4-go/antlr/v4 v4.13.1 // indirect - github.com/bufbuild/protocompile v0.14.2-0.20260716165721-bb5762d29672 // indirect + github.com/bufbuild/protocompile v0.14.2-0.20260910151042-7436f7c76201 // indirect github.com/bufbuild/protoplugin v0.0.0-20260414125817-25d1d281b46b // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cli/browser v1.3.0 // indirect @@ -37,37 +38,36 @@ require ( github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/cli v29.6.1+incompatible // indirect - github.com/docker/docker-credential-helpers v0.9.8 // indirect - github.com/docker/go-connections v0.7.0 // indirect + github.com/docker/cli v29.8.0+incompatible // indirect + github.com/docker/docker-credential-helpers v0.9.9 // indirect + github.com/docker/go-connections v0.8.1 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.1.0 // indirect - github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/logr v1.4.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/gofrs/flock v0.13.0 // indirect - github.com/google/cel-go v0.29.2 // indirect - github.com/google/go-containerregistry v0.21.7 // indirect + github.com/gofrs/flock v0.13.1 // indirect + github.com/google/go-containerregistry v0.22.1 // indirect github.com/google/uuid v1.6.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jdx/go-netrc v1.0.0 // indirect - github.com/klauspost/compress v1.19.0 // indirect + github.com/klauspost/compress v1.20.0 // indirect github.com/klauspost/pgzip v1.2.6 // indirect github.com/mattn/go-colorable v0.1.15 // indirect - github.com/mattn/go-isatty v0.0.23 // indirect + github.com/mattn/go-isatty v0.0.24 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/moby/moby/api v1.55.0 // indirect - github.com/moby/moby/client v0.5.0 // indirect + github.com/moby/moby/api v1.56.0 // indirect + github.com/moby/moby/client v0.6.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect - github.com/petermattis/goid v0.0.0-20260716134002-a9b348f0a2b9 // indirect + github.com/petermattis/goid v0.0.0-20260820044319-269ab09b5261 // indirect github.com/quic-go/qpack v0.6.0 // indirect - github.com/quic-go/quic-go v0.60.0 // indirect + github.com/quic-go/quic-go v0.62.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/cors v1.11.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/segmentio/asm v1.2.1 // indirect github.com/segmentio/encoding v0.5.4 // indirect - github.com/sirupsen/logrus v1.9.4 // indirect + github.com/sirupsen/logrus v1.10.2 // indirect github.com/spf13/cobra v1.10.2 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/tetratelabs/wazero v1.12.0 // indirect @@ -77,24 +77,24 @@ require ( go.lsp.dev/protocol v0.12.0 // indirect go.lsp.dev/uri v0.3.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect - go.opentelemetry.io/otel v1.44.0 // indirect - go.opentelemetry.io/otel/metric v1.44.0 // indirect - go.opentelemetry.io/otel/trace v1.44.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 // indirect + go.opentelemetry.io/otel v1.46.0 // indirect + go.opentelemetry.io/otel/metric v1.46.0 // indirect + go.opentelemetry.io/otel/trace v1.46.0 // indirect go.uber.org/mock v0.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.28.0 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.54.0 // indirect - golang.org/x/exp v0.0.0-20260709172345-9ea1abe57597 // indirect - golang.org/x/mod v0.38.0 // indirect - golang.org/x/net v0.57.0 // indirect - golang.org/x/sync v0.22.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + golang.org/x/crypto v0.56.0 // indirect + golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa // indirect + golang.org/x/mod v0.40.0 // indirect + golang.org/x/net v0.58.0 // indirect + golang.org/x/sync v0.23.0 // indirect golang.org/x/sys v0.47.0 // indirect golang.org/x/term v0.45.0 // indirect - golang.org/x/text v0.40.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260715232425-e75dac1f907d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260715232425-e75dac1f907d // indirect + golang.org/x/text v0.41.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260904194346-d0f1323225a4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260904194346-d0f1323225a4 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect mvdan.cc/xurls/v2 v2.6.0 // indirect pluginrpc.com/pluginrpc v0.5.0 // indirect diff --git a/tools/proto/go.sum b/tools/proto/go.sum index bb43d3e61bf8b..ab10596db0edb 100644 --- a/tools/proto/go.sum +++ b/tools/proto/go.sum @@ -1,33 +1,35 @@ -buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20260626152828-968bf0468096.1 h1:bHi5/cwz7IPRhFcrRA4iytTjDI3WwFkv1m5K7y+YOTc= -buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.11-20260626152828-968bf0468096.1/go.mod h1:1Znr6gmYBhbxWUPRrrVnSLXQsz8bvFVw1HHJq2bI3VQ= -buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.11-20250109164928-1da0de137947.1 h1:HwzzCRS4ZrEm1++rzSDxHnO0DOjiT1b8I/24e8a4exY= -buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.11-20250109164928-1da0de137947.1/go.mod h1:8PRKXhgNes29Tjrnv8KdZzg3I1QceOkzibW1QK7EXv0= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260709200747-435963d16310.1 h1:fXh8CsdNpjRr8R5vFdqtIxPt/Lno2IIJlYOdZBIZn0w= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260709200747-435963d16310.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM= -buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260713175918-10d915f5b43b.1 h1:c4w6fQ6wAhZLgVI+HZozlWX9I2aVPN34vrl/8cuovVc= -buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260713175918-10d915f5b43b.1/go.mod h1:mbcuFKpnCQsF8H2fBs1lN1dQVAiASPQKwFgTkXqYscI= -buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.11-20260713175918-10d915f5b43b.1 h1:qJUlFKLFdb3OFCpmA+r5AQbysgBD7WLRapE9lOs08r8= -buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.11-20260713175918-10d915f5b43b.1/go.mod h1:1JJi9jvOqRxSMa+JxiZSm57doB+db/1WYCIa2lHfc40= -buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1 h1:iGPvEJltOXUMANWf0zajcRcbiOXLD90ZwPUFvbcuv6Q= -buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.11-20241007202033-cf42259fcbfc.1/go.mod h1:nWVKKRA29zdt4uvkjka3i/y4mkrswyWwiu0TbdX0zts= -buf.build/go/app v0.2.1-0.20260626143626-be153867abea h1:krHaIyUJSTnurb0fbYQtsXkZWiWQ/ydOgfm61TPSODc= -buf.build/go/app v0.2.1-0.20260626143626-be153867abea/go.mod h1:V32mBaPWsfq6REAeZvvs/rQl7ZCl9Dn7eW1BBrmH0GQ= +buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.2 h1:z5+rVknD0AvorY/QV9cb3ohUXw4E7HvxU4+2JUH6EHU= +buf.build/gen/go/bufbuild/bufplugin/protocolbuffers/go v1.36.12-20260722160903-4d94f3df3a7b.2/go.mod h1:Owcuj2phVyvThVYCD74iSV8ki0dAXw/uxkdcdZScdCc= +buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.12-20250109164928-1da0de137947.2 h1:tE4A2RVukQOSd4K+6ndK+8s65FbjiBt2k5CiddXxCCo= +buf.build/gen/go/bufbuild/protodescriptor/protocolbuffers/go v1.36.12-20250109164928-1da0de137947.2/go.mod h1:Gjxz0o7qPHokNsmlX8D+/aKd29NRLRr9CCUkPeMAzJ0= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.12-20260825204119-511051f7f437.2 h1:NbnlmV26O7oZ1iM5tsCI+GEx+3ZSdrhvnKQ/eWSrLiY= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.12-20260825204119-511051f7f437.2/go.mod h1:TCt1lluMFnctISJXvkIQ4x3ABrPuUKCWKyjKdkJNBpw= +buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260831211851-b4432e12a6e7.1 h1:BpToyjv+oz0qldatN/ZFTL+vVtPVavFCY+g4rRu03bs= +buf.build/gen/go/bufbuild/registry/connectrpc/go v1.20.0-20260831211851-b4432e12a6e7.1/go.mod h1:hMqlU8iWXqCU7UOBs8PTDG/z7BFnhIknJZ4XMWcBx3E= +buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.12-20260831211851-b4432e12a6e7.2 h1:cik2XvKM1UV8HgLWD2vnBvV4GgT5NfpLJBb9UgLKzzg= +buf.build/gen/go/bufbuild/registry/protocolbuffers/go v1.36.12-20260831211851-b4432e12a6e7.2/go.mod h1:91H8i3iR9GoomNkM9X13RTFL8cVNAHnS44BdgAnbqz4= +buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.12-20241007202033-cf42259fcbfc.2 h1:9xw8g8Q6zHLC7CO/jtpl2UK0kQticxIG+mI6N86f2/M= +buf.build/gen/go/pluginrpc/pluginrpc/protocolbuffers/go v1.36.12-20241007202033-cf42259fcbfc.2/go.mod h1:+0bw+k8FY5MU3tojFh33HeA5xMfGWjAUQpr+maW5Z3o= +buf.build/go/app v0.2.1-0.20260824172350-b0e76892c61a h1:m3hkeJOeLSq/1yTSMLyV5ipY6u3XrfS3gV8ZIqkUJJA= +buf.build/go/app v0.2.1-0.20260824172350-b0e76892c61a/go.mod h1:w19H+Lh2cAV/uL1FhcdDlyoxLTm8SkQAHW3CfmXZbFU= buf.build/go/bufplugin v0.10.0 h1:vZBX0mq9as5UIBug8U+/DkGRaHNlM/HVOw59O8fvOIU= buf.build/go/bufplugin v0.10.0/go.mod h1:ax7obVurKDH1I2nR4pFTS+TE6K3kZhTmwDCN2YgdV8I= buf.build/go/bufprivateusage v0.1.0 h1:SzCoCcmzS3zyXHEXHeSQhGI7OTkgtljoknLzsUz9Gg4= buf.build/go/bufprivateusage v0.1.0/go.mod h1:GlCCJ3VVF7EqqU0CoRmo1FzAwwaKymEWSr+ty69xU5w= buf.build/go/interrupt v1.1.0 h1:olBuhgv9Sav4/9pkSLoxgiOsZDgM5VhRhvRpn3DL0lE= buf.build/go/interrupt v1.1.0/go.mod h1:ql56nXPG1oHlvZa6efNC7SKAQ/tUjS6z0mhJl0gyeRM= -buf.build/go/protovalidate v1.2.0 h1:DQVrUWkmGTBij+kOYv/x2LLxwcLaGKMdzShj1/6/3H0= -buf.build/go/protovalidate v1.2.0/go.mod h1:7rYiQEhqvAipoazpVNBBH2S2f8bjG4huMVy1V2Yofn4= +buf.build/go/protovalidate v1.4.0 h1:UjLrYbt5VX7+TMOs2+pG5FhZhIG1mSfK4EIopbb4LcM= +buf.build/go/protovalidate v1.4.0/go.mod h1:8vJfzNT6NIG2qm3uFsJDXMlRmG+bQJzbcIn1Aa0vPGs= buf.build/go/protoyaml v0.7.0 h1:z4oVoFicbpPefhT7WAykxUdfp0yEQlhMQ2mCZOY5V38= buf.build/go/protoyaml v0.7.0/go.mod h1:+a0cavd0uMvirb87xdu2ZMMmjlIQoiH/N2Ich5MGSQ0= buf.build/go/spdx v0.2.0 h1:IItqM0/cMxvFJJumcBuP8NrsIzMs/UYjp/6WSpq8LTw= buf.build/go/spdx v0.2.0/go.mod h1:bXdwQFem9Si3nsbNy8aJKGPoaPi5DKwdeEp5/ArZ6w8= buf.build/go/standard v0.1.1-0.20260325175353-2b287e071df5 h1:njYKSWoLiq2i5O7y2bPPU2Yzp7iAU0Wk9KJ2OoAhNiU= buf.build/go/standard v0.1.1-0.20260325175353-2b287e071df5/go.mod h1:DQmodNT9EHX94WzUaWiZK+/4EaFa/xZTc1gzfCxZVXU= -cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs= -cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= +cel.dev/cel-go v0.32.0 h1:irvpFKr5EuGPyxeME03ERh0rii1TX+BDAnB9eL3IvNk= +cel.dev/cel-go v0.32.0/go.mod h1:DnVip7tpJSsgZymwfT+m1tnEVy3ivAjSMXPx12YrMkU= +cel.dev/expr v0.25.3 h1:A2jO8jwOugrrovveCWfj0KEZOfqiLgAcwjpHPhzIGw0= +cel.dev/expr v0.25.3/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= connectrpc.com/connect v1.20.0 h1:6TNDAB+WeNd2uolWNlYczB5E0KNNaVMNUEx8JEUsPmQ= connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4= connectrpc.com/grpcreflect v1.3.0 h1:Y4V+ACf8/vOb1XOc251Qun7jMB75gCUNw6llvB9csXc= @@ -42,10 +44,10 @@ github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6 github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/brianvoe/gofakeit/v6 v6.28.0 h1:Xib46XXuQfmlLS2EXRuJpqcw8St6qSZz75OUo0tgAW4= github.com/brianvoe/gofakeit/v6 v6.28.0/go.mod h1:Xj58BMSnFqcn/fAQeSK+/PLtC5kSb7FJIq4JyGa8vEs= -github.com/bufbuild/buf v1.72.0 h1:VMmGFtCLrxyS2wkpghExmhhiqJDdmc8DcwAvsGJGJ94= -github.com/bufbuild/buf v1.72.0/go.mod h1:bhtIlPDo3q/PDw4yaTdx2+jxkc33Aq+ygFIi6Diz2yU= -github.com/bufbuild/protocompile v0.14.2-0.20260716165721-bb5762d29672 h1:6xykiXQPoF/hhOjAhwiHQ0kgcAvrDZw0Tjl1VQkpu5c= -github.com/bufbuild/protocompile v0.14.2-0.20260716165721-bb5762d29672/go.mod h1:jPUiZUFWc8E3Kc2Y4SRlGAdjde4amGkHY0BUACNS43E= +github.com/bufbuild/buf v1.73.0 h1:fDNKlxaf+PYi20dmVM7Yt3kOfXEhwrgKDLMNZFjztDs= +github.com/bufbuild/buf v1.73.0/go.mod h1:rfWpi8FmfTPW4CbLFIXZYAux2FWBiCMY6BUOlGqnR84= +github.com/bufbuild/protocompile v0.14.2-0.20260910151042-7436f7c76201 h1:jBaIQ1eixwqtjBKJk8gw+dKtmbkp3w8sLJtJ7kav1EE= +github.com/bufbuild/protocompile v0.14.2-0.20260910151042-7436f7c76201/go.mod h1:bX3ObJfML+aki7PJevkWLSlOfEZ8EnNsfCz0hiYkhiI= github.com/bufbuild/protoplugin v0.0.0-20260414125817-25d1d281b46b h1:b7wvo9ZhjLzCp7tGbOUMvgtYTnd33zGSAmMxcdxMnhQ= github.com/bufbuild/protoplugin v0.0.0-20260414125817-25d1d281b46b/go.mod h1:c5D8gWRIZ2HLWO3gXYTtUfw/hbJyD8xikv2ooPxnklQ= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= @@ -59,16 +61,14 @@ github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmC github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -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/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 v29.6.1+incompatible h1:oO7F4nn3Ovr/5TlfTUWFbMwBSS/B7Xs6Epv26gBrUP8= -github.com/docker/cli v29.6.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/docker-credential-helpers v0.9.8 h1:bIREROb7So6PRlq6KTtdS9MPEjC29OQRkFNlvK2OX8Q= -github.com/docker/docker-credential-helpers v0.9.8/go.mod h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c= -github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf0mN39c= -github.com/docker/go-connections v0.7.0/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q= +github.com/docker/cli v29.8.0+incompatible h1:ih0c2jq/nN7QfES8zIfwSzIhRScjs4ehER+kZ60aeSk= +github.com/docker/cli v29.8.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/docker-credential-helpers v0.9.9 h1:BkydjIgZ46JnDbqyM2p2fc63KMw6y+KHL3Em/2AGJ7w= +github.com/docker/docker-credential-helpers v0.9.9/go.mod h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c= +github.com/docker/go-connections v0.8.1 h1:JibmG5hULs5qXSr/cp/w3Pw5fZuStt4MOHMUExb29/M= +github.com/docker/go-connections v0.8.1/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/favadi/protoc-go-inject-tag v1.4.0 h1:K3KXxbgRw5WT4f43LbglARGz/8jVsDOS7uMjG4oNvXY= @@ -76,19 +76,17 @@ github.com/favadi/protoc-go-inject-tag v1.4.0/go.mod h1:AZ+PK+QDKUOLlBRG0rYiKkUX github.com/felixge/httpsnoop v1.1.0 h1:3YtUj32ZZkqZtt3sZZsClsymw/QDuVfpNhoA31zeORc= github.com/felixge/httpsnoop v1.1.0/go.mod h1:Zqxgdd+1Rkcz8euOqdr7lqgCRJztwr5hp9vDSi5UZCE= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8= +github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= -github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= -github.com/google/cel-go v0.29.2 h1:ZtDxkeiMmz0mxbKDYiNkE5Lk7V5edMRcaaDf2jX002k= -github.com/google/cel-go v0.29.2/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= +github.com/gofrs/flock v0.13.1 h1:jjREztyBeSKBZYAC+mgc1laB+xsgy4kYMf3FbKF2UBo= +github.com/gofrs/flock v0.13.1/go.mod h1:sf4BFiHwnvgxa25DlQoDqXQnwRMEOwqxRq37P6MzzmE= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/go-containerregistry v0.21.7 h1:/vPFuVXDjtFREsVArW+0h1CIl5urnOhzei4X2DMW9IU= -github.com/google/go-containerregistry v0.21.7/go.mod h1:kjSbt7/zMsKLWfnHrIvKvhXHUw91jbe9DNjPPJ32gXE= +github.com/google/go-containerregistry v0.22.1 h1:RZuuSYhTvlDvtsK+NkutoCZ//C0X2ebLK8X8l3ULs84= +github.com/google/go-containerregistry v0.22.1/go.mod h1:bJR35SK8XgisYmhg/FMQ/5RK0S/XrOAqLBV5/LR2XE0= 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/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -97,8 +95,8 @@ github.com/jdx/go-netrc v1.0.0 h1:QbLMLyCZGj0NA8glAhxUpf1zDg6cxnWgMBbjq40W0gQ= github.com/jdx/go-netrc v1.0.0/go.mod h1:Gh9eFQJnoTNIRHXl2j5bJXA1u84hQWJWgGh569zF3v8= github.com/jhump/protoreflect/v2 v2.0.0-beta.2 h1:qZU+rEZUOYTz1Bnhi3xbwn+VxdXkLVeEpAeZzVXLY88= github.com/jhump/protoreflect/v2 v2.0.0-beta.2/go.mod h1:4tnOYkB/mq7QTyS3YKtVtNrJv4Psqout8HA1U+hZtgM= -github.com/klauspost/compress v1.19.0 h1:sXLILfc9jV2QYWkzFOPWStmcUVH2RHEB1JCdY2oVvCQ= -github.com/klauspost/compress v1.19.0/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/compress v1.20.0 h1:a3C1ke2ohxFymNlb2HWAHjDeKCI90scRskErZkR0ezA= +github.com/klauspost/compress v1.20.0/go.mod h1:LUdAzn7YLVvxLpc7y3V1m40wESHTgc1422pwwBSKYuI= 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.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -107,20 +105,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= -github.com/mattn/go-isatty v0.0.23 h1:cYwCQTQf3HB6xUC+BtyCLZNr7IzbOmoZbmssVNzSyiQ= -github.com/mattn/go-isatty v0.0.23/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= +github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI= +github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/moby/api v1.55.0 h1:2/sexvQyqIWS8pRSCFddBfpW2qE7vR7FCL+vN8pxwMc= -github.com/moby/moby/api v1.55.0/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= -github.com/moby/moby/client v0.5.0 h1:5XhyPk2fuOWf6RlSFa3MkIIgDZkF25xToXW8Q/BH7cc= -github.com/moby/moby/client v0.5.0/go.mod h1:rcVpF8ncl9vo5gaIBdol6CnbEtSj1uxMvEV/UrykF/s= +github.com/moby/moby/api v1.56.0 h1:GQzua3NA599ASSIICx0iFgiJeO9YkdDARvQsm23ZZuQ= +github.com/moby/moby/api v1.56.0/go.mod h1:sZ+THbVWkjOmBPPfbnzdD/G1LuIexWhqlSHHPTDQ1Uk= +github.com/moby/moby/client v0.6.0 h1:AJjEB21QPbXSXjDsZorFBoDZPhMrfbpaPLgSMAW9Bgs= +github.com/moby/moby/client v0.6.0/go.mod h1:OCo00wNRyA3m4lmJ228W3JbyCN4ZNNYjpOXiJydBdcQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/petermattis/goid v0.0.0-20260716134002-a9b348f0a2b9 h1:UyKlK0Ke63afxhHrgJAk8KlCt+kP9KYBRUsWG6lK2WM= -github.com/petermattis/goid v0.0.0-20260716134002-a9b348f0a2b9/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20260820044319-269ab09b5261 h1:lcWAnrqr2nNfDiArwFNHCE4787Mw2tCdVSOXCru0/0E= +github.com/petermattis/goid v0.0.0-20260820044319-269ab09b5261/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= @@ -129,8 +127,8 @@ github.com/quic-go/go-ossfuzz-seeds v0.1.0 h1:APacT+iIaNF6fd8AGEiN3bT/Jtkd2jz4v4 github.com/quic-go/go-ossfuzz-seeds v0.1.0/go.mod h1:3IOHRbJIc+L6YKMwfDtJAM9Vj9k0YY4muhuyUYk5tbk= github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= -github.com/quic-go/quic-go v0.60.0 h1:xcQioE8OM66UQLeUMHltK1CCcOu3JbVB4JAQdDQSB+0= -github.com/quic-go/quic-go v0.60.0/go.mod h1:wpKpjmPpftl30sL6pFh7REVpjbcCVy4zt2vDyK1TuJk= +github.com/quic-go/quic-go v0.62.0 h1:ZHDjCk5OacATwGvs8PWE97CTvX7AqZiVoW7++ZOXTf8= +github.com/quic-go/quic-go v0.62.0/go.mod h1:RAro2j2yN9a9EiPACLHT9IB2NXCvGQmmo/alT0yYI0w= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rodaine/protogofakeit v0.1.1 h1:ZKouljuRM3A+TArppfBqnH8tGZHOwM/pjvtXe9DaXH8= @@ -145,15 +143,15 @@ github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/segmentio/encoding v0.5.4 h1:OW1VRern8Nw6ITAtwSZ7Idrl3MXCFwXHPgqESYfvNt0= github.com/segmentio/encoding v0.5.4/go.mod h1:HS1ZKa3kSN32ZHVZ7ZLPLXWvOVIiZtyJnO1gPH1sKt0= -github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= -github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/sirupsen/logrus v1.10.2 h1:G2SED73/qrAu6YwbdxOD6peLkCBI3z7L+ykJFTXJBBo= +github.com/sirupsen/logrus v1.10.2/go.mod h1:SLEg8TqYulVKKfIGHldVp2K2aYz2DKSVBq4g/H5bR7Q= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= +github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= github.com/tetratelabs/wazero v1.12.0 h1:DuWcpNu/FzgEXgGBDp8J1Spc+CWOvvtvVyjKlaZopYU= github.com/tetratelabs/wazero v1.12.0/go.mod h1:LvKtzl2RqO4gyF27BiXU+nKAjcV8f38U+kP/q2vgxh0= github.com/tidwall/btree v1.8.1 h1:27ehoXvm5AG/g+1VxLS1SD3vRhp/H7LuEfwNvddEdmA= @@ -168,18 +166,18 @@ go.lsp.dev/uri v0.3.0 h1:KcZJmh6nFIBeJzTugn5JTU6OOyG0lDOo3R9KwTxTYbo= go.lsp.dev/uri v0.3.0/go.mod h1:P5sbO1IQR+qySTWOCnhnK7phBx+W3zbLqSMDJNTw88I= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= -go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= -go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= -go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= -go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= -go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= -go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 h1:3g7B90UzBltIDKq1/5mrTGxTnOFDV0ICOhLoxiZ8jlg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0/go.mod h1:Ef8SuTh59BT7+ofpDxN9z+yOlc4t2GjLmKDgYNJL/NU= +go.opentelemetry.io/otel v1.46.0 h1:FHt5/CDyVxi/8IM1CH7VE/rRgq3kLHa2mSTVMO8AWyc= +go.opentelemetry.io/otel v1.46.0/go.mod h1:Gj3SEScelsNC45tp4nSxRYlS+f5iez7W8XPMCt905kE= +go.opentelemetry.io/otel/metric v1.46.0 h1:yBnkXvgV7AXFILZc5K6IZe/CBFF3OS7BJ8ov6/lj0K8= +go.opentelemetry.io/otel/metric v1.46.0/go.mod h1:iPmdWqifKUdzziPkvvzIJXITl56fQx2mGM/DHLB3/2o= +go.opentelemetry.io/otel/sdk v1.46.0 h1:h5CNQQjEbuQXY/JfZtgt3i7HVFV3aHPO2OAwO2eTYPI= +go.opentelemetry.io/otel/sdk v1.46.0/go.mod h1:GAERFXFt5SYCEB+YiKUbMBeza6UaDH7GmGOZEfh2gSM= +go.opentelemetry.io/otel/sdk/metric v1.46.0 h1:0piZ26EG4RBfebb2jhDH6ERCYHoVWduc3kLgPCwSnSE= +go.opentelemetry.io/otel/sdk/metric v1.46.0/go.mod h1:I1PbKrdVc8Qu8HYVDNtqVIwLwjNrhsV/uFuxfwg8mO4= +go.opentelemetry.io/otel/trace v1.46.0 h1:OULy7ccdJnZtJ0UDYFOIGaCmiWzJ8Vi2G/Rsu60qs1c= +go.opentelemetry.io/otel/trace v1.46.0/go.mod h1:J7GAXweO77XSFkB/rmAqk9D6ihszhFjLU+d9WuUxDLI= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= @@ -188,33 +186,34 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= -golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= -golang.org/x/exp v0.0.0-20260709172345-9ea1abe57597 h1:qLvzZeaANDgyVOA8pyHCOStGlXn0rseXma+GQjeuv2g= -golang.org/x/exp v0.0.0-20260709172345-9ea1abe57597/go.mod h1:EdfpwwqSu+0Li0mzskwHU6FWDV3t9Q+RZDo3QMUtL3Q= -golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= -golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= -golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= -golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= -golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= -golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +golang.org/x/crypto v0.56.0 h1:GUh5Ii4J5jtcseSMiRqr1jXCNHoxjeV9Fmekc2oLy6Y= +golang.org/x/crypto v0.56.0/go.mod h1:OMW5y6CY9l38uPLmxU6l6pwcXp1obtLo3e6gT7gQR2I= +golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa h1:QSyA8ishJCyT21kER9KwNt0b7BM3iRK4x9QXhjN5Fdk= +golang.org/x/exp v0.0.0-20260824195058-e88cd73687aa/go.mod h1:zeBbvyFKDaLwa7CH/zI8KXt7gTl14SF7sO08Pl5jBCM= +golang.org/x/mod v0.40.0 h1:hUv+3cXcdRHz08UmSiOob7sadHig73uo5bkXxQ/tvUs= +golang.org/x/mod v0.40.0/go.mod h1:0/weTWkPWGBikyTWAX3dkjVztMmBA5hM0DH6BElSupE= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= +golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk= +golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0= golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= -golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= -golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20260715232425-e75dac1f907d h1:QwnJwPte4XXAkhPu26LTDIahnsMSUV0kK8HkxbC+Pc4= -google.golang.org/genproto/googleapis/api v0.0.0-20260715232425-e75dac1f907d/go.mod h1:WRrQ7/7N19PypuT0fxLOL5Lq0waoiRri4FbtHDEKrGE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260715232425-e75dac1f907d h1:Jkpk39hlTZOIp3RbfvNX9R8Hv+Sw0X89nlU/xFOErsc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260715232425-e75dac1f907d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.0 h1:W3G9N3KQf3BU+YuCtGKJk0CmxQNbAISICD/9AORxLIw= -google.golang.org/grpc v1.81.0/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/genproto/googleapis/api v0.0.0-20260904194346-d0f1323225a4 h1:NCe/UiklGd/9xjT+ROBVhJ1kf6TRQaFedsR+z7u1gvo= +google.golang.org/genproto/googleapis/api v0.0.0-20260904194346-d0f1323225a4/go.mod h1:fJ2lYaWjqNknJyQBOCd0fA3HnEElJqGplH71a2txi+g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260904194346-d0f1323225a4 h1:5t+ZydAFj5kGVLrgCvLmpmCf9ylGRd64hpEronfRaws= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260904194346-d0f1323225a4/go.mod h1:DjtHYE8FKJLivXcBEjGwndXfIC23G0VpXiXKqG179uA= +google.golang.org/grpc v1.83.1 h1:HIO0+BEtBP6soyqvqC8sNUjZ7bTs+0hFQuFF+RAy++Y= +google.golang.org/grpc v1.83.1/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2 h1:rgSNvqscFZ1JgV/4wH5GOsZFSFkR2Eua9As3KIr2LlM= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.2/go.mod h1:iMEtFwDlAhjDU9L5mY6U1XLwlIId/G3h+QcBHDIvrJ8= google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= From d4769209b2ee9247025c86492a6b7cc2cb123bf7 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Sat, 26 Sep 2026 04:47:01 +0000 Subject: [PATCH 105/327] chore(deps): refresh rpm lockfiles (#23018) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- rpms.lock.yaml | 320 ++++++++++++++++++++++++------------------------- 1 file changed, 160 insertions(+), 160 deletions(-) diff --git a/rpms.lock.yaml b/rpms.lock.yaml index 458135bbf6806..e8926144697aa 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -39,48 +39,48 @@ arches: name: glibc-devel evr: 2.34-275.el9_8 sourcerpm: glibc-2.34-275.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/go-toolset-1.26.7-1.el9_8.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/go-toolset-1.26.7-2.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 12361 - checksum: sha256:7c4e8b7e0647a459b3b04e9deb17b6d5d02a43fa1bff0e8dc782f48e08fccd30 + size: 12453 + checksum: sha256:3d9ec6b63182ed0120fad760a8fc20a4bfa05e96134b4cc5c6fe42b9f85ec9c5 name: go-toolset - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-1.26.7-1.el9_8.aarch64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-1.26.7-2.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 1520214 - checksum: sha256:2f1b635e07c0f74ac53e9a79e28e287ae47742599deec1138aa7a27f94b4d5c9 + size: 1520141 + checksum: sha256:27c00a1943d2e5c5e3a19308f6b8650e3740d784e8dc7e4aa0036693c958b1c4 name: golang - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-bin-1.26.7-1.el9_8.aarch64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-bin-1.26.7-2.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 42741902 - checksum: sha256:aff04f0bea0253c15c37d1f008d2826884cfdc401714c0d884c3172f2affce01 + size: 42755650 + checksum: sha256:4a3e09bbf75a009a9e4ef2b0f2703b517353335f9113d22f3562886390c13eb4 name: golang-bin - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-race-1.26.7-1.el9_8.aarch64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-race-1.26.7-2.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 1743223 - checksum: sha256:cb3fed044deab06fcf00a3426b635f4562cdfd6f5937912d9e2a854b88498c72 + size: 1743339 + checksum: sha256:80c03d0c817e3f37bae189287bb6b42fc18dcadeb22c90e57f01d6ecbceec4a7 name: golang-race - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-src-1.26.7-1.el9_8.noarch.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/golang-src-1.26.7-2.el9_8.noarch.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 12881267 - checksum: sha256:b570b95df0bc6429486a71a10fb433f56bb3a694f5de8a777131b2a841e81181 + size: 12879471 + checksum: sha256:ff54c6f194fcf25d743af1af7893242085c798b7ce04056066fee993c2167166 name: golang-src - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.49.1.el9_8.aarch64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 2899913 - checksum: sha256:929179b11dddaa905f5261d8df9977ce70f311fb482d01ef13ff2da6d8c1e825 + size: 2916797 + checksum: sha256:2b5063d95b2c1611a168cdf1dae583a082940b9074c14e85bad921ee132b46fb name: kernel-headers - evr: 5.14.0-687.49.1.el9_8 - sourcerpm: kernel-5.14.0-687.49.1.el9_8.src.rpm + evr: 5.14.0-687.52.1.el9_8 + sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/l/libasan-11.5.0-14.el9.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 409047 @@ -1040,12 +1040,12 @@ arches: checksum: sha256:5fa267daa0e7df3e072c17e81db41b809b256da8cfb0372669d9a1bea937a01a name: delve evr: 1.26.1-1.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/g/golang-1.26.7-1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/g/golang-1.26.7-2.el9_8.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms - size: 36535123 - checksum: sha256:3e46d00b71773429b84079992fff32610eda8917d7319d09c3cee5e6e4bd5bf5 + size: 36539286 + checksum: sha256:7a9ea792be9d09b61bc321ce8b65a040430d06891d6372aeb929753c2f270770 name: golang - evr: 1.26.7-1.el9_8 + evr: 1.26.7-2.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/l/libmpc-1.2.1-4.el9.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms size: 846236 @@ -1286,12 +1286,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.49.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 152473969 - checksum: sha256:ce455287de0f71efd1128f4cd574f7d418b57ae9784903bbe8b8d3e68062a80b + size: 152521141 + checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 name: kernel - evr: 5.14.0-687.49.1.el9_8 + evr: 5.14.0-687.52.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 150790 @@ -1635,10 +1635,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/6ec982e105d54c866591c0a07c68f06bb302a8cc9e880f9c874bdf4d4c7fa5ca-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/52e584b12993891100ca340d6e265dc5402bb7ebdf9454c499a2d73f26886080-modules.yaml.gz repoid: rhel-9-for-aarch64-appstream-rpms size: 67183 - checksum: sha256:6ec982e105d54c866591c0a07c68f06bb302a8cc9e880f9c874bdf4d4c7fa5ca + checksum: sha256:52e584b12993891100ca340d6e265dc5402bb7ebdf9454c499a2d73f26886080 - arch: ppc64le packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/c/cpp-11.5.0-14.el9.ppc64le.rpm @@ -1676,48 +1676,48 @@ arches: name: glibc-devel evr: 2.34-275.el9_8 sourcerpm: glibc-2.34-275.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/go-toolset-1.26.7-1.el9_8.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/go-toolset-1.26.7-2.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 12381 - checksum: sha256:ff9550d877b563eb05b3a49b4f352a1b578a42cd234704cbc43db08825b9d632 + size: 12469 + checksum: sha256:e41a8424c10bc94cd0bfcd5e047dde7bced6d7f5e8e56ceeec3845ea9c0a91ce name: go-toolset - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-1.26.7-1.el9_8.ppc64le.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-1.26.7-2.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 1520537 - checksum: sha256:d09b9280e3d43c13454aadceb3c00e0997063fc7d621b7b8a2359b4c737f619f + size: 1520306 + checksum: sha256:0666a0e9d74aba917e5dd385629548b8d4e6f13e29441f3dec00e2a928c0173a name: golang - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-bin-1.26.7-1.el9_8.ppc64le.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-bin-1.26.7-2.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 43924293 - checksum: sha256:db278a5a095d81a8100e884f5ffebcff5cca10b7c4f3fd3f9230b596c667026e + size: 43905181 + checksum: sha256:079e5c168a173ea7b7caa53a6b08c768fd9ce36c9dc746a45b2e47aec9ae8c62 name: golang-bin - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-race-1.26.7-1.el9_8.ppc64le.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-race-1.26.7-2.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 1663611 - checksum: sha256:ed9e4c84393cf7875bf23a34489fa235610df93ebb97dc9d2c52bb9d3d0733f4 + size: 1663702 + checksum: sha256:06cbd04d297dd3d522deab3c3c4b4226358efb4616eb55988edcac4c373a6617 name: golang-race - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-src-1.26.7-1.el9_8.noarch.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/golang-src-1.26.7-2.el9_8.noarch.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 12881267 - checksum: sha256:b570b95df0bc6429486a71a10fb433f56bb3a694f5de8a777131b2a841e81181 + size: 12879471 + checksum: sha256:ff54c6f194fcf25d743af1af7893242085c798b7ce04056066fee993c2167166 name: golang-src - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.49.1.el9_8.ppc64le.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 2923685 - checksum: sha256:378e87949698681758321c003bcab9b909d3d48f5c0fa32b7c8cccdb8e079d7b + size: 2940597 + checksum: sha256:8dff161bb85c25e90d5540b565952a0abedb0cab3b926da46e3ba15806677490 name: kernel-headers - evr: 5.14.0-687.49.1.el9_8 - sourcerpm: kernel-5.14.0-687.49.1.el9_8.src.rpm + evr: 5.14.0-687.52.1.el9_8 + sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/l/libasan-11.5.0-14.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 440756 @@ -2684,12 +2684,12 @@ arches: checksum: sha256:5fa267daa0e7df3e072c17e81db41b809b256da8cfb0372669d9a1bea937a01a name: delve evr: 1.26.1-1.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/g/golang-1.26.7-1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/g/golang-1.26.7-2.el9_8.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms - size: 36535123 - checksum: sha256:3e46d00b71773429b84079992fff32610eda8917d7319d09c3cee5e6e4bd5bf5 + size: 36539286 + checksum: sha256:7a9ea792be9d09b61bc321ce8b65a040430d06891d6372aeb929753c2f270770 name: golang - evr: 1.26.7-1.el9_8 + evr: 1.26.7-2.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/l/libmpc-1.2.1-4.el9.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms size: 846236 @@ -2930,12 +2930,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.49.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 152473969 - checksum: sha256:ce455287de0f71efd1128f4cd574f7d418b57ae9784903bbe8b8d3e68062a80b + size: 152521141 + checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 name: kernel - evr: 5.14.0-687.49.1.el9_8 + evr: 5.14.0-687.52.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 150790 @@ -3285,10 +3285,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/ec878a0f354462d95a8c6b76e74fc1a92f7381fb425bbae516e44b7f0c54ba8b-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/b6665d455966c348ea2e41ba6e1a1b9c9a87cf956694754d7198540e5be3d4a1-modules.yaml.gz repoid: rhel-9-for-ppc64le-appstream-rpms size: 68368 - checksum: sha256:ec878a0f354462d95a8c6b76e74fc1a92f7381fb425bbae516e44b7f0c54ba8b + checksum: sha256:b6665d455966c348ea2e41ba6e1a1b9c9a87cf956694754d7198540e5be3d4a1 - arch: s390x packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/c/cpp-11.5.0-14.el9.s390x.rpm @@ -3326,48 +3326,48 @@ arches: name: glibc-headers evr: 2.34-275.el9_8 sourcerpm: glibc-2.34-275.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/go-toolset-1.26.7-1.el9_8.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/go-toolset-1.26.7-2.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 12353 - checksum: sha256:aba50425a0797a21ef3c7a5bc054ed4afb3c96a8802ea0758db89a4bf974a6f5 + size: 12445 + checksum: sha256:a0a8e830dc1a6cb78d888682650f74a03e99a3e06f0d9e944f083d58cf479d5e name: go-toolset - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-1.26.7-1.el9_8.s390x.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-1.26.7-2.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 1520130 - checksum: sha256:e7bee02758864c0cb61bdd3e8a1318b5c32195df2ec07bb8e914639b381acbcb + size: 1520127 + checksum: sha256:1a996cac6c20254f109cc904e8e42866520dd686d85accea215e0e359d9c41d6 name: golang - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-bin-1.26.7-1.el9_8.s390x.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-bin-1.26.7-2.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 46549574 - checksum: sha256:e03b18d614adf56123dc37c84535013b366e645e270ec105c2489e6a569703bd + size: 46533766 + checksum: sha256:948cdcf452abbbd590d9552a1eae7ef061c78bcd717c80d059def1c9db440089 name: golang-bin - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-race-1.26.7-1.el9_8.s390x.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-race-1.26.7-2.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 1711630 - checksum: sha256:7e441ca5a2954e97ffb978489bec3b13378708fde3fe471f7aca78f3b6089094 + size: 1711787 + checksum: sha256:cdf8536fbba9d019882ad9e90b0b34d4997077eac595fef7adcb631768f4c492 name: golang-race - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-src-1.26.7-1.el9_8.noarch.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/golang-src-1.26.7-2.el9_8.noarch.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 12881267 - checksum: sha256:b570b95df0bc6429486a71a10fb433f56bb3a694f5de8a777131b2a841e81181 + size: 12879471 + checksum: sha256:ff54c6f194fcf25d743af1af7893242085c798b7ce04056066fee993c2167166 name: golang-src - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.49.1.el9_8.s390x.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 2929913 - checksum: sha256:d3d0b654585b3db69cb1423296869e3c272aef1c658cfd9d103d5e8c81884986 + size: 2946745 + checksum: sha256:df7aa11358870f2b9e0e27bd07827ba0cdc54c93128adb11898636a31861da94 name: kernel-headers - evr: 5.14.0-687.49.1.el9_8 - sourcerpm: kernel-5.14.0-687.49.1.el9_8.src.rpm + evr: 5.14.0-687.52.1.el9_8 + sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/l/libasan-11.5.0-14.el9.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 412888 @@ -4321,12 +4321,12 @@ arches: evr: 1.2.11-40.el9 sourcerpm: zlib-1.2.11-40.el9.src.rpm source: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/g/golang-1.26.7-1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/g/golang-1.26.7-2.el9_8.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms - size: 36535123 - checksum: sha256:3e46d00b71773429b84079992fff32610eda8917d7319d09c3cee5e6e4bd5bf5 + size: 36539286 + checksum: sha256:7a9ea792be9d09b61bc321ce8b65a040430d06891d6372aeb929753c2f270770 name: golang - evr: 1.26.7-1.el9_8 + evr: 1.26.7-2.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/l/libmpc-1.2.1-4.el9.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms size: 846236 @@ -4567,12 +4567,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.49.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 152473969 - checksum: sha256:ce455287de0f71efd1128f4cd574f7d418b57ae9784903bbe8b8d3e68062a80b + size: 152521141 + checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 name: kernel - evr: 5.14.0-687.49.1.el9_8 + evr: 5.14.0-687.52.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 150790 @@ -4916,10 +4916,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/ca31328d7c6e06797a1779175be3da1217c64a74e6a50188219aad4651b50d9a-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/6932c6640f14bb347e360c92a27479a02b616928e7675123cc01ecb870ae20db-modules.yaml.gz repoid: rhel-9-for-s390x-appstream-rpms size: 64964 - checksum: sha256:ca31328d7c6e06797a1779175be3da1217c64a74e6a50188219aad4651b50d9a + checksum: sha256:6932c6640f14bb347e360c92a27479a02b616928e7675123cc01ecb870ae20db - arch: x86_64 packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/c/cpp-11.5.0-14.el9.x86_64.rpm @@ -4964,48 +4964,48 @@ arches: name: glibc-headers evr: 2.34-275.el9_8 sourcerpm: glibc-2.34-275.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/go-toolset-1.26.7-1.el9_8.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/go-toolset-1.26.7-2.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 12393 - checksum: sha256:e8d30ba284a372bbdbf1f899231ad3c59ddac6a783415f0784d194a1f4d314f1 + size: 12485 + checksum: sha256:d90108b27b68942ac00068421d4cb3551320fb8345bdabf5684d6868dca0b25c name: go-toolset - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-1.26.7-1.el9_8.x86_64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-1.26.7-2.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 1520026 - checksum: sha256:ab786d635b438822c9fa3ddc2a0f056e1cf9ab83bcfcca285c2ac9714a9b903c + size: 1519594 + checksum: sha256:120adc77ba187e12ba0f564e989ad2a495a3cd4db854ff8950bb0fa820d440d3 name: golang - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-bin-1.26.7-1.el9_8.x86_64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-bin-1.26.7-2.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 47194775 - checksum: sha256:d68cc646382e339b5860d44cdf3c23c135523dc52a5cf52c4919f25130ad7c07 + size: 47210487 + checksum: sha256:d62137e48551c075bf6addd0946a49d833a63e57eee66199220a2102039abc32 name: golang-bin - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-race-1.26.7-1.el9_8.x86_64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-race-1.26.7-2.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 1742998 - checksum: sha256:c4f7bcb59a53fb8881935b88869ccb6cac3facf6444b344e2f5adb76e16cf932 + size: 1743083 + checksum: sha256:afbb626a86be3ed06007041a4d1c9c1fc82ab06d79ab9e8e1f32ece08427290a name: golang-race - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-src-1.26.7-1.el9_8.noarch.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/golang-src-1.26.7-2.el9_8.noarch.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 12881267 - checksum: sha256:b570b95df0bc6429486a71a10fb433f56bb3a694f5de8a777131b2a841e81181 + size: 12879471 + checksum: sha256:ff54c6f194fcf25d743af1af7893242085c798b7ce04056066fee993c2167166 name: golang-src - evr: 1.26.7-1.el9_8 - sourcerpm: golang-1.26.7-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.49.1.el9_8.x86_64.rpm + evr: 1.26.7-2.el9_8 + sourcerpm: golang-1.26.7-2.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 2939221 - checksum: sha256:ac9fe2b15be1ea2445c28abcaa21b62a118e56ef5984aea1c9d204885786f99d + size: 2956089 + checksum: sha256:97fdbd1cd14ee0a1f5818edc96e0c3e0f1ebfcaacdd7c63f33d2b791ea177f94 name: kernel-headers - evr: 5.14.0-687.49.1.el9_8 - sourcerpm: kernel-5.14.0-687.49.1.el9_8.src.rpm + evr: 5.14.0-687.52.1.el9_8 + sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/l/libmpc-1.2.1-4.el9.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 66075 @@ -5944,12 +5944,12 @@ arches: checksum: sha256:5fa267daa0e7df3e072c17e81db41b809b256da8cfb0372669d9a1bea937a01a name: delve evr: 1.26.1-1.el9_8 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/g/golang-1.26.7-1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/g/golang-1.26.7-2.el9_8.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms - size: 36535123 - checksum: sha256:3e46d00b71773429b84079992fff32610eda8917d7319d09c3cee5e6e4bd5bf5 + size: 36539286 + checksum: sha256:7a9ea792be9d09b61bc321ce8b65a040430d06891d6372aeb929753c2f270770 name: golang - evr: 1.26.7-1.el9_8 + evr: 1.26.7-2.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/l/libmpc-1.2.1-4.el9.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms size: 846236 @@ -6190,12 +6190,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.49.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 152473969 - checksum: sha256:ce455287de0f71efd1128f4cd574f7d418b57ae9784903bbe8b8d3e68062a80b + size: 152521141 + checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 name: kernel - evr: 5.14.0-687.49.1.el9_8 + evr: 5.14.0-687.52.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 150790 @@ -6539,7 +6539,7 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/cda6cd8154f7c7b97f9797580de964f58c6ebac82457afb91832fe5f8c399da6-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/d6a984811cecd6e42c3cfecf4be2d1281ed1bf4913f95a424b2bcec27cad24c8-modules.yaml.gz repoid: rhel-9-for-x86_64-appstream-rpms size: 70416 - checksum: sha256:cda6cd8154f7c7b97f9797580de964f58c6ebac82457afb91832fe5f8c399da6 + checksum: sha256:d6a984811cecd6e42c3cfecf4be2d1281ed1bf4913f95a424b2bcec27cad24c8 From 6636fb5d2a7f8499e4edd086f294fa3ba2ded223 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Sat, 26 Sep 2026 07:44:32 +0000 Subject: [PATCH 106/327] chore(deps): update quay.io/rhacs-eng/konflux-tasks:latest docker digest to 243b1db (#23055) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/basic-component-pipeline.yaml | 6 +++--- .tekton/checks.yaml | 2 +- .tekton/create-custom-snapshot.yaml | 8 ++++---- .tekton/main-pipeline.yaml | 8 ++++---- .tekton/operator-bundle-pipeline.yaml | 8 ++++---- .tekton/operator-index-build.yaml | 8 ++++---- .tekton/retag-pipeline.yaml | 10 +++++----- .tekton/scanner-v4-pipeline.yaml | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.tekton/basic-component-pipeline.yaml b/.tekton/basic-component-pipeline.yaml index ded1ab7f050ca..14c58b159f06f 100644 --- a/.tekton/basic-component-pipeline.yaml +++ b/.tekton/basic-component-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/checks.yaml b/.tekton/checks.yaml index 85bdfaa2ce8f1..0f30a4cc32a21 100644 --- a/.tekton/checks.yaml +++ b/.tekton/checks.yaml @@ -66,7 +66,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index 1fa37a222d808..572e070cb4e13 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -75,7 +75,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -224,7 +224,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -242,7 +242,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -315,7 +315,7 @@ spec: - name: name value: create-snapshot-from-bundle - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/main-pipeline.yaml b/.tekton/main-pipeline.yaml index a6f8b2dbbb411..62f2e080d7f0a 100644 --- a/.tekton/main-pipeline.yaml +++ b/.tekton/main-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -212,7 +212,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -228,7 +228,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -248,7 +248,7 @@ spec: - name: name value: fetch-external-networks - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-bundle-pipeline.yaml b/.tekton/operator-bundle-pipeline.yaml index cd0acc1e74e2a..a86d6052e7593 100644 --- a/.tekton/operator-bundle-pipeline.yaml +++ b/.tekton/operator-bundle-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -272,7 +272,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -288,7 +288,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -329,7 +329,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index f67d85c66a613..7bed9f7f584a3 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -98,7 +98,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -214,7 +214,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -230,7 +230,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -276,7 +276,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/retag-pipeline.yaml b/.tekton/retag-pipeline.yaml index 10ce4bb760115..fda4a68727954 100644 --- a/.tekton/retag-pipeline.yaml +++ b/.tekton/retag-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -136,7 +136,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -154,7 +154,7 @@ spec: - name: name value: determine-dependency-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -170,7 +170,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -195,7 +195,7 @@ spec: - name: name value: retag-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles diff --git a/.tekton/scanner-v4-pipeline.yaml b/.tekton/scanner-v4-pipeline.yaml index 1285b72837557..c6a3c4d137c68 100644 --- a/.tekton/scanner-v4-pipeline.yaml +++ b/.tekton/scanner-v4-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles @@ -247,7 +247,7 @@ spec: - name: name value: fetch-scanner-v4-vuln-mappings - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:06b877f34bc873eddbf28ad8a921bf007533c1ce8dd89e8d2e1503b79344c9ae + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 - name: kind value: task resolver: bundles From 830bd764406f5b8f3621baebe5b8f312d5cfe42c Mon Sep 17 00:00:00 2001 From: David Caravello <119438707+dcaravel@users.noreply.github.com> Date: Sun, 27 Sep 2026 10:10:56 -0500 Subject: [PATCH 107/327] ROX-36973: Prevent delegated scan hang when no Scanner V2 (#22836) Co-authored-by: Kirk Bater --- sensor/common/scan/scan.go | 9 +- sensor/common/scan/scan_test.go | 59 ++++++++++ sensor/common/scannerclient/grpc_client.go | 103 ------------------ sensor/common/scannerclient/singleton.go | 32 ++++-- sensor/common/scannerclient/singleton_test.go | 90 +++++++++++++++ 5 files changed, 178 insertions(+), 115 deletions(-) create mode 100644 sensor/common/scannerclient/singleton_test.go diff --git a/sensor/common/scan/scan.go b/sensor/common/scan/scan.go index 897f58e37b318..afcfe2346d431 100644 --- a/sensor/common/scan/scan.go +++ b/sensor/common/scan/scan.go @@ -154,7 +154,8 @@ func (s *LocalScan) EnrichLocalImageInNamespace(ctx context.Context, centralClie // Check if there is a local Scanner. // No need to continue if there is no local Scanner. - if s.scannerClientSingleton() == nil { + scannerClient := s.scannerClientSingleton() + if scannerClient == nil { return nil, errors.Join(ErrNoLocalScanner, ErrEnrichNotStarted) } @@ -197,7 +198,7 @@ func (s *LocalScan) EnrichLocalImageInNamespace(ctx context.Context, centralClie // Only proceed if metadata was fetched successfully if errorList.Empty() { // Perform partial scan (image analysis / identify components) via local scanner. - scannerResp = s.fetchImageAnalysis(ctx, errorList, reg, pullSourceImage) + scannerResp = s.fetchImageAnalysis(ctx, errorList, reg, pullSourceImage, scannerClient) // Fetch signatures associated with image from registry. Do this even if the scan above failed, because that // doesn't necessarily mean signatures cannot be fetched @@ -413,9 +414,9 @@ func (s *LocalScan) enrichImageWithMetadata(ctx context.Context, errorList *erro } // fetchImageAnalysis analyzes an image via the local scanner. -func (s *LocalScan) fetchImageAnalysis(ctx context.Context, errorList *errorhelpers.ErrorList, registry registryTypes.ImageRegistry, image *storage.Image) *scannerclient.ImageAnalysis { +func (s *LocalScan) fetchImageAnalysis(ctx context.Context, errorList *errorhelpers.ErrorList, registry registryTypes.ImageRegistry, image *storage.Image, scannerClient scannerclient.ScannerClient) *scannerclient.ImageAnalysis { // Scan the image via local scanner. - scannerResp, err := s.scanImg(ctx, image, registry, s.scannerClientSingleton()) + scannerResp, err := s.scanImg(ctx, image, registry, scannerClient) if err != nil { log.Debugf("Scan for image %q with id %v failed: %v", image.GetName().GetFullName(), image.GetId(), err) image.Notes = append(image.Notes, storage.Image_MISSING_SCAN_DATA) diff --git a/sensor/common/scan/scan_test.go b/sensor/common/scan/scan_test.go index d40bd633c82b4..cb86d76abb3d6 100644 --- a/sensor/common/scan/scan_test.go +++ b/sensor/common/scan/scan_test.go @@ -122,6 +122,65 @@ func (suite *scanTestSuite) TestLocalEnrichment() { suite.Assert().True(getRegistriesTriggered, "get registry was not triggered") } +// TestScannerClientCapturedOnce is a regression guard for a TOCTOU nil-client +// dereference: the scanner client singleton must be consulted once per +// enrichment and the client captured at the nil-check must be the one handed to +// the scan. Otherwise a concurrent reset of the singleton (e.g. on Central +// reconnect) could return non-nil at the check but nil at the scan, panicking +// when a method is invoked on the nil client. +func (suite *scanTestSuite) TestScannerClientCapturedOnce() { + fakeRegStore := &fakeRegistryStore{} + mirrorStore := mirrorStoreMocks.NewMockStore(gomock.NewController(suite.T())) + + // Returns a valid client on the first call, then nil, simulating a + // concurrent singleton reset occurring mid-enrichment. + capturedClient := &emptyClient{} + singletonCalls := 0 + singleton := func() scannerclient.ScannerClient { + singletonCalls++ + if singletonCalls == 1 { + return capturedClient + } + return nil + } + + var scannedWithClient scannerclient.ScannerClient + recordingScan := func(_ context.Context, _ *storage.Image, + reg registryTypes.ImageRegistry, client scannerclient.ScannerClient) (*scannerclient.ImageAnalysis, error) { + scannedWithClient = client + return successfulScan(context.Background(), nil, reg, client) + } + + scan := LocalScan{ + scanImg: recordingScan, + fetchSignaturesWithRetry: successfulFetchSignatures, + getPullSecretRegistries: func(*storage.ImageName, string, []string) ([]registryTypes.ImageRegistry, error) { + return []registryTypes.ImageRegistry{&fakeRegistry{fail: false}}, nil + }, + getGlobalRegistries: func(*storage.ImageName) ([]registryTypes.ImageRegistry, error) { + return []registryTypes.ImageRegistry{&fakeRegistry{fail: false}}, nil + }, + scannerClientSingleton: singleton, + scanSemaphore: semaphore.NewWeighted(10), + getCentralRegistries: fakeRegStore.GetMatchingCentralRegistryIntegrations, + mirrorStore: mirrorStore, + maxSemaphoreWaitTime: defaultMaxSemaphoreWaitTime, + } + + containerImg, err := utils.GenerateImageFromString("docker.io/nginx") + suite.Require().NoError(err, "failed creating test image") + + imageServiceClient := suite.createMockImageServiceClient(types.ToImage(containerImg), false) + mirrorStore.EXPECT().PullSources(containerImg.GetName().GetFullName()) + + // Must not panic even though the singleton starts returning nil after the check. + _, err = scan.EnrichLocalImageInNamespace(context.Background(), imageServiceClient, genScanReq(containerImg, "fake-namespace", "", false)) + suite.Require().NoError(err, "unexpected error when enriching image") + + suite.Assert().Equal(1, singletonCalls, "scanner client singleton should be consulted exactly once") + suite.Assert().Same(capturedClient, scannedWithClient, "scan should use the client captured at the nil-check") +} + func (suite *scanTestSuite) TestEnrichImageFailures() { type testCase struct { scanImg func(ctx context.Context, image *storage.Image, diff --git a/sensor/common/scannerclient/grpc_client.go b/sensor/common/scannerclient/grpc_client.go index 1dd8853914d86..6f689846963b2 100644 --- a/sensor/common/scannerclient/grpc_client.go +++ b/sensor/common/scannerclient/grpc_client.go @@ -3,24 +3,18 @@ package scannerclient import ( "context" "fmt" - "strings" "github.com/google/go-containerregistry/pkg/authn" "github.com/pkg/errors" v4 "github.com/stackrox/rox/generated/internalapi/scanner/v4" "github.com/stackrox/rox/generated/storage" - "github.com/stackrox/rox/pkg/clientconn" "github.com/stackrox/rox/pkg/env" - "github.com/stackrox/rox/pkg/images/utils" "github.com/stackrox/rox/pkg/logging" - "github.com/stackrox/rox/pkg/mtls" "github.com/stackrox/rox/pkg/registries/types" pkgscanner "github.com/stackrox/rox/pkg/scannerv4" "github.com/stackrox/rox/pkg/scannerv4/client" "github.com/stackrox/rox/sensor/common/centralcabundle" scannerV1 "github.com/stackrox/scanner/generated/scanner/api/v1" - "google.golang.org/grpc" - "google.golang.org/grpc/credentials" ) var ( @@ -45,13 +39,6 @@ type ImageAnalysis struct { V4Contents *v4.Contents } -// v2Client is the client for StackRox Scanner based on Clair V2, also -// known as Scanner V2. -type v2Client struct { - scannerV1.ImageScanServiceClient - conn *grpc.ClientConn -} - // v4Client is the client for StackRox Scanner Indexer, also // known as Scanner V4 Indexer. type v4Client struct { @@ -103,57 +90,6 @@ func (i *ImageAnalysis) GetIndexerVersion() string { return "" } -// getScannerEndpoint reads and validate the Scanner gRPC endpoint setting. If -// the endpoint is empty or not configured properly (invalid) the value is -// returned and error will be set. -func getScannerEndpoint(s env.Setting) (string, error) { - e := s.Setting() - if e == "" { - return e, errors.Errorf("%s is not set or empty", s.EnvVar()) - } - e = strings.TrimPrefix(e, "https://") - if strings.Contains(e, "://") { - return e, errors.Errorf("%s has unsupported scheme: %s", s.EnvVar(), e) - } - return e, nil -} - -// dial the scanner and returns a new ScannerClient. The function is non-blocking and -// returns a non-nil error upon configuration error. -func dial(endpoint string, certID mtls.Subject) (*grpc.ClientConn, error) { - tlsConfig, err := clientconn.TLSConfig(certID, clientconn.TLSConfigOptions{ - UseClientCert: clientconn.MustUseClientCert, - }) - if err != nil { - return nil, fmt.Errorf("TLS config failed: %w", err) - } - // This is non-blocking. If we ever want this to block, then add the - // grpc.WithBlock() DialOption. - log.Infof("dialing scanner at %s", endpoint) - conn, err := grpc.Dial(endpoint, grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))) - if err != nil { - return nil, fmt.Errorf("grpc dial failed: %w", err) - } - return conn, nil -} - -// dialV2 connect to scanner V1 gRPC and return a new ScannerClient. -func dialV2() (ScannerClient, error) { - endpoint, err := getScannerEndpoint(env.ScannerSlimGRPCEndpoint) - if err != nil { - return nil, err - } - log.Infof("dialing scanner-v2 client: %s", endpoint) - conn, err := dial(endpoint, mtls.ScannerSubject) - if err != nil { - return nil, err - } - return &v2Client{ - ImageScanServiceClient: scannerV1.NewImageScanServiceClient(conn), - conn: conn, - }, nil -} - // dialV4 connect to scanner V4 gRPC and return a new ScannerClient. func dialV4() (ScannerClient, error) { ctx := context.Background() @@ -172,45 +108,6 @@ func dialV4() (ScannerClient, error) { return &v4Client{client: c}, nil } -// GetImageAnalysis retrieves the image analysis results for the given image. -func (c *v2Client) GetImageAnalysis(ctx context.Context, image *storage.Image, cfg *types.Config) (*ImageAnalysis, error) { - imgName := image.GetName().GetFullName() - - // The WaitForReady option will cause invocations to block (until server ready or - // ctx done/expires) This was added so that on fresh installation of sensor when - // scanner is not ready yet, local scans will not all fail and have to wait for - // next reprocess to succeed - resp, err := c.GetImageComponents(ctx, &scannerV1.GetImageComponentsRequest{ - Image: utils.GetFullyQualifiedFullName(image), - Registry: &scannerV1.RegistryData{ - Url: cfg.URL, - Username: cfg.Username, - Password: cfg.Password, - Insecure: cfg.Insecure, - }, - }, grpc.WaitForReady(true)) - if err != nil { - log.Debugf("Unable to get image components from local Scanner for image %s: %v", imgName, err) - return nil, errors.Wrap(err, "getting image components from scanner") - } - - log.Debugf("Received image components from local Scanner for image: %q", imgName) - - return &ImageAnalysis{ - ScanStatus: resp.GetStatus(), - ScanNotes: resp.GetNotes(), - V1Components: resp.GetComponents(), - }, nil -} - -// Close closes and cleanup the client connection. -func (c *v2Client) Close() error { - if err := c.conn.Close(); err != nil { - return errors.Wrap(err, "closing v2 scanner gRPC connection") - } - return nil -} - func convertIndexReportToAnalysis(ir *v4.IndexReport, indexerVersion string) *ImageAnalysis { var st scannerV1.ScanStatus switch ir.GetState() { diff --git a/sensor/common/scannerclient/singleton.go b/sensor/common/scannerclient/singleton.go index a1851e02c7187..1b38b06b2cd20 100644 --- a/sensor/common/scannerclient/singleton.go +++ b/sensor/common/scannerclient/singleton.go @@ -12,12 +12,14 @@ import ( var ( scannerClient ScannerClient scannerClientMutex sync.Mutex + loggedNoCentralV4 bool isScannerV4Enabled = features.ScannerV4.Enabled() ) // GRPCClientSingleton returns a gRPC ScannerClient to a local Scanner. -// Only one ScannerClient per Sensor is required. +// Only one ScannerClient per Sensor is required. A nil client may +// be returned. func GRPCClientSingleton() ScannerClient { scannerClientMutex.Lock() defer scannerClientMutex.Unlock() @@ -31,14 +33,27 @@ func GRPCClientSingleton() ScannerClient { env.LocalImageScanningEnabled.EnvVar()) return nil } - var err error - if isScannerV4Enabled && centralcaps.Has(centralsensor.ScannerV4Supported) { - log.Info("Creating Scanner V4 client") - scannerClient, err = dialV4() - } else { - log.Info("Creating Scanner V2 client") - scannerClient, err = dialV2() + + // Scanner V4 is the only local scanner Sensor connects to. Using it requires + // both Scanner V4 to be installed locally and Central to advertise support + // for Scanner V4. + // When either is missing there is no local scanner to talk to, so we return a nil + // client. + if !isScannerV4Enabled { + log.Warn("Local image scanning is enabled but Scanner V4 is disabled in Sensor; no local scanner will be used") + return nil } + if !centralcaps.Has(centralsensor.ScannerV4Supported) { + if !loggedNoCentralV4 { + log.Info("Local image scanning is enabled but Central does not support Scanner V4; no local scanner will be used") + loggedNoCentralV4 = true + } + return nil + } + + log.Info("Creating Scanner V4 client") + var err error + scannerClient, err = dialV4() utils.Should(err) return scannerClient @@ -50,6 +65,7 @@ func resetGRPCClient() { scannerClientMutex.Lock() defer scannerClientMutex.Unlock() + loggedNoCentralV4 = false if scannerClient == nil { return } diff --git a/sensor/common/scannerclient/singleton_test.go b/sensor/common/scannerclient/singleton_test.go new file mode 100644 index 0000000000000..cec1350033c66 --- /dev/null +++ b/sensor/common/scannerclient/singleton_test.go @@ -0,0 +1,90 @@ +package scannerclient + +import ( + "strconv" + "testing" + + "github.com/stackrox/rox/pkg/centralsensor" + "github.com/stackrox/rox/pkg/env" + "github.com/stackrox/rox/pkg/logging" + "github.com/stackrox/rox/sensor/common/centralcaps" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +type infoCountingLogger struct { + logging.Logger + infoCalls int +} + +func (l *infoCountingLogger) Info(_ ...interface{}) { + l.infoCalls++ +} + +func TestGRPCClientSingleton(t *testing.T) { + tests := map[string]struct { + localImageScanningEnabled bool + scannerV4Enabled bool + centralCaps []centralsensor.CentralCapability + }{ + "local image scanning disabled": { + localImageScanningEnabled: false, + scannerV4Enabled: true, + centralCaps: []centralsensor.CentralCapability{centralsensor.ScannerV4Supported}, + }, + "scanner v4 disabled in sensor": { + localImageScanningEnabled: true, + scannerV4Enabled: false, + centralCaps: []centralsensor.CentralCapability{centralsensor.ScannerV4Supported}, + }, + "central does not support scanner v4": { + localImageScanningEnabled: true, + scannerV4Enabled: true, + centralCaps: nil, + }, + } + + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + t.Setenv(env.LocalImageScanningEnabled.EnvVar(), strconv.FormatBool(tt.localImageScanningEnabled)) + + origScannerV4Enabled := isScannerV4Enabled + isScannerV4Enabled = tt.scannerV4Enabled + t.Cleanup(func() { isScannerV4Enabled = origScannerV4Enabled }) + + centralcaps.Set(tt.centralCaps) + t.Cleanup(func() { centralcaps.Set(nil) }) + + scannerClient = nil + t.Cleanup(func() { scannerClient = nil }) + + assert.Nil(t, GRPCClientSingleton()) + }) + } +} + +func TestGRPCClientSingletonLogsMissingCentralCapabilityOncePerReset(t *testing.T) { + t.Setenv(env.LocalImageScanningEnabled.EnvVar(), "true") + centralcaps.Set(nil) + t.Cleanup(func() { centralcaps.Set(nil) }) + + origScannerV4Enabled := isScannerV4Enabled + isScannerV4Enabled = true + t.Cleanup(func() { isScannerV4Enabled = origScannerV4Enabled }) + + resetGRPCClient() + t.Cleanup(resetGRPCClient) + + origLog := log + countingLog := &infoCountingLogger{Logger: origLog} + log = countingLog + t.Cleanup(func() { log = origLog }) + + assert.Nil(t, GRPCClientSingleton()) + assert.Nil(t, GRPCClientSingleton()) + require.Equal(t, 1, countingLog.infoCalls) + + resetGRPCClient() // The client is still nil, but the log should be enabled again. + assert.Nil(t, GRPCClientSingleton()) + assert.Equal(t, 2, countingLog.infoCalls) +} From 91bc09fb5e55e38f0749e7609304e264a9e1b02c Mon Sep 17 00:00:00 2001 From: David Caravello <119438707+dcaravel@users.noreply.github.com> Date: Sun, 27 Sep 2026 10:14:24 -0500 Subject: [PATCH 108/327] ROX-32329: Report unhealthy scanner (#22862) --- pkg/clusterhealth/status.go | 10 +++ pkg/clusterhealth/status_test.go | 85 +++++++++++++++++++ sensor/kubernetes/clusterhealth/updater.go | 35 +++++--- .../kubernetes/clusterhealth/updater_test.go | 78 +++++++++++++++++ 4 files changed, 194 insertions(+), 14 deletions(-) diff --git a/pkg/clusterhealth/status.go b/pkg/clusterhealth/status.go index 1d451ca4aaf36..a5fe930db215d 100644 --- a/pkg/clusterhealth/status.go +++ b/pkg/clusterhealth/status.go @@ -121,6 +121,16 @@ func PopulateLocalScannerStatus(localScannerHealthInfo *storage.ScannerHealthInf return storage.ClusterHealthStatus_UNINITIALIZED } + // A non-nil ScannerHealthInfo means local image scanning is enabled on the secured + // cluster. If Sensor could not gather scanner health it reports the reason(s) via + // StatusErrors and leaves the pod counts unset, e.g. a misconfiguration (local scanning + // enabled but Scanner V4 is not) or a missing scanner deployment. Reporting UNHEALTHY + // distinguishes this "enabled but broken" state from the "not installed" case above and + // surfaces the problem to the user. + if len(localScannerHealthInfo.GetStatusErrors()) > 0 { + return storage.ClusterHealthStatus_UNHEALTHY + } + desiredPods := localScannerHealthInfo.GetTotalDesiredAnalyzerPods() readyPods := localScannerHealthInfo.GetTotalReadyAnalyzerPods() diff --git a/pkg/clusterhealth/status_test.go b/pkg/clusterhealth/status_test.go index 440e0537497b9..4f6228e4cc3bb 100644 --- a/pkg/clusterhealth/status_test.go +++ b/pkg/clusterhealth/status_test.go @@ -270,3 +270,88 @@ func TestOverallHealth(t *testing.T) { }) } } + +func TestPopulateLocalScannerStatus(t *testing.T) { + cases := map[string]struct { + scannerHealthInfo *storage.ScannerHealthInfo + expected storage.ClusterHealthStatus_HealthStatusLabel + }{ + "nil: local scanning not enabled (optional component)": { + scannerHealthInfo: nil, + expected: storage.ClusterHealthStatus_UNINITIALIZED, + }, + "status errors: enabled but misconfigured (no scanner v4)": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + StatusErrors: []string{"local image scanning is enabled but Scanner V4 is not enabled"}, + }, + expected: storage.ClusterHealthStatus_UNHEALTHY, + }, + "status errors take precedence over pod counts": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + StatusErrors: []string{"unable to find scanner deployment"}, + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(3), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(3), + TotalReadyDbPodsOpt: dbPodsReady(1), + }, + expected: storage.ClusterHealthStatus_UNHEALTHY, + }, + "no pod counts, no errors: uninitialized": { + scannerHealthInfo: &storage.ScannerHealthInfo{}, + expected: storage.ClusterHealthStatus_UNINITIALIZED, + }, + "desired analyzer pods zero: uninitialized": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(0), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(0), + }, + expected: storage.ClusterHealthStatus_UNINITIALIZED, + }, + "no ready db pods: unhealthy": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(3), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(3), + TotalReadyDbPodsOpt: dbPodsReady(0), + }, + expected: storage.ClusterHealthStatus_UNHEALTHY, + }, + "all analyzer and db pods ready: healthy": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(3), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(3), + TotalReadyDbPodsOpt: dbPodsReady(1), + }, + expected: storage.ClusterHealthStatus_HEALTHY, + }, + "some analyzer pods not ready: degraded": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(3), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(2), + TotalReadyDbPodsOpt: dbPodsReady(1), + }, + expected: storage.ClusterHealthStatus_DEGRADED, + }, + "most analyzer pods not ready: unhealthy": { + scannerHealthInfo: &storage.ScannerHealthInfo{ + TotalDesiredAnalyzerPodsOpt: analyzerPodsDesired(3), + TotalReadyAnalyzerPodsOpt: analyzerPodsReady(1), + TotalReadyDbPodsOpt: dbPodsReady(1), + }, + expected: storage.ClusterHealthStatus_UNHEALTHY, + }, + } + for name, c := range cases { + t.Run(name, func(t *testing.T) { + assert.Equal(t, c.expected, PopulateLocalScannerStatus(c.scannerHealthInfo)) + }) + } +} + +func analyzerPodsDesired(num int32) *storage.ScannerHealthInfo_TotalDesiredAnalyzerPods { + return &storage.ScannerHealthInfo_TotalDesiredAnalyzerPods{TotalDesiredAnalyzerPods: num} +} +func analyzerPodsReady(num int32) *storage.ScannerHealthInfo_TotalReadyAnalyzerPods { + return &storage.ScannerHealthInfo_TotalReadyAnalyzerPods{TotalReadyAnalyzerPods: num} +} +func dbPodsReady(num int32) *storage.ScannerHealthInfo_TotalReadyDbPods { + return &storage.ScannerHealthInfo_TotalReadyDbPods{TotalReadyDbPods: num} +} diff --git a/sensor/kubernetes/clusterhealth/updater.go b/sensor/kubernetes/clusterhealth/updater.go index 3b206f7f82869..c902553822d82 100644 --- a/sensor/kubernetes/clusterhealth/updater.go +++ b/sensor/kubernetes/clusterhealth/updater.go @@ -33,9 +33,6 @@ const ( admissionControlDeploymentName = "admission-control" admissionControlContainerName = "admission-control" - localScannerDeploymentName = "scanner" - localScannerDBDeploymentName = "scanner-db" - localScannerV4IndexerDeploymentName = "scanner-v4-indexer" localScannerV4DBDeploymentName = "scanner-v4-db" ) @@ -205,19 +202,29 @@ func (u *updaterImpl) getLocalScannerInfo() *storage.ScannerHealthInfo { return nil } - // It's possible that both Scanner and Scanner V4 are installed in the secured cluster - // at the same time, but only one will be used by Sensor at any given time, therefore - // only report the health of the active scanner. - scannerV4Active := features.ScannerV4.Enabled() && centralcaps.Has(centralsensor.ScannerV4Supported) - - analyzerDeploymentName := localScannerDeploymentName - dbDeploymentName := localScannerDBDeploymentName - if scannerV4Active { - analyzerDeploymentName = localScannerV4IndexerDeploymentName - dbDeploymentName = localScannerV4DBDeploymentName + // Local image scanning requires Scanner V4; Scanner V2 is no longer supported. + // When Scanner V4 is not active, local scanning cannot function. Pod state is irrelevant + // in these cases. The two failure modes are reported distinctly: + // - Scanner V4 is not enabled on this secured cluster, or + // - Scanner V4 is enabled but Central does not advertise Scanner V4 support. + if !features.ScannerV4.Enabled() { + return &storage.ScannerHealthInfo{ + StatusErrors: []string{ + "local image scanning is enabled but Scanner V4 is not enabled in secured cluster; local image " + + "scanning requires Scanner V4", + }, + } + } + if !centralcaps.Has(centralsensor.ScannerV4Supported) { + return &storage.ScannerHealthInfo{ + StatusErrors: []string{ + "local image scanning and Scanner V4 are enabled in secured cluster, but Central is not reporting " + + "support for Scanner V4; enable Scanner V4 in Central to enable local image scanning", + }, + } } - result := u.getScannerHealthInfo(analyzerDeploymentName, dbDeploymentName) + result := u.getScannerHealthInfo(localScannerV4IndexerDeploymentName, localScannerV4DBDeploymentName) if len(result.GetStatusErrors()) > 0 { log.Errorf("Errors while getting local scanner info: %v", result.GetStatusErrors()) } diff --git a/sensor/kubernetes/clusterhealth/updater_test.go b/sensor/kubernetes/clusterhealth/updater_test.go index ff1c9e8d2f0b2..7f2ea8ea312fa 100644 --- a/sensor/kubernetes/clusterhealth/updater_test.go +++ b/sensor/kubernetes/clusterhealth/updater_test.go @@ -9,8 +9,11 @@ import ( "github.com/stackrox/rox/generated/internalapi/central" "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/centralsensor" + "github.com/stackrox/rox/pkg/features" "github.com/stackrox/rox/pkg/namespaces" "github.com/stackrox/rox/sensor/common" + "github.com/stackrox/rox/sensor/common/centralcaps" "github.com/stackrox/rox/sensor/common/message" "github.com/stretchr/testify/suite" appsV1 "k8s.io/api/apps/v1" @@ -290,6 +293,81 @@ func (s *UpdaterTestSuite) TestExpiredMessage() { } } +func (s *UpdaterTestSuite) TestLocalScannerDisabled() { + s.T().Setenv("ROX_LOCAL_IMAGE_SCANNING_ENABLED", "false") + + updater := s.createNewUpdater(updateInterval) + s.Nil(updater.getLocalScannerInfo(), "no scanner health info should be reported when local scanning is disabled") +} + +func (s *UpdaterTestSuite) TestLocalScannerV4NotSupportedByCentral() { + s.T().Setenv("ROX_LOCAL_IMAGE_SCANNING_ENABLED", "true") + s.T().Setenv(features.ScannerV4.EnvVar(), "true") + s.setCentralCaps() // Central does not advertise ScannerV4Supported. + + updater := s.createNewUpdater(updateInterval) + info := updater.getLocalScannerInfo() + + s.Require().NotNil(info) + // Pod counts must not be reported: the failure is a misconfiguration, not pod state. + s.Nil(info.GetTotalDesiredAnalyzerPodsOpt()) + s.Nil(info.GetTotalReadyAnalyzerPodsOpt()) + s.Require().Len(info.GetStatusErrors(), 1) + s.Contains(info.GetStatusErrors()[0], "Central is not reporting support for Scanner V4") +} + +func (s *UpdaterTestSuite) TestLocalScannerV4FeatureDisabled() { + s.T().Setenv("ROX_LOCAL_IMAGE_SCANNING_ENABLED", "true") + s.T().Setenv(features.ScannerV4.EnvVar(), "false") + s.setCentralCaps(centralsensor.ScannerV4Supported) + + updater := s.createNewUpdater(updateInterval) + info := updater.getLocalScannerInfo() + + s.Require().NotNil(info) + s.Nil(info.GetTotalDesiredAnalyzerPodsOpt()) + s.Require().Len(info.GetStatusErrors(), 1) + s.Contains(info.GetStatusErrors()[0], "Scanner V4 is not enabled") + // This case is distinct from Central lacking Scanner V4 support. + s.NotContains(info.GetStatusErrors()[0], "Central") +} + +func (s *UpdaterTestSuite) TestLocalScannerV4Healthy() { + s.T().Setenv("ROX_LOCAL_IMAGE_SCANNING_ENABLED", "true") + s.T().Setenv(features.ScannerV4.EnvVar(), "true") + s.setCentralCaps(centralsensor.ScannerV4Supported) + s.addDeployment(makeScannerDeployment("scanner-v4-indexer", 3, 3)) + s.addDeployment(makeScannerDeployment("scanner-v4-db", 1, 1)) + + updater := s.createNewUpdater(updateInterval) + info := updater.getLocalScannerInfo() + + s.Require().NotNil(info) + s.Empty(info.GetStatusErrors()) + s.Equal(int32(3), info.GetTotalDesiredAnalyzerPods()) + s.Equal(int32(3), info.GetTotalReadyAnalyzerPods()) + s.Equal(int32(1), info.GetTotalDesiredDbPods()) + s.Equal(int32(1), info.GetTotalReadyDbPods()) +} + +func (s *UpdaterTestSuite) setCentralCaps(caps ...centralsensor.CentralCapability) { + centralcaps.Set(caps) + s.T().Cleanup(func() { centralcaps.Set(nil) }) +} + +func makeScannerDeployment(name string, replicas, ready int32) appsV1.Deployment { + return appsV1.Deployment{ + ObjectMeta: metaV1.ObjectMeta{ + Name: name, + Namespace: "stackrox-mock-ns", + }, + Status: appsV1.DeploymentStatus{ + Replicas: replicas, + ReadyReplicas: ready, + }, + } +} + func (s *UpdaterTestSuite) createNewUpdater(interval time.Duration) *updaterImpl { updaterComponent := NewUpdater(s.client, interval) updater, ok := updaterComponent.(*updaterImpl) From 61b105b67c7abe13c399ed5869791aaeef5e1787 Mon Sep 17 00:00:00 2001 From: Johannes Malsam Date: Mon, 28 Sep 2026 10:36:30 +0200 Subject: [PATCH 109/327] ROX-35137: add pruning for orphaned deployments (#23030) --- CHANGELOG.md | 1 + .../deployment/datastore/datastore_impl.go | 27 +++--- .../datastore/datastore_impl_test.go | 47 ++++++++++ central/postgres/pruning.go | 34 +++++++ central/postgres/pruning_test.go | 62 +++++++++++++ central/pruning/pruning.go | 28 ++++++ central/pruning/pruning_test.go | 88 +++++++++++++++++++ 7 files changed, 273 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ec9b661ee677..d7336e61d2a50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ Changes should still be described appropriately in JIRA/doc input pages, for inc ### Deprecated Features ### Technical Changes +- ROX-35137: Central now prunes deployments whose cluster no longer exists in the database. - ROX-37048: Central writes its version in `Rh-Central-Version` gRPC response header to authenticated clients. `roxctl` compares this version with its own version and reports a warning to stderr if the version skew is outside of a supported range. diff --git a/central/deployment/datastore/datastore_impl.go b/central/deployment/datastore/datastore_impl.go index 196a6af2b98fa..4ee891e512bfa 100644 --- a/central/deployment/datastore/datastore_impl.go +++ b/central/deployment/datastore/datastore_impl.go @@ -361,7 +361,8 @@ func (ds *datastoreImpl) RemoveDeployment(ctx context.Context, clusterID, id str return sac.ErrResourceAccessDenied } // Dedupe the removed deployments. This can happen because Pods have many completion states - // and we may receive multiple Remove calls + // and we may receive multiple Remove calls. Marking up front also stops concurrent UpsertFlows + // from writing flows for the deployment while it is being removed. if ds.deletedDeploymentCache != nil { if ds.deletedDeploymentCache.Contains(id) { return nil @@ -387,22 +388,20 @@ func (ds *datastoreImpl) RemoveDeployment(ctx context.Context, clusterID, id str errorList.AddError(err) } - flowStore, err := ds.networkFlows.GetFlowStore(deleteRelatedCtx, clusterID) - if err != nil { - errorList.AddError(err) - return errorList.ToError() - } - - if err := flowStore.RemoveFlowsForDeployment(deleteRelatedCtx, id); err != nil { - errorList.AddError(err) + // clusterID is nullable in the DB; guard against an empty value to avoid an error from flow store. + if clusterID != "" { + // A missing flow store must not block the delete, else deployments of a deleted cluster + // could never be pruned. + if flowStore, err := ds.networkFlows.GetFlowStore(deleteRelatedCtx, clusterID); err != nil { + errorList.AddError(err) + } else if err := flowStore.RemoveFlowsForDeployment(deleteRelatedCtx, id); err != nil { + errorList.AddError(err) + } } // Delete should be last to ensure that the above is always cleaned up even in the case of crash - err = ds.keyedMutex.DoStatusWithLock(id, func() error { - if err := ds.deploymentStore.Delete(ctx, id); err != nil { - return err - } - return nil + err := ds.keyedMutex.DoStatusWithLock(id, func() error { + return ds.deploymentStore.Delete(ctx, id) }) if err != nil { errorList.AddError(err) diff --git a/central/deployment/datastore/datastore_impl_test.go b/central/deployment/datastore/datastore_impl_test.go index 04c1d610f3f37..4440e5631294f 100644 --- a/central/deployment/datastore/datastore_impl_test.go +++ b/central/deployment/datastore/datastore_impl_test.go @@ -2,10 +2,13 @@ package datastore import ( "context" + "errors" "testing" storeMocks "github.com/stackrox/rox/central/deployment/datastore/internal/store/mocks" + flowMocks "github.com/stackrox/rox/central/networkgraph/flow/datastore/mocks" matcherMocks "github.com/stackrox/rox/central/platform/matcher/mocks" + baselineMocks "github.com/stackrox/rox/central/processbaseline/datastore/mocks" "github.com/stackrox/rox/central/ranking" riskMocks "github.com/stackrox/rox/central/risk/datastore/mocks" v1 "github.com/stackrox/rox/generated/api/v1" @@ -98,6 +101,50 @@ func (suite *DeploymentDataStoreTestSuite) TestInitializeRanker() { suite.Equal(int64(3), deploymentRanker.GetRankForID("3")) } +// Regression: a failed flow store lookup must not block the row delete, else +// deployments of an already-deleted cluster could never be pruned. +func (suite *DeploymentDataStoreTestSuite) TestRemoveDeploymentDeletesRowWhenFlowStoreLookupFails() { + baselines := baselineMocks.NewMockDataStore(suite.mockCtrl) + flows := flowMocks.NewMockClusterDataStore(suite.mockCtrl) + + ds := newDatastoreImpl(suite.storage, nil, nil, baselines, flows, suite.riskStore, nil, suite.filter, + ranking.NewRanker(), ranking.NewRanker(), ranking.NewRanker(), suite.matcher) + + const clusterID = "c1" + const deploymentID = "d1" + + suite.riskStore.EXPECT().RemoveRisk(gomock.Any(), deploymentID, gomock.Any()).Return(nil) + baselines.EXPECT().RemoveProcessBaselinesByDeployment(gomock.Any(), deploymentID).Return(nil) + flows.EXPECT().GetFlowStore(gomock.Any(), clusterID).Return(nil, errors.New("flow store gone")) + // The deployment row must still be deleted despite the flow-store failure. + suite.storage.EXPECT().Delete(gomock.Any(), deploymentID).Return(nil) + + err := ds.RemoveDeployment(suite.ctx, clusterID, deploymentID) + suite.Require().Error(err) + suite.ErrorContains(err, "flow store gone") +} + +// An empty clusterID (e.g. an orphaned deployment whose clusterid column is NULL) has no +// flow partition, so the flow store lookup must be skipped rather than dereferencing a nil +// store, while the row is still deleted. +func (suite *DeploymentDataStoreTestSuite) TestRemoveDeploymentSkipsFlowStoreWhenClusterIDEmpty() { + baselines := baselineMocks.NewMockDataStore(suite.mockCtrl) + flows := flowMocks.NewMockClusterDataStore(suite.mockCtrl) + + ds := newDatastoreImpl(suite.storage, nil, nil, baselines, flows, suite.riskStore, nil, suite.filter, + ranking.NewRanker(), ranking.NewRanker(), ranking.NewRanker(), suite.matcher) + + const deploymentID = "d1" + + suite.riskStore.EXPECT().RemoveRisk(gomock.Any(), deploymentID, gomock.Any()).Return(nil) + baselines.EXPECT().RemoveProcessBaselinesByDeployment(gomock.Any(), deploymentID).Return(nil) + // flows.GetFlowStore must not be called for an empty clusterID; the mock has no + // expectation set, so any call would fail the test. + suite.storage.EXPECT().Delete(gomock.Any(), deploymentID).Return(nil) + + suite.Require().NoError(ds.RemoveDeployment(suite.ctx, "", deploymentID)) +} + func walkMockFunc(deployments []*storage.Deployment) func(_ context.Context, _ *v1.Query, fn func(group *storage.Deployment) error) error { return func(_ context.Context, _ *v1.Query, fn func(deployment *storage.Deployment) error) error { for _, g := range deployments { diff --git a/central/postgres/pruning.go b/central/postgres/pruning.go index 14cdad7d9e2b3..2bb614e068468 100644 --- a/central/postgres/pruning.go +++ b/central/postgres/pruning.go @@ -29,6 +29,9 @@ const ( getAllOrphanedNodes = `SELECT id FROM nodes WHERE NOT EXISTS (SELECT 1 FROM clusters WHERE nodes.clusterid = clusters.Id)` + getAllOrphanedDeployments = `SELECT id, clusterid FROM deployments WHERE NOT EXISTS + (SELECT 1 FROM clusters WHERE deployments.clusterid = clusters.Id)` + getOrphanedProcessesByDeployment = `SELECT id FROM process_indicators pi WHERE NOT EXISTS (SELECT 1 FROM deployments WHERE pi.deploymentid = deployments.Id) AND (signal_time < now() AT time zone 'utc' - INTERVAL '%d MINUTES' OR signal_time IS NULL)` @@ -189,6 +192,37 @@ func GetOrphanedNodeIDs(ctx context.Context, pool postgres.DB) ([]string, error) }) } +// OrphanedDeployment holds a deployment id with its clusterid +type OrphanedDeployment struct { + ID string + ClusterID string +} + +// GetOrphanedDeploymentIDs returns the deployments that have a cluster that has been removed. +func GetOrphanedDeploymentIDs(ctx context.Context, pool postgres.DB) ([]OrphanedDeployment, error) { + return pgutils.Retry2(ctx, func() ([]OrphanedDeployment, error) { + ctx, cancel := context.WithTimeout(ctx, orphanedQueryTimeout) + defer cancel() + + rows, err := pool.Query(ctx, getAllOrphanedDeployments) + if err != nil { + return nil, errors.Wrap(err, "failed to get orphaned deployments") + } + return pgx.CollectRows(rows, func(r pgx.CollectableRow) (OrphanedDeployment, error) { + var d OrphanedDeployment + // clusterid is nullable; scan into a pointer so a NULL does not abort the pruning cycle. + var clusterID *string + if err := r.Scan(&d.ID, &clusterID); err != nil { + return OrphanedDeployment{}, errors.Wrap(err, "scanning orphaned deployment") + } + if clusterID != nil { + d.ClusterID = *clusterID + } + return d, nil + }) + }) +} + // GetOrphanedProcessIDsByDeployment returns the process ids that have a deployment that has been removed. func GetOrphanedProcessIDsByDeployment(ctx context.Context, pool postgres.DB, orphanWindow time.Duration) ([]string, error) { return pgutils.Retry2(ctx, func() ([]string, error) { diff --git a/central/postgres/pruning_test.go b/central/postgres/pruning_test.go index c788459a7588d..ade6dd5c22796 100644 --- a/central/postgres/pruning_test.go +++ b/central/postgres/pruning_test.go @@ -233,6 +233,68 @@ func (s *PostgresPruningSuite) TestGetOrphanedPodIDs() { s.Equal(len(idsToPrune), cluster2PodCount) } +func (s *PostgresPruningSuite) TestGetOrphanedDeploymentIDs() { + deploymentDS, err := deploymentStore.GetTestPostgresDataStore(s.T(), s.testDB.DB) + s.Require().NoError(err) + + clusterDS, err := clusterStore.GetTestPostgresDataStore(s.T(), s.testDB.DB) + s.Require().NoError(err) + + liveClusterID, err := clusterDS.AddCluster(s.ctx, &storage.Cluster{Name: "testOrphanDeploymentCluster", MainImage: "docker.io/stackrox/rox:latest"}) + s.Require().NoError(err) + + // Deployment tied to a live cluster - never orphaned. + liveDeploymentID := uuid.NewV4().String() + s.Require().NoError(deploymentDS.UpsertDeployment(s.ctx, &storage.Deployment{Id: liveDeploymentID, ClusterId: liveClusterID})) + + // Deployments whose clusterid has no matching cluster row - orphaned. This mirrors + // the field scenario where a cluster is hard-deleted but its deployments survive. + orphanClusterID := fixtureconsts.Cluster1 + orphanedIDs := set.NewStringSet() + for range 3 { + id := uuid.NewV4().String() + orphanedIDs.Add(id) + s.Require().NoError(deploymentDS.UpsertDeployment(s.ctx, &storage.Deployment{Id: id, ClusterId: orphanClusterID})) + } + + orphaned, err := GetOrphanedDeploymentIDs(s.ctx, s.testDB.DB) + s.Require().NoError(err) + + got := set.NewStringSet() + for _, d := range orphaned { + got.Add(d.ID) + s.Equal(orphanClusterID, d.ClusterID) + } + s.Equal(orphanedIDs, got) + s.NotContains(got.AsSlice(), liveDeploymentID) +} + +// A deployment with a NULL clusterid must not abort the sweep; it is orphaned (no matching +// cluster row) and must be returned with an empty ClusterID. +func (s *PostgresPruningSuite) TestGetOrphanedDeploymentIDsHandlesNullClusterID() { + deploymentDS, err := deploymentStore.GetTestPostgresDataStore(s.T(), s.testDB.DB) + s.Require().NoError(err) + + // Upsert with a non-matching cluster id, then null out the collumn, to verify + // the pruning works in the unlikely case deployments without clusterid made it to the DB + nullClusterDeploymentID := uuid.NewV4().String() + s.Require().NoError(deploymentDS.UpsertDeployment(s.ctx, &storage.Deployment{Id: nullClusterDeploymentID, ClusterId: fixtureconsts.Cluster1})) + _, err = s.testDB.DB.Exec(s.ctx, "UPDATE deployments SET clusterid = NULL WHERE id = $1", nullClusterDeploymentID) + s.Require().NoError(err) + + orphaned, err := GetOrphanedDeploymentIDs(s.ctx, s.testDB.DB) + s.Require().NoError(err) + + got := set.NewStringSet() + for _, d := range orphaned { + got.Add(d.ID) + if d.ID == nullClusterDeploymentID { + s.Empty(d.ClusterID) + } + } + s.Contains(got.AsSlice(), nullClusterDeploymentID) +} + func (s *PostgresPruningSuite) TestRemoveOrphanedProcesses() { cases := []struct { name string diff --git a/central/pruning/pruning.go b/central/pruning/pruning.go index 5673b35d77fff..dbae515c7df27 100644 --- a/central/pruning/pruning.go +++ b/central/pruning/pruning.go @@ -515,6 +515,30 @@ func (g *garbageCollectorImpl) removeOrphanedPods() { } } +// Remove deployments whose cluster has been deleted: fire-and-forget cluster-deletion cleanup can orphan them. No orphan window needed - cluster deletion is a hard delete that +// never re-adopts its deployments. +func (g *garbageCollectorImpl) removeOrphanedDeployments() { + defer metrics.SetPruningDuration(time.Now(), "Deployments") + deploymentsToRemove, err := postgres.GetOrphanedDeploymentIDs(pruningCtx, g.postgres) + if err != nil { + log.Errorf("Error finding orphaned deployments: %v", err) + return + } + + if len(deploymentsToRemove) == 0 { + log.Info("[Pruning] Found no orphaned deployments...") + return + } + log.Infof("[Pruning] Found %d orphaned deployments (from formerly deleted clusters). Deleting...", + len(deploymentsToRemove)) + + for _, d := range deploymentsToRemove { + if err := g.deployments.RemoveDeployment(pruningCtx, d.ClusterID, d.ID); err != nil { + log.Errorf("Failed to remove deployment with id %s: %v", d.ID, err) + } + } +} + // Remove nodes where the cluster has been deleted. func (g *garbageCollectorImpl) removeOrphanedNodes() { defer metrics.SetPruningDuration(time.Now(), "Nodes") @@ -588,6 +612,10 @@ func (g *garbageCollectorImpl) removeOrphanedResources() { } clusterIDSet := set.NewFrozenStringSet(clusterIDs...) + // Before the deploymentSet snapshot and alert/process/risk sweeps so they observe the + // deletions this cycle. Child rows (deployments_containers, etc.) cascade. + g.removeOrphanedDeployments() + deploymentIDs, err := g.deployments.GetDeploymentIDs(pruningCtx) if err != nil { log.Error(errors.Wrap(err, "unable to fetch deployment IDs in pruning")) diff --git a/central/pruning/pruning_test.go b/central/pruning/pruning_test.go index 6cd525a70115c..a61060837fb1b 100644 --- a/central/pruning/pruning_test.go +++ b/central/pruning/pruning_test.go @@ -2406,6 +2406,94 @@ func (s *PruningTestSuite) TestRemoveOrphanedPods() { s.Equal(updatedCount, podCount-cluster2PodCount) } +func (s *PruningTestSuite) TestRemoveOrphanedDeployments() { + ctrl := gomock.NewController(s.T()) + + mockRisk := riskDatastoreMocks.NewMockDataStore(ctrl) + mockRisk.EXPECT().RemoveRisk(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(nil) + mockBaseline := processBaselineDatastoreMocks.NewMockDataStore(ctrl) + mockBaseline.EXPECT().RemoveProcessBaselinesByDeployment(gomock.Any(), gomock.Any()).AnyTimes().Return(nil) + mockFilter := filterMocks.NewMockFilter(ctrl) + mockFilter.EXPECT().Delete(gomock.Any()).AnyTimes() + + flowStore := networkFlowDatastoreMocks.NewMockFlowDataStore(ctrl) + flowStore.EXPECT().RemoveFlowsForDeployment(gomock.Any(), gomock.Any()).AnyTimes().Return(nil) + flows := networkFlowDatastoreMocks.NewMockClusterDataStore(ctrl) + flows.EXPECT().GetFlowStore(gomock.Any(), gomock.Any()).AnyTimes().Return(flowStore, nil) + + deployments, err := deploymentDatastore.New(s.pool, nil, nil, mockBaseline, flows, mockRisk, nil, mockFilter, + ranking.NewRanker(), ranking.NewRanker(), ranking.NewRanker(), + platformmatcher.GetTestPlatformMatcherWithDefaultPlatformComponentConfig(ctrl)) + s.Require().NoError(err) + + _, _, clusterDS := s.generateClusterDataStructures() + liveClusterID, err := clusterDS.AddCluster(s.ctx, &storage.Cluster{Name: "testOrphanDeploymentCluster", MainImage: "docker.io/stackrox/rox:latest"}) + s.Require().NoError(err) + + // Deployment on a live (healthy) cluster - must survive the sweep. + liveDeployment := newDeployment("id1") + liveDeployment.Id = fixtureconsts.Deployment2 + liveDeployment.ClusterId = liveClusterID + s.Require().NoError(deployments.UpsertDeployment(s.ctx, liveDeployment)) + + // Clusters still in the DB but unhealthy/disconnected must keep their deployments - + // the sweep keys on the cluster row existing, not on health. + unhealthyClusters := []struct { + name string + deploymentID string + status storage.ClusterHealthStatus_HealthStatusLabel + }{ + {"testUnhealthyDeploymentCluster", fixtureconsts.Deployment3, storage.ClusterHealthStatus_UNHEALTHY}, + {"testDisconnectedDeploymentCluster", fixtureconsts.Deployment4, storage.ClusterHealthStatus_UNAVAILABLE}, + } + var unhealthyDeployments []*storage.Deployment + for _, c := range unhealthyClusters { + clusterID, err := clusterDS.AddCluster(s.ctx, &storage.Cluster{Name: c.name, MainImage: "docker.io/stackrox/rox:latest"}) + s.Require().NoError(err) + s.Require().NoError(clusterDS.UpdateClusterHealth(s.ctx, clusterID, + &storage.ClusterHealthStatus{SensorHealthStatus: c.status})) + + dep := newDeployment("img") + dep.Id = c.deploymentID + dep.ClusterId = clusterID + s.Require().NoError(deployments.UpsertDeployment(s.ctx, dep)) + unhealthyDeployments = append(unhealthyDeployments, dep) + } + + // Deployment whose clusterid has no cluster row - orphaned. + orphanedDeployment := newDeployment("id2") + orphanedDeployment.ClusterId = fixtureconsts.Cluster1 + s.Require().NoError(deployments.UpsertDeployment(s.ctx, orphanedDeployment)) + + gci := &garbageCollectorImpl{ + deployments: deployments, + postgres: s.pool, + } + + gci.removeOrphanedDeployments() + + _, exists, err := deployments.GetDeployment(s.ctx, orphanedDeployment.GetId()) + s.Require().NoError(err) + s.False(exists, "orphaned deployment should be pruned") + + _, exists, err = deployments.GetDeployment(s.ctx, liveDeployment.GetId()) + s.Require().NoError(err) + s.True(exists, "deployment of a live cluster must not be pruned") + + for _, dep := range unhealthyDeployments { + _, exists, err = deployments.GetDeployment(s.ctx, dep.GetId()) + s.Require().NoError(err) + s.True(exists, "deployment of a cluster still in the DB must not be pruned") + } + + // Cascaded deletion of deployments_containers rows is what makes the referenced + // image prunable - assert none remain. + var containerCount int + err = s.pool.QueryRow(s.ctx, "SELECT count(*) FROM deployments_containers WHERE deployments_id = $1", orphanedDeployment.GetId()).Scan(&containerCount) + s.Require().NoError(err) + s.Zero(containerCount) +} + func (s *PruningTestSuite) TestRemoveOrphanedNodes() { _, _, clusterDS := s.generateClusterDataStructures() From be5de333dd7f10bd4ab2ec7791d01adf641c55ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 11:41:09 +0200 Subject: [PATCH 110/327] chore(deps): bump github.com/go-jose/go-jose/v4 from 4.1.4 to 4.1.5 (#23093) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1833db41889be..b7ebe0893b68b 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/facebookincubator/nvdtools v0.1.5 github.com/fatih/color v1.19.0 github.com/georgysavva/scany/v2 v2.1.4 - github.com/go-jose/go-jose/v4 v4.1.4 + github.com/go-jose/go-jose/v4 v4.1.5 github.com/go-logr/logr v1.4.4 github.com/go-logr/zapr v1.3.0 github.com/go-viper/mapstructure/v2 v2.5.0 diff --git a/go.sum b/go.sum index 9ed09da42219f..89a6674db775b 100644 --- a/go.sum +++ b/go.sum @@ -501,8 +501,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 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-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= -github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= +github.com/go-jose/go-jose/v4 v4.1.5 h1:RjgjO2LOtWOJKUC5wpwY9LR3B3vwVAz6JS2YHfYU6eA= +github.com/go-jose/go-jose/v4 v4.1.5/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= From b2009cc26fa47ccea75560ef5e33db30e61287ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 11:41:25 +0200 Subject: [PATCH 111/327] chore(deps): bump github.com/prometheus/client_model from 0.6.2 to 0.6.3 (#23095) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b7ebe0893b68b..7147aebfbf4a2 100644 --- a/go.mod +++ b/go.mod @@ -109,7 +109,7 @@ require ( github.com/planetscale/vtprotobuf v0.6.1-0.20240409071808-615f978279ca github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 github.com/prometheus/client_golang v1.24.1 - github.com/prometheus/client_model v0.6.2 + github.com/prometheus/client_model v0.6.3 github.com/prometheus/common v0.71.0 github.com/quay/claircore v1.6.1-0.20260916195820-3902930ff815 github.com/quay/claircore/toolkit v1.7.0 diff --git a/go.sum b/go.sum index 89a6674db775b..13a709a3439d5 100644 --- a/go.sum +++ b/go.sum @@ -1154,8 +1154,8 @@ github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1: github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= -github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/client_model v0.6.3 h1:O0jaTVAYNxTHYInEPFJt5I3+sN8zqBtVMPTB1qyxiEo= +github.com/prometheus/client_model v0.6.3/go.mod h1:gpN5P9S7Rr6Yr92PiQ+Ixvhf6JZEkF1dnxsYL2aPBEM= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= From a8957aedbaaa2d3d8c950f54fa07fd112e9659a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 11:41:30 +0200 Subject: [PATCH 112/327] chore(deps): bump the k8s-io group with 7 updates (#23090) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 22 +++++++++++----------- go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/go.mod b/go.mod index 7147aebfbf4a2..7269101c9b41d 100644 --- a/go.mod +++ b/go.mod @@ -168,13 +168,13 @@ require ( gorm.io/driver/postgres v1.6.2 gorm.io/gorm v1.31.2 helm.sh/helm/v3 v3.21.3 - k8s.io/api v0.36.4 - k8s.io/apiextensions-apiserver v0.36.4 - k8s.io/apimachinery v0.36.4 - k8s.io/apiserver v0.36.4 - k8s.io/cli-runtime v0.36.4 - k8s.io/client-go v0.36.4 - k8s.io/kubectl v0.36.4 + k8s.io/api v0.36.5 + k8s.io/apiextensions-apiserver v0.36.5 + k8s.io/apimachinery v0.36.5 + k8s.io/apiserver v0.36.5 + k8s.io/cli-runtime v0.36.5 + k8s.io/client-go v0.36.5 + k8s.io/kubectl v0.36.5 k8s.io/kubelet v0.32.13 k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 kubevirt.io/api v1.9.0 @@ -464,13 +464,13 @@ require ( gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/code-generator v0.36.4 // indirect - k8s.io/component-base v0.36.4 // indirect - k8s.io/component-helpers v0.36.4 // indirect + k8s.io/code-generator v0.36.5 // indirect + k8s.io/component-base v0.36.5 // indirect + k8s.io/component-helpers v0.36.5 // indirect k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect k8s.io/klog/v2 v2.140.0 // indirect k8s.io/kube-openapi v0.31.0 // indirect - k8s.io/streaming v0.36.4 // indirect + k8s.io/streaming v0.36.5 // indirect kubevirt.io/containerized-data-importer-api v1.64.0 // indirect kubevirt.io/controller-lifecycle-operator-sdk/api v0.2.4 // indirect modernc.org/libc v1.75.6 // indirect diff --git a/go.sum b/go.sum index 13a709a3439d5..15446cb92c4a8 100644 --- a/go.sum +++ b/go.sum @@ -2132,26 +2132,26 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= k8s.io/api v0.23.3/go.mod h1:w258XdGyvCmnBj/vGzQMj6kzdufJZVUwEM1U2fRJwSQ= -k8s.io/api v0.36.4 h1:RxrvqCL6vgH5/+UnTeu1IIFqYmGfy0hnyrod1rn35Oo= -k8s.io/api v0.36.4/go.mod h1:S2B3orCFBDhrgyWbLeuKcT2QdHIpQesBkCYSlWtwUOw= -k8s.io/apiextensions-apiserver v0.36.4 h1:SfvCVt+4CqKWvzuVytYDT5g9hyb9MztoiYELIkPVrFc= -k8s.io/apiextensions-apiserver v0.36.4/go.mod h1:JT9V2Ju7ys1FY4zbSpmX9XOvKB3/BwsODc4hFQEa+Xo= +k8s.io/api v0.36.5 h1:vtL/ByHmw7suLt+SGVMPZnuj8QdfZ0kN1vvMvHRCY9c= +k8s.io/api v0.36.5/go.mod h1:erfc3/3d6z30KO2Kf+BmOewE6CajqZTz1Hcd+FQqg60= +k8s.io/apiextensions-apiserver v0.36.5 h1:pZcOcB7ur1ou+VeQSGChj3cvhrL2nA3gERMUaCHVJNQ= +k8s.io/apiextensions-apiserver v0.36.5/go.mod h1:l1uFNtfzcEBqgrYEiOIYwu+6R1RCkuZIiEvfPE6RpNs= k8s.io/apimachinery v0.23.3/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= -k8s.io/apimachinery v0.36.4 h1:PT2UzkupGuAx/+xT5XjiMJ1WGpY3fn9/hdAvjweRet4= -k8s.io/apimachinery v0.36.4/go.mod h1:p2I2dipt7JHG+quVwQ1d02d28O4GdDi77RByQ13MTpk= -k8s.io/apiserver v0.36.4 h1:AtKjaf2eUiX5G6TfF2IOlhuUuvMsHh49Ivr1+4fZ2gA= -k8s.io/apiserver v0.36.4/go.mod h1:RyiGghXP67hb0Ll+7iLJ6GGv2JpEzCn7ljbiA+L3cJ0= -k8s.io/cli-runtime v0.36.4 h1:OHvManCwP1k9GiC5tXRFxHhzZIQQFCsrHlt7OspKo3w= -k8s.io/cli-runtime v0.36.4/go.mod h1:qQSj2FJgQos6GHpS/ge7wTdQMZm9XFWlesWgV6h7qZY= -k8s.io/client-go v0.36.4 h1:MDvfDNvMSt0Br94SK8neviVlwL9qifw9B26hJCpD1K0= -k8s.io/client-go v0.36.4/go.mod h1:pNK4WKELbwlEDvtbE8l22lEZL5THYF61H5EealokZmA= +k8s.io/apimachinery v0.36.5 h1:X5Xbg6G4om0ma6LOcGbmUmo+B5Nq7mmIpAWhk+tgCh8= +k8s.io/apimachinery v0.36.5/go.mod h1:oPTSicSaDHDdoGwOs5DFPo6YS2wdTnzFHIYMEglfJ7I= +k8s.io/apiserver v0.36.5 h1:KX599gn2a5fQXeoCrDNdpND+AJ9ymq3u4XXvAslwnlo= +k8s.io/apiserver v0.36.5/go.mod h1:wxPt+sgzaPkk+WOgsrwsGB5eyRFXlRuPd2EoZSvh5k8= +k8s.io/cli-runtime v0.36.5 h1:TwL178KVy8bRTe6h2nfvSwkcn/B2nDZpOqYqE8e+Eg0= +k8s.io/cli-runtime v0.36.5/go.mod h1:cPBZUIJIH8ElAFPy+5v2ypmhQOlzyNS36Sm+K3fr+/I= +k8s.io/client-go v0.36.5 h1:D79FgevPon0NIBcjUHMy+QnALtihLGTBqOvIGCgoZmw= +k8s.io/client-go v0.36.5/go.mod h1:JAGQ3N4Z8E3H0W0Nm6NBg1EvB9+/wtEoBPDe8XGkHsI= k8s.io/code-generator v0.23.3/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= -k8s.io/code-generator v0.36.4 h1:KNW2Alv5LVoGiooEYh1GY982CGyg53u1inHu6Zi4bIA= -k8s.io/code-generator v0.36.4/go.mod h1:JmRrlYwTOn2glEuGOfNnlXTGbz3FfMg7t7Dq/8lHcc4= -k8s.io/component-base v0.36.4 h1:tz75yC2xgq3kd7vPdBtR8do5iMx0OHf6Zd1kuaxDB84= -k8s.io/component-base v0.36.4/go.mod h1:DCwb306U8ou89NNAp45Csuy8ok+1rp1ELDVPhzN5AWc= -k8s.io/component-helpers v0.36.4 h1:B5+SnptAlwTVJO0MW1JLsZVp4KevlADRg0CX5YFzjbU= -k8s.io/component-helpers v0.36.4/go.mod h1:RECUDkRdVuxcNOAl9/EK7lmy1TIjoWkBHs6f0uOyoCs= +k8s.io/code-generator v0.36.5 h1:fpPI4R6mXMx9kWZnSq7MAlaeKS+T4dga9NYSqVJi3Pg= +k8s.io/code-generator v0.36.5/go.mod h1:hcPwUWz7zAAEfME+HgcvQePfBZmY/B/NMQUV7Rw3yIk= +k8s.io/component-base v0.36.5 h1:4lvIJ/QZDOchuIRqIna6JqjqO2MoDsH7JdaQ8FJtLVw= +k8s.io/component-base v0.36.5/go.mod h1:ZCmi+txXm31F2uYY5p9FwQsww0g5BM0pI/gNsH9uAMY= +k8s.io/component-helpers v0.36.5 h1:ZRChXMmBeKd0U34CgYHgQiQLzV0O971DTR3JSMUpgRU= +k8s.io/component-helpers v0.36.5/go.mod h1:cSPYaE5E3h0f8kHMCNYX7h9+XBWUNZ7Qt0VPzepw8z0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= @@ -2167,12 +2167,12 @@ k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 h1:sWu4Td5mgJlwunsUydnhKEAfNUHM7hm1wfKEQmD7G5c= k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= -k8s.io/kubectl v0.36.4 h1:xZd9g1bFBd7hpb1oKjK8lT9jRL18dtgr4DAPQG1Oksk= -k8s.io/kubectl v0.36.4/go.mod h1:STWlr78cdEa1hHpr55wpcboaqchvfDueKRNDa1zOd1w= +k8s.io/kubectl v0.36.5 h1:466PfDKAiTUbgQSmnjYlashGcMn1zZ0IsOVo7oK1CIk= +k8s.io/kubectl v0.36.5/go.mod h1:nBQ7q6lEydoSESFe9DdQD9r6FS/k0/78C8hp1sC44zw= k8s.io/kubelet v0.32.13 h1:pGSrLTytcmuIlq4yvuRFnF4RdQjQh1FfsmPeRZXDKTo= k8s.io/kubelet v0.32.13/go.mod h1:XrwKgyKhVUE8TO/w9Lqq93UTM5W6t7ePItIgjvSmV/4= -k8s.io/streaming v0.36.4 h1:RS5YlhrdBN2pKGVjgygGntdu6SNdsduyjGWGe3cX0vo= -k8s.io/streaming v0.36.4/go.mod h1:tJ6S2bZa2HxIBauguBbCWSCYyd93Grfz1+z3tcOvlDE= +k8s.io/streaming v0.36.5 h1:gcY9VwgT4J/idqwS9ZrzJtH8ouHvZuFEyDWofcaL+F4= +k8s.io/streaming v0.36.5/go.mod h1:tJ6S2bZa2HxIBauguBbCWSCYyd93Grfz1+z3tcOvlDE= k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 h1:kBawHLSnx/mYHmRnNUf9d4CpjREbeZuxoSGOX/J+aYM= From e7e4c2fa489469415537b4a3b075b3e4bacb3c62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 11:41:38 +0200 Subject: [PATCH 113/327] chore(deps): bump the aws-sdk-go-v2 group with 9 updates (#23092) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 36 ++++++++++++++--------------- go.sum | 72 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/go.mod b/go.mod index 7269101c9b41d..49fa33efacce6 100644 --- a/go.mod +++ b/go.mod @@ -25,15 +25,15 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adhocore/gronx v1.20.3 github.com/andygrunwald/go-jira v1.17.0 - github.com/aws/aws-sdk-go-v2 v1.47.0 - github.com/aws/aws-sdk-go-v2/config v1.33.5 - github.com/aws/aws-sdk-go-v2/credentials v1.20.5 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8 - github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2 - github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 - github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 + github.com/aws/aws-sdk-go-v2 v1.47.1 + github.com/aws/aws-sdk-go-v2/config v1.33.6 + github.com/aws/aws-sdk-go-v2/credentials v1.20.6 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.10 + github.com/aws/aws-sdk-go-v2/service/ecr v1.66.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4 + github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.1 + github.com/aws/aws-sdk-go-v2/service/sts v1.51.1 github.com/aws/smithy-go v1.28.2 github.com/bmatcuk/doublestar/v4 v4.10.0 github.com/cenkalti/backoff/v4 v4.3.0 @@ -217,16 +217,16 @@ require ( github.com/antlr4-go/antlr/v4 v4.13.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.10.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.38.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beevik/etree v1.7.0 // indirect github.com/beorn7/perks v1.0.1 // indirect diff --git a/go.sum b/go.sum index 15446cb92c4a8..0ee403d774643 100644 --- a/go.sum +++ b/go.sum @@ -213,48 +213,48 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd 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= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.47.0 h1:0jsHallhJCeaU0Ko48c/3FK1ctOQ7NpzggxriJOQ8MQ= -github.com/aws/aws-sdk-go-v2 v1.47.0/go.mod h1:bttEH6JqnUL8LepvDVfdrds/fZ5bCIxzpe3abyUrhDU= +github.com/aws/aws-sdk-go-v2 v1.47.1 h1:uOIZnp4PK3ZhKI0dNrJrhTEsLxbpXHTAJlwoS1pvAtw= +github.com/aws/aws-sdk-go-v2 v1.47.1/go.mod h1:bttEH6JqnUL8LepvDVfdrds/fZ5bCIxzpe3abyUrhDU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20 h1:GPRlPwz40I2B2VrBEASOA3Bi77NyeqejNLkifosX0rs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.20/go.mod h1:g7PNzKcsOKWb4fkSRBA7BZVAS6Y8IcxzN+nRohhQ1Q8= -github.com/aws/aws-sdk-go-v2/config v1.33.5 h1:UA1dmokBFOLFoOyVBhO6HjM6edy0MIk5AZSkJVcksQw= -github.com/aws/aws-sdk-go-v2/config v1.33.5/go.mod h1:Dop8axzz0xx38GExIYWXdeyc8QQ7Cr+nPsxpD/LYy4U= -github.com/aws/aws-sdk-go-v2/credentials v1.20.5 h1:wklUVvHMc9xTQ3rcp49/ISpiMnhbCicJcA6n6S8m7J8= -github.com/aws/aws-sdk-go-v2/credentials v1.20.5/go.mod h1:fyEdrn6ccLFOkoK84j5bQyGTxp9zPt5l2XMhxf4DVZs= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0 h1:AM4hHjww+PSFtt6E+UrBrPlZkWsePCLEt9AjkfQX+yM= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.0/go.mod h1:3x/yXezeQjpOvBb4jEMxrS8SXvpdvJ5abv6l5c1gWM8= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8 h1:U3VOx/+sECXsoZYT9/mUntdGQNaWHDpJk/Tp6SCfOGk= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.8/go.mod h1:QVOKByJxYvyW5jiGDh36l4dnTEq+mCZrsenNyrhbs7Q= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3 h1:Hp/VgjP0BysR3OgLlR057Vz2LcbbVnoWeJ+3qWiS/fY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.3/go.mod h1:nwGV5qw7F1IZPgxCvA/ph8N2TAuz+BkRG/bXn808qMA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3 h1:MUaM4f+kj1ZIBPZfUS8cxP1GKXXZtHJjAthy93AN7SM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.3/go.mod h1:6YmVmEVRI5ZZzRjCSsb9SryKH0hAlMRdgA7kG9aDvBU= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3 h1:fuSCw4Z2qfRCztMPO3GXJNSiEp6Wee+WOLwrHHUMy9c= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.3/go.mod h1:6SxcHheD1pPR5+kWm1wGvjlL/YqUsh267sAfEmN4K7A= -github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0 h1:9i19IigAYxnAxTUQcsxkiIXeeytHllTOetWBhr1DTQs= -github.com/aws/aws-sdk-go-v2/service/ecr v1.66.0/go.mod h1:iSlv4VibruxMhWfiKrNbn97Yjhe2855EFrgUitSESfM= +github.com/aws/aws-sdk-go-v2/config v1.33.6 h1:MBjkSTLczek/UgiK+EYPIoRTqE7gP8vtW3OFbFo7Nug= +github.com/aws/aws-sdk-go-v2/config v1.33.6/go.mod h1:grRAFzdAZJrwcbasJRg2MPvIrVjtlfXllHssN6+E1JE= +github.com/aws/aws-sdk-go-v2/credentials v1.20.6 h1:NpAFXCU7NzXNkdGK3zQTtsRJ+3v9tZQV0xcdRw8uBdw= +github.com/aws/aws-sdk-go-v2/credentials v1.20.6/go.mod h1:mcZCoiPnyMvP8VMNbygNX5lLqSlkYJIMPODylQMurOk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1 h1:8gALAAmacnIXh+z6VkdDanv4/IkG5APdg4DZLDTmLog= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.20.1/go.mod h1:Z7IJhJU+poOdJjUR2wpyY21ossQ1XS/R3Lk9Msq5kM4= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.10 h1:OYuXRtpSLUZA6TrtqfU42xi1zTS8uCpQlTode7VhDjE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.23.10/go.mod h1:rWXRqN139C+pJzsA88pZRee5NBB1FqcDIo7dG9NlX48= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4 h1:CLq4+8UHCI+ZZYl/EuJxXovaIVN2xeeT8JV+dsApQ5E= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.5.4/go.mod h1:Wv4q5sAM04xAMkoOedxLx2inVf6K5FdxYp+A61L+q/0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4 h1:dD4MR81I7YkpEBRk6UP9rocC2QnT3qVuXwzlYTtfGEs= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.8.4/go.mod h1:EcXV1kAFd5XwSkDHlj94gnF3q5CkJyYiIJfH8N0VmrE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4 h1:7Wo47d/xn/7KttCSBd8EGYeZ7ULRFRkUHr6vkZPBzVQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.5.4/go.mod h1:tDB2IVC1xC3vX8o+6uRlzhTxP3g1b77CZXFX/oD2FnQ= +github.com/aws/aws-sdk-go-v2/service/ecr v1.66.1 h1:H63vyEXid/tHpv/UlvQUyM1c2QK5WgQRB3MK5gnAo8A= +github.com/aws/aws-sdk-go-v2/service/ecr v1.66.1/go.mod h1:WglfLchOYcHrYOwNV7jERuy0Xc+7jArLkEnQay93auY= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19 h1:bAdDl/HkGCcGPoe25ToSHEw23VIxt6CT5fLcg111BKg= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.19/go.mod h1:KaUzbLxv4CeSxh6ZCl9B4m7CuFenS8kUEaDs+f/DQr4= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3 h1:BHKCSX4QXERe8So8rbWqaM7owqOmDJxATXgJwGng22A= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.3/go.mod h1:GqWeeKfYfezihA2KfFL9l7ohEdZWe1tuFWh3GfyNSnE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3 h1:bON1rJf67TSTDCKg816AAIE4xSTtoo9tl0XRkO72R+I= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.3/go.mod h1:c5BBpjJcQXpfeq9iASyVKA3T6vX6B6LEXY4mL/gklDY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3 h1:L8vIOxylma91TcR96NFTEC07G3JDwSl+CvK2b+IODms= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.3/go.mod h1:fmPIZQzTExYuBNWFyi1P7IoDjvskgphXqK1yObMzusM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5 h1:/TYsZXdA8UTa+WCtCYSAJIr1vwl0+eho6TUgJGwFFO8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.11.5/go.mod h1:qPqp1Uwd/BqdhPufv6oem9j5J7HNsgc2V22dUiDPn+s= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4 h1:29SvnfGhXjTl8ONxFwbj2rs6lbhiFXD2CgFQmbT/bXY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.14.4/go.mod h1:wm04I5DMuNVvZHFe/dHnUxincvNbbK7AiNBbYsQivek= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4 h1:pPiWfgeNxqluKEph7hvU88kuGKBPOWzO+Dk9t2zqqNs= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.20.4/go.mod h1:YlwGoIUDG/3kBQbdNOVs/xKZ9J01G8e/6D1mRBj9uTk= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0 h1:uB8ymkVosyourmGXCZHyWhJ4wuKA4xq3ii2dVMPtBZY= github.com/aws/aws-sdk-go-v2/service/kms v1.55.0/go.mod h1:rK4RITSY/qJw3qVJ7p19fceOWuvrisqqOChFkX05n5I= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2 h1:2qsrxKfGgJrHBp4udIsZZVJGTX5lySaY9cJbZRB4J2Y= -github.com/aws/aws-sdk-go-v2/service/s3 v1.113.2/go.mod h1:/uA+2Qj4jd5qBWagVC1AyzzDFXVK997E7U04w7Kw0wI= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0 h1:sccblHjf5Swf5xjlBTAUT0Jc0m/KZW0PQP511Cto83A= -github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.0/go.mod h1:39oJ1/fl7d10t0e9rtp/a+50tRLyDPSaccCZF3xXrcc= -github.com/aws/aws-sdk-go-v2/service/signin v1.10.0 h1:ZD5qFpWcaOKdTuhBi431pIDkCgrMkMlMT6jlpSPoIRI= -github.com/aws/aws-sdk-go-v2/service/signin v1.10.0/go.mod h1:8Nuuf+tR346PjJ3MvZPh9pekbLiLQFWJhzMXfwy7alA= -github.com/aws/aws-sdk-go-v2/service/sso v1.38.0 h1:JGeeBcMlhg1xtOXYpeCaTQBZObtXMPQCUqBcmr65NRA= -github.com/aws/aws-sdk-go-v2/service/sso v1.38.0/go.mod h1:XwteswG9EOMRFm73UT0t+MbTwyLxMrEXkU6e+v92Lzo= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0 h1:obhahQXDEdVEv8y5bTKXR30LVaxYe1kyYM0L7l2Iq+k= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.0/go.mod h1:6twZZ/aXHNy1vXUO8koUbp++MYzMASkOgEBdkbJYmO0= -github.com/aws/aws-sdk-go-v2/service/sts v1.51.0 h1:Zpnqa6XtrNzXZnwbdCqHOXpXhMsa01ql/pcRQ1sb4hk= -github.com/aws/aws-sdk-go-v2/service/sts v1.51.0/go.mod h1:/8JRcdTt//hG0Q4BTmGbuOplT7ABe+5rdtqUHqXvYIM= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4 h1:n6kO3OlBvnDEksQpvBLbAldjHwGlu8kErvhHJkhlaRY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.113.4/go.mod h1:9APRWGLFITKD+xzWSIyT9V7QV4bNlEuIieWlzXgGFlI= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.1 h1:WwNVhW53/6HoJ+VoTOQ+DvO0fnGUa9k32FgKxEHyWhM= +github.com/aws/aws-sdk-go-v2/service/securityhub v1.82.1/go.mod h1:FpfFeYyrCUwWWbEz5BDgFz3H5QsdaIn45RwvcIyZhrc= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.1 h1:DzCCWLzcIRQ77F3DEUljud7bEjTgFOIKXP52NmVRyhU= +github.com/aws/aws-sdk-go-v2/service/signin v1.10.1/go.mod h1:xpo/geVldu8payT375WekctUzopG/hBU7miiqItMUlw= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.1 h1:Umtl/0YZhng4xndfW3lKJrYYP7NLEjI6bGXVomwLcs0= +github.com/aws/aws-sdk-go-v2/service/sso v1.38.1/go.mod h1:rRD/dnm7q0HYE/I5TMaPgkWyyUGLcwuxHLABsLnQ3e0= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1 h1:orIWdNiLgzrhu/11RcPPKO/SBzUUymbUQuZbSPImghg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.43.1/go.mod h1:skwM/xsbR/1ReUTesv9BhpJp1VjajR7DWQnuVLwiXsQ= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.1 h1:0HOqZXRvMytH6bFHVIc0oJX07sZjfhz0zXtjs6gdE8s= +github.com/aws/aws-sdk-go-v2/service/sts v1.51.1/go.mod h1:26zA0GhDrLo+yiLI2yXWxqB1PdsShfLikoI7GOEgugM= github.com/aws/smithy-go v1.28.2 h1:myhcykQcatTul2B/zITjDk203G7t0awUAs1hVry5Bvg= github.com/aws/smithy-go v1.28.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk= From 10ba110632efb555041f5f2caa8f9f786c751cdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 13:18:27 +0200 Subject: [PATCH 114/327] chore(deps): bump sigs.k8s.io/controller-tools from 0.21.0 to 0.22.0 in /operator/tools/controller-gen (#22730) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: StackRox PR Fixxxer Co-authored-by: Yann Brillouet --- .../config.stackrox.io_securitypolicies.yaml | 2 +- .../config.stackrox.io_securitypolicies.yaml | 2 +- .../config.stackrox.io_securitypolicies.yaml | 2 +- .../platform.stackrox.io_centrals.yaml | 2 +- .../platform.stackrox.io_securedclusters.yaml | 2 +- .../bases/platform.stackrox.io_centrals.yaml | 2 +- .../platform.stackrox.io_securedclusters.yaml | 2 +- operator/tools/controller-gen/go.mod | 64 +++-- operator/tools/controller-gen/go.sum | 256 +++++++++--------- 9 files changed, 160 insertions(+), 174 deletions(-) diff --git a/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml b/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml index 6329c0e2b6373..61a83b1baa76d 100644 --- a/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml +++ b/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 name: securitypolicies.config.stackrox.io spec: group: config.stackrox.io diff --git a/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml b/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml index 6329c0e2b6373..61a83b1baa76d 100644 --- a/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml +++ b/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 name: securitypolicies.config.stackrox.io spec: group: config.stackrox.io diff --git a/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml b/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml index 51c227281ddf2..3b94d5f785b32 100644 --- a/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml +++ b/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 labels: app: rhacs-operator name: securitypolicies.config.stackrox.io diff --git a/operator/bundle/manifests/platform.stackrox.io_centrals.yaml b/operator/bundle/manifests/platform.stackrox.io_centrals.yaml index 157f231ecac11..5789d721f9c43 100644 --- a/operator/bundle/manifests/platform.stackrox.io_centrals.yaml +++ b/operator/bundle/manifests/platform.stackrox.io_centrals.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 labels: app: rhacs-operator name: centrals.platform.stackrox.io diff --git a/operator/bundle/manifests/platform.stackrox.io_securedclusters.yaml b/operator/bundle/manifests/platform.stackrox.io_securedclusters.yaml index 42d024df618ec..91434ef91868e 100644 --- a/operator/bundle/manifests/platform.stackrox.io_securedclusters.yaml +++ b/operator/bundle/manifests/platform.stackrox.io_securedclusters.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 labels: app: rhacs-operator name: securedclusters.platform.stackrox.io diff --git a/operator/config/crd/bases/platform.stackrox.io_centrals.yaml b/operator/config/crd/bases/platform.stackrox.io_centrals.yaml index 4dd017d30ccea..6134c58800ff5 100644 --- a/operator/config/crd/bases/platform.stackrox.io_centrals.yaml +++ b/operator/config/crd/bases/platform.stackrox.io_centrals.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 name: centrals.platform.stackrox.io spec: group: platform.stackrox.io diff --git a/operator/config/crd/bases/platform.stackrox.io_securedclusters.yaml b/operator/config/crd/bases/platform.stackrox.io_securedclusters.yaml index e3f7245601a5e..30e63d97f9a99 100644 --- a/operator/config/crd/bases/platform.stackrox.io_securedclusters.yaml +++ b/operator/config/crd/bases/platform.stackrox.io_securedclusters.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.21.0 + controller-gen.kubebuilder.io/version: v0.22.0 name: securedclusters.platform.stackrox.io spec: group: platform.stackrox.io diff --git a/operator/tools/controller-gen/go.mod b/operator/tools/controller-gen/go.mod index 5acc2fc959bab..1896df6710f05 100644 --- a/operator/tools/controller-gen/go.mod +++ b/operator/tools/controller-gen/go.mod @@ -2,31 +2,31 @@ module github.com/stackrox/rox/operator/tools/controller-gen go 1.26.3 -require sigs.k8s.io/controller-tools v0.21.0 +require sigs.k8s.io/controller-tools v0.22.0 require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fatih/color v1.19.0 // indirect github.com/fxamacker/cbor/v2 v2.9.1 // indirect github.com/go-logr/logr v1.4.3 // indirect - github.com/go-openapi/jsonpointer v0.23.1 // indirect - github.com/go-openapi/jsonreference v0.21.5 // indirect - github.com/go-openapi/swag v0.26.0 // indirect - github.com/go-openapi/swag/cmdutils v0.26.0 // indirect - github.com/go-openapi/swag/conv v0.26.0 // indirect - github.com/go-openapi/swag/fileutils v0.26.0 // indirect - github.com/go-openapi/swag/jsonname v0.26.0 // indirect - github.com/go-openapi/swag/jsonutils v0.26.0 // indirect - github.com/go-openapi/swag/loading v0.26.0 // indirect - github.com/go-openapi/swag/mangling v0.26.0 // indirect - github.com/go-openapi/swag/netutils v0.26.0 // indirect - github.com/go-openapi/swag/stringutils v0.26.0 // indirect - github.com/go-openapi/swag/typeutils v0.26.0 // indirect - github.com/go-openapi/swag/yamlutils v0.26.0 // indirect + github.com/go-openapi/jsonpointer v1.0.0 // indirect + github.com/go-openapi/jsonreference v1.0.0 // indirect + github.com/go-openapi/swag v0.27.1 // indirect + github.com/go-openapi/swag/cmdutils v0.27.1 // indirect + github.com/go-openapi/swag/conv v0.27.1 // indirect + github.com/go-openapi/swag/fileutils v0.27.1 // indirect + github.com/go-openapi/swag/jsonutils v0.27.1 // indirect + github.com/go-openapi/swag/loading v0.27.1 // indirect + github.com/go-openapi/swag/mangling v0.27.1 // indirect + github.com/go-openapi/swag/netutils v0.27.1 // indirect + github.com/go-openapi/swag/pools v0.27.1 // indirect + github.com/go-openapi/swag/stringutils v0.27.1 // indirect + github.com/go-openapi/swag/typeutils v0.27.1 // indirect + github.com/go-openapi/swag/yamlutils v0.27.1 // indirect github.com/gobuffalo/flect v1.0.3 // indirect github.com/google/gnostic-models v0.7.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kr/text v0.2.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -35,27 +35,25 @@ require ( github.com/spf13/pflag v1.0.10 // indirect github.com/x448/float16 v0.8.4 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/mod v0.35.0 // indirect - golang.org/x/net v0.55.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect - golang.org/x/tools v0.44.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + golang.org/x/mod v0.39.0 // indirect + golang.org/x/net v0.58.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/text v0.41.0 // indirect + golang.org/x/tools v0.49.0 // indirect google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.36.0 // indirect - k8s.io/apiextensions-apiserver v0.36.0 // indirect - k8s.io/apimachinery v0.36.0 // indirect - k8s.io/code-generator v0.36.0 // indirect - k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect + k8s.io/api v0.37.0 // indirect + k8s.io/apiextensions-apiserver v0.37.0 // indirect + k8s.io/apimachinery v0.37.0 // indirect + k8s.io/code-generator v0.37.0 // indirect + k8s.io/gengo/v2 v2.0.0-20260408192533-25e2208e0dc3 // indirect k8s.io/klog/v2 v2.140.0 // indirect - k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 // indirect - k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // indirect + k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect + k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.4.2 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/operator/tools/controller-gen/go.sum b/operator/tools/controller-gen/go.sum index 88ed54599b220..74c70924ce78c 100644 --- a/operator/tools/controller-gen/go.sum +++ b/operator/tools/controller-gen/go.sum @@ -1,7 +1,9 @@ cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4= cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4= -github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= -github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= +github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= @@ -11,7 +13,6 @@ github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F9 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/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 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= @@ -20,69 +21,67 @@ github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fsnotify/fsnotify v1.10.0 h1:Xx/5Ydg9CeBDX/wi4VJqStNtohYjitZhhlHt4h3St1M= -github.com/fsnotify/fsnotify v1.10.0/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo= github.com/fxamacker/cbor/v2 v2.9.1 h1:2rWm8B193Ll4VdjsJY28jxs70IdDsHRWgQYAI80+rMQ= github.com/fxamacker/cbor/v2 v2.9.1/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= -github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= -github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= -github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= -github.com/go-openapi/swag v0.26.0 h1:GVDXCmfvhfu1BxiHo8/FA+BbKmhecHnG3varjON5/RI= -github.com/go-openapi/swag v0.26.0/go.mod h1:82g3193sZJRbocs7bNCqGfIgq8pkuwVwCfhKIRlEQF0= -github.com/go-openapi/swag/cmdutils v0.26.0 h1:iowihOcvq7y4egO8cOq0dmfohz6wfeQ63U1EnuhO2TU= -github.com/go-openapi/swag/cmdutils v0.26.0/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= -github.com/go-openapi/swag/conv v0.26.0 h1:5yGGsPYI1ZCva93U0AoKi/iZrNhaJEjr324YVsiD89I= -github.com/go-openapi/swag/conv v0.26.0/go.mod h1:tpAmIL7X58VPnHHiSO4uE3jBeRamGsFsfdDeDtb5ECE= -github.com/go-openapi/swag/fileutils v0.26.0 h1:WJoPRvsA7QRiiWluowkLJa9jaYR7FCuxmDvnCgaRRxU= -github.com/go-openapi/swag/fileutils v0.26.0/go.mod h1:0WDJ7lp67eNjPMO50wAWYlKvhOb6CQ37rzR7wrgI8Tc= -github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= -github.com/go-openapi/swag/jsonname v0.26.0/go.mod h1:urBBR8bZNoDYGr653ynhIx+gTeIz0ARZxHkAPktJK2M= -github.com/go-openapi/swag/jsonutils v0.26.0 h1:FawFML2iAXsPqmERscuMPIHmFsoP1tOqWkxBaKNMsnA= -github.com/go-openapi/swag/jsonutils v0.26.0/go.mod h1:2VmA0CJlyFqgawOaPI9psnjFDqzyivIqLYN34t9p91E= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0 h1:apqeINu/ICHouqiRZbyFvuDge5jCmmLTqGQ9V95EaOM= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0/go.mod h1:AyM6QT8uz5IdKxk5akv0y6u4QvcL9GWERt0Jx/F/R8Y= -github.com/go-openapi/swag/loading v0.26.0 h1:Apg6zaKhCJurpJer0DCxq99qwmhFddBhaMX7kilDcko= -github.com/go-openapi/swag/loading v0.26.0/go.mod h1:dBxQ/6V2uBaAQdevN18VELE6xSpJWZxLX4txe12JwDg= -github.com/go-openapi/swag/mangling v0.26.0 h1:Du2YC4YLA/Y5m/YKQd7AnY5qq0wRKSFZTTt8ktFaXcQ= -github.com/go-openapi/swag/mangling v0.26.0/go.mod h1:jifS7W9vbg+pw63bT+GI53otluMQL3CeemuyCHKwVx0= -github.com/go-openapi/swag/netutils v0.26.0 h1:CmZp+ZT7HrmFwrC3GdGsXBq2+42T1bjKBapcqVpIs3c= -github.com/go-openapi/swag/netutils v0.26.0/go.mod h1:5iK+Ok3ZohWWex1C50BFTPexi03UaPwjW4Oj8kgrpwo= -github.com/go-openapi/swag/stringutils v0.26.0 h1:qZQngLxs5s7SLijc3N2ZO+fUq2o8LjuWAASSrJuh+xg= -github.com/go-openapi/swag/stringutils v0.26.0/go.mod h1:sWn5uY+QIIspwPhvgnqJsH8xqFT2ZbYcvbcFanRyhFE= -github.com/go-openapi/swag/typeutils v0.26.0 h1:2kdEwdiNWy+JJdOvu5MA2IIg2SylWAFuuyQIKYybfq4= -github.com/go-openapi/swag/typeutils v0.26.0/go.mod h1:oovDuIUvTrEHVMqWilQzKzV4YlSKgyZmFh7AlfABNVE= -github.com/go-openapi/swag/yamlutils v0.26.0 h1:H7O8l/8NJJQ/oiReEN+oMpnGMyt8G0hl460nRZxhLMQ= -github.com/go-openapi/swag/yamlutils v0.26.0/go.mod h1:1evKEGAtP37Pkwcc7EWMF0hedX0/x3Rkvei2wtG/TbU= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.2 h1:5zRca5jw7lzVREKCZVNBpysDNBjj74rBh0N2BGQbSR0= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.2/go.mod h1:XVevPw5hUXuV+5AkI1u1PeAm27EQVrhXTTCPAF85LmE= -github.com/go-openapi/testify/v2 v2.4.2 h1:tiByHpvE9uHrrKjOszax7ZvKB7QOgizBWGBLuq0ePx4= -github.com/go-openapi/testify/v2 v2.4.2/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= +github.com/go-openapi/jsonpointer v1.0.0 h1:kR9tHqY0CtZaOPVFm622dPVNhrvYpwr4uCxgL3h1H8s= +github.com/go-openapi/jsonpointer v1.0.0/go.mod h1:Z3rw7dWu1p9IgitXCFamSlA5lmDiklEB6vkaxcNZW5Y= +github.com/go-openapi/jsonreference v1.0.0 h1:jlmTr6torcd1YgDQvSfNmRtKzYDO4FGBkrAdlAVWnpY= +github.com/go-openapi/jsonreference v1.0.0/go.mod h1:jtwdyGbJk0Xhe5Y+rwtglQP6Sb1WZST4rT32LWB+sv0= +github.com/go-openapi/swag v0.27.1 h1:VotvOLWW8q/EAxB0YdsBBGC8XYyeL1YwBj2ungAGPNg= +github.com/go-openapi/swag v0.27.1/go.mod h1:GTkJPwHfhJp6MWr4/rCh64HVI3Ofu+tcsbfjfHmTxpE= +github.com/go-openapi/swag/cmdutils v0.27.1 h1:I7sYqaWVl5mq0NEmNQkAmFDyNin9ufvMX/p2zwtQaOE= +github.com/go-openapi/swag/cmdutils v0.27.1/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= +github.com/go-openapi/swag/conv v0.27.1 h1:8wi9ZG+olmY1wXphl93EWniPtbSPkXM/feH7FgjsvrU= +github.com/go-openapi/swag/conv v0.27.1/go.mod h1:QbqMivkpKhC3g1B1GGGOJ6ANewI3S62dbzYu3Duowqs= +github.com/go-openapi/swag/fileutils v0.27.1 h1:QQqBSoi5mW4XpU85nS0mLcA+zAE6vLzrb0QkmLKf9oM= +github.com/go-openapi/swag/fileutils v0.27.1/go.mod h1:VvJFZLTZS0AI854gEQz5tk7dBESdLjiNUMSZ/th2ry8= +github.com/go-openapi/swag/jsonutils v0.27.1 h1:SVgK3i4USzCU5mibOOS/l4ea2h9UQXy7J7RNLTjuXjU= +github.com/go-openapi/swag/jsonutils v0.27.1/go.mod h1:tdlEpZqdcQ17uj6J4YdK9vd8It5qWMwjWXOs0tjpRlk= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1 h1:mJu3COL9WEaZVp/Kf2PRMi7tPszPEJfSr/OO75ynCs8= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1/go.mod h1:mofwUWx70wvskwESqRJ//k/9kURmCgyJl5m5Ppoh5kY= +github.com/go-openapi/swag/loading v0.27.1 h1:/DxUgDXKbBX4bcn7r9uEXfJyzN5XpiJmZplzQTjrRCY= +github.com/go-openapi/swag/loading v0.27.1/go.mod h1:jvGh3iA2+zyUUycB5fgJWzeHnhrpvGnJJM0RVE9ZShE= +github.com/go-openapi/swag/mangling v0.27.1 h1:yC9D0HyUE8gbP+BfmGx9+AA89ikwZTMjESK3OnnoaqA= +github.com/go-openapi/swag/mangling v0.27.1/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= +github.com/go-openapi/swag/netutils v0.27.1 h1:mICMFoS82F5TZ4Zy3cqmcQk+BFeCp3Uyq3Np7GI0/qU= +github.com/go-openapi/swag/netutils v0.27.1/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= +github.com/go-openapi/swag/pools v0.27.1 h1:9LeadcMyb2GJCbXX5hVQDbZ2Lq9TL4dCs/nx1j5DO0E= +github.com/go-openapi/swag/pools v0.27.1/go.mod h1:kVQefhSK5RWuRe7BXsL8htgBPAMpN7HDGpGEknqugeE= +github.com/go-openapi/swag/stringutils v0.27.1 h1:ZXePZ0r2p1qSjo8tD3Un4vFj8+FqlCkczxDrJIhYUp8= +github.com/go-openapi/swag/stringutils v0.27.1/go.mod h1:lzRN95CxXmA03XcDWHLOb6nOMcxCqR5rGY0lOgsfRoM= +github.com/go-openapi/swag/typeutils v0.27.1 h1:KSTdFlfnse4r6dP9IrEnwMldjE+zs71UeEB3//PtVXc= +github.com/go-openapi/swag/typeutils v0.27.1/go.mod h1:Srm0xFNRZ1Y+vCxJclo5qzx8aj+1pAKda/YfFPrG0dQ= +github.com/go-openapi/swag/yamlutils v0.27.1 h1:ftxv6xvXb1E3zohUc+okZ9nSqNb9StQX/FXnKZ98sQA= +github.com/go-openapi/swag/yamlutils v0.27.1/go.mod h1:bnxFIB1qewGRiZHypXGZ3fNgf13/0HfRgnS/iZBDrOo= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0 h1:gGHwAJ0R/5jU8BEGDbfRNR3hL68dAVi84WuOApp29B0= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0/go.mod h1:tY+St1SGq4NFl0QIqdTY4aEdbChAHxhyB77XQi9iJCo= +github.com/go-openapi/testify/v2 v2.6.0 h1:5PKH2HE7YJ/LuRPQGvSxBRlFXNQhSetBLlGAgUEu3ug= +github.com/go-openapi/testify/v2 v2.6.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gobuffalo/flect v1.0.3 h1:xeWBM2nui+qnVvNM4S3foBhCAL2XgPU+a7FdpelbTq4= github.com/gobuffalo/flect v1.0.3/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs= -github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= -github.com/google/cel-go v0.26.0/go.mod h1:A9O8OU9rdvrK5MQyrqfIxo1a0u4g3sF8KB6PUIaryMM= +github.com/google/cel-go v0.29.2 h1:ZtDxkeiMmz0mxbKDYiNkE5Lk7V5edMRcaaDf2jX002k= +github.com/google/cel-go v0.29.2/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= github.com/google/gnostic-models v0.7.1 h1:SisTfuFKJSKM5CPZkffwi6coztzzeYUhc3v4yxLWH8c= github.com/google/gnostic-models v0.7.1/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 h1:EwtI+Al+DeppwYX2oXJCETMO23COyaKGP6fHVpkpWpg= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= 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/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 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.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -95,33 +94,27 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v1.40.0 h1:Vtol0e1MghCD2ZVIilPDIg44XSL9l2QAn8ZNaljWcJc= -github.com/onsi/gomega v1.40.0/go.mod h1:M/Uqpu/8qTjtzCLUA2zJHX9Iilrau25x1PdoSRbWh5A= +github.com/onsi/ginkgo/v2 v2.32.1 h1:6tlvcDm/3sE8lGJbZ4+d4mO3RLy24/tQWOFzVSQNIfw= +github.com/onsi/ginkgo/v2 v2.32.1/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU= +github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= -github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_golang v1.24.0 h1:5XStIklKuAtJSNpdD3s8XJj/Yv78IQmE1kbNk87JrAI= +github.com/prometheus/client_golang v1.24.0/go.mod h1:QcsNdotprC2nS4BTM2ucbcqxd2CeXTEa9jW7zHO9iDE= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= -github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= -github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= -github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= -github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI= +github.com/prometheus/common v0.70.0/go.mod h1:S/SFasQmgGiYH6C81LKCtYa8QACgthGg5zxL2udV7SY= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= -github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -135,102 +128,97 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= -go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c= -go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= -go.opentelemetry.io/otel/metric v1.41.0 h1:rFnDcs4gRzBcsO9tS8LCpgR0dxg4aaxWlJxCno7JlTQ= -go.opentelemetry.io/otel/metric v1.41.0/go.mod h1:xPvCwd9pU0VN8tPZYzDZV/BMj9CM9vs00GuBjeKhJps= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0= -go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis= -go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= -go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 h1:4YsVu3B8+3qtWYYrsUYgn0OG78pN0rnNPRGX4SbokQI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0/go.mod h1:+wnlSn0mD1ADVMe3v9Z/WIaiz6q6gL2J/ejaAmdmv80= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 h1:qazEJlUOQzhCpzQpFETGby7EdqjI1wsd0W+6Gg1SCTU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0/go.mod h1:fOD2Yefuxixkx3ahVNf0O/PERb6r4OlbxfATVnYvzCo= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= +go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= -golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= -golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= +golang.org/x/mod v0.39.0 h1:UF5zwQdCRRUpHfyPwr7d4UrGiVeldIsogtzWVnczL74= +golang.org/x/mod v0.39.0/go.mod h1:bvIbwjQ0HUFFf5AKukeeYQG4ZBUG9yxQbR9aEweIwYY= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= -golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= -golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= -golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 h1:merA0rdPeUV3YIIfHHcH4qBkiQAc1nfCKSI7lB4cV2M= -google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409/go.mod h1:fl8J1IvUjCilwZzQowmw2b7HQB2eAuYBabMXzWurF+I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 h1:H86B94AW+VfJWDqFeEbBPhEtHzJwJfTbgE2lZa54ZAQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= -google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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/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 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.36.0 h1:SgqDhZzHdOtMk40xVSvCXkP9ME0H05hPM3p9AB1kL80= -k8s.io/api v0.36.0/go.mod h1:m1LVrGPNYax5NBHdO+QuAedXyuzTt4RryI/qnmNvs34= -k8s.io/apiextensions-apiserver v0.36.0 h1:Wt7E8J+VBCbj4FjiBfDTK/neXDDjyJVJc7xfuOHImZ0= -k8s.io/apiextensions-apiserver v0.36.0/go.mod h1:kGDjH0msuiIB3tgsYRV0kS9GqpMYMUsQ3GHv7TApyug= -k8s.io/apimachinery v0.36.0 h1:jZyPzhd5Z+3h9vJLt0z9XdzW9VzNzWAUw+P1xZ9PXtQ= -k8s.io/apimachinery v0.36.0/go.mod h1:FklypaRJt6n5wUIwWXIP6GJlIpUizTgfo1T/As+Tyxc= -k8s.io/apiserver v0.36.0 h1:Jg5OFAENUACByUCg15CmhZAYrr5ZyJ+jodyA1mHl3YE= -k8s.io/apiserver v0.36.0/go.mod h1:mHvwdHf+qKEm+1/hYm756SV+oREOKSPnsjagOpx6Vho= -k8s.io/client-go v0.36.0 h1:pOYi7C4RHChYjMiHpZSpSbIM6ZxVbRXBy7CuiIwqA3c= -k8s.io/client-go v0.36.0/go.mod h1:ZKKcpwF0aLYfkHFCjillCKaTK/yBkEDHTDXCFY6AS9Y= -k8s.io/code-generator v0.36.0 h1:XWAkrhnArm0VWMmSFO7kyB+wE2LROwep7hEH0GPGkqA= -k8s.io/code-generator v0.36.0/go.mod h1:Tr2UhfBRdlyRoadfob9aPCmmGe8PUs5XPK9MEJ2nx+w= -k8s.io/component-base v0.36.0 h1:hFjEktssxiJhrK1zfybkH4kJOi8iZuF+mIDCqS5+jRo= -k8s.io/component-base v0.36.0/go.mod h1:JZvIfcNHk+uck+8LhJzhSBtydWXaZNQwX2OdL+Mnwsk= -k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ= -k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM= +k8s.io/api v0.37.0 h1:Z//Vj9N7RA/yS2sDmxyeo7h+RR4zbUrd2vrd3Z0TbB4= +k8s.io/api v0.37.0/go.mod h1:LKXgcJWMc+f4OLbP5SFR8rulEg07zZhpi/zMULiBImk= +k8s.io/apiextensions-apiserver v0.37.0 h1:zRMQ3+/LIE5oZ0tVvXwYHC+dIkSP5cjNWju7AZU1LOI= +k8s.io/apiextensions-apiserver v0.37.0/go.mod h1:HU0PfSBwchHL5iDau6jjt9zU6ryWkDDlaVUiq91NK80= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= +k8s.io/apiserver v0.37.0 h1:TXg7OxsOWrAH8J4Zi/gBAZuMw1Dfdd+6cca2h4qjRqo= +k8s.io/apiserver v0.37.0/go.mod h1:OddHDF4gy9qyIb8o/3+qaeP6S0vEObWLgOygVqXksv0= +k8s.io/client-go v0.37.0 h1:nsN31fy8wBySuZ+QRnKmrjRSQLOG2rvoGN0tKd12zhQ= +k8s.io/client-go v0.37.0/go.mod h1:FcGqw+Ll/gNQiq+nPGY1Oyt9y7SgDh1d3MW3RFDEbn0= +k8s.io/code-generator v0.37.0 h1:AC915wukzlVHHODAQYxvQ25WKibPh95faJ2kxf8dzuo= +k8s.io/code-generator v0.37.0/go.mod h1:qg7E/uDlyvevVRL1V8+h2z9UWmi/8gxaRka/lVXUBdk= +k8s.io/component-base v0.37.0 h1:3SdSa4+itMdFTDFTeR8CxKGmSTSMXFlKL4ky8OqjguM= +k8s.io/component-base v0.37.0/go.mod h1:LjOebp4R9y6LODWZQv102ZQxGheLcDO2ZJLAw6bbh4I= +k8s.io/gengo/v2 v2.0.0-20260408192533-25e2208e0dc3 h1:3L6PNkMLXkU/pz3jWzaaIUz0Rs2V9h+5O51AeRC7poc= +k8s.io/gengo/v2 v2.0.0-20260408192533-25e2208e0dc3/go.mod h1:yvyl3l9E+UxlqOMUULdKTAYB0rEhsmjr7+2Vb/1pCSo= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 h1:sWu4Td5mgJlwunsUydnhKEAfNUHM7hm1wfKEQmD7G5c= -k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 h1:kBawHLSnx/mYHmRnNUf9d4CpjREbeZuxoSGOX/J+aYM= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 h1:hSfpvjjTQXQY2Fol2CS0QHMNs/WI1MOSGzCm1KhM5ec= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/controller-tools v0.21.0 h1:KXDQza3bgjlPY6xLR63tI/40gzjhyUAvkCrwzd2/6cs= -sigs.k8s.io/controller-tools v0.21.0/go.mod h1:DLIypi3Q2+azVAP8jr/mHXJgveYYHFjhnNOUuBJ10JE= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad/go.mod h1:0/mqHCVhlumdJ3BhCfnjSZQE037nAhNodh1/hK0T8/I= +k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs= +k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.36.0 h1:/YpDJ4vReG7ZmzSpBGxduXgywWkJU9zHubgJG03MT+Y= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.36.0/go.mod h1:tJo1aepTXyR+8Xs3sUsGBDk4Ub2AM5dPAPKJx0mpm5c= +sigs.k8s.io/controller-tools v0.22.0 h1:eG3FAVja/KnlXKIWg95udIFz1cMyAtMjP11cqBh3t+k= +sigs.k8s.io/controller-tools v0.22.0/go.mod h1:VizwUStoZK7rReCj704czGGrB7mLxXTiJSJt7wN5ilI= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0 h1:qmp2e3ZfFi1/jJbDGpD4mt3wyp6PE1NfKHCYLqgNQJo= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2 h1:qdOxHwrl2Kaag1aQEarlYcOA9vSyGCp3CIki3aW8c4Q= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= From f36f7ef5e2464745c0dd20f8c6830ade429ddb33 Mon Sep 17 00:00:00 2001 From: Lance Bragstad <94937504+rhmdnd@users.noreply.github.com> Date: Mon, 28 Sep 2026 07:16:08 -0500 Subject: [PATCH 115/327] ROX-36278: fix(search): drop IMAGES_V2 from default global search set (#22989) Co-authored-by: Claude Opus 4.8 (1M context) --- central/search/category.go | 11 +++++++---- qa-tests-backend/src/test/groovy/GlobalSearch.groovy | 4 ---- qa-tests-backend/src/test/groovy/SACTest.groovy | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/central/search/category.go b/central/search/category.go index 97ee74cf890e4..418f0eb32a2ce 100644 --- a/central/search/category.go +++ b/central/search/category.go @@ -2,13 +2,19 @@ package search import ( v1 "github.com/stackrox/rox/generated/api/v1" - "github.com/stackrox/rox/pkg/features" "github.com/stackrox/rox/pkg/set" ) // GetGlobalSearchCategories returns a set of search categories func GetGlobalSearchCategories() set.Set[v1.SearchCategory] { // globalSearchCategories is exposed for e2e options test + // + // IMAGES_V2 is intentionally omitted. With FlattenImageData enabled, IMAGES is + // already routed to the imagesV2 store (see central/search/service), so adding + // IMAGES_V2 here would run the same image search twice and return every image + // twice (both labeled IMAGES). IMAGES remains the public category used by the UI + // and API clients; IMAGES_V2 is the internal storage/schema category and is still + // searchable when requested explicitly. globalSearchCategories := set.NewSet( v1.SearchCategory_ALERTS, v1.SearchCategory_CLUSTERS, @@ -25,8 +31,5 @@ func GetGlobalSearchCategories() set.Set[v1.SearchCategory] { v1.SearchCategory_IMAGE_INTEGRATIONS, v1.SearchCategory_POLICY_CATEGORIES, ) - if features.FlattenImageData.Enabled() { - globalSearchCategories.Add(v1.SearchCategory_IMAGES_V2) - } return globalSearchCategories } diff --git a/qa-tests-backend/src/test/groovy/GlobalSearch.groovy b/qa-tests-backend/src/test/groovy/GlobalSearch.groovy index 04056f42a13f5..e4f563e85bf19 100644 --- a/qa-tests-backend/src/test/groovy/GlobalSearch.groovy +++ b/qa-tests-backend/src/test/groovy/GlobalSearch.groovy @@ -34,10 +34,6 @@ class GlobalSearch extends BaseSpecification { SearchServiceOuterClass.SearchCategory.NAMESPACES, SearchServiceOuterClass.SearchCategory.IMAGES, SearchServiceOuterClass.SearchCategory.DEPLOYMENTS) - if (flattenImageDataEnabled) { - EXPECTED_DEPLOYMENT_CATEGORIES.add(SearchServiceOuterClass.SearchCategory.IMAGES_V2) - EXPECTED_IMAGE_CATEGORIES.add(SearchServiceOuterClass.SearchCategory.IMAGES_V2) - } orchestrator.createDeployment(DEPLOYMENT) assert Services.waitForDeployment(DEPLOYMENT) diff --git a/qa-tests-backend/src/test/groovy/SACTest.groovy b/qa-tests-backend/src/test/groovy/SACTest.groovy index dd6a10fa6d83a..c9bd307501e2f 100644 --- a/qa-tests-backend/src/test/groovy/SACTest.groovy +++ b/qa-tests-backend/src/test/groovy/SACTest.groovy @@ -404,7 +404,7 @@ class SACTest extends BaseSpecification { tokenName | category | numResults NOACCESSTOKEN | "Cluster" | 0 "searchDeploymentsToken" | "Deployment" | 1 - "searchImagesToken" | "Image" | (flattenImageDataEnabled ? 2 : 1) + "searchImagesToken" | "Image" | 1 } @Unroll From 485693ff3725b5938d889e1c94e1b4180dd260bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:02:09 +0200 Subject: [PATCH 116/327] chore(deps): bump github.com/googleapis/gax-go/v2 from 2.24.1 to 2.26.0 (#23094) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 49fa33efacce6..6f16abd351e89 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( github.com/google/go-containerregistry v0.21.9 github.com/google/go-github/v91 v91.0.0 github.com/google/uuid v1.6.0 - github.com/googleapis/gax-go/v2 v2.24.1 + github.com/googleapis/gax-go/v2 v2.26.0 github.com/gorilla/schema v1.4.1 github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 github.com/grafana/pyroscope-go v1.4.2 diff --git a/go.sum b/go.sum index 0ee403d774643..08d7c0c89b8ff 100644 --- a/go.sum +++ b/go.sum @@ -741,8 +741,8 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.24.1 h1:AtqTN21IXMMWo99LiEVAiBfNNQmO40d8xUfZI640mc0= -github.com/googleapis/gax-go/v2 v2.24.1/go.mod h1:bWeBei0NVwaNZKb2y1HUBS7gLXIF3/Tu3pq7j8D2Tb0= +github.com/googleapis/gax-go/v2 v2.26.0 h1:EQd25QY0qQk+S8OZA5wRflUckH5jD2Uw0zj2l23f/lc= +github.com/googleapis/gax-go/v2 v2.26.0/go.mod h1:sMKqnMesnKH+3wiRJROcttA+cJoZoGbZl1vDQ8XYtGk= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= From 3378f8316caf1c0293d6cc0fbd4a2b3270f45cc8 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Mon, 28 Sep 2026 09:51:57 -0400 Subject: [PATCH 117/327] ROX-37151: Delete ROX_CISA_KEV in ui (#22982) --- .../Components/CompoundSearchFilter/attributes/imageCVE.ts | 2 +- .../Policies/Wizard/Step3/policyCriteriaDescriptors.tsx | 1 - .../WorkloadCves/Tables/DeploymentVulnerabilitiesTable.tsx | 1 - .../WorkloadCves/Tables/ImageVulnerabilitiesTable.tsx | 1 - .../WorkloadCves/Tables/WorkloadCVEOverviewTable.tsx | 1 - .../Containers/Vulnerabilities/components/CvePageHeader.tsx | 6 +----- ui/apps/platform/src/types/featureFlag.ts | 1 - 7 files changed, 2 insertions(+), 11 deletions(-) diff --git a/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageCVE.ts b/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageCVE.ts index c8bb26a4920c4..b37c0e88a79ce 100644 --- a/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageCVE.ts +++ b/ui/apps/platform/src/Components/CompoundSearchFilter/attributes/imageCVE.ts @@ -51,7 +51,7 @@ export const KnownExploit: CompoundSearchFilterAttribute = { }, ], }, - featureFlagDependency: ['ROX_SCANNER_V4', 'ROX_CISA_KEV'], + featureFlagDependency: ['ROX_SCANNER_V4'], }; // The filter value is the VulnOrigin enum name (e.g. VULN_ORIGIN_RED_HAT), which the diff --git a/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx b/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx index 3443e3bb474eb..336ca7fbe0bc6 100644 --- a/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx +++ b/ui/apps/platform/src/Containers/Policies/Wizard/Step3/policyCriteriaDescriptors.tsx @@ -703,7 +703,6 @@ export const policyCriteriaDescriptors: Descriptor[] = [ defaultValue: true, canBooleanLogic: false, lifecycleStages: ['BUILD', 'DEPLOY', 'RUNTIME'], - featureFlagDependency: ['ROX_CISA_KEV'], }, { label: 'Fixed by', diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/DeploymentVulnerabilitiesTable.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/DeploymentVulnerabilitiesTable.tsx index 04d2e2b39b3be..f1a03409d619b 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/DeploymentVulnerabilitiesTable.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/DeploymentVulnerabilitiesTable.tsx @@ -202,7 +202,6 @@ function DeploymentVulnerabilitiesTable({ const labels: ReactNode[] = []; if ( isFeatureFlagEnabled('ROX_SCANNER_V4') && - isFeatureFlagEnabled('ROX_CISA_KEV') && hasKnownExploit(cveBaseInfo?.exploit) ) { labels.push(); diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageVulnerabilitiesTable.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageVulnerabilitiesTable.tsx index 0ea0997869e6f..b4e68f0706a33 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageVulnerabilitiesTable.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/ImageVulnerabilitiesTable.tsx @@ -293,7 +293,6 @@ function ImageVulnerabilitiesTable({ const labels: ReactNode[] = []; if ( isFeatureFlagEnabled('ROX_SCANNER_V4') && - isFeatureFlagEnabled('ROX_CISA_KEV') && hasKnownExploit(cveBaseInfo?.exploit) ) { labels.push(); diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/WorkloadCVEOverviewTable.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/WorkloadCVEOverviewTable.tsx index 2152811ad30f7..0446283adc510 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/WorkloadCVEOverviewTable.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Tables/WorkloadCVEOverviewTable.tsx @@ -351,7 +351,6 @@ function WorkloadCVEOverviewTable({ const labels: ReactNode[] = []; if ( isFeatureFlagEnabled('ROX_SCANNER_V4') && - isFeatureFlagEnabled('ROX_CISA_KEV') && hasKnownExploit(cveBaseInfo?.exploit) ) { labels.push(); diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/components/CvePageHeader.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/components/CvePageHeader.tsx index 90fb0b09986ae..6d5dc038a70de 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/components/CvePageHeader.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/components/CvePageHeader.tsx @@ -52,11 +52,7 @@ function CvePageHeader({ data }: CvePageHeaderProps) { const hasEpssProbabilityLabel = isEpssProbabilityColumnEnabled && Boolean(cveBaseInfo); // not (yet) for Node CVE const labels: ReactNode[] = []; - if ( - isFeatureFlagEnabled('ROX_SCANNER_V4') && - isFeatureFlagEnabled('ROX_CISA_KEV') && - hasKnownExploit(cveBaseInfo?.exploit) - ) { + if (isFeatureFlagEnabled('ROX_SCANNER_V4') && hasKnownExploit(cveBaseInfo?.exploit)) { labels.push(); if (hasKnownRansomwareCampaignUse(cveBaseInfo?.exploit)) { labels.push( diff --git a/ui/apps/platform/src/types/featureFlag.ts b/ui/apps/platform/src/types/featureFlag.ts index 4e9e1d3845522..ed63d06aee6b8 100644 --- a/ui/apps/platform/src/types/featureFlag.ts +++ b/ui/apps/platform/src/types/featureFlag.ts @@ -2,7 +2,6 @@ // However, add strings in alphabetical order to minimize merge conflicts when multiple people add or delete strings. // prettier-ignore export type FeatureFlagEnvVar = - | 'ROX_CISA_KEV' | 'ROX_CVE_FIX_TIMESTAMP' | 'ROX_DEPRECATED_COMPLIANCE_DASHBOARD' | 'ROX_EVALUATION_FILTER' From 24812d5cbcab78528ae5afdb08e8a5958717dc4d Mon Sep 17 00:00:00 2001 From: David Shrewsberry <99685630+dashrews78@users.noreply.github.com> Date: Mon, 28 Sep 2026 10:12:10 -0400 Subject: [PATCH 118/327] ROX-36944: Upgrade test reduced to versions +/= 3 (#22791) Co-authored-by: Mauro Ezequiel Moltrasio --- .github/workflows/e2e-gke-upgrade-tests.yaml | 25 ++++- tests/e2e/lib.sh | 8 +- tests/e2e/run.sh | 2 +- tests/upgrade/lib.sh | 37 +++++-- tests/upgrade/postgres_run.sh | 28 ++++-- tests/upgrade/postgres_upgrade_run.sh | 100 +++++++++++++------ 6 files changed, 144 insertions(+), 56 deletions(-) diff --git a/.github/workflows/e2e-gke-upgrade-tests.yaml b/.github/workflows/e2e-gke-upgrade-tests.yaml index 9d33fc971103d..40f394eb5c724 100644 --- a/.github/workflows/e2e-gke-upgrade-tests.yaml +++ b/.github/workflows/e2e-gke-upgrade-tests.yaml @@ -59,7 +59,8 @@ jobs: - name: Create GKE cluster env: MACHINE_TYPE: e2-standard-8 - NUM_NODES: "3" + # Leave room for the scale workload alongside both Scanner versions. + NUM_NODES: "4" GKE_SPOT: "false" timeout-minutes: 20 run: | @@ -180,9 +181,26 @@ jobs: gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: ${{ env.ARTIFACT_DIR }} + check-postgres-upgrade: + if: github.event_name == 'workflow_dispatch' || inputs.should-run + runs-on: ubuntu-latest + outputs: + required: ${{ steps.check.outputs.required }} + steps: + - name: Checkout repo + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha || github.sha }} + persist-credentials: false + - name: Check whether PostgreSQL needs a major-version upgrade + id: check + run: tests/upgrade/postgres_upgrade_run.sh --check + # Verifies we can do Postgres major version upgrade. gke-upgrade-tests-postgres: - if: github.event_name == 'workflow_dispatch' || inputs.should-run + needs: check-postgres-upgrade + if: needs.check-postgres-upgrade.outputs.required == 'true' runs-on: ubuntu-latest env: MAIN_IMAGE_TAG: ${{ inputs.tag }} @@ -210,7 +228,8 @@ jobs: - name: Create GKE cluster env: MACHINE_TYPE: e2-standard-8 - NUM_NODES: "3" + # Leave room for the scale workload alongside both Scanner versions. + NUM_NODES: "4" GKE_SPOT: "false" timeout-minutes: 20 run: | diff --git a/tests/e2e/lib.sh b/tests/e2e/lib.sh index 3f074bec50f45..712fbab269e35 100755 --- a/tests/e2e/lib.sh +++ b/tests/e2e/lib.sh @@ -1812,8 +1812,8 @@ _record_build_info() { set_ci_shared_export "build" "${build_info}" } -restore_4_6_postgres_backup() { - info "Restoring a 4.6 postgres backup" +restore_postgres_backup() { + info "Restoring a postgres backup" require_environment "API_ENDPOINT" require_environment "ROX_ADMIN_PASSWORD" @@ -1823,10 +1823,10 @@ restore_4_6_postgres_backup() { if is_CI; then setup_gcp fi - gsutil cp gs://stackrox-ci-upgrade-test-fixtures/upgrade-test-dbs/postgres_db_4_6.sql.zip . + gsutil cp gs://stackrox-ci-upgrade-test-fixtures/upgrade-test-dbs/postgres_db_4.10.0.sql.zip . roxctl -e "$API_ENDPOINT" --ca "" --insecure-skip-tls-verify \ - central db restore --timeout 5m postgres_db_4_6.sql.zip + central db restore --timeout 5m postgres_db_4.10.0.sql.zip } update_public_config() { diff --git a/tests/e2e/run.sh b/tests/e2e/run.sh index 04a2c1a505d55..7d53d1e42a9d7 100755 --- a/tests/e2e/run.sh +++ b/tests/e2e/run.sh @@ -94,7 +94,7 @@ test_e2e() { # Give some time for previous tests to finish up wait_for_api - restore_4_6_postgres_backup + restore_postgres_backup wait_for_api trap cleanup_workload_identities EXIT diff --git a/tests/upgrade/lib.sh b/tests/upgrade/lib.sh index cbe1d1ee0997c..5c0f21b0d70fb 100644 --- a/tests/upgrade/lib.sh +++ b/tests/upgrade/lib.sh @@ -108,7 +108,11 @@ get_target_bg_migration_seqnum() { deploy_earlier_postgres_central() { info "Deploying: $EARLIER_TAG..." - make cli + # Older checkouts force GOTOOLCHAIN=local during dependency checks. + # Put the toolchain selected for this checkout first on PATH for the build. + local build_goroot + build_goroot="$(go env GOROOT)" + PATH="${build_goroot}/bin:${PATH}" make cli PATH="bin/$TEST_HOST_PLATFORM:$PATH" command -v roxctl PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl version @@ -120,7 +124,20 @@ deploy_earlier_postgres_central() { export ROX_ADMIN_PASSWORD PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl helm output central-services --image-defaults opensource --output-dir /tmp/early-stackrox-central-services-chart --remove + # Scanner V4 is installed by default in 4.10. Set its DB storage class now, + # because the later Helm upgrade cannot change an existing PVC's class. + local helm_extra_args=() + if [[ -n "${SCANNER_V4_DB_STORAGE_CLASS:-}" ]]; then + if [[ "${SCANNER_V4_DB_STORAGE_CLASS}" == "faster" ]]; then + kubectl apply -f "${TEST_ROOT}/deploy/common/ssd-storageclass.yaml" + fi + helm_extra_args+=(--set "scannerV4.db.persistence.persistentVolumeClaim.storageClass=${SCANNER_V4_DB_STORAGE_CLASS}") + fi + + # The generated chart can inherit the PR tag, which has no Scanner V2 images. + # Use the released Scanner V2 images for the initial deployment. helm install -n stackrox --create-namespace stackrox-central-services /tmp/early-stackrox-central-services-chart \ + "${helm_extra_args[@]}" \ --set central.adminPassword.value="${ROX_ADMIN_PASSWORD}" \ --set central.db.enabled=true \ --set central.db.persistence.persistentVolumeClaim.size="${PVC_SIZE:-100Gi}" \ @@ -128,7 +145,9 @@ deploy_earlier_postgres_central() { --set central.exposure.loadBalancer.enabled=true \ --set system.enablePodSecurityPolicies=false \ --set central.image.tag="${EARLIER_TAG}" \ - --set central.db.image.tag="${EARLIER_TAG}" + --set central.db.image.tag="${EARLIER_TAG}" \ + --set scanner.image.tag="${EARLIER_TAG}" \ + --set scanner.dbImage.tag="${EARLIER_TAG}" # Installing this way returns faster than the scripts but everything isn't running when it finishes like with # the scripts. So we will give it a minute for things to get started before we proceed @@ -249,31 +268,31 @@ EOT wait_for_scanner_V4 "$namespace" } -restore_4_6_backup() { - info "Restoring a 4.6 backup into a newer central" +restore_backup() { + info "Restoring a backup into a newer central" - restore_4_6_postgres_backup + restore_postgres_backup } force_rollback() { - info "Forcing a rollback to $FORCE_ROLLBACK_VERSION" + info "Forcing a rollback to ${EARLIER_TAG}" local upgradeStatus upgradeStatus=$(curl -sSk -X GET --config <(curl_cfg user "admin:${ROX_ADMIN_PASSWORD}") https://"${API_ENDPOINT}"/v1/centralhealth/upgradestatus) echo "upgrade status: ${upgradeStatus}" test_equals_non_silent "$(echo "$upgradeStatus" | jq '.upgradeStatus.version' -r)" "$(make --quiet --no-print-directory tag)" - test_equals_non_silent "$(echo "$upgradeStatus" | jq '.upgradeStatus.forceRollbackTo' -r)" "$FORCE_ROLLBACK_VERSION" + test_equals_non_silent "$(echo "$upgradeStatus" | jq '.upgradeStatus.forceRollbackTo' -r)" "${EARLIER_TAG}" test_equals_non_silent "$(echo "$upgradeStatus" | jq '.upgradeStatus.canRollbackAfterUpgrade' -r)" "true" kubectl -n stackrox get configmap/central-config -o yaml | yq e '{"data": .data}' - >/tmp/force_rollback_patch local central_config - central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"$FORCE_ROLLBACK_VERSION\"" -) + central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"${EARLIER_TAG}\"" -) local config_patch config_patch=$(yq e ".data[\"central-config.yaml\"] |= \"$central_config\"" /tmp/force_rollback_patch) echo "config patch: $config_patch" kubectl -n stackrox patch configmap/central-config -p "$config_patch" - kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:$FORCE_ROLLBACK_VERSION" + kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:${EARLIER_TAG}" } validate_sensor_bundle_via_upgrader() { diff --git a/tests/upgrade/postgres_run.sh b/tests/upgrade/postgres_run.sh index 8d954ee285d85..3e8236a2b0146 100755 --- a/tests/upgrade/postgres_run.sh +++ b/tests/upgrade/postgres_run.sh @@ -7,11 +7,11 @@ set -euo pipefail TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" -EARLIER_TAG="4.6.2" -EARLIER_SHA="ecff2a443c8b9a2dc7bf606162da89da81dd8e9e" +EARLIER_TAG="4.10.0" +EARLIER_SHA="7b817fa511ac4533cdf2d79a1b8e04d4d7557ad2" CURRENT_TAG="${MAIN_IMAGE_TAG:-"$(make --quiet --no-print-directory tag)"}" COLLECTOR_TAG="${MAIN_IMAGE_TAG:-"$(make --quiet --no-print-directory collector-tag)"}" -PREVIOUS_RELEASES=("4.6.10" "4.7.9" "4.8.11" "4.9.11" "4.10.7" "4.11.3") +PREVIOUS_RELEASES=("4.10.7" "4.11.3") # shellcheck source=../../scripts/lib.sh source "$TEST_ROOT/scripts/lib.sh" @@ -76,9 +76,6 @@ test_upgrade_paths() { local log_output_dir="$1" - # To test we remain backwards compatible rollback to 4.6.x - FORCE_ROLLBACK_VERSION="${EARLIER_TAG}" - cd "$REPO_FOR_TIME_TRAVEL" git checkout "$EARLIER_SHA" @@ -95,7 +92,7 @@ test_upgrade_paths() { wait_for_api setup_client_TLS_certs - restore_4_6_backup + restore_backup wait_for_api # Run with some scale to have data populated to migrate @@ -260,7 +257,7 @@ test_upgrade_paths() { } force_rollback_to_previous_postgres() { - info "Forcing a rollback to $FORCE_ROLLBACK_VERSION" + info "Forcing a rollback to ${EARLIER_TAG}" local upgradeStatus upgradeStatus=$(curl -sSk -X GET --config <(curl_cfg user "admin:${ROX_ADMIN_PASSWORD}") https://"${API_ENDPOINT}"/v1/centralhealth/upgradestatus) @@ -270,7 +267,7 @@ force_rollback_to_previous_postgres() { kubectl -n stackrox get configmap/central-config -o yaml | yq e '{"data": .data}' - >/tmp/force_rollback_patch local central_config - central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"$FORCE_ROLLBACK_VERSION\"" -) + central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"${EARLIER_TAG}\"" -) local config_patch config_patch=$(yq e ".data[\"central-config.yaml\"] |= \"$central_config\"" /tmp/force_rollback_patch) echo "config patch: $config_patch" @@ -284,7 +281,7 @@ force_rollback_to_previous_postgres() { kubectl -n stackrox set env deploy/sensor ROX_PROCESSES_LISTENING_ON_PORT=false kubectl -n stackrox patch configmap/central-config -p "$config_patch" - kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:$FORCE_ROLLBACK_VERSION" + kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:${EARLIER_TAG}" # Do not rollback central-db image, since downgrade from PG15 to PG13 is # not possible. @@ -297,7 +294,8 @@ deploy_scaled_workload() { PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl helm output secured-cluster-services --image-defaults opensource --output-dir /tmp/early-stackrox-secured-services-chart --remove - PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl -e "$API_ENDPOINT" central init-bundles generate scale-remote --output /tmp/cluster-init-bundle.yaml + PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl -e "$API_ENDPOINT" --ca "" --insecure-skip-tls-verify \ + central init-bundles generate scale-remote --output /tmp/cluster-init-bundle.yaml helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services /tmp/early-stackrox-secured-services-chart \ @@ -311,6 +309,14 @@ deploy_scaled_workload() { sensor_wait ./scale/launch_workload.sh scale-test + + # The historical scale script requests 5 CPUs per component. Leave room for + # both scanners by reducing Central and Central DB's CPU reservations. + kubectl -n stackrox patch deploy/central --type=strategic -p \ + '{"spec":{"template":{"spec":{"containers":[{"name":"central","resources":{"requests":{"cpu":"2"}}}]}}}}' + # Init-container requests also count toward the pod's CPU reservation. + kubectl -n stackrox patch deploy/central-db --type=strategic -p \ + '{"spec":{"template":{"spec":{"containers":[{"name":"central-db","resources":{"requests":{"cpu":"2"}}}],"initContainers":[{"name":"init-db","resources":{"requests":{"cpu":"2"}}}]}}}}' wait_for_api info "Sleep for a bit to let the scale build" diff --git a/tests/upgrade/postgres_upgrade_run.sh b/tests/upgrade/postgres_upgrade_run.sh index 28c1e62969ece..510e3d584cb10 100755 --- a/tests/upgrade/postgres_upgrade_run.sh +++ b/tests/upgrade/postgres_upgrade_run.sh @@ -3,29 +3,43 @@ set -euo pipefail -# Tests upgrade to Postgres. +# Tests PostgreSQL major-version upgrades. TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" -EARLIER_TAG="4.7.2" -EARLIER_SHA="ef2060ed332c7b8513cb9eb52b9745df9a8285cc" -CURRENT_TAG="${MAIN_IMAGE_TAG:-"$(make --quiet --no-print-directory tag)"}" -PREVIOUS_RELEASES=("4.7.3") +EARLIER_TAG="4.10.0" +EARLIER_SHA="7b817fa511ac4533cdf2d79a1b8e04d4d7557ad2" # shellcheck source=../../scripts/lib.sh source "$TEST_ROOT/scripts/lib.sh" -# shellcheck source=../../scripts/ci/lib.sh -source "$TEST_ROOT/scripts/ci/lib.sh" -# shellcheck source=../../scripts/ci/sensor-wait.sh -source "$TEST_ROOT/scripts/ci/sensor-wait.sh" -# shellcheck source=../../scripts/setup-certs.sh -source "$TEST_ROOT/tests/scripts/setup-certs.sh" -# shellcheck source=../../tests/e2e/lib.sh -source "$TEST_ROOT/tests/e2e/lib.sh" -# shellcheck source=../../tests/upgrade/lib.sh -source "$TEST_ROOT/tests/upgrade/lib.sh" -# shellcheck source=../../tests/upgrade/validation.sh -source "$TEST_ROOT/tests/upgrade/validation.sh" + +postgres_major_version() { + # Current images use ARG PG_VERSION; older releases put the major directly in FROM. + local version + version="$(sed -n \ + -e 's/^[[:space:]]*ARG[[:space:]]\+PG_VERSION=\([1-9][0-9]*\)[[:space:]]*$/\1/p' \ + -e 's/^[[:space:]]*FROM[[:space:]].*\/postgresql-\([1-9][0-9]*\)-.*$/\1/p')" + # Missing or ambiguous versions must fail the check, not silently skip coverage. + [[ "$version" =~ ^[1-9][0-9]*$ ]] || return 1 + echo "$version" +} + +check_postgres_upgrade() { + local earlier_version current_version + earlier_version="$(git -C "$TEST_ROOT" show "$EARLIER_SHA:image/postgres/Dockerfile" | postgres_major_version)" || \ + die "Cannot determine PostgreSQL major version for $EARLIER_TAG ($EARLIER_SHA)" + current_version="$(postgres_major_version < "$TEST_ROOT/image/postgres/Dockerfile")" || \ + die "Cannot determine PostgreSQL major version for the current checkout" + + POSTGRES_UPGRADE_REQUIRED=false + if (( current_version > earlier_version )); then + POSTGRES_UPGRADE_REQUIRED=true + POSTGRES_UPGRADE_REASON="Running PostgreSQL upgrade suite: $EARLIER_TAG uses PostgreSQL $earlier_version; current checkout uses PostgreSQL $current_version." + else + POSTGRES_UPGRADE_REASON="Skipping PostgreSQL upgrade suite: $EARLIER_TAG uses PostgreSQL $earlier_version; current checkout uses PostgreSQL $current_version. No major-version upgrade." + fi + info "$POSTGRES_UPGRADE_REASON" +} test_upgrade() { info "Starting postgres upgrade test" @@ -79,8 +93,6 @@ test_upgrade_path() { local log_output_dir="$1" - FORCE_ROLLBACK_VERSION="4.7.2" - cd "$REPO_FOR_TIME_TRAVEL" git checkout "$EARLIER_SHA" @@ -99,7 +111,7 @@ test_upgrade_path() { # It's damn fiddly, restore is needed because later test will search for a # default secured cluster, created by it :( - restore_4_6_backup + restore_backup wait_for_api # Run with some scale to have data populated to migrate @@ -191,8 +203,6 @@ test_not_enough_disk_space() { local log_output_dir="$1" - FORCE_ROLLBACK_VERSION="4.7.2" - cd "$REPO_FOR_TIME_TRAVEL" git checkout "$EARLIER_SHA" @@ -213,7 +223,7 @@ test_not_enough_disk_space() { # It's damn fiddly, restore is needed because later test will search for a # default secured cluster, created by it :( - restore_4_6_backup + restore_backup wait_for_api # Do not apply scaled workload to control disk space, do fallocate instead @@ -277,7 +287,7 @@ test_not_enough_disk_space() { } force_rollback_to_previous_postgres() { - info "Forcing a rollback to $FORCE_ROLLBACK_VERSION" + info "Forcing a rollback to ${EARLIER_TAG}" local upgradeStatus upgradeStatus=$(curl -sSk -X GET --config <(curl_cfg user "admin:${ROX_ADMIN_PASSWORD}") https://"${API_ENDPOINT}"/v1/centralhealth/upgradestatus) @@ -287,7 +297,7 @@ force_rollback_to_previous_postgres() { kubectl -n stackrox get configmap/central-config -o yaml | yq e '{"data": .data}' - >/tmp/force_rollback_patch local central_config - central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"$FORCE_ROLLBACK_VERSION\"" -) + central_config=$(yq e '.data["central-config.yaml"]' /tmp/force_rollback_patch | yq e ".maintenance.forceRollbackVersion = \"${EARLIER_TAG}\"" -) local config_patch config_patch=$(yq e ".data[\"central-config.yaml\"] |= \"$central_config\"" /tmp/force_rollback_patch) echo "config patch: $config_patch" @@ -301,7 +311,7 @@ force_rollback_to_previous_postgres() { kubectl -n stackrox set env deploy/sensor ROX_PROCESSES_LISTENING_ON_PORT=false kubectl -n stackrox patch configmap/central-config -p "$config_patch" - kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:$FORCE_ROLLBACK_VERSION" + kubectl -n stackrox set image deploy/central "central=$REGISTRY/main:${EARLIER_TAG}" # Do not rollback central-db image, since downgrade from PG15 to PG13 is # not possible. @@ -317,7 +327,8 @@ deploy_scaled_workload() { # Make sure no init bundle from previous runs is there rm -f /tmp/cluster-init-bundle.yaml - PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl -e "$API_ENDPOINT" central init-bundles generate scale-remote --output /tmp/cluster-init-bundle.yaml + PATH="bin/$TEST_HOST_PLATFORM:$PATH" roxctl -e "$API_ENDPOINT" --ca "" --insecure-skip-tls-verify \ + central init-bundles generate scale-remote --output /tmp/cluster-init-bundle.yaml helm install -n stackrox --create-namespace \ stackrox-secured-cluster-services /tmp/early-stackrox-secured-services-chart \ @@ -331,6 +342,14 @@ deploy_scaled_workload() { sensor_wait ./scale/launch_workload.sh scale-test + + # The historical scale script requests 5 CPUs per component. Leave room for + # both scanners by reducing Central and Central DB's CPU reservations. + kubectl -n stackrox patch deploy/central --type=strategic -p \ + '{"spec":{"template":{"spec":{"containers":[{"name":"central","resources":{"requests":{"cpu":"2"}}}]}}}}' + # Init-container requests also count toward the pod's CPU reservation. + kubectl -n stackrox patch deploy/central-db --type=strategic -p \ + '{"spec":{"template":{"spec":{"containers":[{"name":"central-db","resources":{"requests":{"cpu":"2"}}}],"initContainers":[{"name":"init-db","resources":{"requests":{"cpu":"2"}}}]}}}}' wait_for_api info "Sleep for a bit to let the scale build" @@ -344,5 +363,30 @@ deploy_scaled_workload() { } if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then - test_upgrade "$*" + check_postgres_upgrade + if [[ "${1:-}" == "--check" ]]; then + # CI checks eligibility before provisioning a cluster or running pre/post-test hooks. + if [[ -n "${GITHUB_OUTPUT:-}" ]]; then + echo "required=$POSTGRES_UPGRADE_REQUIRED" >> "$GITHUB_OUTPUT" + fi + if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then + echo "$POSTGRES_UPGRADE_REASON" >> "$GITHUB_STEP_SUMMARY" + fi + elif [[ "$POSTGRES_UPGRADE_REQUIRED" == true ]]; then + CURRENT_TAG="${MAIN_IMAGE_TAG:-"$(make --quiet --no-print-directory tag)"}" + # Load deployment helpers only when the suite will actually run. + # shellcheck source=../../scripts/ci/lib.sh + source "$TEST_ROOT/scripts/ci/lib.sh" + # shellcheck source=../../scripts/ci/sensor-wait.sh + source "$TEST_ROOT/scripts/ci/sensor-wait.sh" + # shellcheck source=../../scripts/setup-certs.sh + source "$TEST_ROOT/tests/scripts/setup-certs.sh" + # shellcheck source=../../tests/e2e/lib.sh + source "$TEST_ROOT/tests/e2e/lib.sh" + # shellcheck source=../../tests/upgrade/lib.sh + source "$TEST_ROOT/tests/upgrade/lib.sh" + # shellcheck source=../../tests/upgrade/validation.sh + source "$TEST_ROOT/tests/upgrade/validation.sh" + test_upgrade "$@" + fi fi From 4900c4351fc16b8719e52c188e9399475d83cfe0 Mon Sep 17 00:00:00 2001 From: Aleksandr Kurlov Date: Mon, 28 Sep 2026 18:17:53 +0200 Subject: [PATCH 119/327] ROX-36575: Serve roxctl binaries from tars (#22683) Co-authored-by: Misha Sugakov <537715+msugakov@users.noreply.github.com> --- CHANGELOG.md | 2 +- central/cli/download.go | 76 ++++++++++++++++++- central/cli/download_test.go | 139 ++++++++++++++++++++++++++++++++++ image/rhel/Dockerfile | 16 +++- image/rhel/konflux.Dockerfile | 11 ++- 5 files changed, 232 insertions(+), 12 deletions(-) create mode 100644 central/cli/download_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index d7336e61d2a50..ccbe071da4de4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,8 +19,8 @@ Changes should still be described appropriately in JIRA/doc input pages, for inc ### Deprecated Features ### Technical Changes +- ROX-36534: roxctl binaries in the Central image are now stored as `.tar.gz` archives. Central extracts and streams the binary on download, so the user-facing download behavior is unchanged. - ROX-35137: Central now prunes deployments whose cluster no longer exists in the database. - - ROX-37048: Central writes its version in `Rh-Central-Version` gRPC response header to authenticated clients. `roxctl` compares this version with its own version and reports a warning to stderr if the version skew is outside of a supported range. ## [5.0.0] diff --git a/central/cli/download.go b/central/cli/download.go index e0ad06abf0ecc..cdc705a28dcb3 100644 --- a/central/cli/download.go +++ b/central/cli/download.go @@ -1,17 +1,85 @@ package cli import ( + "archive/tar" + "compress/gzip" + "fmt" + "io" "net/http" + "os" "path/filepath" + "strconv" + "strings" + + "github.com/stackrox/rox/pkg/logging" + "github.com/stackrox/rox/pkg/utils" ) const downloadPath = "/assets/downloads/cli" -// Handler returns a handler for serving files from Central's downloads folder +var log = logging.LoggerForModule() + +// Handler serves roxctl binaries from Central UI. +// Binaries are stored as .tar.gz and extracted on the fly on each request. func Handler() http.HandlerFunc { + return handlerWithDir(downloadPath) +} + +func handlerWithDir(dir string) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { - // Need to remove the rest of the URL path so that it just contains the file wanted - r.URL.Path = filepath.Base(r.URL.Path) - http.FileServer(http.Dir(downloadPath)).ServeHTTP(w, r) + if r.Method != http.MethodGet && r.Method != http.MethodHead { + w.Header().Set("Allow", http.MethodGet+", "+http.MethodHead) + http.Error(w, fmt.Sprintf("method %s not allowed", r.Method), http.StatusMethodNotAllowed) + return + } + + filename := filepath.Base(r.URL.Path) + tarPath := filepath.Join(dir, strings.TrimSuffix(filename, ".exe")+".tar.gz") + + f, err := os.Open(tarPath) + if err != nil { + log.Warnf("error opening tarball for requested binary %q: %v", filename, err) + http.Error(w, "not found", http.StatusNotFound) + return + } + defer utils.IgnoreError(f.Close) + + gz, err := gzip.NewReader(f) + if err != nil { + log.Warnf("error opening gzip reader for %s: %v", tarPath, err) + http.Error(w, "invalid archive", http.StatusInternalServerError) + return + } + defer utils.IgnoreError(gz.Close) + + tr := tar.NewReader(gz) + for { + hdr, err := tr.Next() + if err == io.EOF { + log.Warnf("binary %q not found in %s; tarball entry name may not match the requested filename", filename, tarPath) + http.Error(w, "not found", http.StatusNotFound) + return + } + if err != nil { + log.Warnf("error reading archive %s: %v", tarPath, err) + http.Error(w, "error reading archive", http.StatusInternalServerError) + return + } + if hdr.Name != filename { + continue + } + w.Header().Set("Content-Disposition", fmt.Sprintf(`attachment; filename="%s"`, filename)) + w.Header().Set("Content-Type", "application/octet-stream") + w.Header().Set("Content-Length", strconv.FormatInt(hdr.Size, 10)) + w.Header().Set("Accept-Ranges", "none") + w.Header().Set("Cache-Control", "no-cache") + if r.Method == http.MethodGet { + if _, err = io.Copy(w, tr); err != nil { + log.Warnf("failed to stream %s: %v", filename, err) + panic(http.ErrAbortHandler) + } + } + return + } } } diff --git a/central/cli/download_test.go b/central/cli/download_test.go new file mode 100644 index 0000000000000..7a32eee16e2d3 --- /dev/null +++ b/central/cli/download_test.go @@ -0,0 +1,139 @@ +package cli + +import ( + "archive/tar" + "compress/gzip" + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" +) + +func writeTarball(t *testing.T, dir, tarName, entryName string, content []byte) { + t.Helper() + f, err := os.Create(filepath.Join(dir, tarName+".tar.gz")) + require.NoError(t, err) + + gz := gzip.NewWriter(f) + tw := tar.NewWriter(gz) + err = tw.WriteHeader(&tar.Header{ + Name: entryName, + Size: int64(len(content)), + Mode: 0755, + }) + require.NoError(t, err) + _, err = tw.Write(content) + require.NoError(t, err) + require.NoError(t, tw.Close()) + require.NoError(t, gz.Close()) + require.NoError(t, f.Close()) +} + +type HandlerSuite struct { + suite.Suite + dir string + handler http.HandlerFunc + payload []byte +} + +func TestHandlerSuite(t *testing.T) { + suite.Run(t, new(HandlerSuite)) +} + +func (s *HandlerSuite) SetupTest() { + s.dir = s.T().TempDir() + s.handler = handlerWithDir(s.dir) + s.payload = []byte("fake roxctl binary content") + writeTarball(s.T(), s.dir, "roxctl-linux-amd64", "roxctl-linux-amd64", s.payload) + // Windows: tarball strips .exe from the name (required by release pipeline), + // but the entry inside the tarball preserves .exe. + writeTarball(s.T(), s.dir, "roxctl-windows-amd64", "roxctl-windows-amd64.exe", s.payload) +} + +func (s *HandlerSuite) TestServesLinuxBinaryViaGET() { + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + s.handler(rr, req) + s.Equal(http.StatusOK, rr.Code) + s.Equal(`attachment; filename="roxctl-linux-amd64"`, rr.Header().Get("Content-Disposition")) + s.Equal("application/octet-stream", rr.Header().Get("Content-Type")) + s.Equal("26", rr.Header().Get("Content-Length")) + s.Equal("none", rr.Header().Get("Accept-Ranges")) + s.Equal("no-cache", rr.Header().Get("Cache-Control")) + s.Equal(s.payload, rr.Body.Bytes()) +} + +func (s *HandlerSuite) TestServesWindowsBinaryViaGET() { + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-windows-amd64.exe", nil) + rr := httptest.NewRecorder() + s.handler(rr, req) + s.Equal(http.StatusOK, rr.Code) + s.Equal(`attachment; filename="roxctl-windows-amd64.exe"`, rr.Header().Get("Content-Disposition")) + s.Equal(s.payload, rr.Body.Bytes()) +} + +func (s *HandlerSuite) TestReturnsHeadersButNoBodyForHEAD() { + req := httptest.NewRequest(http.MethodHead, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + s.handler(rr, req) + s.Equal(http.StatusOK, rr.Code) + s.Equal("26", rr.Header().Get("Content-Length")) + s.Empty(rr.Body.Bytes()) +} + +func (s *HandlerSuite) TestReturns404ForMissingTarball() { + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-darwin-amd64", nil) + rr := httptest.NewRecorder() + s.handler(rr, req) + s.Equal(http.StatusNotFound, rr.Code) +} + +func (s *HandlerSuite) TestReturns404WhenBinaryNotInTarball() { + dir := s.T().TempDir() + // Tarball exists but entry name does not match the requested filename. + writeTarball(s.T(), dir, "roxctl-linux-amd64", "wrong-entry-name", s.payload) + handler := handlerWithDir(dir) + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + handler(rr, req) + s.Equal(http.StatusNotFound, rr.Code) +} + +func (s *HandlerSuite) TestReturns405ForUnsupportedMethod() { + req := httptest.NewRequest(http.MethodPost, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + s.handler(rr, req) + s.Equal(http.StatusMethodNotAllowed, rr.Code) + s.Equal("GET, HEAD", rr.Header().Get("Allow")) +} + +func (s *HandlerSuite) TestReturns500ForCorruptedGzip() { + dir := s.T().TempDir() + err := os.WriteFile(filepath.Join(dir, "roxctl-linux-amd64.tar.gz"), []byte("not a gzip"), 0600) + s.Require().NoError(err) + handler := handlerWithDir(dir) + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + handler(rr, req) + s.Equal(http.StatusInternalServerError, rr.Code) +} + +func (s *HandlerSuite) TestReturns500ForCorruptedTar() { + dir := s.T().TempDir() + f, err := os.Create(filepath.Join(dir, "roxctl-linux-amd64.tar.gz")) + s.Require().NoError(err) + gz := gzip.NewWriter(f) + _, err = gz.Write([]byte("valid gzip but not a tar")) + s.Require().NoError(err) + s.Require().NoError(gz.Close()) + s.Require().NoError(f.Close()) + handler := handlerWithDir(dir) + req := httptest.NewRequest(http.MethodGet, "/api/cli/download/roxctl-linux-amd64", nil) + rr := httptest.NewRecorder() + handler(rr, req) + s.Equal(http.StatusInternalServerError, rr.Code) +} diff --git a/image/rhel/Dockerfile b/image/rhel/Dockerfile index ecd99837e048e..73ebed2028f8d 100644 --- a/image/rhel/Dockerfile +++ b/image/rhel/Dockerfile @@ -39,6 +39,17 @@ RUN rpm --import /tmp/RPM-GPG-KEY-CentOS-Official && \ dnf clean all --installroot=/out/ && \ rm -rf /out/var/cache/dnf /out/var/cache/yum +FROM ubi-base AS cli-tarballs + +RUN dnf install -y pigz +COPY bin/roxctl* /tmp/roxctl/ +RUN cd /tmp/roxctl && \ + shopt -s nullglob && \ + for f in roxctl-*; do \ + [[ -f "$f" && -x "$f" ]] || continue; \ + tar -I pigz -cvf "${f%.exe}.tar.gz" "$f"; \ + done + FROM ubi-micro-base ARG LABEL_VERSION @@ -94,9 +105,8 @@ COPY bin/admission-control /stackrox/bin/admission-control COPY bin/config-controller /stackrox/bin/config-controller COPY bin/central-worker /stackrox/bin/central-worker COPY bin/roxagent /stackrox/bin/roxagent -COPY bin/roxctl* /assets/downloads/cli/ - -RUN ln -s /assets/downloads/cli/roxctl-linux-${TARGET_ARCH} /stackrox/roxctl +COPY --from=cli-tarballs /tmp/roxctl/roxctl-*.tar.gz /assets/downloads/cli/ +COPY --from=cli-tarballs /tmp/roxctl/roxctl-linux-${TARGET_ARCH} /stackrox/roxctl EXPOSE 8443 diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index aa3797bec1801..e441fdf710356 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -43,6 +43,11 @@ RUN cd /go/src/github.com/stackrox/rox/app/image/rhel/bin && \ tar -I pigz -cvf "${f%.exe}.tar.gz" "$f"; \ done +RUN arch=$(uname -m) ; \ + case $arch in x86_64) arch=amd64 ;; aarch64) arch=arm64 ;; esac ; \ + cp /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl-linux-${arch} \ + /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl + FROM registry.access.redhat.com/ubi9/nodejs-22@sha256:bb046ef111dd20f890fe9879a37df8e829ed661177fae2339ba7eeb495f46c60 as ui-builder @@ -104,7 +109,8 @@ COPY --from=ui-builder /go/src/github.com/stackrox/rox/app/ui/build /ui/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/migrator /stackrox/bin/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/central /stackrox/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/compliance /stackrox/bin/ -COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl* /assets/downloads/cli/ +COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl-*.tar.gz /assets/downloads/cli/ +COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl /stackrox/roxctl COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/kubernetes-sensor /stackrox/bin/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/sensor-upgrader /stackrox/bin/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/admission-control /stackrox/bin/ @@ -112,9 +118,6 @@ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/config COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxagent /stackrox/bin/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/bin/central-worker /stackrox/bin/ COPY --from=go-builder /go/src/github.com/stackrox/rox/app/image/rhel/static-bin/* /stackrox/ -RUN GOARCH=$(uname -m) ; \ - case $GOARCH in x86_64) GOARCH=amd64 ;; aarch64) GOARCH=arm64 ;; esac ; \ - ln -s /assets/downloads/cli/roxctl-linux-$GOARCH /stackrox/roxctl ARG BUILD_TAG From 52a9ad6184532310e0740adc7da7bbd1d3d59d72 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Mon, 28 Sep 2026 16:52:03 -0400 Subject: [PATCH 120/327] ROX-37231: Delete ROX_FLATTEN_IMAGE_DATA in ui (#23051) --- .../workloadCves/imageSingle.test.ts | 17 ++--- .../VulnMgmt/widgets/CvesByCvssScore.jsx | 4 +- .../VulnMgmt/widgets/TopRiskiestEntities.jsx | 4 +- .../Image/DeploymentResourceTable.tsx | 18 ----- .../WorkloadCves/Image/ImagePage.tsx | 36 +--------- .../WorkloadCves/Image/ImagePageResources.tsx | 27 +------ .../Image/ImagePageVulnerabilities.tsx | 71 ++++--------------- .../WorkloadCves/Overview/useImages.ts | 7 +- .../components/ImageDetailBadges.tsx | 34 --------- .../useInvalidateVulnerabilityQueries.ts | 4 +- ui/apps/platform/src/types/featureFlag.ts | 1 - 11 files changed, 29 insertions(+), 194 deletions(-) diff --git a/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/imageSingle.test.ts b/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/imageSingle.test.ts index 8ce81d5520e73..c784b117e70ed 100644 --- a/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/imageSingle.test.ts +++ b/ui/apps/platform/cypress/integration/vulnerabilities/workloadCves/imageSingle.test.ts @@ -49,20 +49,11 @@ describe('Workload CVE Image Single page', () => { // see: https://issues.redhat.com/browse/ROX-24254 // https://github.com/stackrox/stackrox/pull/6156 it('should display nested component data correctly when processed via apollo client', () => { - const isFlattenImageData = hasFeatureFlag('ROX_FLATTEN_IMAGE_DATA'); - const imageRootKey = isFlattenImageData ? 'imageV2' : 'image'; - const opname = 'getCVEsForImage'; const imageData = { - id: isFlattenImageData - ? '4c657931-d333-5cb8-8f0d-7e3836525ec7' - : 'sha256:010fec71f42f4b5e65f3f56f10af94a7c05c9c271a9bbc3026684ba170698cb5', - ...(isFlattenImageData - ? { - digest: 'sha256:010fec71f42f4b5e65f3f56f10af94a7c05c9c271a9bbc3026684ba170698cb5', - } - : {}), + id: '4c657931-d333-5cb8-8f0d-7e3836525ec7', + digest: 'sha256:010fec71f42f4b5e65f3f56f10af94a7c05c9c271a9bbc3026684ba170698cb5', name: { registry: 'quay.io', remote: 'openshift-release-dev/ocp-v4.0-art-dev', @@ -82,7 +73,7 @@ describe('Workload CVE Image Single page', () => { }, __typename: 'ImageMetadata', }, - __typename: isFlattenImageData ? 'ImageV2' : 'Image', + __typename: 'ImageV2', imageCVECountBySeverity: { unknown: { total: 0, @@ -182,7 +173,7 @@ describe('Workload CVE Image Single page', () => { const body = { data: { - [imageRootKey]: imageData, + imageV2: imageData, }, }; diff --git a/ui/apps/platform/src/Containers/VulnMgmt/widgets/CvesByCvssScore.jsx b/ui/apps/platform/src/Containers/VulnMgmt/widgets/CvesByCvssScore.jsx index 19c500517c944..2aa1642136b1b 100644 --- a/ui/apps/platform/src/Containers/VulnMgmt/widgets/CvesByCvssScore.jsx +++ b/ui/apps/platform/src/Containers/VulnMgmt/widgets/CvesByCvssScore.jsx @@ -12,7 +12,6 @@ import workflowStateContext from 'Containers/workflowStateContext'; import { vulnerabilitySeverityColorMap } from 'constants/severityColors'; import { vulnerabilitySeverityLabels } from 'messages/common'; import { getScopeQuery } from 'Containers/VulnMgmt/Entity/VulnMgmtPolicyQueryUtil'; -import useFeatureFlags from 'hooks/useFeatureFlags'; import ViewAllButton from './ViewAllButton'; @@ -57,8 +56,7 @@ const vulnerabilitySeverities = [ ]; const CvesByCvssScore = ({ entityContext, parentContext }) => { - const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); + const isNewImageDataModelEnabled = true; let queryToUse = IMAGE_CVES_QUERY; let linkTypeToUse = entityTypes.IMAGE_CVE; diff --git a/ui/apps/platform/src/Containers/VulnMgmt/widgets/TopRiskiestEntities.jsx b/ui/apps/platform/src/Containers/VulnMgmt/widgets/TopRiskiestEntities.jsx index 01f17ab001edb..ca9e5c4d83f18 100644 --- a/ui/apps/platform/src/Containers/VulnMgmt/widgets/TopRiskiestEntities.jsx +++ b/ui/apps/platform/src/Containers/VulnMgmt/widgets/TopRiskiestEntities.jsx @@ -20,7 +20,6 @@ import { entityNounOrdinaryCasePlural, entityNounSentenceCaseSingular, } from '../entitiesForVulnerabilityManagement'; -import useFeatureFlags from 'hooks/useFeatureFlags'; import NumberedList from './NumberedList'; import ViewAllButton from './ViewAllButton'; @@ -325,8 +324,7 @@ const processData = (data, entityType, workflowState) => { }; const TopRiskiestEntities = ({ entityContext, search, limit }) => { - const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); + const isNewImageDataModelEnabled = true; const entities = getEntitiesByContext(entityContext); const [selectedEntity, setSelectedEntity] = useState(entities[0].value); diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/DeploymentResourceTable.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/DeploymentResourceTable.tsx index 1be1393ee613c..ae50ae8db38e4 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/DeploymentResourceTable.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/DeploymentResourceTable.tsx @@ -44,24 +44,6 @@ export type DeploymentResources = { }[]; }; -export const deploymentResourcesFragment = gql` - fragment DeploymentResources on Image { - deploymentCount(query: $query) - deployments(query: $query, pagination: $pagination) { - id - name - type - clusterName - namespace - created - } - } -`; - -/** - * Same fields as DeploymentResources but on ImageV2; when ROX_FLATTEN_IMAGE_DATA is enabled, - * we call ImageV2 resolver which returns ImageV2 type. - */ export const deploymentResourcesV2Fragment = gql` fragment DeploymentResourcesV2 on ImageV2 { deploymentCount(query: $query) diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx index 82662b930a8f2..738d703b69800 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePage.tsx @@ -27,7 +27,6 @@ import PageTitle from 'Components/PageTitle'; import useURLStringUnion from 'hooks/useURLStringUnion'; import EmptyStateTemplate from 'Components/EmptyStateTemplate'; import { getAxiosErrorMessage } from 'utils/responseErrorUtils'; -import useFeatureFlags from 'hooks/useFeatureFlags'; import useIsScannerV4Enabled from 'hooks/useIsScannerV4Enabled'; import usePermissions from 'hooks/usePermissions'; import useURLPagination from 'hooks/useURLPagination'; @@ -46,10 +45,7 @@ import ImagePageVulnerabilities from './ImagePageVulnerabilities'; import ImagePageResources from './ImagePageResources'; import ImagePageSignatureVerification from './ImagePageSignatureVerification'; import { detailsTabValues } from '../../types'; -import ImageDetailBadges, { - imageDetailsFragment, - imageV2DetailsFragment, -} from '../components/ImageDetailBadges'; +import ImageDetailBadges, { imageV2DetailsFragment } from '../components/ImageDetailBadges'; import type { ImageDetails } from '../components/ImageDetailBadges'; import getImageScanMessage from '../utils/getImageScanMessage'; import { DEFAULT_VM_PAGE_SIZE } from '../../constants'; @@ -61,22 +57,6 @@ import { createScheduledReportForImageVulnerabilitiesURL } from '../../Reports/I import CreateReportDropdown from '../components/CreateReportDropdown'; import CreateViewBasedReportModal from '../../components/CreateViewBasedReportModal'; -const imageDetailsQuery = gql` - ${imageDetailsFragment} - query getImageDetails($id: ID!) { - image(id: $id) { - id - name { - registry - remote - tag - fullName - } - ...ImageDetails - } - } -`; - const imageV2DetailsQuery = gql` ${imageV2DetailsFragment} query getImageDetails($id: ID!) { @@ -130,23 +110,13 @@ function ImagePage({ deploymentResourceColumnOverrides, }: ImagePageProps) { const navigate = useNavigate(); - const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); const { urlBuilder, pageTitle, baseSearchFilter, viewContext } = useWorkloadCveViewContext(); const { imageId } = useParams() as { imageId: string }; - const v1Query = useQuery<{ image: ImageData }, { id: string }>(imageDetailsQuery, { - variables: { id: imageId }, - skip: isNewImageDataModelEnabled, - }); - - const v2Query = useQuery<{ image: ImageData }, { id: string }>(imageV2DetailsQuery, { + const { data, error } = useQuery<{ image: ImageData }, { id: string }>(imageV2DetailsQuery, { variables: { id: imageId }, - skip: !isNewImageDataModelEnabled, }); - const data = isNewImageDataModelEnabled ? v2Query.data : v1Query.data; - const error = isNewImageDataModelEnabled ? v2Query.error : v1Query.error; const [activeTabKey, setActiveTabKey] = useURLStringUnion('detailsTab', detailsTabValues); const { invalidateAll: refetchAll } = useInvalidateVulnerabilityQueries(); @@ -172,7 +142,7 @@ function ImagePage({ // Create a scoped search filter that includes the image SHA filter plus any applied search filters. const imageScopedSearchFilterForReport = { ...baseSearchFilter, - ...(isNewImageDataModelEnabled ? { 'Image ID': [imageId] } : { 'Image SHA': [imageId] }), + 'Image ID': [imageId], ...querySearchFilter, 'Vulnerability State': [vulnerabilityState], }; diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageResources.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageResources.tsx index 2c095f2d98ab8..ae358efb31c63 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageResources.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageResources.tsx @@ -8,7 +8,6 @@ import { Spinner, } from '@patternfly/react-core'; import { gql, useQuery } from '@apollo/client'; -import type { DocumentNode } from '@apollo/client'; import type { Pagination as PaginationParam } from 'services/types'; import TableErrorComponent from 'Components/PatternFly/TableErrorComponent'; @@ -17,11 +16,9 @@ import type { ColumnConfigOverrides } from 'hooks/useManagedColumns'; import type { UseURLPaginationResult } from 'hooks/useURLPagination'; import useURLSort from 'hooks/useURLSort'; import useSelectToggle from 'hooks/patternfly/useSelectToggle'; -import useFeatureFlags from 'hooks/useFeatureFlags'; import { getPaginationParams, getRequestQueryStringForSearchFilter } from 'utils/searchUtils'; import DeploymentResourceTable, { - deploymentResourcesFragment, deploymentResourcesV2Fragment, deploymentResourcesTableId, defaultColumns as deploymentResourcesDefaultColumns, @@ -37,16 +34,6 @@ export type ImagePageResourcesProps = { >; }; -const imageResourcesQuery = gql` - ${deploymentResourcesFragment} - query getImageResources($id: ID!, $query: String, $pagination: Pagination) { - image(id: $id) { - id - ...DeploymentResources - } - } -`; - const imageV2ResourcesQuery = gql` ${deploymentResourcesV2Fragment} query getImageResources($id: ID!, $query: String, $pagination: Pagination) { @@ -58,16 +45,11 @@ const imageV2ResourcesQuery = gql` } `; -export const getImageResourcesQuery = (isNewImageDataModelEnabled: boolean): DocumentNode => - isNewImageDataModelEnabled ? imageV2ResourcesQuery : imageResourcesQuery; - function ImagePageResources({ imageId, pagination, deploymentResourceColumnOverrides, }: ImagePageResourcesProps) { - const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); const { baseSearchFilter } = useWorkloadCveViewContext(); const { page, perPage, setPage, setPerPage } = pagination; const { sortOption, getSortParams } = useURLSort({ @@ -80,11 +62,10 @@ function ImagePageResources({ const { data, previousData, loading, error } = useQuery< { - image: DeploymentResources | null; // Legacy image data model, will be null when ROX_FLATTEN_IMAGE_DATA is enabled - imageV2: DeploymentResources | null; // New image data model, will be null when ROX_FLATTEN_IMAGE_DATA is disabled + imageV2: DeploymentResources | null; }, { id: string; query: string; pagination: PaginationParam } - >(getImageResourcesQuery(isNewImageDataModelEnabled), { + >(imageV2ResourcesQuery, { variables: { id: imageId, query: getRequestQueryStringForSearchFilter(baseSearchFilter), @@ -92,9 +73,7 @@ function ImagePageResources({ }, }); - const imageResourcesData = - (data && (isNewImageDataModelEnabled ? data.imageV2 : data.image)) ?? - (previousData && (isNewImageDataModelEnabled ? previousData.imageV2 : previousData.image)); + const imageResourcesData = data?.imageV2 ?? previousData?.imageV2; const deploymentCount = imageResourcesData?.deploymentCount ?? 0; const deploymentResourceColumnState = useManagedColumns( diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx index 5c797f0017163..6fbed26d3c086 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/Image/ImagePageVulnerabilities.tsx @@ -12,7 +12,6 @@ import { pluralize, } from '@patternfly/react-core'; import { gql, useQuery } from '@apollo/client'; -import type { DocumentNode } from '@apollo/client'; import type { SearchFilter } from 'types/search'; import type { UseURLPaginationResult } from 'hooks/useURLPagination'; import useURLSort from 'hooks/useURLSort'; @@ -51,10 +50,7 @@ import { parseQuerySearchFilter, } from '../../utils/searchUtils'; import BySeveritySummaryCard from '../../components/BySeveritySummaryCard'; -import { - imageMetadataContextFragment, - imageV2MetadataContextFragment, -} from '../Tables/table.utils'; +import { imageV2MetadataContextFragment } from '../Tables/table.utils'; import type { ImageMetadataContext } from '../Tables/table.utils'; import VulnerabilityStateTabs, { vulnStateTabContentId, @@ -72,29 +68,6 @@ import { import BaseImageAssessmentCard from '../components/BaseImageAssessmentCard'; import type { BaseImage } from '../components/ImageDetailBadges'; -export const imageVulnerabilitiesQuery = gql` - ${imageMetadataContextFragment} - ${resourceCountByCveSeverityAndStatusFragment} - ${imageVulnerabilitiesFragment} - query getCVEsForImage( - $id: ID! - $query: String! - $pagination: Pagination! - $statusesForExceptionCount: [String!] - ) { - image(id: $id) { - ...ImageMetadataContext - imageVulnerabilityCount(query: $query) - imageCVECountBySeverity(query: $query) { - ...ResourceCountsByCVESeverityAndStatus - } - imageVulnerabilities(query: $query, pagination: $pagination) { - ...ImageVulnerabilityFields - } - } - } -`; - export const imageV2VulnerabilitiesQuery = gql` ${imageV2MetadataContextFragment} ${resourceCountByCveSeverityAndStatusFragment} @@ -118,9 +91,6 @@ export const imageV2VulnerabilitiesQuery = gql` } `; -export const getImageVulnerabilitiesQuery = (isNewImageDataModelEnabled: boolean): DocumentNode => - isNewImageDataModelEnabled ? imageV2VulnerabilitiesQuery : imageVulnerabilitiesQuery; - const defaultSortFields = ['CVE', 'CVSS', 'Severity']; export type ImagePageVulnerabilitiesProps = { @@ -153,7 +123,6 @@ function ImagePageVulnerabilities({ setSearchFilter, }: ImagePageVulnerabilitiesProps) { const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); const { analyticsTrack } = useAnalytics(); const trackAppliedFilter = createFilterTracker(analyticsTrack); @@ -176,20 +145,11 @@ function ImagePageVulnerabilities({ // TODO Split metadata, counts, and vulnerabilities into separate queries const { data, loading, error } = useQuery< { - image: - | (ImageMetadataContext & { - imageCVECountBySeverity: ResourceCountByCveSeverityAndStatus; - imageVulnerabilityCount: number; - imageVulnerabilities: ImageVulnerability[]; - }) - | null; // Legacy image data model, will be null when ROX_FLATTEN_IMAGE_DATA is enabled - imageV2: - | (ImageMetadataContext & { - imageCVECountBySeverity: ResourceCountByCveSeverityAndStatus; - imageVulnerabilityCount: number; - imageVulnerabilities: ImageVulnerability[]; - }) - | null; // New image data model, will be null when ROX_FLATTEN_IMAGE_DATA is disabled + imageV2: ImageMetadataContext & { + imageCVECountBySeverity: ResourceCountByCveSeverityAndStatus; + imageVulnerabilityCount: number; + imageVulnerabilities: ImageVulnerability[]; + }; }, { id: string; @@ -197,7 +157,7 @@ function ImagePageVulnerabilities({ pagination: PaginationParam; statusesForExceptionCount: string[]; } - >(getImageVulnerabilitiesQuery(isNewImageDataModelEnabled), { + >(imageV2VulnerabilitiesQuery, { variables: { id: imageId, query: getVulnStateScopedQueryString( @@ -209,9 +169,6 @@ function ImagePageVulnerabilities({ }, }); - const imageData = - (data && (isNewImageDataModelEnabled ? data.imageV2 : data.image)) || undefined; - const isFiltered = getHasSearchApplied(querySearchFilter); const selectedCves = useMap(); @@ -230,7 +187,7 @@ function ImagePageVulnerabilities({ const tableState = getTableUIState({ isLoading: loading, - data: imageData?.imageVulnerabilities, + data: data?.imageV2.imageVulnerabilities, error, searchFilter, }); @@ -274,7 +231,7 @@ function ImagePageVulnerabilities({ const hiddenSeverities = getHiddenSeverities(querySearchFilter); const hiddenStatuses = getHiddenStatuses(querySearchFilter); - const totalVulnerabilityCount = imageData?.imageVulnerabilityCount ?? 0; + const totalVulnerabilityCount = data?.imageV2?.imageVulnerabilityCount ?? 0; return ( <> @@ -330,9 +287,7 @@ function ImagePageVulnerabilities({ trackAppliedFilter(WORKLOAD_CVE_FILTER_APPLIED, searchPayload); }} additionalContextFilter={{ - ...(isNewImageDataModelEnabled - ? { 'Image ID': imageId } - : { 'Image SHA': imageId }), + 'Image ID': imageId, ...baseSearchFilter, }} > @@ -340,7 +295,7 @@ function ImagePageVulnerabilities({ ( ( , 'variables'>; }) { - const { isFeatureFlagEnabled } = useFeatureFlags(); - const isNewImageDataModelEnabled = isFeatureFlagEnabled('ROX_FLATTEN_IMAGE_DATA'); const { page, perPage } = pagination; return useQuery<{ images: Image[]; - }>(isNewImageDataModelEnabled ? imageV2ListQuery : imageListQuery, { + }>(imageV2ListQuery, { variables: { query, pagination: getPaginationParams({ page, perPage, sortOption }), diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/components/ImageDetailBadges.tsx b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/components/ImageDetailBadges.tsx index 3db64197881fa..70314f9d39851 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/components/ImageDetailBadges.tsx +++ b/ui/apps/platform/src/Containers/Vulnerabilities/WorkloadCves/components/ImageDetailBadges.tsx @@ -31,40 +31,6 @@ export type ImageDetails = { baseImage: BaseImage | null; }; -export const imageDetailsFragment = gql` - fragment ImageDetails on Image { - deploymentCount - operatingSystem - metadata { - v1 { - created - } - } - dataSource { - name - } - scanTime - scanNotes - notes - signatureCount - signatureVerificationData { - results { - description - status - verificationTime - verifiedImageReferences - verifierId - verifierName - } - } - baseImage { - imageSha - names - created - } - } -`; - export const imageV2DetailsFragment = gql` fragment ImageV2Details on ImageV2 { deploymentCount diff --git a/ui/apps/platform/src/Containers/Vulnerabilities/hooks/useInvalidateVulnerabilityQueries.ts b/ui/apps/platform/src/Containers/Vulnerabilities/hooks/useInvalidateVulnerabilityQueries.ts index c36336fc21d36..42685413a3a1c 100644 --- a/ui/apps/platform/src/Containers/Vulnerabilities/hooks/useInvalidateVulnerabilityQueries.ts +++ b/ui/apps/platform/src/Containers/Vulnerabilities/hooks/useInvalidateVulnerabilityQueries.ts @@ -7,7 +7,7 @@ import { imageListQuery } from '../WorkloadCves/Tables/ImageOverviewTable'; import { cveListQuery } from '../WorkloadCves/Tables/WorkloadCVEOverviewTable'; import { deploymentListQuery } from '../WorkloadCves/Tables/DeploymentOverviewTable'; import { deploymentVulnerabilitiesQuery } from '../WorkloadCves/Deployment/DeploymentPageVulnerabilities'; -import { imageVulnerabilitiesQuery } from '../WorkloadCves/Image/ImagePageVulnerabilities'; +import { imageV2VulnerabilitiesQuery } from '../WorkloadCves/Image/ImagePageVulnerabilities'; import { imageCveAffectedDeploymentsQuery, imageCveAffectedImagesQuery, @@ -41,7 +41,7 @@ const queryFieldNames = uniq( imageCveAffectedDeploymentsQuery, imageCveAffectedImagesQuery, // Query for the Workload CVE image detail page - imageVulnerabilitiesQuery, + imageV2VulnerabilitiesQuery, // Query for the Workload CVE deployment detail page deploymentVulnerabilitiesQuery, ].flatMap(extractTopLevelFieldNames) diff --git a/ui/apps/platform/src/types/featureFlag.ts b/ui/apps/platform/src/types/featureFlag.ts index ed63d06aee6b8..127a7bfe3c20a 100644 --- a/ui/apps/platform/src/types/featureFlag.ts +++ b/ui/apps/platform/src/types/featureFlag.ts @@ -5,7 +5,6 @@ export type FeatureFlagEnvVar = | 'ROX_CVE_FIX_TIMESTAMP' | 'ROX_DEPRECATED_COMPLIANCE_DASHBOARD' | 'ROX_EVALUATION_FILTER' - | 'ROX_FLATTEN_IMAGE_DATA' | 'ROX_INIT_CONTAINER_SUPPORT' | 'ROX_LABEL_BASED_POLICY_SCOPING' | 'ROX_LEGACY_SCANNER' From 0a18862cb4ed2614a24ffd8b6791b1226b63c9da Mon Sep 17 00:00:00 2001 From: David Caravello <119438707+dcaravel@users.noreply.github.com> Date: Mon, 28 Sep 2026 18:18:43 -0500 Subject: [PATCH 121/327] ROX-28254: always forward alert-removal notifications (#22948) --- .../alertmanager/alert_manager_impl_test.go | 41 ++++++ sensor/common/deduper/deduper.go | 9 +- sensor/common/deduper/runtime_removal_test.go | 117 ++++++++++++++++++ 3 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 sensor/common/deduper/runtime_removal_test.go diff --git a/central/detection/alertmanager/alert_manager_impl_test.go b/central/detection/alertmanager/alert_manager_impl_test.go index d5aadcd1eb135..d31dc247d79f5 100644 --- a/central/detection/alertmanager/alert_manager_impl_test.go +++ b/central/detection/alertmanager/alert_manager_impl_test.go @@ -730,6 +730,47 @@ func (suite *AlertManagerTestSuite) TestDeploymentMarkedInactiveOnRemoval() { suite.True(modified.Contains("dep-to-remove"), "removed deployment should appear in modified set") } +func (suite *AlertManagerTestSuite) TestRepeatedDeploymentRemovalPreservesRuntimeAlert() { + stored := &storage.Alert{ + Id: "runtime-alert-1", + Policy: fixtures.GetNetworkFlowPolicy(), + Entity: &storage.Alert_Deployment_{Deployment: &storage.Alert_Deployment{Id: "dep-to-remove"}}, + LifecycleStage: storage.LifecycleStage_RUNTIME, + State: storage.ViolationState_ACTIVE, + Time: protocompat.GetProtoTimestampFromSeconds(100), + } + suite.Require().NoError(suite.policySet.UpsertPolicy(stored.GetPolicy())) + suite.runtimeDetectorMock.EXPECT().PolicySet().Return(suite.policySet).AnyTimes() + + // Each removal reads the current persisted state. Only the first should write. + suite.alertsMock.EXPECT().SearchAlertMatchKeys(suite.ctx, gomock.Any(), true). + DoAndReturn(func(context.Context, *v1.Query, bool) ([]*alertviews.AlertMatchKey, error) { + return alertsToMatchKeys([]*storage.Alert{stored}), nil + }).Times(2) + suite.alertsMock.EXPECT().SearchRawAlerts(suite.ctx, gomock.Any(), false). + Return([]*storage.Alert{stored.CloneVT()}, nil) + suite.alertsMock.EXPECT().UpsertAlert(suite.ctx, gomock.Any()). + DoAndReturn(func(_ context.Context, a *storage.Alert) error { + suite.True(a.GetDeployment().GetInactive()) + suite.Equal(storage.ViolationState_ACTIVE, a.GetState()) + stored = a.CloneVT() + return nil + }) + suite.notifierMock.EXPECT().ProcessAlert(gomock.Any(), gomock.Any()).Return() + + modified, err := suite.alertManager.AlertAndNotify(suite.ctx, nil, + WithDeploymentID("dep-to-remove", true)) + suite.Require().NoError(err) + suite.True(modified.Contains("dep-to-remove")) + + modified, err = suite.alertManager.AlertAndNotify(suite.ctx, nil, + WithDeploymentID("dep-to-remove", true)) + suite.Require().NoError(err) + suite.Empty(modified.AsSlice()) + suite.True(stored.GetDeployment().GetInactive()) + suite.Equal(storage.ViolationState_ACTIVE, stored.GetState()) +} + // TestNewRuntimeAlertMarkedInactiveWhenDeploymentGone covers a first runtime // alert arriving after the deployment is already gone. func (suite *AlertManagerTestSuite) TestNewRuntimeAlertMarkedInactiveWhenDeploymentGone() { diff --git a/sensor/common/deduper/deduper.go b/sensor/common/deduper/deduper.go index 3e8734f205ef6..d33c8379be41c 100644 --- a/sensor/common/deduper/deduper.go +++ b/sensor/common/deduper/deduper.go @@ -80,11 +80,12 @@ func (d *deduper) Send(msg *central.MsgFromSensor) error { ResourceType: reflect.TypeOf(event.GetResource()), } if event.GetAction() == central.ResourceAction_REMOVE_RESOURCE { - priorLen := len(d.lastSent) + _, previouslySent := d.lastSent[key] delete(d.lastSent, key) - // Do not send a remove message for something that has not been seen before - // This also effectively dedupes REMOVE actions - if priorLen == len(d.lastSent) { + // Runtime alerts bypass lastSent, so alert removals must reach Central + // even if no deploy-time result has been sent yet. Other resource + // removals can be dropped if the resource was never sent or already removed. + if !previouslySent && event.GetAlertResults() == nil { return nil } if err := d.stream.Send(msg); err != nil { diff --git a/sensor/common/deduper/runtime_removal_test.go b/sensor/common/deduper/runtime_removal_test.go new file mode 100644 index 0000000000000..3525142767491 --- /dev/null +++ b/sensor/common/deduper/runtime_removal_test.go @@ -0,0 +1,117 @@ +package deduper + +import ( + "testing" + + "github.com/stackrox/rox/generated/internalapi/central" + "github.com/stackrox/rox/generated/storage" + "github.com/stretchr/testify/require" +) + +func TestRuntimeAlertRemovalIsForwarded(t *testing.T) { + cases := map[string]bool{ + "runtime alert only": false, + "deploy result before runtime alert": true, + } + + for name, sendDeployResult := range cases { + t.Run(name, func(t *testing.T) { + downstream := new(fakeStream) + stream := NewDedupingMessageStream(downstream, nil, false) + + makeMessage := func(action central.ResourceAction, stage storage.LifecycleStage) *central.MsgFromSensor { + return ¢ral.MsgFromSensor{ + Msg: ¢ral.MsgFromSensor_Event{ + Event: ¢ral.SensorEvent{ + Id: "deployment-1", + Action: action, + Resource: ¢ral.SensorEvent_AlertResults{ + AlertResults: ¢ral.AlertResults{ + DeploymentId: "deployment-1", + Stage: stage, + }, + }, + }, + }, + } + } + + if sendDeployResult { + msg := makeMessage(central.ResourceAction_CREATE_RESOURCE, storage.LifecycleStage_DEPLOY) + require.NoError(t, stream.Send(msg)) + require.Len(t, downstream.orderedMessages, 1) + } + + runtime := makeMessage(central.ResourceAction_CREATE_RESOURCE, storage.LifecycleStage_RUNTIME) + runtime.GetEvent().GetAlertResults().Alerts = []*storage.Alert{ + { + Id: "runtime-alert-1", + LifecycleStage: storage.LifecycleStage_RUNTIME, + State: storage.ViolationState_ACTIVE, + }, + } + beforeRuntime := len(downstream.orderedMessages) + require.NoError(t, stream.Send(runtime)) + require.Len(t, downstream.orderedMessages, beforeRuntime+1) + + // Sensor's removal message is empty and has the default lifecycle + // stage, DEPLOY, even when the deployment has runtime alerts. + removal := makeMessage(central.ResourceAction_REMOVE_RESOURCE, storage.LifecycleStage_DEPLOY) + beforeRemoval := len(downstream.orderedMessages) + require.NoError(t, stream.Send(removal)) + require.Len(t, downstream.orderedMessages, beforeRemoval+1, + "alert removal must reach Central even without a prior deploy-time result") + require.Same(t, removal, downstream.orderedMessages[len(downstream.orderedMessages)-1]) + + // Repeated alert removals must also reach Central. + require.NoError(t, stream.Send(removal)) + require.Len(t, downstream.orderedMessages, beforeRemoval+2) + require.Same(t, removal, downstream.orderedMessages[len(downstream.orderedMessages)-1]) + + // Removal must clear any cached deploy-time result. + if sendDeployResult { + msg := makeMessage(central.ResourceAction_CREATE_RESOURCE, storage.LifecycleStage_DEPLOY) + require.NoError(t, stream.Send(msg)) + require.Len(t, downstream.orderedMessages, beforeRemoval+3) + } + }) + } +} + +func TestDeploymentRemovalDeduplication(t *testing.T) { + cases := map[string]bool{ + "previously sent": true, + "never sent": false, + } + for name, previouslySent := range cases { + t.Run(name, func(t *testing.T) { + downstream := new(fakeStream) + stream := NewDedupingMessageStream(downstream, nil, false) + msg := ¢ral.MsgFromSensor{ + Msg: ¢ral.MsgFromSensor_Event{ + Event: ¢ral.SensorEvent{ + Id: "deployment-1", + Action: central.ResourceAction_CREATE_RESOURCE, + Resource: ¢ral.SensorEvent_Deployment{ + Deployment: &storage.Deployment{Id: "deployment-1"}, + }, + }, + }, + } + if previouslySent { + require.NoError(t, stream.Send(msg)) + require.Len(t, downstream.orderedMessages, 1) + } + removal := msg.CloneVT() + removal.GetEvent().Action = central.ResourceAction_REMOVE_RESOURCE + require.NoError(t, stream.Send(removal)) + require.NoError(t, stream.Send(removal)) + if previouslySent { + require.Len(t, downstream.orderedMessages, 2) + require.Same(t, removal, downstream.orderedMessages[1]) + } else { + require.Empty(t, downstream.orderedMessages) + } + }) + } +} From c66b68a6d66bb0db967d1cfa205bdd69e3e13d6e Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 02:49:33 +0000 Subject: [PATCH 122/327] chore(deps): update all dependencies (#23017) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/create-custom-snapshot.yaml | 2 +- .tekton/operator-index-build.yaml | 4 ++-- image/postgres/konflux.Dockerfile | 2 +- image/rhel/konflux.Dockerfile | 4 ++-- image/roxctl/konflux.Dockerfile | 2 +- operator/konflux.Dockerfile | 2 +- scanner/image/db/konflux.Dockerfile | 2 +- scanner/image/scanner/konflux.Dockerfile | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index 572e070cb4e13..d92e856bd45cc 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -132,7 +132,7 @@ spec: - name: SHOULD_REALLY_WORK steps: - name: determine - image: registry.redhat.io/ubi9-minimal:latest@sha256:8ebe2ad8fdf3cab3e5a53c1edc69194c98209cfadab24b884f4ad9ebcf7bbbfc + image: registry.redhat.io/ubi9-minimal:latest@sha256:beeada7dd17903dfb69fd5f6916c054720bf28a52daaa2f7a1910a1394244bd2 imagePullPolicy: IfNotPresent # The script expresses the same condition as pipelinesascode.tekton.dev/on-cel-expression in other pipelines # but in a more verbose way because, as it turns out, both syntax and fields of CEL expressions are slightly diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 7bed9f7f584a3..18e34cc099091 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -249,7 +249,7 @@ spec: description: Full operator-index image tag with v prefix and -fast suffix to avoid collision with GHA builds steps: - name: compute-index-tag - image: registry.access.redhat.com/ubi9-minimal:latest@sha256:8ebe2ad8fdf3cab3e5a53c1edc69194c98209cfadab24b884f4ad9ebcf7bbbfc + image: registry.access.redhat.com/ubi9-minimal:latest@sha256:beeada7dd17903dfb69fd5f6916c054720bf28a52daaa2f7a1910a1394244bd2 imagePullPolicy: IfNotPresent script: | #!/bin/bash @@ -334,7 +334,7 @@ spec: - use - $(params.SOURCE_ARTIFACT)=/var/workdir/source - name: build-index-content - image: registry.access.redhat.com/ubi9/go-toolset:9.8-1789950433@sha256:15c3098dc4639e8a0e6a1bc77b50964513a1d76dccae4b07b9808101c5addd04 + image: registry.access.redhat.com/ubi9/go-toolset:9.8-1790174511@sha256:0a4666f7a4eb0644c97a73cba198eb268691b270d97831822689e7a2088f87be imagePullPolicy: IfNotPresent workingDir: /var/workdir/source/operator securityContext: diff --git a/image/postgres/konflux.Dockerfile b/image/postgres/konflux.Dockerfile index 1e410bbabf9ed..8b0d612e9bb2b 100644 --- a/image/postgres/konflux.Dockerfile +++ b/image/postgres/konflux.Dockerfile @@ -1,5 +1,5 @@ ARG PG_VERSION=15 -FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:905a50c33fb9d80b940727c88bab09b9d1a15f3b1c9bc2411b7aea6142f92922 AS final +FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:962fd39f9c86327d685372216b5a055c8f1748abc5c1e7a5103f8cbf8df3a01a AS final USER root diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index e441fdf710356..1c1e55031b641 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -49,7 +49,7 @@ RUN arch=$(uname -m) ; \ /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl -FROM registry.access.redhat.com/ubi9/nodejs-22@sha256:bb046ef111dd20f890fe9879a37df8e829ed661177fae2339ba7eeb495f46c60 as ui-builder +FROM registry.access.redhat.com/ubi9/nodejs-22@sha256:ef4f18a7e736696b1314bdc21bcf57bfd50ba3ea4f80c13833f777316b25c035 as ui-builder WORKDIR /go/src/github.com/stackrox/rox/app @@ -73,7 +73,7 @@ RUN make -C ui build FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer ARG PG_VERSION diff --git a/image/roxctl/konflux.Dockerfile b/image/roxctl/konflux.Dockerfile index 38f16e0d511cc..29f7530c67be3 100644 --- a/image/roxctl/konflux.Dockerfile +++ b/image/roxctl/konflux.Dockerfile @@ -27,7 +27,7 @@ RUN RACE=0 CGO_ENABLED=1 GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build.sh FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/operator/konflux.Dockerfile b/operator/konflux.Dockerfile index 205f6b635414e..c6eb62708c6a2 100644 --- a/operator/konflux.Dockerfile +++ b/operator/konflux.Dockerfile @@ -20,7 +20,7 @@ RUN GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build-file.sh operator/cmd/mai FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/scanner/image/db/konflux.Dockerfile b/scanner/image/db/konflux.Dockerfile index 4295dae3b50f3..af8d11f490e67 100644 --- a/scanner/image/db/konflux.Dockerfile +++ b/scanner/image/db/konflux.Dockerfile @@ -1,4 +1,4 @@ -FROM registry.redhat.io/rhel9/postgresql-15:latest@sha256:905a50c33fb9d80b940727c88bab09b9d1a15f3b1c9bc2411b7aea6142f92922 +FROM registry.redhat.io/rhel9/postgresql-15:latest@sha256:962fd39f9c86327d685372216b5a055c8f1748abc5c1e7a5103f8cbf8df3a01a ARG BUILD_TAG RUN if [[ "$BUILD_TAG" == "" ]]; then >&2 echo "error: required BUILD_TAG arg is unset"; exit 6; fi diff --git a/scanner/image/scanner/konflux.Dockerfile b/scanner/image/scanner/konflux.Dockerfile index d09e61ea83aa6..3dbf15bb4879f 100644 --- a/scanner/image/scanner/konflux.Dockerfile +++ b/scanner/image/scanner/konflux.Dockerfile @@ -18,7 +18,7 @@ RUN make -C scanner NODEPS=1 CGO_ENABLED=1 image/scanner/bin/scanner copy-script FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:a4b9ec09b1e790a53ef25b7777c539976abe519248264298e5194dcbceac8c31 AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer COPY --from=ubi-micro-base / /out/ From de27b66840c839b94a77e01f131aabaf768a2541 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 03:01:37 +0000 Subject: [PATCH 123/327] chore(deps): refresh rpm lockfiles (#23112) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- rpms.lock.yaml | 168 ++++++++++++++++++++++++------------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/rpms.lock.yaml b/rpms.lock.yaml index e8926144697aa..eaaf8f5d53047 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -74,13 +74,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 2916797 - checksum: sha256:2b5063d95b2c1611a168cdf1dae583a082940b9074c14e85bad921ee132b46fb + size: 2925601 + checksum: sha256:7e82c856a00206976aede9e7b3865d0a2363b1262c0f9e1949ba29c7b9c47281 name: kernel-headers - evr: 5.14.0-687.52.1.el9_8 - sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm + evr: 5.14.0-687.53.1.el9_8 + sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/l/libasan-11.5.0-14.el9.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 409047 @@ -340,13 +340,13 @@ arches: name: elfutils-libs evr: 0.194-1.el9 sourcerpm: elfutils-0.194-1.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.5.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms - size: 122400 - checksum: sha256:df004398da989f75bae9267cfb0ad402ada6e6db46ebef0932c869894c013c08 + size: 122957 + checksum: sha256:d13bd77f429835b303d388e24811fb935060be4788c8fe4cf87703640f2337e0 name: expat - evr: 2.5.0-6.el9_8.3 - sourcerpm: expat-2.5.0-6.el9_8.3.src.rpm + evr: 2.5.0-6.el9_8.5 + sourcerpm: expat-2.5.0-6.el9_8.5.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/f/filesystem-3.16-5.el9.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms size: 5003914 @@ -1214,12 +1214,12 @@ arches: checksum: sha256:643279e796ded16c5be5cdc2a91839c787e62e59757008675eb0580a4a42af21 name: elfutils evr: 0.194-1.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.5.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 8403095 - checksum: sha256:0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392 + size: 8411609 + checksum: sha256:38d7acfd1130c02c6a00010159a1350ca0f56cd7ed64f3d8394aa5b3d6512ddd name: expat - evr: 2.5.0-6.el9_8.3 + evr: 2.5.0-6.el9_8.5 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 20486 @@ -1286,12 +1286,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 152521141 - checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 + size: 152530420 + checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a name: kernel - evr: 5.14.0-687.52.1.el9_8 + evr: 5.14.0-687.53.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 150790 @@ -1635,10 +1635,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/52e584b12993891100ca340d6e265dc5402bb7ebdf9454c499a2d73f26886080-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/80a77d18ba9e517b5d62a2859474edc8ab833383bc13d0fdbf1027a05f45a1bc-modules.yaml.gz repoid: rhel-9-for-aarch64-appstream-rpms - size: 67183 - checksum: sha256:52e584b12993891100ca340d6e265dc5402bb7ebdf9454c499a2d73f26886080 + size: 68829 + checksum: sha256:80a77d18ba9e517b5d62a2859474edc8ab833383bc13d0fdbf1027a05f45a1bc - arch: ppc64le packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/c/cpp-11.5.0-14.el9.ppc64le.rpm @@ -1711,13 +1711,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 2940597 - checksum: sha256:8dff161bb85c25e90d5540b565952a0abedb0cab3b926da46e3ba15806677490 + size: 2949645 + checksum: sha256:7318493a0814cea968050892155214dc61c91549fbea2f66aa4008be389ace7c name: kernel-headers - evr: 5.14.0-687.52.1.el9_8 - sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm + evr: 5.14.0-687.53.1.el9_8 + sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/l/libasan-11.5.0-14.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 440756 @@ -1977,13 +1977,13 @@ arches: name: elfutils-libs evr: 0.194-1.el9 sourcerpm: elfutils-0.194-1.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/e/expat-2.5.0-6.el9_8.5.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms - size: 133470 - checksum: sha256:731fb187d6550a4a5fc6227d43370464d67a68e9fb41481c2e86b95e4560345b + size: 133703 + checksum: sha256:f379b66b57d67569fabaa4cecc75d7ed26b1c46733b626f3550fc31e740761af name: expat - evr: 2.5.0-6.el9_8.3 - sourcerpm: expat-2.5.0-6.el9_8.3.src.rpm + evr: 2.5.0-6.el9_8.5 + sourcerpm: expat-2.5.0-6.el9_8.5.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/f/filesystem-3.16-5.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms size: 5003944 @@ -2858,12 +2858,12 @@ arches: checksum: sha256:643279e796ded16c5be5cdc2a91839c787e62e59757008675eb0580a4a42af21 name: elfutils evr: 0.194-1.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.5.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 8403095 - checksum: sha256:0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392 + size: 8411609 + checksum: sha256:38d7acfd1130c02c6a00010159a1350ca0f56cd7ed64f3d8394aa5b3d6512ddd name: expat - evr: 2.5.0-6.el9_8.3 + evr: 2.5.0-6.el9_8.5 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 20486 @@ -2930,12 +2930,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 152521141 - checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 + size: 152530420 + checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a name: kernel - evr: 5.14.0-687.52.1.el9_8 + evr: 5.14.0-687.53.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 150790 @@ -3285,10 +3285,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/b6665d455966c348ea2e41ba6e1a1b9c9a87cf956694754d7198540e5be3d4a1-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/008320dd4d21a6fa411c839dcc3c6d1a773b019ad9bddbac6ddb3c3718c5d4a7-modules.yaml.gz repoid: rhel-9-for-ppc64le-appstream-rpms - size: 68368 - checksum: sha256:b6665d455966c348ea2e41ba6e1a1b9c9a87cf956694754d7198540e5be3d4a1 + size: 70701 + checksum: sha256:008320dd4d21a6fa411c839dcc3c6d1a773b019ad9bddbac6ddb3c3718c5d4a7 - arch: s390x packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/c/cpp-11.5.0-14.el9.s390x.rpm @@ -3361,13 +3361,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 2946745 - checksum: sha256:df7aa11358870f2b9e0e27bd07827ba0cdc54c93128adb11898636a31861da94 + size: 2955557 + checksum: sha256:9b1a97d19e52dfb5387cae5fd1a7888ce3e1f794b17117ef4cc1eeb1daca8aeb name: kernel-headers - evr: 5.14.0-687.52.1.el9_8 - sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm + evr: 5.14.0-687.53.1.el9_8 + sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/l/libasan-11.5.0-14.el9.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 412888 @@ -3627,13 +3627,13 @@ arches: name: elfutils-libs evr: 0.194-1.el9 sourcerpm: elfutils-0.194-1.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/e/expat-2.5.0-6.el9_8.5.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms - size: 124579 - checksum: sha256:e6bd000496dc070c1e4cfd17162d512111341820f12c10442b8752c0767c68a0 + size: 125167 + checksum: sha256:f7480b168cba79b9f30bc54faf1c43b9eab1cd3d9701c31f601b40e472659981 name: expat - evr: 2.5.0-6.el9_8.3 - sourcerpm: expat-2.5.0-6.el9_8.3.src.rpm + evr: 2.5.0-6.el9_8.5 + sourcerpm: expat-2.5.0-6.el9_8.5.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/f/filesystem-3.16-5.el9.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms size: 5003897 @@ -4495,12 +4495,12 @@ arches: checksum: sha256:643279e796ded16c5be5cdc2a91839c787e62e59757008675eb0580a4a42af21 name: elfutils evr: 0.194-1.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.5.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 8403095 - checksum: sha256:0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392 + size: 8411609 + checksum: sha256:38d7acfd1130c02c6a00010159a1350ca0f56cd7ed64f3d8394aa5b3d6512ddd name: expat - evr: 2.5.0-6.el9_8.3 + evr: 2.5.0-6.el9_8.5 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 20486 @@ -4567,12 +4567,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 152521141 - checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 + size: 152530420 + checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a name: kernel - evr: 5.14.0-687.52.1.el9_8 + evr: 5.14.0-687.53.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 150790 @@ -4916,10 +4916,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/6932c6640f14bb347e360c92a27479a02b616928e7675123cc01ecb870ae20db-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/dcb8fd74f73344285f768b59afb2d490b9f2b3c9afcee99023e950a69df10ba7-modules.yaml.gz repoid: rhel-9-for-s390x-appstream-rpms - size: 64964 - checksum: sha256:6932c6640f14bb347e360c92a27479a02b616928e7675123cc01ecb870ae20db + size: 65924 + checksum: sha256:dcb8fd74f73344285f768b59afb2d490b9f2b3c9afcee99023e950a69df10ba7 - arch: x86_64 packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/c/cpp-11.5.0-14.el9.x86_64.rpm @@ -4999,13 +4999,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.52.1.el9_8.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 2956089 - checksum: sha256:97fdbd1cd14ee0a1f5818edc96e0c3e0f1ebfcaacdd7c63f33d2b791ea177f94 + size: 2965145 + checksum: sha256:2473df2cf5b65c762af7941fe87324e98dc0e8b42d1e5745051a0405e200b7f5 name: kernel-headers - evr: 5.14.0-687.52.1.el9_8 - sourcerpm: kernel-5.14.0-687.52.1.el9_8.src.rpm + evr: 5.14.0-687.53.1.el9_8 + sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/l/libmpc-1.2.1-4.el9.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 66075 @@ -5251,13 +5251,13 @@ arches: name: elfutils-libs evr: 0.194-1.el9 sourcerpm: elfutils-0.194-1.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.3.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/e/expat-2.5.0-6.el9_8.5.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms - size: 128577 - checksum: sha256:3c9c96529f94f84fc19c8039d8852269e1085d16b5af2933f44ff286dec66a35 + size: 129088 + checksum: sha256:e6e7edd632fdd1dc4ad94b19b7ab88646f3ef8c1c7956bac58985c3e7118a362 name: expat - evr: 2.5.0-6.el9_8.3 - sourcerpm: expat-2.5.0-6.el9_8.3.src.rpm + evr: 2.5.0-6.el9_8.5 + sourcerpm: expat-2.5.0-6.el9_8.5.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/f/filesystem-3.16-5.el9.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms size: 5003807 @@ -6118,12 +6118,12 @@ arches: checksum: sha256:643279e796ded16c5be5cdc2a91839c787e62e59757008675eb0580a4a42af21 name: elfutils evr: 0.194-1.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.3.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/e/expat-2.5.0-6.el9_8.5.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 8403095 - checksum: sha256:0cff2a2213384dc43eb1874bf6e77b2b8230be848f50387d8057e0e6cde3d392 + size: 8411609 + checksum: sha256:38d7acfd1130c02c6a00010159a1350ca0f56cd7ed64f3d8394aa5b3d6512ddd name: expat - evr: 2.5.0-6.el9_8.3 + evr: 2.5.0-6.el9_8.5 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/f/filesystem-3.16-5.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 20486 @@ -6190,12 +6190,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.52.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 152521141 - checksum: sha256:4b1634381a2ca00b3d30051c32db665b5b5ea9440641e06c93f855105846e306 + size: 152530420 + checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a name: kernel - evr: 5.14.0-687.52.1.el9_8 + evr: 5.14.0-687.53.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 150790 @@ -6539,7 +6539,7 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/d6a984811cecd6e42c3cfecf4be2d1281ed1bf4913f95a424b2bcec27cad24c8-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/c57f58f8a4b1141dde68ffc9572f4b61fa851fd2c6819db8bd600704f831b512-modules.yaml.gz repoid: rhel-9-for-x86_64-appstream-rpms - size: 70416 - checksum: sha256:d6a984811cecd6e42c3cfecf4be2d1281ed1bf4913f95a424b2bcec27cad24c8 + size: 72089 + checksum: sha256:c57f58f8a4b1141dde68ffc9572f4b61fa851fd2c6819db8bd600704f831b512 From 5759d42b5ad80989efdaa00aa571b219c84483dc Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Tue, 29 Sep 2026 06:38:40 +0200 Subject: [PATCH 124/327] tests(nongroovy-e2e): use roxie (#22470) Co-authored-by: Claude Opus 4.8 (1M context) --- .github/workflows/e2e-nongroovy-tests.yaml | 4 +- tests/e2e/lib-compat.sh | 44 ++++++++++++++++ tests/e2e/lib.sh | 58 +++++++++++++--------- tests/e2e/run.sh | 26 +++++++++- 4 files changed, 104 insertions(+), 28 deletions(-) diff --git a/.github/workflows/e2e-nongroovy-tests.yaml b/.github/workflows/e2e-nongroovy-tests.yaml index 5638d8ed53699..d7a1cead3ca7d 100644 --- a/.github/workflows/e2e-nongroovy-tests.yaml +++ b/.github/workflows/e2e-nongroovy-tests.yaml @@ -153,13 +153,11 @@ jobs: timeout-minutes: 245 run: tests/e2e/run.sh /tmp/e2e-test-logs - - name: Persist env vars for post-test + - name: Ensure central stability before post-test if: always() run: | source tests/e2e/lib.sh wait_for_api - echo "API_ENDPOINT=${API_ENDPOINT}" >> "$GITHUB_ENV" - echo "ROX_ADMIN_PASSWORD=$(cat deploy/k8s/central-deploy/password)" >> "$GITHUB_ENV" - name: Run post-test if: always() diff --git a/tests/e2e/lib-compat.sh b/tests/e2e/lib-compat.sh index 85b686fcbfec2..d5ff29a6dbc76 100644 --- a/tests/e2e/lib-compat.sh +++ b/tests/e2e/lib-compat.sh @@ -94,6 +94,8 @@ roxie_config_from_environment_compat() { info "Configuring load balancer..." handle_load_balancer_setting "$config_file" + handle_endpoints_for_test "$config_file" # Echoes info internally. + info "Configuring custom central environment..." while read -r var_val; do local name="${var_val%%=*}" @@ -211,6 +213,10 @@ collect_feature_flags() { env_with_default ROX_POLICY_CRITERIA_MODAL "true" env_with_default ROX_VULN_MGMT_LEGACY_SNOOZE "true" env_with_default ROX_NETWORK_GRAPH_AGGREGATE_EXT_IPS "true" + env_with_default ROX_DEPRECATED_COMPLIANCE_DASHBOARD "true" + env_with_default ROX_UI_SECRETS_PAGE_MIGRATION "true" + env_with_default ROX_AI_INTEGRATIONS "true" + env_with_default ROX_LIGHTSPEED_RISK_SUMMARY "true" # Enabled by default in StackRox, but disabled by default for test deployments. env_with_default ROX_NETWORK_GRAPH_EXTERNAL_IPS "false" @@ -366,6 +372,44 @@ handle_load_balancer_setting() { esac } +# Populate a roxie config file with the endpoint settings required by endpoints_test.go: +# plaintext endpoints (8080/8081) and the full central-endpoints ConfigMap (8082, 8444-8448). +# Values are taken from the ROX_PLAINTEXT_ENDPOINTS and ROXDEPLOY_CONFIG_FILE_MAP env vars, +# which are exported by test_preamble() of the jobs that run endpoints_test.go. Jobs that do +# not set these are left untouched, so this is safe to call unconditionally from such a job. +handle_endpoints_for_test() { + local config_file="$1" + + # Expose plaintext endpoints required by endpoints_test.go. + if [[ -n "${ROX_PLAINTEXT_ENDPOINTS:-}" ]]; then + info "Configuring central ROX_PLAINTEXT_ENDPOINTS to ${ROX_PLAINTEXT_ENDPOINTS}..." + set_custom_env "$config_file" "central" "ROX_PLAINTEXT_ENDPOINTS" "${ROX_PLAINTEXT_ENDPOINTS}" + fi + + # Inject the full endpoint config into the central-endpoints ConfigMap so that + # Central also listens on ports 8082 and 8444-8448 (used by endpoints_test.go). + if [[ -n "${ROXDEPLOY_CONFIG_FILE_MAP:-}" && -f "${ROXDEPLOY_CONFIG_FILE_MAP}" ]]; then + info "Configuring central-endpoints ConfigMap from ${ROXDEPLOY_CONFIG_FILE_MAP}..." + local overlay_tmp; overlay_tmp="$(mktemp)" + # \. in the path escapes the dot so the operator treats "endpoints.yaml" as a + # single ConfigMap key rather than a path separator. verbatim preserves newlines. + cat > "$overlay_tmp" <<'OVERLAY' +central: + spec: + overlays: + - apiVersion: v1 + kind: ConfigMap + name: central-endpoints + patches: + - path: data.endpoints\.yaml + verbatim: | +OVERLAY + sed 's/^/ /' "${ROXDEPLOY_CONFIG_FILE_MAP}" >> "$overlay_tmp" + merge_yaml "$config_file" < "$overlay_tmp" + rm -f "$overlay_tmp" + fi +} + handle_declarative_configuration() { local config_file="$1" merge_yaml "$config_file" <_/roxie and put it +# ahead of any pre-installed roxie on PATH. +ensure_roxie_on_path() { + local os arch + case "$(uname -s)" in + Linux*) os="linux" ;; + Darwin*) os="darwin" ;; + *) die "Unsupported operating system: $(uname -s)" ;; + esac + case "$(uname -m)" in + x86_64) arch="amd64" ;; + arm64|aarch64) arch="arm64" ;; + *) die "Unsupported architecture: $(uname -m)" ;; + esac + + # Triggers the download/install of the pinned roxie version if it is not present yet. + "$ROOT/scripts/roxie.sh" version + + # Put ONLY roxie at the front of PATH, via a dedicated directory. We must not prepend + # "$ROOT/bin/${os}_${arch}" directly: it also contains roxctl, which the bats tests move out + # of that directory mid-run, after which bare `roxctl` would resolve to the now-missing path + # (instead of the stable /usr/local/bin/roxctl copy) and later phases (e.g. proxy tests) fail. + local roxie_bindir; roxie_bindir="$(mktemp -d)" + ln -sf "$ROOT/bin/${os}_${arch}/roxie" "${roxie_bindir}/roxie" + export PATH="${roxie_bindir}:$PATH" + + check_for_roxie +} + # Deploy StackRox using roxie. # # This is the preferred way of deploying StackRox for tests as of 2026Q2. @@ -301,36 +333,14 @@ EOF set_custom_env "$config_file" "securedCluster" "ROX_NODE_SCANNING_INTERVAL" "10m" set_custom_env "$config_file" "securedCluster" "ROX_NODE_SCANNING_INTERVAL_DEVIATION" "60s" - # Expose plaintext endpoints required by endpoints_test.go. - set_custom_env "$config_file" "central" "ROX_PLAINTEXT_ENDPOINTS" "8080,grpc@8081" + # Configure the endpoints required by endpoints_test.go. + handle_endpoints_for_test "$config_file" # Speed up baseline generation so TestPod can observe process events within the test window. # The default is 1h; tests time out long before baselines would be generated. set_custom_env "$config_file" "central" "ROX_BASELINE_GENERATION_DURATION" "1m" set_custom_env "$config_file" "central" "ROX_NETWORK_BASELINE_OBSERVATION_PERIOD" "2m" - # Inject the full endpoint config into the central-endpoints ConfigMap so that - # Central also listens on ports 8082 and 8444-8448 (used by endpoints_test.go). - if [[ -n "${ROXDEPLOY_CONFIG_FILE_MAP:-}" && -f "${ROXDEPLOY_CONFIG_FILE_MAP}" ]]; then - local overlay_tmp; overlay_tmp="$(mktemp)" - # \. in the path escapes the dot so the operator treats "endpoints.yaml" as a - # single ConfigMap key rather than a path separator. verbatim preserves newlines. - cat > "$overlay_tmp" <<'OVERLAY' -central: - spec: - overlays: - - apiVersion: v1 - kind: ConfigMap - name: central-endpoints - patches: - - path: data.endpoints\.yaml - verbatim: | -OVERLAY - sed 's/^/ /' "${ROXDEPLOY_CONFIG_FILE_MAP}" >> "$overlay_tmp" - merge_yaml "$config_file" < "$overlay_tmp" - rm -f "$overlay_tmp" - fi - # Add the test CA so Central accepts client-cert auth during endpoints_test.go. if [[ -n "${TRUSTED_CA_FILE:-}" && -f "${TRUSTED_CA_FILE}" ]]; then local trusted_ca_content diff --git a/tests/e2e/run.sh b/tests/e2e/run.sh index 7d53d1e42a9d7..17557806f0f44 100755 --- a/tests/e2e/run.sh +++ b/tests/e2e/run.sh @@ -35,6 +35,7 @@ test_e2e() { setup_deployment_env false false remove_existing_stackrox_resources setup_default_TLS_certs + setup_client_TLS_certs info "Creating mocked compliance operator data for compliance v1 tests" "$ROOT/tests/complianceoperator/create.sh" kubectl get compliancecheckresults.compliance.openshift.io -n openshift-compliance @@ -43,7 +44,30 @@ test_e2e() { # If deploy_optional_e2e_components is called after deploy_stackrox it causes an unnecessary Sensor restart deploy_optional_e2e_components - deploy_stackrox + + # Make sure we use the roxie version pinned in ROXIE_VERSION. Under Prow the test image + # ships an older roxie that does not recognize a generic (non-Infra) GKE cluster: it reports + # "cluster type: Unknown" and defaults Central exposure to a localhost port-forward instead of + # the LoadBalancer. That breaks endpoints_test.go, which dials all of Central's ports at the + # API host. The pinned version detects GKE and exposes Central via the LoadBalancer, matching + # the GHA runner (which installs the pinned version explicitly). + ensure_roxie_on_path + + local roxie_config + roxie_config="$(mktemp)" + merge_yaml "$roxie_config" <<'EOF' +central: + namespace: stackrox + pauseReconciliation: true + resourceProfile: ci +securedCluster: + namespace: stackrox + pauseReconciliation: true + resourceProfile: ci +EOF + + deploy_stackrox_with_roxie_compat "$roxie_config" + rm -f "$roxie_config" # Background streamers are not explicitly stopped. They die when the CI # runner terminates, same as the port-forward processes in setup_proxy_tests. From 63e80e0957760afe214c025114457546fc29bcac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 12:20:20 +0200 Subject: [PATCH 125/327] chore(deps): bump github.com/sigstore/sigstore-go from 1.2.2 to 1.3.0 (#23119) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 10 +++++----- go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index 6f16abd351e89..affe1a8055e15 100644 --- a/go.mod +++ b/go.mod @@ -122,7 +122,7 @@ require ( github.com/sigstore/cosign/v3 v3.1.3 github.com/sigstore/rekor v1.5.4 github.com/sigstore/sigstore v1.10.9 - github.com/sigstore/sigstore-go v1.2.2 + github.com/sigstore/sigstore-go v1.3.0 github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 github.com/spf13/cobra v1.10.2 github.com/spf13/pflag v1.0.10 @@ -288,19 +288,19 @@ require ( github.com/go-openapi/jsonpointer v1.0.0 // indirect github.com/go-openapi/jsonreference v1.0.0 // indirect github.com/go-openapi/loads v0.25.1 // indirect - github.com/go-openapi/runtime v0.32.5 // indirect + github.com/go-openapi/runtime v0.33.0 // indirect github.com/go-openapi/runtime/server-middleware v0.30.0 // indirect github.com/go-openapi/spec v0.22.9 // indirect github.com/go-openapi/strfmt v0.27.0 // indirect github.com/go-openapi/swag v0.26.1 // indirect - github.com/go-openapi/swag/cmdutils v0.26.1 // indirect + github.com/go-openapi/swag/cmdutils v0.27.0 // indirect github.com/go-openapi/swag/conv v0.28.0 // indirect github.com/go-openapi/swag/fileutils v0.28.0 // indirect github.com/go-openapi/swag/jsonname v0.26.1 // indirect github.com/go-openapi/swag/jsonutils v0.28.0 // indirect github.com/go-openapi/swag/loading v0.28.0 // indirect github.com/go-openapi/swag/mangling v0.28.0 // indirect - github.com/go-openapi/swag/netutils v0.26.1 // indirect + github.com/go-openapi/swag/netutils v0.27.0 // indirect github.com/go-openapi/swag/pools v0.28.0 // indirect github.com/go-openapi/swag/stringutils v0.28.0 // indirect github.com/go-openapi/swag/typeutils v0.28.0 // indirect @@ -410,7 +410,7 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/sigstore/protobuf-specs v0.5.1 // indirect github.com/sigstore/rekor-tiles/v2 v2.3.0 // indirect - github.com/sigstore/timestamp-authority/v2 v2.1.2 // indirect + github.com/sigstore/timestamp-authority/v2 v2.1.3 // indirect github.com/sirupsen/logrus v1.9.4 // indirect github.com/skeema/knownhosts v1.3.1 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect diff --git a/go.sum b/go.sum index 08d7c0c89b8ff..5dccb1493f47b 100644 --- a/go.sum +++ b/go.sum @@ -539,8 +539,8 @@ github.com/go-openapi/jsonreference v1.0.0 h1:jlmTr6torcd1YgDQvSfNmRtKzYDO4FGBkr github.com/go-openapi/jsonreference v1.0.0/go.mod h1:jtwdyGbJk0Xhe5Y+rwtglQP6Sb1WZST4rT32LWB+sv0= github.com/go-openapi/loads v0.25.1 h1:toKQdIDLxlqfKLLGUUmUsiTd5/X0Chzvde9EGYQP/Ac= github.com/go-openapi/loads v0.25.1/go.mod h1:33Hen4tsKXHL45TyYojvfD5fZUFN4O1y4r/XhsRW2zc= -github.com/go-openapi/runtime v0.32.5 h1:+aDmMj6xB4P8isUwEOERtgHW3JNI/i93KvTWNa4LRik= -github.com/go-openapi/runtime v0.32.5/go.mod h1:eNPUCk8LAYV803GHJP3xDSNllJQfv+pBlXpFfWqpPO8= +github.com/go-openapi/runtime v0.33.0 h1:Dd3Oj2ig+WH8ckK95l0Wn2V8a4bH/UqWPRZVT0vc8yU= +github.com/go-openapi/runtime v0.33.0/go.mod h1:+rsupH3+TFKqmFysqkmgBOTxpVJV8eV+j9myvvea2Xw= github.com/go-openapi/runtime/server-middleware v0.30.0 h1:8rPoJ/xv7JL8BsovaqboKETlpWBArVh8n+0L/GyePog= github.com/go-openapi/runtime/server-middleware v0.30.0/go.mod h1:OYNT/TxNvB/VK5oe4htM2jDTwlEXuejVJmu0DVZfAMs= github.com/go-openapi/spec v0.22.9 h1:/vKIFDcGKp0ktZWGbym/tJEWbk6/XOEmAVU0kqKMH+w= @@ -554,8 +554,8 @@ github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+ github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/swag v0.26.1 h1:l5sVEyVpwj+DDYeZyo7wQI/Ebn/mKYIyGB/pFwAfGoQ= github.com/go-openapi/swag v0.26.1/go.mod h1:yNY38BbIVthxbkDtq1UHBCGasBqjakW3lCR6ANzdBEw= -github.com/go-openapi/swag/cmdutils v0.26.1 h1:f2iE1ijYaJ3nuu5PaEMx3zpEhzhZFgivCJObWEObLIQ= -github.com/go-openapi/swag/cmdutils v0.26.1/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= +github.com/go-openapi/swag/cmdutils v0.27.0 h1:aIKiqhB29AaP+7xm8/CPg3uOpeHx2SUp6TvMpu/a31Y= +github.com/go-openapi/swag/cmdutils v0.27.0/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= github.com/go-openapi/swag/conv v0.28.0 h1:GtqqbyFe7vR5Y7ehxG9W6/OvrSFdf1OLeTGp40TqxH8= github.com/go-openapi/swag/conv v0.28.0/go.mod h1:mbUE+mzctnhxi864m0Q07SpN8OowD9JhxmxuYvZZD/k= github.com/go-openapi/swag/fileutils v0.28.0 h1:Z04XWQD7R8Eq+7GnOrjovBxPPmZzsS4gt2H2GPGIViU= @@ -570,8 +570,8 @@ github.com/go-openapi/swag/loading v0.28.0 h1:td8QZdZC9MIYGGSnSPKShKiK22I2tU5UQv github.com/go-openapi/swag/loading v0.28.0/go.mod h1:rXB0QiQX5mMveXEA7ouM4KiiM9jVJe4K6BVbwhD1M4k= github.com/go-openapi/swag/mangling v0.28.0 h1:pH8eyeNO9SLYsTMWJrurnNfKmDa28XrlA+HePVD53VM= github.com/go-openapi/swag/mangling v0.28.0/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= -github.com/go-openapi/swag/netutils v0.26.1 h1:BNctoc39WTAUMxyAs355fExOPzMZtPbZ0ZZ1Am2FR5M= -github.com/go-openapi/swag/netutils v0.26.1/go.mod h1:y02vByhZhQPAVwOX+0KipXFZ/hUbk6G/Enhf5rGaOkQ= +github.com/go-openapi/swag/netutils v0.27.0 h1:lEUG+hHvPvLggB3A8snFk0IRKNf9uC0YKc+7WYqvAF8= +github.com/go-openapi/swag/netutils v0.27.0/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= github.com/go-openapi/swag/pools v0.28.0 h1:HPMZWSAfce3rdVTFcjFiCIBtDg9h4x2QlRrHipwhxeU= github.com/go-openapi/swag/pools v0.28.0/go.mod h1:kVQefhSK5RWuRe7BXsL8htgBPAMpN7HDGpGEknqugeE= github.com/go-openapi/swag/stringutils v0.28.0 h1:ixsc9iYgDPubHL/8nSkbnryEHpD2VRlBMLKpQyPXcDU= @@ -1240,8 +1240,8 @@ github.com/sigstore/rekor-tiles/v2 v2.3.0 h1:HhMgH61UP0t899V8Fjt7pz1YdgOBptbaQdn github.com/sigstore/rekor-tiles/v2 v2.3.0/go.mod h1:DEFiKSyQ4nF75QRVNdOPaIH3cmvMkO2B6xDZjNYngPc= github.com/sigstore/sigstore v1.10.9 h1:7Dcpt+ibnltHQZ8XhaU0dFmhHaf/T491eJfA9WDex4Y= github.com/sigstore/sigstore v1.10.9/go.mod h1:LYW9+qH7bK8wZmLm6lPxIC5lkHtkJDCgkqjChzTAIBs= -github.com/sigstore/sigstore-go v1.2.2 h1:xAJ8hxaoecC0HKBYVbrwUjkeAI+GJYu6vLqbxDlD2Q0= -github.com/sigstore/sigstore-go v1.2.2/go.mod h1:MIFwBxAHJD+/lKgZzt9n/4Zhq/3T2+EuGX8iGrIsZgU= +github.com/sigstore/sigstore-go v1.3.0 h1:hnIMHREyCNTYFtOE1o7ae3Axa9B5W5EjUSBJICP2NBE= +github.com/sigstore/sigstore-go v1.3.0/go.mod h1:AyRQXfpH89py1twjE3kEZxlRersng90GSYqQV9zGJE8= github.com/sigstore/sigstore/pkg/signature/kms/aws v1.10.9 h1:2NWAU/utJRwzy1OrQurlY3wlDSynyH1rNJS5GgFchrg= github.com/sigstore/sigstore/pkg/signature/kms/aws v1.10.9/go.mod h1:2shgYiPHTzeb5NNEu6okco+LOojMS5n9p/5Wdp0jhGI= github.com/sigstore/sigstore/pkg/signature/kms/azure v1.10.9 h1:zcg/EG6JW/8RSx9T2g5j6zqxplaE4dymmhiFflDE6ks= @@ -1250,8 +1250,8 @@ github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.10.9 h1:DG8R4orWDs3l9trp70 github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.10.9/go.mod h1:d6oIwQ0YiYHMcFO4xqFcAx5njXwIf0dm5KfdytOar8A= github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.10.9 h1:V+spyeSHypvLHSOvPMT+V72dxDlS0LDkDd6lwCsUOXM= github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.10.9/go.mod h1:o7u5bQNLqpDQFaST29dpo6P6ihMV+wicwqfMmMW6H3c= -github.com/sigstore/timestamp-authority/v2 v2.1.2 h1:7DDhnknLL4w8VwomyvW2W8qblOS9LDR8oihna+jc7Ls= -github.com/sigstore/timestamp-authority/v2 v2.1.2/go.mod h1:o6rAVZceFyejClIj/uStRNIemP16bVMZtbMmhk6pr0U= +github.com/sigstore/timestamp-authority/v2 v2.1.3 h1:Fc+LjCTfik1lh3YLkaosENfkXa3R2Y1nswiUKutBdFA= +github.com/sigstore/timestamp-authority/v2 v2.1.3/go.mod h1:myoFOKJB/u5vNTFwvBBJVkG3NnOBeIJevbfjNeasLjo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= From a0d903860460f36db9843d78f72c56f4486c16f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 13:18:36 +0200 Subject: [PATCH 126/327] chore(deps): bump github.com/adhocore/gronx from 1.20.3 to 1.20.4 (#23120) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index affe1a8055e15..64a1442afa28f 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/RoaringBitmap/roaring/v2 v2.29.0 github.com/Shopify/toxiproxy/v2 v2.12.0 github.com/VividCortex/ewma v1.2.0 - github.com/adhocore/gronx v1.20.3 + github.com/adhocore/gronx v1.20.4 github.com/andygrunwald/go-jira v1.17.0 github.com/aws/aws-sdk-go-v2 v1.47.1 github.com/aws/aws-sdk-go-v2/config v1.33.6 diff --git a/go.sum b/go.sum index 5dccb1493f47b..4e672370c1f3c 100644 --- a/go.sum +++ b/go.sum @@ -182,8 +182,8 @@ github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpH github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= github.com/aclements/go-perfevent v0.0.0-20240301234650-f7843625020f h1:JjxwchlOepwsUWcQwD2mLUAGE9aCp0/ehy6yCHFBOvo= github.com/aclements/go-perfevent v0.0.0-20240301234650-f7843625020f/go.mod h1:tMDTce/yLLN/SK8gMOxQfnyeMeCg8KGzp0D1cbECEeo= -github.com/adhocore/gronx v1.20.3 h1:DjvHxCqyz9WDzpodceOU814Z4GNpTvSpZs7oeX4ToKU= -github.com/adhocore/gronx v1.20.3/go.mod h1:7oUY1WAU8rEJWmAxXR2DN0JaO4gi9khSgKjiRypqteg= +github.com/adhocore/gronx v1.20.4 h1:vE2UKHC3mRH4DF+tKiq/kOnENTuKaEois2aD0McyHiU= +github.com/adhocore/gronx v1.20.4/go.mod h1:7oUY1WAU8rEJWmAxXR2DN0JaO4gi9khSgKjiRypqteg= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= From d23c2cf9f57544f668186eec7bdf0c7799c94d90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 13:18:41 +0200 Subject: [PATCH 127/327] chore(deps): bump cloud.google.com/go/containeranalysis from 0.19.0 to 0.20.0 (#23118) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 64a1442afa28f..2d44ebafcd07c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.26.7 require ( cloud.google.com/go/artifactregistry v1.26.0 cloud.google.com/go/compute/metadata v0.9.1 - cloud.google.com/go/containeranalysis v0.19.0 + cloud.google.com/go/containeranalysis v0.20.0 cloud.google.com/go/securitycenter v1.46.0 cloud.google.com/go/storage v1.64.0 dario.cat/mergo v1.0.2 diff --git a/go.sum b/go.sum index 4e672370c1f3c..d3e62963698ca 100644 --- a/go.sum +++ b/go.sum @@ -47,8 +47,8 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.9.1 h1:CTE1OWBQ0vnF5uHwdFAQJvMQ0Fi/KRcqqKTo9V0F8Ik= cloud.google.com/go/compute/metadata v0.9.1/go.mod h1:NtnlvB6X3t4R6xSWyVX/ZWk493PCxGQlhI/iqxh4M8I= -cloud.google.com/go/containeranalysis v0.19.0 h1:89ZhFvJHWzX9/jUJy/IEVbtSa2hv4+NtsvwWMEsUYnY= -cloud.google.com/go/containeranalysis v0.19.0/go.mod h1:Zq0XHzUIa0oTa7H6aSR8HWqeJnoRI9syUcYJzfozjZQ= +cloud.google.com/go/containeranalysis v0.20.0 h1:5tko84zYirVH+FEU6JPuT/xGBvSagsllYxH7m8ytjyI= +cloud.google.com/go/containeranalysis v0.20.0/go.mod h1:cJzgbuNqFTWswsVcT0eemqdqtOEq4dJEFvAH3cgzkyc= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= From c8878dec5b5266f57f75b83631289df819a52cb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 13:18:57 +0200 Subject: [PATCH 128/327] chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.23.0 to 1.23.1 (#23121) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2d44ebafcd07c..fe5566cbc612d 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( cloud.google.com/go/storage v1.64.0 dario.cat/mergo v1.0.2 github.com/Azure/azure-sdk-for-go-extensions v0.7.0 - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry v0.2.3 github.com/Azure/azure-sdk-for-go/sdk/monitor/ingestion/azlogs v1.1.0 diff --git a/go.sum b/go.sum index d3e62963698ca..8a867deccd72e 100644 --- a/go.sum +++ b/go.sum @@ -92,8 +92,8 @@ github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230919221257-8b5d3ce2d11d/go.mod github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= github.com/Azure/azure-sdk-for-go-extensions v0.7.0 h1:ko7jxarxFmfm3OAtIkKcnC2yK1H7a7wB7As38huaa4Y= github.com/Azure/azure-sdk-for-go-extensions v0.7.0/go.mod h1:f/wRrqvvh197V5r4jGADV7528UdO/zfL+/Ud92BMSag= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0 h1:4gRPBpN1f6xt88yi4WR26m7XaD9OlWtVT6bWPdGUIok= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.0/go.mod h1:G7QVLxw1j1JVyrO1MA95S8m8HStaaleDZYTcfGgjB2o= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 h1:zvXfGJCWvywnCA814d8ZiVyt+fm9nnTE8xSb99zRyfo= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1/go.mod h1:iptorS+VYKFL2N6PnebpS91dubG35eAOEERnT4PJbQU= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 h1:CU4+EJeJi3TKYWEcYuSdWsjzw0nVsK/H0MSQOiPcymU= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0/go.mod h1:q0+UTSRvShwUCrR/s5HtyInYphN7Wvxb7snFM3u+SLA= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0 h1:xFaZZ+IubdftrDHnGGwZ6QvQ3KHTtWl2MCK+GMt2vxs= From 182c3a1a4be90ff7fcae113a888fd33cbb6ad685 Mon Sep 17 00:00:00 2001 From: Kirk Bater Date: Tue, 29 Sep 2026 07:55:53 -0400 Subject: [PATCH 129/327] fix(ci): Removes scannerV4 memory overrides (#23101) Removes scannerv4 CI memory overrides allowing them to fall back to installer defaults. --- deploy/common/scanner-v4-matcher-patch.yaml | 3 --- tests/e2e/lib-compat.sh | 15 --------------- .../yaml/central-cr-with-scanner-v4.envsubst.yaml | 2 -- tests/e2e/yaml/central-cr.envsubst.yaml | 3 --- 4 files changed, 23 deletions(-) diff --git a/deploy/common/scanner-v4-matcher-patch.yaml b/deploy/common/scanner-v4-matcher-patch.yaml index 3532ff36797b3..557949164ff6b 100644 --- a/deploy/common/scanner-v4-matcher-patch.yaml +++ b/deploy/common/scanner-v4-matcher-patch.yaml @@ -6,6 +6,3 @@ spec: resources: requests: cpu: "400m" - memory: "6Gi" - limits: - memory: "6Gi" diff --git a/tests/e2e/lib-compat.sh b/tests/e2e/lib-compat.sh index d5ff29a6dbc76..2b85aa4392e4a 100644 --- a/tests/e2e/lib-compat.sh +++ b/tests/e2e/lib-compat.sh @@ -186,7 +186,6 @@ roxie_config_from_environment_compat() { handle_scanner_v4_setting "$config_file" ".central.spec.scannerV4.scannerComponent" "Enabled" handle_scanner_v4_setting "$config_file" ".securedCluster.spec.scannerV4.scannerComponent" "AutoSense" handle_scanner_v4_vuln_readiness "$config_file" - handle_scanner_v4_matcher_resources "$config_file" info "Configuring declarative configuration..." handle_declarative_configuration "$config_file" @@ -287,20 +286,6 @@ handle_scanner_v4_vuln_readiness() { fi } -# handle_scanner_v4_matcher_resources raises the scanner-v4-matcher memory limit -# for roxie deployments. -handle_scanner_v4_matcher_resources() { - local config_file="$1" - - # Only meaningful when Scanner V4 is enabled. - if [[ "${ROX_SCANNER_V4:-true}" == "false" ]]; then - return - fi - - info " setting scanner-v4-matcher memory limit to 6Gi" - patch_yaml "$config_file" '.central.spec.scannerV4.matcher.resources.limits.memory = "6Gi"' -} - handle_trusted_ca_file() { local config_file="$1" local trusted_ca_file="${TRUSTED_CA_FILE:-}" diff --git a/tests/e2e/yaml/central-cr-with-scanner-v4.envsubst.yaml b/tests/e2e/yaml/central-cr-with-scanner-v4.envsubst.yaml index ea584b30f0dd5..2dd550ae2f319 100644 --- a/tests/e2e/yaml/central-cr-with-scanner-v4.envsubst.yaml +++ b/tests/e2e/yaml/central-cr-with-scanner-v4.envsubst.yaml @@ -59,10 +59,8 @@ $centralAdditionalCAIndented resources: requests: cpu: "400m" - memory: "6Gi" limits: cpu: "6000m" - memory: "6Gi" db: resources: requests: diff --git a/tests/e2e/yaml/central-cr.envsubst.yaml b/tests/e2e/yaml/central-cr.envsubst.yaml index 6170b0dc9bad5..ea69d2e7a5b33 100644 --- a/tests/e2e/yaml/central-cr.envsubst.yaml +++ b/tests/e2e/yaml/central-cr.envsubst.yaml @@ -55,9 +55,6 @@ $centralAdditionalCAIndented resources: requests: cpu: "400m" - memory: "6Gi" - limits: - memory: "6Gi" db: $scannerV4DbPersistenceYaml resources: From ae8c906c446e67127612e489599f1086b0fd6df2 Mon Sep 17 00:00:00 2001 From: Giles Hutton Date: Tue, 29 Sep 2026 13:41:28 +0000 Subject: [PATCH 130/327] ROX-35665: avoid race condition in Cluster deletion (#23047) Co-authored-by: Tomasz Janiszewski --- central/cluster/datastore/datastore_impl.go | 8 +- .../cluster/datastore/datastore_impl_test.go | 2 +- central/cluster/lifecycle/gate.go | 93 +++++++++++++++++++ central/cluster/lifecycle/gate_test.go | 47 ++++++++++ .../service/pipeline/nodeindex/pipeline.go | 17 +++- .../pipeline/nodeindex/pipeline_test.go | 28 ++++++ .../nodeindex/three_pipelines_test.go | 1 + .../pipeline/nodeinventory/pipeline.go | 17 +++- .../pipeline/nodeinventory/pipeline_test.go | 3 + .../nodeinventory/two_pipelines_test.go | 1 + .../sensor/service/pipeline/nodes/pipeline.go | 34 ++++++- .../service/pipeline/nodes/pipeline_test.go | 1 + tests/cluster_delete_test.go | 10 +- 13 files changed, 252 insertions(+), 10 deletions(-) create mode 100644 central/cluster/lifecycle/gate.go create mode 100644 central/cluster/lifecycle/gate_test.go diff --git a/central/cluster/datastore/datastore_impl.go b/central/cluster/datastore/datastore_impl.go index 62ed1dbc6dc4f..fea57dfb7bf47 100644 --- a/central/cluster/datastore/datastore_impl.go +++ b/central/cluster/datastore/datastore_impl.go @@ -12,6 +12,7 @@ import ( "github.com/pkg/errors" alertDataStore "github.com/stackrox/rox/central/alert/datastore" + "github.com/stackrox/rox/central/cluster/lifecycle" clusterStore "github.com/stackrox/rox/central/cluster/store/cluster" clusterHealthStore "github.com/stackrox/rox/central/cluster/store/clusterhealth" clusterInitStore "github.com/stackrox/rox/central/clusterinit/store" @@ -658,7 +659,9 @@ func (ds *datastoreImpl) RemoveCluster(ctx context.Context, id string, done *con return err } + release := lifecycle.Singleton().BeginDeletion(id) if err := ds.clusterStorage.Delete(ctx, id); err != nil { + release() return errors.Wrapf(err, "failed to remove cluster %q", id) } ds.idToNameCache.Remove(id) @@ -666,11 +669,12 @@ func (ds *datastoreImpl) RemoveCluster(ctx context.Context, id string, done *con ds.nameToIDCache.Remove(cluster.GetName()) deleteRelatedCtx := sac.WithAllAccess(context.Background()) - go ds.postRemoveCluster(deleteRelatedCtx, cluster, done) + go ds.postRemoveCluster(deleteRelatedCtx, cluster, done, release) return nil } -func (ds *datastoreImpl) postRemoveCluster(ctx context.Context, cluster *storage.Cluster, done *concurrency.Signal) { +func (ds *datastoreImpl) postRemoveCluster(ctx context.Context, cluster *storage.Cluster, done *concurrency.Signal, release func()) { + defer release() // Terminate the cluster connection to prevent new data from being stored. if ds.cm != nil { ds.cm.CloseConnection(cluster.GetId()) diff --git a/central/cluster/datastore/datastore_impl_test.go b/central/cluster/datastore/datastore_impl_test.go index 757824b7fa839..0ba81c3c61ccf 100644 --- a/central/cluster/datastore/datastore_impl_test.go +++ b/central/cluster/datastore/datastore_impl_test.go @@ -434,7 +434,7 @@ func (s *clusterDataStoreTestSuite) TestPostRemoveCluster() { ctx := sac.WithAllAccess(s.T().Context()) doneSignal := concurrency.NewSignal() - s.datastore.postRemoveCluster(ctx, removedCluster, &doneSignal) + s.datastore.postRemoveCluster(ctx, removedCluster, &doneSignal, func() {}) doneSignal.Wait() }) diff --git a/central/cluster/lifecycle/gate.go b/central/cluster/lifecycle/gate.go new file mode 100644 index 0000000000000..7eab76a27beb7 --- /dev/null +++ b/central/cluster/lifecycle/gate.go @@ -0,0 +1,93 @@ +package lifecycle + +import ( + "github.com/stackrox/rox/pkg/concurrency" + "github.com/stackrox/rox/pkg/sync" +) + +// Gate serializes cluster deletion with writes that must not outlive the cluster. +type Gate struct { + mu sync.Mutex + entries map[string]*entry +} + +type entry struct { + mu sync.RWMutex + stateMu sync.Mutex + deleting bool + refs int +} + +var singleton = New() + +// Singleton returns the process-wide cluster lifecycle gate. +func Singleton() *Gate { + return singleton +} + +// New creates a cluster lifecycle gate. +func New() *Gate { + return &Gate{entries: make(map[string]*entry)} +} + +// Enter acquires a shared lifecycle lease unless deletion has started. The +// returned release function must be called when active is true. +func (g *Gate) Enter(clusterID string) (active bool, release func()) { + e := g.retain(clusterID) + + active = concurrency.WithLock1(&e.stateMu, func() bool { + if e.deleting { + return false + } + e.mu.RLock() + return true + }) + if !active { + g.release(clusterID, e) + return false, nil + } + + return true, func() { + concurrency.UnsafeRUnlock(&e.mu) + g.release(clusterID, e) + } +} + +// BeginDeletion prevents new active writes and waits for existing writes to finish. +// The returned function must be called once cluster cleanup completes. +func (g *Gate) BeginDeletion(clusterID string) func() { + e := g.retain(clusterID) + concurrency.WithLock(&e.stateMu, func() { + e.deleting = true + }) + e.mu.Lock() + + return func() { + concurrency.UnsafeUnlock(&e.mu) + concurrency.WithLock(&e.stateMu, func() { + e.deleting = false + }) + g.release(clusterID, e) + } +} + +func (g *Gate) retain(clusterID string) *entry { + g.mu.Lock() + defer g.mu.Unlock() + e := g.entries[clusterID] + if e == nil { + e = &entry{} + g.entries[clusterID] = e + } + e.refs++ + return e +} + +func (g *Gate) release(clusterID string, e *entry) { + g.mu.Lock() + defer g.mu.Unlock() + e.refs-- + if e.refs == 0 && !e.deleting { + delete(g.entries, clusterID) + } +} diff --git a/central/cluster/lifecycle/gate_test.go b/central/cluster/lifecycle/gate_test.go new file mode 100644 index 0000000000000..7cd8e67424006 --- /dev/null +++ b/central/cluster/lifecycle/gate_test.go @@ -0,0 +1,47 @@ +package lifecycle + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestGateBlocksDeletionUntilActiveWriteCompletes(t *testing.T) { + gate := New() + writeStarted := make(chan struct{}) + releaseWrite := make(chan struct{}) + writeFinished := make(chan struct{}) + go func() { + active, release := gate.Enter("cluster-id") + if !active { + t.Error("active write was rejected") + return + } + defer release() + close(writeStarted) + <-releaseWrite + close(writeFinished) + }() + <-writeStarted + + deletionStarted := make(chan func()) + go func() { deletionStarted <- gate.BeginDeletion("cluster-id") }() + require.Never(t, func() bool { + select { + case <-deletionStarted: + return true + default: + return false + } + }, 20*time.Millisecond, time.Millisecond) + + close(releaseWrite) + <-writeFinished + releaseDeletion := <-deletionStarted + releaseDeletion() + + active, release := gate.Enter("cluster-id") + require.True(t, active) + release() +} diff --git a/central/sensor/service/pipeline/nodeindex/pipeline.go b/central/sensor/service/pipeline/nodeindex/pipeline.go index 18eeea9cf16ab..dc032fe4cbf36 100644 --- a/central/sensor/service/pipeline/nodeindex/pipeline.go +++ b/central/sensor/service/pipeline/nodeindex/pipeline.go @@ -6,6 +6,7 @@ import ( "github.com/pkg/errors" clusterDataStore "github.com/stackrox/rox/central/cluster/datastore" + "github.com/stackrox/rox/central/cluster/lifecycle" "github.com/stackrox/rox/central/enrichment" countMetrics "github.com/stackrox/rox/central/metrics" nodeDatastore "github.com/stackrox/rox/central/node/datastore" @@ -120,7 +121,7 @@ func (p *pipelineImpl) Run(ctx context.Context, _ string, msg *central.MsgFromSe incomingScanTime := node.GetScan().GetScanTime() // Update the whole node in the database with the new and previous information. - err = p.riskManager.CalculateRiskAndUpsertNode(node) + err = p.upsertNodeIfClusterActive(ctx, node) if err != nil { return errors.Wrapf(err, "failed calculating risk and upserting node %s", nodeDatastore.NodeString(node)) } @@ -156,6 +157,20 @@ func (p *pipelineImpl) Run(ctx context.Context, _ string, msg *central.MsgFromSe return nil } +func (p *pipelineImpl) upsertNodeIfClusterActive(ctx context.Context, node *storage.Node) error { + active, release := lifecycle.Singleton().Enter(node.GetClusterId()) + if !active { + return nil + } + defer release() + + _, exists, err := p.clusterStore.GetClusterName(ctx, node.GetClusterId()) + if err != nil || !exists { + return err + } + return p.riskManager.CalculateRiskAndUpsertNode(node) +} + func sendComplianceAck(ctx context.Context, node *storage.Node, injector common.MessageInjector) { if injector == nil { return diff --git a/central/sensor/service/pipeline/nodeindex/pipeline_test.go b/central/sensor/service/pipeline/nodeindex/pipeline_test.go index 539199eadcb6f..7d98420ce86bc 100644 --- a/central/sensor/service/pipeline/nodeindex/pipeline_test.go +++ b/central/sensor/service/pipeline/nodeindex/pipeline_test.go @@ -5,6 +5,7 @@ import ( "time" clusterDatastoreMocks "github.com/stackrox/rox/central/cluster/datastore/mocks" + "github.com/stackrox/rox/central/cluster/lifecycle" nodeDatastoreMocks "github.com/stackrox/rox/central/node/datastore/mocks" riskManagerMocks "github.com/stackrox/rox/central/risk/manager/mocks" "github.com/stackrox/rox/generated/internalapi/central" @@ -75,6 +76,7 @@ func TestPipelineWarnsWhenPersistedScanTimeRegresses(t *testing.T) { node := &storage.Node{Id: "1", Name: "node-name", ClusterId: "cluster-id"} ctrl := gomock.NewController(t) + clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) riskManager := riskManagerMocks.NewMockManager(ctrl) enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) @@ -94,8 +96,10 @@ func TestPipelineWarnsWhenPersistedScanTimeRegresses(t *testing.T) { return nil }), ) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Eq(node.GetClusterId())).Return("", true, nil) p := &pipelineImpl{ + clusterStore: clusterStore, nodeDatastore: nodeDatastore, riskManager: riskManager, enricher: enricher, @@ -157,6 +161,7 @@ func TestPipelineEnrichesAndUpserts(t *testing.T) { } ctrl := gomock.NewController(t) clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) nodeDatastore.EXPECT().GetNode(gomock.Any(), gomock.Eq("1")).Times(2).Return(&node, true, nil) riskManager := riskManagerMocks.NewMockManager(ctrl) @@ -183,12 +188,34 @@ func TestPipelineEnrichesAndUpserts(t *testing.T) { } } +func TestPipelineSkipsUpsertAfterClusterDeletionBegins(t *testing.T) { + t.Setenv(features.NodeIndexEnabled.EnvVar(), "true") + t.Setenv(features.ScannerV4.EnvVar(), "true") + + ctrl := gomock.NewController(t) + node := &storage.Node{Id: "1", Name: "node-name", ClusterId: "cluster-id"} + nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) + nodeDatastore.EXPECT().GetNode(gomock.Any(), gomock.Eq(node.GetId())).Return(node, true, nil) + enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) + enricher.EXPECT().EnrichNodeWithVulnerabilities(gomock.Any(), nil, gomock.Any()).Return(nil) + + releaseDeletion := lifecycle.Singleton().BeginDeletion(node.GetClusterId()) + defer releaseDeletion() + + p := &pipelineImpl{ + nodeDatastore: nodeDatastore, + enricher: enricher, + } + require.NoError(t, p.Run(t.Context(), node.GetClusterId(), createMsg(mockIndexReport), nil)) +} + func TestPipelineSendsSensorAndLegacyACKs(t *testing.T) { t.Setenv(features.NodeIndexEnabled.EnvVar(), "true") t.Setenv(features.ScannerV4.EnvVar(), "true") ctrl := gomock.NewController(t) clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) riskManager := riskManagerMocks.NewMockManager(ctrl) enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) @@ -245,6 +272,7 @@ func TestPipelineSkipsSensorACKWhenCapabilityMissing(t *testing.T) { ctrl := gomock.NewController(t) clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) riskManager := riskManagerMocks.NewMockManager(ctrl) enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) diff --git a/central/sensor/service/pipeline/nodeindex/three_pipelines_test.go b/central/sensor/service/pipeline/nodeindex/three_pipelines_test.go index 32f96a4cdf149..069ed968a6fbf 100644 --- a/central/sensor/service/pipeline/nodeindex/three_pipelines_test.go +++ b/central/sensor/service/pipeline/nodeindex/three_pipelines_test.go @@ -360,6 +360,7 @@ func Test_ThreePipelines_Run(t *testing.T) { if tt.setUpMocksAndEnv != nil { tt.setUpMocksAndEnv(t, tt.mocks) } + tt.mocks.clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) pNode := nodes.NewPipeline(tt.mocks.clusterStore, tt.mocks.nodeDatastore, tt.enricher, tt.riskManager) pNodeInv := nodeinventory.NewPipeline(tt.mocks.clusterStore, tt.mocks.nodeDatastore, tt.enricher, tt.riskManager) pNodeIdx := newPipeline(tt.mocks.clusterStore, tt.mocks.nodeDatastore, tt.enricher, tt.riskManager) diff --git a/central/sensor/service/pipeline/nodeinventory/pipeline.go b/central/sensor/service/pipeline/nodeinventory/pipeline.go index cc03d75aaa2d4..f9cfff63913f0 100644 --- a/central/sensor/service/pipeline/nodeinventory/pipeline.go +++ b/central/sensor/service/pipeline/nodeinventory/pipeline.go @@ -6,6 +6,7 @@ import ( "github.com/pkg/errors" clusterDataStore "github.com/stackrox/rox/central/cluster/datastore" + "github.com/stackrox/rox/central/cluster/lifecycle" "github.com/stackrox/rox/central/enrichment" countMetrics "github.com/stackrox/rox/central/metrics" nodeDatastore "github.com/stackrox/rox/central/node/datastore" @@ -115,7 +116,7 @@ func (p *pipelineImpl) Run(ctx context.Context, _ string, msg *central.MsgFromSe len(node.GetScan().GetComponents())) // Update the whole node in the database with the new and previous information. - err = p.riskManager.CalculateRiskAndUpsertNode(node) + err = p.calculateRiskAndUpsertNodeIfClusterActive(ctx, node) if err != nil { log.Error(err) return err @@ -125,6 +126,20 @@ func (p *pipelineImpl) Run(ctx context.Context, _ string, msg *central.MsgFromSe return nil } +func (p *pipelineImpl) calculateRiskAndUpsertNodeIfClusterActive(ctx context.Context, node *storage.Node) error { + active, release := lifecycle.Singleton().Enter(node.GetClusterId()) + if !active { + return nil + } + defer release() + + _, exists, err := p.clusterStore.GetClusterName(ctx, node.GetClusterId()) + if err != nil || !exists { + return err + } + return p.riskManager.CalculateRiskAndUpsertNode(node) +} + // shouldDiscardMsg returns true if the pipeline should discard an incoming message or false if it should keep processing it. func shouldDiscardMsg(node *storage.Node) bool { // In a mixed environment, there might be v2-only clusters, so there is no Scanner v4 scan available for that cluster. diff --git a/central/sensor/service/pipeline/nodeinventory/pipeline_test.go b/central/sensor/service/pipeline/nodeinventory/pipeline_test.go index b2ed240fef7cd..a6e70ea76acfc 100644 --- a/central/sensor/service/pipeline/nodeinventory/pipeline_test.go +++ b/central/sensor/service/pipeline/nodeinventory/pipeline_test.go @@ -171,6 +171,7 @@ func Test_pipelineImpl_Run(t *testing.T) { if tt.setUp != nil { tt.setUp(t, &tt.args, &tt.mocks) } + tt.mocks.clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) p := &pipelineImpl{ clusterStore: tt.mocks.clusterStore, nodeDatastore: tt.mocks.nodeDatastore, @@ -196,6 +197,7 @@ func Test_pipelineImpl_Run_SendsSensorAndLegacyACKs(t *testing.T) { testutils.MustUpdateFeature(t, features.LegacyScanner, true) ctrl := gomock.NewController(t) clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) riskManager := riskManagerMocks.NewMockManager(ctrl) enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) @@ -263,6 +265,7 @@ func Test_pipelineImpl_Run_SkipsSensorACKWhenCapabilityMissing(t *testing.T) { testutils.MustUpdateFeature(t, features.LegacyScanner, true) ctrl := gomock.NewController(t) clusterStore := clusterDatastoreMocks.NewMockDataStore(ctrl) + clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) nodeDatastore := nodeDatastoreMocks.NewMockDataStore(ctrl) riskManager := riskManagerMocks.NewMockManager(ctrl) enricher := nodesEnricherMocks.NewMockNodeEnricher(ctrl) diff --git a/central/sensor/service/pipeline/nodeinventory/two_pipelines_test.go b/central/sensor/service/pipeline/nodeinventory/two_pipelines_test.go index ce04f4ed06ff5..9f8b72efd5fa8 100644 --- a/central/sensor/service/pipeline/nodeinventory/two_pipelines_test.go +++ b/central/sensor/service/pipeline/nodeinventory/two_pipelines_test.go @@ -230,6 +230,7 @@ func Test_TwoPipelines_Run(t *testing.T) { if tt.setUpMocks != nil { tt.setUpMocks(t, tt.mocks) } + tt.mocks.clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("", true, nil) pNode := nodes.NewPipeline(tt.mocks.clusterStore, tt.mocks.nodeDatastore, tt.enricher, tt.riskManager) pNodeInv := NewPipeline(tt.mocks.clusterStore, tt.mocks.nodeDatastore, tt.enricher, tt.riskManager) diff --git a/central/sensor/service/pipeline/nodes/pipeline.go b/central/sensor/service/pipeline/nodes/pipeline.go index a59efc0c8cb7f..9bf5a7e053ab4 100644 --- a/central/sensor/service/pipeline/nodes/pipeline.go +++ b/central/sensor/service/pipeline/nodes/pipeline.go @@ -5,6 +5,7 @@ import ( "github.com/pkg/errors" clusterDataStore "github.com/stackrox/rox/central/cluster/datastore" + "github.com/stackrox/rox/central/cluster/lifecycle" "github.com/stackrox/rox/central/enrichment" countMetrics "github.com/stackrox/rox/central/metrics" nodeDatastore "github.com/stackrox/rox/central/node/datastore" @@ -103,14 +104,13 @@ func (p *pipelineImpl) Run(ctx context.Context, clusterID string, msg *central.M // ROX-22002: Remove invalid null characters in annotations stringutils.SanitizeMapValues(node.GetAnnotations()) - if enricher.SupportsNodeScanning(node) { // If supports node scanning, this pipeline should only update the node's // metadata. We call upsert without scan. Upsert will read scan information from // the database before writing. This is safe because NodeInventory and Node // pipelines never run concurrently by the Sensor Event worker queues. node.Scan = nil - if err := p.nodeDatastore.UpsertNode(ctx, node); err != nil { + if err := p.upsertNodeIfClusterActive(ctx, clusterID, node); err != nil { err = errors.Wrapf(err, "upserting node %s", nodeDatastore.NodeString(node)) log.Error(err) return err @@ -125,7 +125,7 @@ func (p *pipelineImpl) Run(ctx context.Context, clusterID string, msg *central.M ScanTime: protocompat.TimestampNow(), Notes: []storage.NodeScan_Note{storage.NodeScan_UNSUPPORTED}, } - if err := p.nodeDatastore.UpsertNode(ctx, node); err != nil { + if err := p.upsertNodeIfClusterActive(ctx, clusterID, node); err != nil { err = errors.Wrapf(err, "upserting node %s", nodeDatastore.NodeString(node)) log.Error(err) return err @@ -139,7 +139,7 @@ func (p *pipelineImpl) Run(ctx context.Context, clusterID string, msg *central.M "risk information will not be updated): %v", nodeDatastore.NodeString(node), err) } - if err := p.riskManager.CalculateRiskAndUpsertNode(node); err != nil { + if err := p.calculateRiskAndUpsertNodeIfClusterActive(ctx, clusterID, node); err != nil { log.Error(err) return err } @@ -147,4 +147,30 @@ func (p *pipelineImpl) Run(ctx context.Context, clusterID string, msg *central.M return nil } +func (p *pipelineImpl) upsertNodeIfClusterActive(ctx context.Context, clusterID string, node *storage.Node) error { + return p.withActiveCluster(ctx, clusterID, func() error { + return p.nodeDatastore.UpsertNode(ctx, node) + }) +} + +func (p *pipelineImpl) calculateRiskAndUpsertNodeIfClusterActive(ctx context.Context, clusterID string, node *storage.Node) error { + return p.withActiveCluster(ctx, clusterID, func() error { + return p.riskManager.CalculateRiskAndUpsertNode(node) + }) +} + +func (p *pipelineImpl) withActiveCluster(ctx context.Context, clusterID string, write func() error) error { + active, release := lifecycle.Singleton().Enter(clusterID) + if !active { + return nil + } + defer release() + + _, exists, err := p.clusterStore.GetClusterName(ctx, clusterID) + if err != nil || !exists { + return err + } + return write() +} + func (p *pipelineImpl) OnFinish(_ string) {} diff --git a/central/sensor/service/pipeline/nodes/pipeline_test.go b/central/sensor/service/pipeline/nodes/pipeline_test.go index c6ba35109fdae..c673578f9288b 100644 --- a/central/sensor/service/pipeline/nodes/pipeline_test.go +++ b/central/sensor/service/pipeline/nodes/pipeline_test.go @@ -133,6 +133,7 @@ func Test_pipelineImpl_Run(t *testing.T) { if tt.setUp != nil { tt.setUp(t, &tt.args, &tt.mocks) } + tt.mocks.clusterStore.EXPECT().GetClusterName(gomock.Any(), gomock.Any()).AnyTimes().Return("test cluster name", true, nil) p := &pipelineImpl{ clusterStore: tt.mocks.clusterStore, nodeDatastore: tt.mocks.nodeDatastore, diff --git a/tests/cluster_delete_test.go b/tests/cluster_delete_test.go index 10ea65ad63a29..149e04acce00c 100644 --- a/tests/cluster_delete_test.go +++ b/tests/cluster_delete_test.go @@ -32,6 +32,14 @@ func (a *allCounts) AllZero() bool { return allIntsZero(a.PodCount, a.ClusterCount, a.NodeCount, a.DeploymentCount, a.SecretCount) } +func (a *allCounts) Less(other *allCounts) bool { + return a.PodCount < other.PodCount || + a.ClusterCount < other.ClusterCount || + a.NodeCount < other.NodeCount || + a.DeploymentCount < other.DeploymentCount || + a.SecretCount < other.SecretCount +} + type summaryCountsResp struct { ClusterCount, NodeCount, ViolationCount, DeploymentCount, SecretCount int } @@ -105,7 +113,7 @@ func TestClusterDeletion(t *testing.T) { t.Logf("deployment count is still not zero: %d", counts.DeploymentCount) } - if previous.DeploymentCount > 0 && previous.DeploymentCount > counts.DeploymentCount { + if counts.Less(&previous) { noChangeCount = 0 } else { noChangeCount++ From 5ef3d48a8d089837c1c1302b96a7e83a857d9763 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 17:21:41 +0200 Subject: [PATCH 131/327] chore(deps): bump cloud.google.com/go/artifactregistry from 1.26.0 to 1.27.0 (#23117) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index fe5566cbc612d..1d8f786ac5d42 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/stackrox/rox go 1.26.7 require ( - cloud.google.com/go/artifactregistry v1.26.0 + cloud.google.com/go/artifactregistry v1.27.0 cloud.google.com/go/compute/metadata v0.9.1 cloud.google.com/go/containeranalysis v0.20.0 cloud.google.com/go/securitycenter v1.46.0 diff --git a/go.sum b/go.sum index 8a867deccd72e..afacb4c1f634e 100644 --- a/go.sum +++ b/go.sum @@ -32,8 +32,8 @@ cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0c cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= -cloud.google.com/go/artifactregistry v1.26.0 h1:iq5kkdY2FJY8RkkNghUelb3EOcqyy7dVhfDGVk/Xw9g= -cloud.google.com/go/artifactregistry v1.26.0/go.mod h1:c5FPi5GtDBP+OAr5kKhCBNQDT9ZgAyobXQjekx93VWs= +cloud.google.com/go/artifactregistry v1.27.0 h1:EBgdk9sXNAVyWJ3hnTmWRdlmKhGDKCjkJbLoF3EsyWE= +cloud.google.com/go/artifactregistry v1.27.0/go.mod h1:r0rZgbNmn5ppdqwUMF182yc7EFH6vabJMbXM+PlfW9A= cloud.google.com/go/auth v0.23.3 h1:UMK+oBtuNGMCR/6i6mmySUItqjOazpJrbmZyhGbGBWo= cloud.google.com/go/auth v0.23.3/go.mod h1:fClbry28fo7XkxhSeT6AQtAVAp6Jy0fW9N99PoPNPFM= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= From 067c642e255db1724c1a4ff47d1112ec6e37b142 Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Tue, 29 Sep 2026 20:37:34 +0200 Subject: [PATCH 132/327] chore: Remove `scripts/offline-bundle` (#22826) --- Makefile | 8 --- scripts/offline-bundle/.gitignore | 3 - scripts/offline-bundle/create.sh | 63 ------------------- .../offline-bundle/image-bundle/README.txt | 18 ------ scripts/offline-bundle/image-bundle/import.sh | 61 ------------------ .../image-collector-bundle/README.txt | 7 --- .../image-collector-bundle/import.sh | 37 ----------- 7 files changed, 197 deletions(-) delete mode 100644 scripts/offline-bundle/.gitignore delete mode 100755 scripts/offline-bundle/create.sh delete mode 100644 scripts/offline-bundle/image-bundle/README.txt delete mode 100755 scripts/offline-bundle/image-bundle/import.sh delete mode 100644 scripts/offline-bundle/image-collector-bundle/README.txt delete mode 100755 scripts/offline-bundle/image-collector-bundle/import.sh diff --git a/Makefile b/Makefile index 11bc6d500c9d6..7ab67e2cd9c67 100644 --- a/Makefile +++ b/Makefile @@ -871,14 +871,6 @@ roxvet: $(ROXVET_BIN) ########## ## Misc ## ########## -.PHONY: clean-offline-bundle -clean-offline-bundle: - $(SILENT)find scripts/offline-bundle -name '*.img' -delete -o -name '*.tgz' -delete -o -name 'bin' -type d -exec rm -r "{}" \; - -.PHONY: offline-bundle -offline-bundle: clean-offline-bundle - $(SILENT)./scripts/offline-bundle/create.sh - .PHONY: check-debugger check-debugger: /usr/bin/env DEBUG_BUILD="$(DEBUG_BUILD)" BUILD_TAG="$(BUILD_TAG)" TAG="$(TAG)" ./scripts/check-debugger.sh diff --git a/scripts/offline-bundle/.gitignore b/scripts/offline-bundle/.gitignore deleted file mode 100644 index 8bc06143b8a41..0000000000000 --- a/scripts/offline-bundle/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -**/*.img -**/bin -*.tgz diff --git a/scripts/offline-bundle/create.sh b/scripts/offline-bundle/create.sh deleted file mode 100755 index 0bf4e1b614dce..0000000000000 --- a/scripts/offline-bundle/create.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -IFS=$'\n\t' - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)" - -export_image() { - local name=$1 - local image=$2 - local last_dir=$3 - - docker pull "$image" | cat - - mkdir -p "${DIR}/${last_dir}" - echo "Saving $image to ${DIR}/${last_dir}/${name}.img" - docker save "$image" -o "${DIR}/${last_dir}/${name}.img" -} - -save() { - local registry=$1 - local name=$2 - local tag=$3 - local last_dir=$4 - - export_image "$name" "${registry}/${name}:${tag}" "${last_dir}" -} - -bundle() { - local name=$1 - pushd "${DIR}" - tar -czvf "${name}.tgz" "${name}" - popd -} - -store_roxctl() { - output_path=$1 - mkdir -p "${DIR}/${output_path}/bin" - gsutil -m cp -r "gs://sr-roxc/${main_tag}/bin/darwin" "${DIR}/${output_path}/bin" - gsutil -m cp -r "gs://sr-roxc/${main_tag}/bin/linux" "${DIR}/${output_path}/bin" - gsutil -m cp -r "gs://sr-roxc/${main_tag}/bin/windows" "${DIR}/${output_path}/bin" - chmod +x "${DIR}/${output_path}/bin/darwin/roxctl" "${DIR}/${output_path}/bin/linux/roxctl" -} - -main() { - # Main uses the version reported by make tag. - local main_tag - main_tag="$(make --quiet --no-print-directory tag)" - save "stackrox.io" "main" "${main_tag}" "image-bundle" - - # Scanner uses the same version as Main. - save "stackrox.io" "scanner" "${main_tag}" "image-bundle" - save "stackrox.io" "scanner-db" "${main_tag}" "image-bundle" - - # Collector uses the same version as Main. - save "collector.stackrox.io" "collector" "${main_tag}" "image-collector-bundle" - - store_roxctl "image-bundle" - - bundle "image-bundle" - bundle "image-collector-bundle" -} - -main "$@" diff --git a/scripts/offline-bundle/image-bundle/README.txt b/scripts/offline-bundle/image-bundle/README.txt deleted file mode 100644 index 5375d77249f1e..0000000000000 --- a/scripts/offline-bundle/image-bundle/README.txt +++ /dev/null @@ -1,18 +0,0 @@ -This bundle contains archives of the images necessary to run the -StackRox Kubernetes Security Platform. - -To secure a cluster, your private registry must be able to pull the images. -The import script loads images onto your local Docker engine, but can also -push the images to a private registry. - -To install, first reimport the images: - ./import.sh - -See product documentation for complete setup steps. To view documentation: - - Go to https://help.stackrox.com, or - - Run import.sh, then follow the instructions displayed. - -When you generate your installation configuration and follow the -instructions, use your private registry image names. - -See product documentation for additional details. diff --git a/scripts/offline-bundle/image-bundle/import.sh b/scripts/offline-bundle/image-bundle/import.sh deleted file mode 100755 index 625de26a13d37..0000000000000 --- a/scripts/offline-bundle/image-bundle/import.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -IFS=$'\n\t' - -print_docs_usage() { - echo - echo "To view complete product documentation go to https://help.stackrox.com" -} - -main() { - cd "$(dirname "${BASH_SOURCE[0]}")" - - echo "This script can optionally push imported images into a private registry." - echo "Most users add a path segment like \"/stackrox\"." - echo "For example, you might input: my-registry.example.com:5000/stackrox" - echo "To skip pushing, simply do not enter a prefix." - echo -n "Enter your private registry prefix: " - read registry_prefix - echo - - echo "Loading main image..." - main_tag="$(docker load -i main.img | tag)" - main_image_local="stackrox.io/main:${main_tag}" - main_image_remote="${registry_prefix}/main:${main_tag}" - - echo "Loading scanner images..." - scanner_tag="$(docker load -i scanner.img | tag)" - scanner_image_local="stackrox.io/scanner:${scanner_tag}" - scanner_image_remote="${registry_prefix}/scanner:${scanner_tag}" - - scanner_db_tag="$(docker load -i scanner-db.img | tag)" - scanner_db_image_local="stackrox.io/scanner-db:${scanner_db_tag}" - scanner_db_image_remote="${registry_prefix}/scanner-db:${scanner_db_tag}" - - if [[ -z "$registry_prefix" ]]; then - echo "No registry prefix given, all done!" - print_docs_usage - return - fi - - echo "Pushing image: ${main_image_local} as ${main_image_remote}" - docker tag "${main_image_local}" "${main_image_remote}" - docker push "${main_image_remote}" | cat - - echo "Pushing image: ${scanner_image_local} as ${scanner_image_remote}" - docker tag "${scanner_image_local}" "${scanner_image_remote}" - docker push "${scanner_image_remote}" | cat - - echo "Pushing image: ${scanner_db_image_local} as ${scanner_db_image_remote}" - docker tag "${scanner_db_image_local}" "${scanner_db_image_remote}" - docker push "${scanner_db_image_remote}" | cat - - echo "All done!" - print_docs_usage -} - -tag() { - sed 's/.*:\(.*$\)/\1/' -} - -main diff --git a/scripts/offline-bundle/image-collector-bundle/README.txt b/scripts/offline-bundle/image-collector-bundle/README.txt deleted file mode 100644 index 6c5b4ab778c6b..0000000000000 --- a/scripts/offline-bundle/image-collector-bundle/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -This bundle contains archives of the Collector image which integrates with -the StackRox Kubernetes Security Platform. - -To install, first reimport the image: - ./import.sh - -See product documentation for additional details. diff --git a/scripts/offline-bundle/image-collector-bundle/import.sh b/scripts/offline-bundle/image-collector-bundle/import.sh deleted file mode 100755 index 024f0edd5a629..0000000000000 --- a/scripts/offline-bundle/image-collector-bundle/import.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -IFS=$'\n\t' - -main() { - cd "$(dirname "${BASH_SOURCE[0]}")" - - echo "This script can optionally push imported images into a private registry." - echo "Most users add a path segment like \"/stackrox\"." - echo "For example, you might input: my-registry.example.com:5000/stackrox" - echo "To skip pushing, simply do not enter a prefix." - echo -n "Enter your private registry prefix: " - read registry_prefix - echo - - echo "Loading collector image..." - collector_tag="$(docker load -i collector.img | tag)" - collector_image_local="collector.stackrox.io/collector:${collector_tag}" - collector_image_remote="${registry_prefix}/collector:${collector_tag}" - - if [[ -z "$registry_prefix" ]]; then - echo "No registry prefix given, all done!" - return - fi - - echo "Pushing image: ${collector_image_local} as ${collector_image_remote}" - docker tag "${collector_image_local}" "${collector_image_remote}" - docker push "${collector_image_remote}" | cat - - echo "All done!" -} - -tag() { - sed 's/.*:\(.*$\)/\1/' -} - -main From 90006fc01cd7e285e7bfd6e98b132a2091140a6d Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 03:22:43 +0000 Subject: [PATCH 133/327] chore(deps): update quay.io/rhacs-eng/konflux-tasks:latest docker digest to 53b3c5a (#23142) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/basic-component-pipeline.yaml | 6 +++--- .tekton/checks.yaml | 2 +- .tekton/create-custom-snapshot.yaml | 8 ++++---- .tekton/main-pipeline.yaml | 8 ++++---- .tekton/operator-bundle-pipeline.yaml | 8 ++++---- .tekton/operator-index-build.yaml | 8 ++++---- .tekton/retag-pipeline.yaml | 10 +++++----- .tekton/scanner-v4-pipeline.yaml | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.tekton/basic-component-pipeline.yaml b/.tekton/basic-component-pipeline.yaml index 14c58b159f06f..0a282bd9ec0fc 100644 --- a/.tekton/basic-component-pipeline.yaml +++ b/.tekton/basic-component-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/checks.yaml b/.tekton/checks.yaml index 0f30a4cc32a21..35f053f753c11 100644 --- a/.tekton/checks.yaml +++ b/.tekton/checks.yaml @@ -66,7 +66,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index d92e856bd45cc..a1c56638ff702 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -75,7 +75,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -224,7 +224,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -242,7 +242,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -315,7 +315,7 @@ spec: - name: name value: create-snapshot-from-bundle - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/main-pipeline.yaml b/.tekton/main-pipeline.yaml index 62f2e080d7f0a..17a06bb9d5b13 100644 --- a/.tekton/main-pipeline.yaml +++ b/.tekton/main-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -212,7 +212,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -228,7 +228,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -248,7 +248,7 @@ spec: - name: name value: fetch-external-networks - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-bundle-pipeline.yaml b/.tekton/operator-bundle-pipeline.yaml index a86d6052e7593..066ed9687bd63 100644 --- a/.tekton/operator-bundle-pipeline.yaml +++ b/.tekton/operator-bundle-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -272,7 +272,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -288,7 +288,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -329,7 +329,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 18e34cc099091..05dfcf048d415 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -98,7 +98,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -214,7 +214,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -230,7 +230,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -276,7 +276,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/retag-pipeline.yaml b/.tekton/retag-pipeline.yaml index fda4a68727954..a2c1f4286bf90 100644 --- a/.tekton/retag-pipeline.yaml +++ b/.tekton/retag-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -136,7 +136,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -154,7 +154,7 @@ spec: - name: name value: determine-dependency-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -170,7 +170,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -195,7 +195,7 @@ spec: - name: name value: retag-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles diff --git a/.tekton/scanner-v4-pipeline.yaml b/.tekton/scanner-v4-pipeline.yaml index c6a3c4d137c68..098264b41384f 100644 --- a/.tekton/scanner-v4-pipeline.yaml +++ b/.tekton/scanner-v4-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles @@ -247,7 +247,7 @@ spec: - name: name value: fetch-scanner-v4-vuln-mappings - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:243b1db3f2d0da8dbf6f716516f46bb5c43918e74331942db820e3a32b378940 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 - name: kind value: task resolver: bundles From 963139bd8305b087dc66095cbb57841f0aeb91af Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 03:53:21 +0000 Subject: [PATCH 134/327] chore(deps): update all dependencies (#23141) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- image/postgres/konflux.Dockerfile | 2 +- image/rhel/konflux.Dockerfile | 2 +- image/roxctl/konflux.Dockerfile | 2 +- operator/konflux.Dockerfile | 2 +- scanner/image/db/konflux.Dockerfile | 2 +- scanner/image/scanner/konflux.Dockerfile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/image/postgres/konflux.Dockerfile b/image/postgres/konflux.Dockerfile index 8b0d612e9bb2b..e68bb68a7eb91 100644 --- a/image/postgres/konflux.Dockerfile +++ b/image/postgres/konflux.Dockerfile @@ -1,5 +1,5 @@ ARG PG_VERSION=15 -FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:962fd39f9c86327d685372216b5a055c8f1748abc5c1e7a5103f8cbf8df3a01a AS final +FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:a3a5c31afcd91ef5d96f20bcf7aa7b47b10c034f86b549b04985ebed6d14567e AS final USER root diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index 1c1e55031b641..7361053a6a0f8 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -73,7 +73,7 @@ RUN make -C ui build FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:094ea2ecfd3225af8f93807b99daa9ff33710fc705ebdf6e8466f46ed605585c AS package_installer ARG PG_VERSION diff --git a/image/roxctl/konflux.Dockerfile b/image/roxctl/konflux.Dockerfile index 29f7530c67be3..948c16d3964d7 100644 --- a/image/roxctl/konflux.Dockerfile +++ b/image/roxctl/konflux.Dockerfile @@ -27,7 +27,7 @@ RUN RACE=0 CGO_ENABLED=1 GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build.sh FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:094ea2ecfd3225af8f93807b99daa9ff33710fc705ebdf6e8466f46ed605585c AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/operator/konflux.Dockerfile b/operator/konflux.Dockerfile index c6eb62708c6a2..835b924e191d7 100644 --- a/operator/konflux.Dockerfile +++ b/operator/konflux.Dockerfile @@ -20,7 +20,7 @@ RUN GOOS=linux GOARCH=$(go env GOARCH) scripts/go-build-file.sh operator/cmd/mai FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:094ea2ecfd3225af8f93807b99daa9ff33710fc705ebdf6e8466f46ed605585c AS package_installer # Copy ubi-micro base to /out/ to preserve its rpmdb COPY --from=ubi-micro-base / /out/ diff --git a/scanner/image/db/konflux.Dockerfile b/scanner/image/db/konflux.Dockerfile index af8d11f490e67..6888180df6b18 100644 --- a/scanner/image/db/konflux.Dockerfile +++ b/scanner/image/db/konflux.Dockerfile @@ -1,4 +1,4 @@ -FROM registry.redhat.io/rhel9/postgresql-15:latest@sha256:962fd39f9c86327d685372216b5a055c8f1748abc5c1e7a5103f8cbf8df3a01a +FROM registry.redhat.io/rhel9/postgresql-15:latest@sha256:a3a5c31afcd91ef5d96f20bcf7aa7b47b10c034f86b549b04985ebed6d14567e ARG BUILD_TAG RUN if [[ "$BUILD_TAG" == "" ]]; then >&2 echo "error: required BUILD_TAG arg is unset"; exit 6; fi diff --git a/scanner/image/scanner/konflux.Dockerfile b/scanner/image/scanner/konflux.Dockerfile index 3dbf15bb4879f..b21eb84546a32 100644 --- a/scanner/image/scanner/konflux.Dockerfile +++ b/scanner/image/scanner/konflux.Dockerfile @@ -18,7 +18,7 @@ RUN make -C scanner NODEPS=1 CGO_ENABLED=1 image/scanner/bin/scanner copy-script FROM registry.access.redhat.com/ubi9/ubi-micro:latest@sha256:7a0454cbd9bd847e8f6a63b6f0254a6efbeb6e0ed71a5d824a4f6cccbe626650 AS ubi-micro-base -FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:7a38d75d376f7989033e75fcaaf9fcbb090fafc58e05c2c99de76ae0ba083fdb AS package_installer +FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:094ea2ecfd3225af8f93807b99daa9ff33710fc705ebdf6e8466f46ed605585c AS package_installer COPY --from=ubi-micro-base / /out/ From e1b6549c14318cf36ee1793ba58a9db7619defee Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 06:35:11 +0000 Subject: [PATCH 135/327] chore(deps): update quay.io/rhacs-eng/konflux-tasks:latest docker digest to a33d6ea (#23144) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/basic-component-pipeline.yaml | 6 +++--- .tekton/checks.yaml | 2 +- .tekton/create-custom-snapshot.yaml | 8 ++++---- .tekton/main-pipeline.yaml | 8 ++++---- .tekton/operator-bundle-pipeline.yaml | 8 ++++---- .tekton/operator-index-build.yaml | 8 ++++---- .tekton/retag-pipeline.yaml | 10 +++++----- .tekton/scanner-v4-pipeline.yaml | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.tekton/basic-component-pipeline.yaml b/.tekton/basic-component-pipeline.yaml index 0a282bd9ec0fc..412e2460acc16 100644 --- a/.tekton/basic-component-pipeline.yaml +++ b/.tekton/basic-component-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/checks.yaml b/.tekton/checks.yaml index 35f053f753c11..0a32b36258dc3 100644 --- a/.tekton/checks.yaml +++ b/.tekton/checks.yaml @@ -66,7 +66,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index a1c56638ff702..d82ad2a8b5bbb 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -75,7 +75,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -224,7 +224,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -242,7 +242,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -315,7 +315,7 @@ spec: - name: name value: create-snapshot-from-bundle - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/main-pipeline.yaml b/.tekton/main-pipeline.yaml index 17a06bb9d5b13..787b6c7506c9e 100644 --- a/.tekton/main-pipeline.yaml +++ b/.tekton/main-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -212,7 +212,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -228,7 +228,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -248,7 +248,7 @@ spec: - name: name value: fetch-external-networks - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-bundle-pipeline.yaml b/.tekton/operator-bundle-pipeline.yaml index 066ed9687bd63..08cf42b987678 100644 --- a/.tekton/operator-bundle-pipeline.yaml +++ b/.tekton/operator-bundle-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -272,7 +272,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -288,7 +288,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -329,7 +329,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 05dfcf048d415..a3c1aa9ceff8f 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -98,7 +98,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -214,7 +214,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -230,7 +230,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -276,7 +276,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/retag-pipeline.yaml b/.tekton/retag-pipeline.yaml index a2c1f4286bf90..63b3467b416a7 100644 --- a/.tekton/retag-pipeline.yaml +++ b/.tekton/retag-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -136,7 +136,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -154,7 +154,7 @@ spec: - name: name value: determine-dependency-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -170,7 +170,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -195,7 +195,7 @@ spec: - name: name value: retag-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles diff --git a/.tekton/scanner-v4-pipeline.yaml b/.tekton/scanner-v4-pipeline.yaml index 098264b41384f..bc8c0f64addec 100644 --- a/.tekton/scanner-v4-pipeline.yaml +++ b/.tekton/scanner-v4-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles @@ -247,7 +247,7 @@ spec: - name: name value: fetch-scanner-v4-vuln-mappings - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:53b3c5ae9fd5d632d03d16a11b3f85842f86123b52d5a72488204649386f9df8 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 - name: kind value: task resolver: bundles From 4b60d6d4773b0584a08e5e367b31bf567deb575d Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 30 Sep 2026 09:16:38 +0200 Subject: [PATCH 136/327] ROX-35079: drop Application from the central chart (#21585) --- CHANGELOG.md | 2 + .../templates/00-stackrox-application.yaml | 122 ------------------ .../tests/centralservices/base_suite_test.go | 1 - .../securedclusterservices/base_suite_test.go | 1 - pkg/helm/config/roundtrip_test.go | 1 - pkg/helm/util/render.go | 6 - 6 files changed, 2 insertions(+), 131 deletions(-) delete mode 100644 image/templates/helm/stackrox-central/templates/00-stackrox-application.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index ccbe071da4de4..5d2a12a8afb7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ Changes should still be described appropriately in JIRA/doc input pages, for inc ### Removed Features +- ROX-35079: The `app.k8s.io/v1beta1/Application` CR is no longer shipped. + ### Deprecated Features ### Technical Changes diff --git a/image/templates/helm/stackrox-central/templates/00-stackrox-application.yaml b/image/templates/helm/stackrox-central/templates/00-stackrox-application.yaml deleted file mode 100644 index 3be046fa21d0c..0000000000000 --- a/image/templates/helm/stackrox-central/templates/00-stackrox-application.yaml +++ /dev/null @@ -1,122 +0,0 @@ -{{- include "srox.init" . -}} - -{{- if has "app.k8s.io/v1beta1/Application" ._rox._apiServer.apiResources -}} -apiVersion: app.k8s.io/v1beta1 -kind: Application -metadata: - name: stackrox - namespace: {{ .Release.Namespace }} - labels: - {{- include "srox.labels" (list . "application" "stackrox") | nindent 4 }} - annotations: - {{- include "srox.annotations" (list . "application" "stackrox") | nindent 4 }} - {{ if eq ._rox.image.registry "quay.io/stackrox-io" }} - kubernetes-engine.cloud.google.com/icon: "data:image/png;base64,{{ .Files.Get "assets/StackRox_icon.png" | b64enc }}" - {{ else }} - kubernetes-engine.cloud.google.com/icon: "data:image/png;base64,{{ .Files.Get "assets/Red_Hat-Hat_icon.png" | b64enc }}" - {{ end }} -spec: - descriptor: - type: StackRox - version: {{ .Chart.AppVersion | quote }} - description: |- - StackRox Kubernetes Security Platform - - Version {{ .Chart.AppVersion }} - - ## Thank you for installing StackRox! - -
- - #### Support - - [Email support@stackrox.com](mailto:support@stackrox.com?cc=sales@stackrox.com&Subject=StackRox%20Support%20Question&Body=Dear%20StackRox%20support,) - - ## Connecting to StackRox - -
- - #### Directly using a Load Balancer - - When deploying StackRox with the `Load Balancer` network configuration, the service can be accessed directly. - - $CONNECT - - #### Tunneling via Port Forward - - When deploying StackRox with the `Node Port` or `None` network configuration, the service must be accessed using a port forward tunnel. - - - Step 1 - Start the port forward tunnel to the StackRox Central service. - - ``` - $ kubectl -n stackrox port-forward svc/central 8443:443 - ``` - - - Step 2 - In a browser, [visit https://localhost:8443](https://localhost:8443) to access StackRox. - - keywords: - - "stackrox" - - "kube" - - "security" - maintainers: - - name: StackRox, Inc. - url: https://stackrox.com - owners: - - name: StackRox, Inc. - url: https://stackrox.com - links: - - description: StackRox Help Documentation - url: "https://help.stackrox.com" - - info: - - name: StackRox namespace - value: stackrox - - name: StackRox admin username - value: "admin" - - selector: - matchLabels: - app.kubernetes.io/name: stackrox - - componentKinds: - - group: '' - kind: ConfigMap - - group: '' - kind: Secret - - group: '' - kind: PersistentVolumeClaim - - group: '' - kind: PersistentVolume - - group: '' - kind: Service - - group: '' - kind: ServiceAccount - - group: rbac.authorization.k8s.io - kind: ClusterRole - - group: rbac.authorization.k8s.io - kind: ClusterRoleBinding - - group: apps - kind: Deployment -{{- if ._rox.network.enableNetworkPolicies }} - - group: networking.k8s.io - kind: NetworkPolicy -{{- end }} - - group: rbac.authorization.k8s.io - kind: Role - - group: rbac.authorization.k8s.io - kind: RoleBinding - - group: route.openshift.io - kind: Route - - group: security.openshift.io - kind: SecurityContextConstraints - - group: admissionregistration.k8s.io - kind: ValidatingWebhookConfiguration - - group: autoscaling - kind: HorizontalPodAutoscaler - - group: storage.k8s.io - kind: StorageClass -{{- if ._rox.system.enablePodSecurityPolicies }} - - group: policy - kind: PodSecurityPolicy -{{- end }} -{{- end }} diff --git a/pkg/helm/charts/tests/centralservices/base_suite_test.go b/pkg/helm/charts/tests/centralservices/base_suite_test.go index e1da27eab219c..91a163712ac25 100644 --- a/pkg/helm/charts/tests/centralservices/base_suite_test.go +++ b/pkg/helm/charts/tests/centralservices/base_suite_test.go @@ -26,7 +26,6 @@ var ( Revision: 1, IsInstall: true, }, - APIVersions: append(chartutil.DefaultVersionSet, "app.k8s.io/v1beta1/Application"), } // A values YAML that sets all generatable values explicitly, and causes all diff --git a/pkg/helm/charts/tests/securedclusterservices/base_suite_test.go b/pkg/helm/charts/tests/securedclusterservices/base_suite_test.go index c2ebfdb4461a5..98cb4bf010421 100644 --- a/pkg/helm/charts/tests/securedclusterservices/base_suite_test.go +++ b/pkg/helm/charts/tests/securedclusterservices/base_suite_test.go @@ -25,7 +25,6 @@ var ( Revision: 1, IsInstall: true, }, - APIVersions: append(chartutil.DefaultVersionSet, "app.k8s.io/v1beta1/Application"), } // A values YAML that sets all generatable values explicitly, and causes all diff --git a/pkg/helm/config/roundtrip_test.go b/pkg/helm/config/roundtrip_test.go index 03206e561c8b3..597e0114bd355 100644 --- a/pkg/helm/config/roundtrip_test.go +++ b/pkg/helm/config/roundtrip_test.go @@ -30,7 +30,6 @@ var ( Revision: 1, IsInstall: true, }, - APIVersions: chartutil.DefaultVersionSet, } ) diff --git a/pkg/helm/util/render.go b/pkg/helm/util/render.go index 78e9f953d88cf..a12ed1668ae82 100644 --- a/pkg/helm/util/render.go +++ b/pkg/helm/util/render.go @@ -17,8 +17,6 @@ type Options struct { ReleaseOptions chartutil.ReleaseOptions KubeVersion string HelmVersion string - - APIVersions chartutil.VersionSet } // Render renders a chart locally, like renderutil.Render, but its options struct allows specifying @@ -38,10 +36,6 @@ func Render(c *chart.Chart, values chartutil.Values, opts Options) (map[string]s HelmVersion: chartutil.DefaultCapabilities.HelmVersion, } - if opts.APIVersions != nil { - caps.APIVersions = opts.APIVersions - } - if opts.KubeVersion != "" { kv, verErr := semver.NewVersion(opts.KubeVersion) if verErr != nil { From fad7abfa0e1089cb13c757157cb738548d679e05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 10:53:20 +0200 Subject: [PATCH 137/327] chore(deps): bump k8s.io/client-go from 0.37.0 to 0.37.1 in /tests/performance/scale (#23149) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/performance/scale/go.mod | 6 +++--- tests/performance/scale/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/performance/scale/go.mod b/tests/performance/scale/go.mod index f8200e8e75790..00f91094ef10f 100644 --- a/tests/performance/scale/go.mod +++ b/tests/performance/scale/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/spf13/cobra v1.10.2 go.yaml.in/yaml/v3 v3.0.5 - k8s.io/client-go v0.37.0 + k8s.io/client-go v0.37.1 ) require ( @@ -69,8 +69,8 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.37.0 // indirect - k8s.io/apimachinery v0.37.0 // indirect + k8s.io/api v0.37.1 // indirect + k8s.io/apimachinery v0.37.1 // indirect k8s.io/klog/v2 v2.140.0 // indirect k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect diff --git a/tests/performance/scale/go.sum b/tests/performance/scale/go.sum index 62fc40ae1c7c9..a865a78a72587 100644 --- a/tests/performance/scale/go.sum +++ b/tests/performance/scale/go.sum @@ -194,12 +194,12 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.37.0 h1:Z//Vj9N7RA/yS2sDmxyeo7h+RR4zbUrd2vrd3Z0TbB4= -k8s.io/api v0.37.0/go.mod h1:LKXgcJWMc+f4OLbP5SFR8rulEg07zZhpi/zMULiBImk= -k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= -k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= -k8s.io/client-go v0.37.0 h1:nsN31fy8wBySuZ+QRnKmrjRSQLOG2rvoGN0tKd12zhQ= -k8s.io/client-go v0.37.0/go.mod h1:FcGqw+Ll/gNQiq+nPGY1Oyt9y7SgDh1d3MW3RFDEbn0= +k8s.io/api v0.37.1 h1:l6N77U7tjwB5L056bgrBTJIEdevac/naBZ3iSvDNfpM= +k8s.io/api v0.37.1/go.mod h1:zSlbB1YpJ1YQlFVQy20UYll81UJSJJUMLhkhvg6Z78M= +k8s.io/apimachinery v0.37.1 h1:hGCYyvKHCwtwMitj2vU4vYx0Z16N9GyZk9BBnz0wDAE= +k8s.io/apimachinery v0.37.1/go.mod h1:jF84AyUi/IRIXRot5f+lm6MpxoWI+F1XgjaMmwCdTFw= +k8s.io/client-go v0.37.1 h1:QTv/5ha4jAHtW9qxxVBkQVFBRDb4jHfFopQqqMdc+wM= +k8s.io/client-go v0.37.1/go.mod h1:dnAPtTnCNY38Ho04D2KdY1F4IKausa9UbqaAZKl60SY= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A= From 66fd4ac9641bde481472cb6b01edf4d9294d5785 Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Wed, 30 Sep 2026 11:05:50 +0200 Subject: [PATCH 138/327] docs: Document CI image location in AGENTS.md (#21700) Co-authored-by: Claude Opus 4.6 (1M context) --- AGENTS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index b3d59803da998..52856e8ddb89a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -147,6 +147,11 @@ StackRox is a Kubernetes-native security platform with a distributed microservic - **Secured Cluster Services**: Deployed per monitored cluster (Sensor, Admission Controller) - **Multi-cluster support**: One Central instance monitors multiple Kubernetes clusters +### CI Image (Prow / OpenShift CI) +- The CI image is built from the **[stackrox/rox-ci-image](https://github.com/stackrox/rox-ci-image)** repo, not this repo. +- Tool versions bundled in the CI image (e.g. roxie, helm, docker) are pinned in Dockerfiles in that repo. +- `.openshift-ci/Dockerfile.build_root` in this repo only references the resulting image for validation purposes. + ### Key Directories - `/central/` - Central management service code - `/sensor/` - Sensor agent code for cluster monitoring From 1b4be85ef65b8339fc7a68bfa6fba08b1564eb96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 11:21:44 +0200 Subject: [PATCH 139/327] chore(deps): bump github.com/openshift-online/ocm-sdk-go from 0.1.509 to 0.1.515 (#23154) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 1d8f786ac5d42..a1f9499ed93d7 100644 --- a/go.mod +++ b/go.mod @@ -95,7 +95,7 @@ require ( github.com/onsi/gomega v1.43.1 github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.1 - github.com/openshift-online/ocm-sdk-go v0.1.509 + github.com/openshift-online/ocm-sdk-go v0.1.515 github.com/openshift/api v0.0.0-20260317165824-54a3998d81eb github.com/openshift/client-go v0.0.0-20260317180604-743f664b82d1 github.com/openshift/controller-runtime-common v0.0.0-20260318085703-1812aed6dbd2 @@ -384,8 +384,8 @@ require ( github.com/olekukonko/errors v1.2.0 // indirect github.com/olekukonko/ll v0.1.6 // indirect github.com/opencontainers/runtime-spec v1.2.1 // indirect - github.com/openshift-online/ocm-api-model/clientapi v0.0.464 // indirect - github.com/openshift-online/ocm-api-model/model v0.0.464 // indirect + github.com/openshift-online/ocm-api-model/clientapi v0.0.469 // indirect + github.com/openshift-online/ocm-api-model/model v0.0.469 // indirect github.com/openshift/custom-resource-status v1.1.2 // indirect github.com/operator-framework/operator-lib v0.17.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect diff --git a/go.sum b/go.sum index afacb4c1f634e..4fb8ab445cbcd 100644 --- a/go.sum +++ b/go.sum @@ -1083,12 +1083,12 @@ github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJw github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU8lpJfSlR0xww= github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/openshift-online/ocm-api-model/clientapi v0.0.464 h1:MrAdeU7E0ElWu4Ztv7hMRqlzY6cdcQeqWiNaO00n2n4= -github.com/openshift-online/ocm-api-model/clientapi v0.0.464/go.mod h1:fZwy5HY2URG9nrExvQeXrDU/08TGqZ16f8oymVEN5lo= -github.com/openshift-online/ocm-api-model/model v0.0.464 h1:aZCIx0+EPZxVSbct4QQ9cSCaI1deoeAhfgwx5CfNl54= -github.com/openshift-online/ocm-api-model/model v0.0.464/go.mod h1:PQIoq6P8Vlb7goOdRMLK8nJY+B7HH0RTqYAa4kyidTE= -github.com/openshift-online/ocm-sdk-go v0.1.509 h1:JcmyaaJQslBqe4vIFugV0rQElGLojJSP/lO11moI/Ho= -github.com/openshift-online/ocm-sdk-go v0.1.509/go.mod h1:h1owsjOKlqLFRgzos5WWa0K0lSr8xRU6P1lF9EG94do= +github.com/openshift-online/ocm-api-model/clientapi v0.0.469 h1:SbIUwZrIsWu6WXSHRrU6kGMs+9MVv7lxuP53uoD3UbE= +github.com/openshift-online/ocm-api-model/clientapi v0.0.469/go.mod h1:fZwy5HY2URG9nrExvQeXrDU/08TGqZ16f8oymVEN5lo= +github.com/openshift-online/ocm-api-model/model v0.0.469 h1:Zfz1o01V5hurqP7CVEjPW5L0/3rRZgMbyRzMfHin8AY= +github.com/openshift-online/ocm-api-model/model v0.0.469/go.mod h1:PQIoq6P8Vlb7goOdRMLK8nJY+B7HH0RTqYAa4kyidTE= +github.com/openshift-online/ocm-sdk-go v0.1.515 h1:cioRrDcF5f0t4in+H1Qrk6u2L+A3PAJV8W5RpwNbYsE= +github.com/openshift-online/ocm-sdk-go v0.1.515/go.mod h1:1rP6JgFdlW8OJF9k8luQEb7mEZOPOTTCOEAKiPTg1uY= github.com/openshift/api v0.0.0-20260317165824-54a3998d81eb h1:iwBR3mzmyE3EMFx7R3CQ9lOccTS0dNht8TW82aGITg0= github.com/openshift/api v0.0.0-20260317165824-54a3998d81eb/go.mod h1:pyVjK0nZ4sRs4fuQVQ4rubsJdahI1PB94LnQ8sGdvxo= github.com/openshift/client-go v0.0.0-20260317180604-743f664b82d1 h1:Hr/R38eg5ZJXfbiaHumjJIN1buDZwhsm4ys4npVCXH0= From 43c8093ece3bf7c56a5c64ce3a323158b1ce5625 Mon Sep 17 00:00:00 2001 From: Mladen Todorovic Date: Wed, 30 Sep 2026 11:45:31 +0200 Subject: [PATCH 140/327] ROX-36859: Properly clean up files (#23131) --- pkg/registrymirror/store_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/registrymirror/store_test.go b/pkg/registrymirror/store_test.go index 1d31e682108ff..705603c959772 100644 --- a/pkg/registrymirror/store_test.go +++ b/pkg/registrymirror/store_test.go @@ -172,6 +172,14 @@ func TestDataRaceAtCleanup(t *testing.T) { s.Cleanup() doneSignal.Signal() wg.Wait() + + // The stopped writers may still have a delayed updateConfigNow scheduled. + // One more update cancels those pending writes and lets us wait for the pipeline to flush, + // so no background write recreates the file after Cleanup(). + source := icspA.Spec.RepositoryDigestMirrors[0].Source + require.NoError(t, s.UpsertImageContentSourcePolicy(icspA)) + require.Eventually(t, func() bool { return fileContains(path, source) }, 5*time.Second, 10*time.Millisecond) + s.Cleanup() } func TestCleanup(t *testing.T) { From b6ed23d075afd711be3d984aaaa5a6ec6040e94d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 12:22:01 +0200 Subject: [PATCH 141/327] chore(deps): bump github.com/grpc-ecosystem/go-grpc-middleware/v2 from 2.3.3 to 2.3.4 (#23151) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a1f9499ed93d7..9ec24e12bb8df 100644 --- a/go.mod +++ b/go.mod @@ -68,7 +68,7 @@ require ( github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 github.com/grafana/pyroscope-go v1.4.2 github.com/graph-gophers/graphql-go v1.10.3-0.20260702060009-60399cce0c05 - github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 + github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99 github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 github.com/hashicorp/go-multierror v1.1.1 diff --git a/go.sum b/go.sum index 4fb8ab445cbcd..a1e3af545ffcc 100644 --- a/go.sum +++ b/go.sum @@ -763,8 +763,8 @@ github.com/grafana/pyroscope-go/godeltaprof v0.1.11 h1:el5LYpXissAiCKZ5/6yjlr6mh github.com/grafana/pyroscope-go/godeltaprof v0.1.11/go.mod h1:jl1V8M4cWsXciROCPIDDG7CtjSjT/ECbp6eLVuMxYRI= github.com/graph-gophers/graphql-go v1.10.3-0.20260702060009-60399cce0c05 h1:nz9OX9q1iUJZwrPA2Ge8xNlB3inmq+pafyf6qmBLBew= github.com/graph-gophers/graphql-go v1.10.3-0.20260702060009-60399cce0c05/go.mod h1:AsADheC4CCFwd8n1/QbkduTlHgYYMsRgtPihYVAlEsk= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 h1:B+8ClL/kCQkRiU82d9xajRPKYMrB7E0MbtzWVi1K4ns= -github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3/go.mod h1:NbCUVmiS4foBGBHOYlCT25+YmGpJ32dZPi75pGEUpj4= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4 h1:9ZJYjPEJpcleIKcqysXOo14NLQYwu23fzmKRFpIjPjc= +github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4/go.mod h1:0xydIeg2omQ9DH6zYMP24Kk57793rnLUvP8fwdbFvz8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99 h1:JYghRBlGCZyCF2wNUJ8W0cwaQdtpcssJ4CgC406g+WU= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= From a0070cab84775552370990ba5d4b064e01897879 Mon Sep 17 00:00:00 2001 From: Yann Brillouet <91869377+rhybrillou@users.noreply.github.com> Date: Wed, 30 Sep 2026 15:42:26 +0200 Subject: [PATCH 142/327] fix(tests): clean up created policies first in AdmissionControllerTest (#23103) Co-authored-by: Claude Sonnet 4.5 --- .../groovy/AdmissionControllerTest.groovy | 66 +++++++++++++++---- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy index c031ef3011efd..766e3b4e3482a 100644 --- a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy +++ b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy @@ -1,5 +1,7 @@ import static util.Helpers.withRetry +import io.grpc.Status +import io.grpc.StatusRuntimeException import io.stackrox.proto.storage.Cve.VulnerabilitySeverity import io.stackrox.proto.storage.ImageOuterClass import io.stackrox.proto.storage.PolicyOuterClass @@ -132,8 +134,12 @@ class AdmissionControllerTest extends BaseSpecification { def cleanupSpec() { orchestrator.deleteNamespace(TEST_NAMESPACE) - for (policyID in createdPolicyIds) { - PolicyService.deletePolicy(policyID) + try { + for (policyID in createdPolicyIds) { + PolicyService.deletePolicy(policyID) + } + } catch (Exception e) { + log.warn "Failed to delete one or more policies during cleanup: ${e.message}" } } @@ -249,6 +255,32 @@ class AdmissionControllerTest extends BaseSpecification { log.warn "Failed to confirm deletion of deployment ${deployment.name}. Subsequent tests may be affected ..." } + private Exception deletePolicyWithCaution(String policyId) { + try { + if (policyId) { + PolicyService.deletePolicy(policyId) + // Wait for policy deletion to propagate to admission controller + withRetry(10, 1) { + def policyExists = true + try { + Services.getPolicy(policyId) + } catch (StatusRuntimeException e) { + if (e.status.code == Status.Code.NOT_FOUND) { + policyExists = false + } else { + throw e + } + } + assert !policyExists : "Policy ${policyId} still exists after deletion" + } + } + } catch (Exception e) { + log.warn "Failed to delete policy ${policyId}: ${e.message}" + return e + } + return null + } + // Retry to allow time for the admission controller to fetch scan data from // Central. Policies that require image enrichment (e.g. severity) may not // evaluate on the first attempt if the AC pod handling this request hasn't @@ -313,6 +345,9 @@ class AdmissionControllerTest extends BaseSpecification { assert created == !blocked cleanup: + // Delete policy first to avoid enforcement blocking cleanup, + // and to prevent leftover policy from impacting later tests. + def policyDeletionFailure = deletePolicyWithCaution(policyId) if (created) { deleteDeploymentWithCaution(deployment) } @@ -320,12 +355,12 @@ class AdmissionControllerTest extends BaseSpecification { // Wait for full namespace deletion; a namespace left in Terminating state // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). orchestrator.deleteNamespace(testNs) - } finally { - // Delete the per-test policy even if the namespace deletion above times out - // and throws, otherwise the leftover policy affects later tests. - if (policyId) { - PolicyService.deletePolicy(policyId) - } + } catch (Exception e) { + log.warn "Namespace ${testNs} deletion failed or timed out: ${e.message}" + throw e + } + if (policyDeletionFailure) { + throw policyDeletionFailure } where: @@ -417,6 +452,9 @@ class AdmissionControllerTest extends BaseSpecification { assert created2 cleanup: + // Delete policy first to avoid enforcement blocking cleanup, + // and to prevent leftover policy from impacting later tests. + def policyDeletionFailure = deletePolicyWithCaution(policyId) if (created2) { deleteDeploymentWithCaution(deployment2) } @@ -424,12 +462,12 @@ class AdmissionControllerTest extends BaseSpecification { // Wait for full namespace deletion; a namespace left in Terminating state // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). orchestrator.deleteNamespace(testNs) - } finally { - // Delete the per-test policy even if the namespace deletion above times out - // and throws, otherwise the leftover policy affects later tests. - if (policyId) { - PolicyService.deletePolicy(policyId) - } + } catch (Exception e) { + log.warn "Namespace ${testNs} deletion failed or timed out: ${e.message}" + throw e + } + if (policyDeletionFailure) { + throw policyDeletionFailure } where: From 87e01a1fbf80fb4e197aa4b9519201e255f0d606 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 15:48:27 +0200 Subject: [PATCH 143/327] chore(deps-dev): bump brace-expansion from 1.1.16 to 1.1.21 in /tests/performance/load (#23158) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/performance/load/package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/performance/load/package-lock.json b/tests/performance/load/package-lock.json index 638304c522bd7..1731398081606 100644 --- a/tests/performance/load/package-lock.json +++ b/tests/performance/load/package-lock.json @@ -258,10 +258,11 @@ "dev": true }, "node_modules/brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2715,9 +2716,9 @@ "dev": true }, "brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.21.tgz", + "integrity": "sha512-9zeA+KLZNNzglF2TPKRQEDyx6Yby7daAkuy8MiPzpXPsYDWi/DRM8jmwUDxokQjYqBpv5DgPiwD4h4ZZSy1Ujw==", "dev": true, "requires": { "balanced-match": "^1.0.0", From fe5c61e23dbae8c58d95eda69e2728fe3142f8dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 15:49:16 +0200 Subject: [PATCH 144/327] chore(deps-dev): bump moment from 2.29.4 to 2.31.0 in /tests/performance/load (#23159) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/performance/load/package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/performance/load/package-lock.json b/tests/performance/load/package-lock.json index 1731398081606..2dd22a073539b 100644 --- a/tests/performance/load/package-lock.json +++ b/tests/performance/load/package-lock.json @@ -1698,10 +1698,11 @@ } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz", + "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -3845,9 +3846,9 @@ } }, "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz", + "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==", "dev": true }, "ms": { From 2a358b3f41ac53fe7f82eef92efc16f7bab65d0a Mon Sep 17 00:00:00 2001 From: David House <105243888+davdhacs@users.noreply.github.com> Date: Wed, 30 Sep 2026 09:17:45 -0600 Subject: [PATCH 145/327] chore(ci): pin gha to ubuntu24.04 (#23078) --- .../workflows/add-new-pr-to-oss-triaging.yml | 2 +- .github/workflows/add-vms-to-cluster.yml | 2 +- .github/workflows/audit-backport-prs.yml | 4 +-- .github/workflows/auto-merge.yml | 2 +- .github/workflows/backport-pr.yaml | 2 +- .github/workflows/batch-load-test-metrics.yml | 2 +- .github/workflows/build.yaml | 32 +++++++++---------- .../workflows/check-crd-compatibility.yaml | 2 +- .../check-crd-frozen-on-release.yaml | 2 +- .github/workflows/check-pr-title.yaml | 2 +- .github/workflows/ci-failures-report.yml | 2 +- .github/workflows/create-clusters.yml | 2 +- .github/workflows/cut-rc.yml | 12 +++---- .github/workflows/detect-changes.yml | 2 +- .github/workflows/e2e-byodb-tests.yaml | 2 +- .../e2e-db-backup-restore-tests.yaml | 2 +- .github/workflows/e2e-dispatch.yaml | 4 +-- .github/workflows/e2e-gke-upgrade-tests.yaml | 6 ++-- .github/workflows/e2e-nongroovy-tests.yaml | 2 +- .github/workflows/e2e-qa-tests.yaml | 2 +- .../emailsender-central-compatibility.yaml | 2 +- .github/workflows/finish-release.yml | 10 +++--- .github/workflows/fixxxer.yaml | 2 +- .github/workflows/labeler.yaml | 2 +- .github/workflows/nightly-tag.yml | 4 +-- .github/workflows/notify-milestone-change.yml | 4 +-- .github/workflows/performance-tests.yml | 4 +-- .github/workflows/release-ci.yaml | 14 ++++---- .github/workflows/retest_periodic.yml | 2 +- .../workflows/scan-image-vulnerabilities.yaml | 6 ++-- .../scanner-db-integration-tests.yaml | 2 +- .github/workflows/scanner-e2e-test.yaml | 4 +-- .github/workflows/scanner-mapping-update.yaml | 4 +-- .github/workflows/scanner-nvd-update.yaml | 12 +++---- .../scanner-offline-bundle-update.yaml | 8 ++--- .github/workflows/scanner-updater-bundle.yaml | 6 ++-- .github/workflows/scanner-updater-export.yaml | 6 ++-- .../workflows/scanner-updater-schedule.yaml | 6 ++-- .../scanner-versioned-definitions-update.yaml | 12 +++---- .../workflows/signing-key-bundle-update.yaml | 4 +-- .github/workflows/start-release.yml | 20 ++++++------ .github/workflows/style.yaml | 18 +++++------ .github/workflows/tag-more-reviewers.yaml | 2 +- .github/workflows/tagged-ci.yaml | 2 +- .github/workflows/triage-report_periodic.yml | 2 +- .github/workflows/unit-tests.yaml | 20 ++++++------ .../workflows/update_collector_periodic.yaml | 2 +- .github/workflows/update_fact_periodic.yaml | 2 +- .github/workflows/upgrade-test.yml | 10 +++--- .github/workflows/variables.yml | 2 +- .github/workflows/verify-release.yml | 6 ++-- 51 files changed, 144 insertions(+), 144 deletions(-) diff --git a/.github/workflows/add-new-pr-to-oss-triaging.yml b/.github/workflows/add-new-pr-to-oss-triaging.yml index dfb5b52a95100..9d7a10996440f 100644 --- a/.github/workflows/add-new-pr-to-oss-triaging.yml +++ b/.github/workflows/add-new-pr-to-oss-triaging.yml @@ -9,7 +9,7 @@ env: jobs: check-pr-if-external: name: Add external label to pull request if outside StackRox - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: GH_TOKEN: ${{ github.token }} BASE_REPO: ${{ github.repository }} diff --git a/.github/workflows/add-vms-to-cluster.yml b/.github/workflows/add-vms-to-cluster.yml index 58eb968bd3a87..b790abaf6be2a 100644 --- a/.github/workflows/add-vms-to-cluster.yml +++ b/.github/workflows/add-vms-to-cluster.yml @@ -29,7 +29,7 @@ on: jobs: add-vms: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 60 env: INFRA_TOKEN: ${{ secrets.INFRA_TOKEN }} diff --git a/.github/workflows/audit-backport-prs.yml b/.github/workflows/audit-backport-prs.yml index 08ceefc68c375..b220cb7c4e725 100644 --- a/.github/workflows/audit-backport-prs.yml +++ b/.github/workflows/audit-backport-prs.yml @@ -29,7 +29,7 @@ env: jobs: properties: name: Read repository properties - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.properties.outputs.slack-channel, steps.properties.outputs.dry-slack-channel))[(github.event_name == 'workflow_dispatch' && inputs.dry_run) || github.event_name == 'pull_request'] }} steps: @@ -40,7 +40,7 @@ jobs: run: gh api -H "$ACCEPT_RAW" "$PROPERTIES_URL" >> "$GITHUB_OUTPUT" audit: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [properties] permissions: contents: read diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 5ae4329f1151d..1a18592aebca3 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -16,7 +16,7 @@ concurrency: jobs: auto-merge: name: Enable auto-merge for eligible PRs - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.repository_owner == 'stackrox' steps: diff --git a/.github/workflows/backport-pr.yaml b/.github/workflows/backport-pr.yaml index 817043cc41ea0..dc54e31818fce 100644 --- a/.github/workflows/backport-pr.yaml +++ b/.github/workflows/backport-pr.yaml @@ -16,7 +16,7 @@ defaults: jobs: backport: name: Backport - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 # Only react to merged PRs for security reasons. # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target. if: > diff --git a/.github/workflows/batch-load-test-metrics.yml b/.github/workflows/batch-load-test-metrics.yml index 8168c7cfd63fd..f798db49af93d 100644 --- a/.github/workflows/batch-load-test-metrics.yml +++ b/.github/workflows/batch-load-test-metrics.yml @@ -10,7 +10,7 @@ concurrency: Batch load test metrics jobs: batch-load-test-metrics: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11@sha256:df3459cf038e73775314b3a5d36d14dda41e6df438a0273c9efa8d23e0f2358a # ratchet:quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11 steps: diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6776ef11d814c..d2932976e7487 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -164,7 +164,7 @@ jobs: ROX_PRODUCT_BRANDING: ${{ matrix.branding }} # For consistency with `image/rhel/konflux.Dockerfile`, see comment there. UI_PKG_INSTALL_EXTRA_ARGS: --ignore-scripts - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -205,7 +205,7 @@ jobs: pre-build-cli: needs: define-job-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: BUILD_TAG: ${{ needs.define-job-matrix.outputs.build-tag }} SHORTCOMMIT: ${{ needs.define-job-matrix.outputs.short-commit }} @@ -283,7 +283,7 @@ jobs: # race-condition-debug - built with -race matrix: ${{ fromJson(needs.define-job-matrix.outputs.matrix).pre_build_go_binaries }} needs: define-job-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: BUILD_TAG: ${{ needs.define-job-matrix.outputs.build-tag }} SHORTCOMMIT: ${{ needs.define-job-matrix.outputs.short-commit }} @@ -363,7 +363,7 @@ jobs: compression-level: 1 pre-build-docs: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -394,7 +394,7 @@ jobs: image/rhel/docs pre-build-oss-notice: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -435,7 +435,7 @@ jobs: path: image/rhel/THIRD_PARTY_NOTICES build-and-push-db: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - define-job-matrix if: ${{ !cancelled() }} @@ -541,7 +541,7 @@ jobs: "docker://quay.io/rhacs-eng/scanner-v4-db:${{ env.BUILD_TAG }}" build-operator-bundle: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: QUAY_ORG: rhacs-eng QUAY_RHACS_ENG_RW_PASSWORD: ${{ secrets.QUAY_RHACS_ENG_RW_PASSWORD }} @@ -579,7 +579,7 @@ jobs: build-and-push-main: # Use native arm64 runner to avoid QEMU emulation overhead (~2x slower). - runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-latest' }} + runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-24.04' }} needs: - define-job-matrix - pre-build-cli @@ -755,7 +755,7 @@ jobs: push_main_image_set "$push_context" "${{ env.ROX_PRODUCT_BRANDING }}" "${{ matrix.arch }}" push-matching-collector-scanner: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - define-job-matrix if: ${{ !cancelled() }} @@ -788,7 +788,7 @@ jobs: push_matching_collector_scanner_images "${{ env.ROX_PRODUCT_BRANDING }}" push-main-manifests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - define-job-matrix - build-and-push-main @@ -911,7 +911,7 @@ jobs: message-path: build-comment.md build-and-push-operator: - runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-latest' }} + runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-24.04' }} needs: - define-job-matrix - pre-build-go-binaries @@ -1027,7 +1027,7 @@ jobs: echo "Operator image push completed successfully" build-and-push-scanner: - runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-latest' }} + runs-on: ${{ (matrix.arch == 'arm64' && 'ubuntu-24.04-arm') || 'ubuntu-24.04' }} needs: - define-job-matrix - build-and-push-db @@ -1111,7 +1111,7 @@ jobs: push_scanner_image_set "${{ matrix.registry }}" "${{ matrix.arch }}" push-scanner-manifests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - define-job-matrix - build-and-push-scanner @@ -1171,7 +1171,7 @@ jobs: push_scanner_image_manifest_lists "${{ matrix.registry }}" "$architectures" push-operator-manifests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - define-job-matrix - build-and-push-operator @@ -1228,7 +1228,7 @@ jobs: contains(github.event.pull_request.labels.*.name, 'scan-go-binaries') env: ARTIFACT_DIR: junit-reports/ - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - pre-build-cli - pre-build-go-binaries @@ -1289,7 +1289,7 @@ jobs: contains(github.event.pull_request.labels.*.name, 'ci-test-github-action-slack-messages') ) name: Post failure message to Slack - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - build-and-push-db - build-and-push-main diff --git a/.github/workflows/check-crd-compatibility.yaml b/.github/workflows/check-crd-compatibility.yaml index 95ba18adc4a75..5aa9f878ea3ab 100644 --- a/.github/workflows/check-crd-compatibility.yaml +++ b/.github/workflows/check-crd-compatibility.yaml @@ -23,7 +23,7 @@ jobs: check-crd-compatibility: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11@sha256:df3459cf038e73775314b3a5d36d14dda41e6df438a0273c9efa8d23e0f2358a # ratchet:quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11 outputs: diff --git a/.github/workflows/check-crd-frozen-on-release.yaml b/.github/workflows/check-crd-frozen-on-release.yaml index fa64eb4493aec..981253e8cfb15 100644 --- a/.github/workflows/check-crd-frozen-on-release.yaml +++ b/.github/workflows/check-crd-frozen-on-release.yaml @@ -35,7 +35,7 @@ permissions: jobs: check-crds-frozen: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout stackrox/stackrox uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/check-pr-title.yaml b/.github/workflows/check-pr-title.yaml index 5212dfd3ac09b..49afd75bf89a4 100644 --- a/.github/workflows/check-pr-title.yaml +++ b/.github/workflows/check-pr-title.yaml @@ -6,7 +6,7 @@ on: jobs: check-title: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: PR_TITLE: ${{ github.event.pull_request.title }} steps: diff --git a/.github/workflows/ci-failures-report.yml b/.github/workflows/ci-failures-report.yml index 9be7d94707cf8..a2e0e03d9a7bf 100644 --- a/.github/workflows/ci-failures-report.yml +++ b/.github/workflows/ci-failures-report.yml @@ -18,7 +18,7 @@ on: jobs: report-e2e-failures-to-slack: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/create-clusters.yml b/.github/workflows/create-clusters.yml index 5249b320bacbf..cda2e693e84e4 100644 --- a/.github/workflows/create-clusters.yml +++ b/.github/workflows/create-clusters.yml @@ -42,7 +42,7 @@ concurrency: Release automation ${{ inputs.version }} jobs: trim-cluster-names: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: cluster-with-fake-load-name-cleaned: ${{ steps.cluster-names.outputs.cluster-with-fake-load-name-cleaned }} cluster-with-real-load-name-cleaned: ${{ steps.cluster-names.outputs.cluster-with-real-load-name-cleaned }} diff --git a/.github/workflows/cut-rc.yml b/.github/workflows/cut-rc.yml index 402dda5b0e6a2..6baf9ba5875a9 100644 --- a/.github/workflows/cut-rc.yml +++ b/.github/workflows/cut-rc.yml @@ -60,7 +60,7 @@ concurrency: Release automation ${{ inputs.version }} jobs: properties: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.fetch.outputs.dry-slack-channel, steps.fetch.outputs.slack-channel))[github.event.inputs.dry-run != 'true'] }} jira-project: ${{ steps.fetch.outputs.jira-project }} @@ -73,7 +73,7 @@ jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | [ "$DRY_RUN" = "true" ] && echo "::warning::This is a dry run" @@ -96,7 +96,7 @@ jobs: check-jira: name: Check Jira tickets for release needs: [variables, properties] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Query JIRA # Checking unequal with "false" because closed milestones have unset input values. @@ -117,7 +117,7 @@ jobs: postpone-prs: name: Postpone open PRs needs: variables - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check open PRs id: check @@ -173,7 +173,7 @@ jobs: cut-rc: name: Tag RC for milestone ${{needs.variables.outputs.milestone}} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [variables, properties, postpone-prs, check-jira] steps: - name: Check out code @@ -308,7 +308,7 @@ jobs: :arrow_right: Once all checks pass and you're ready for release, run the <${{ github.server_url }}/${{ github.repository }}/actions/workflows/finish-release.yml|Finish Release> workflow and delete the `${{ needs.variables.outputs.next-milestone }}` milestone to avoid confusion. trim-cluster-names: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: cluster-with-fake-load-name-cleaned: ${{ steps.cluster-names.outputs.cluster-with-fake-load-name-cleaned }} cluster-with-real-load-name-cleaned: ${{ steps.cluster-names.outputs.cluster-with-real-load-name-cleaned }} diff --git a/.github/workflows/detect-changes.yml b/.github/workflows/detect-changes.yml index b36dab630fc9f..8cced67cfd949 100644 --- a/.github/workflows/detect-changes.yml +++ b/.github/workflows/detect-changes.yml @@ -39,7 +39,7 @@ on: jobs: detect: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: files: ${{ steps.list.outputs.files }} ui_only: ${{ steps.list.outputs.ui_only }} diff --git a/.github/workflows/e2e-byodb-tests.yaml b/.github/workflows/e2e-byodb-tests.yaml index 7b698cd05a5a1..ea298e07a8dba 100644 --- a/.github/workflows/e2e-byodb-tests.yaml +++ b/.github/workflows/e2e-byodb-tests.yaml @@ -29,7 +29,7 @@ defaults: jobs: gke-byodb-qa-e2e-tests: if: github.event_name == 'workflow_dispatch' || inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} diff --git a/.github/workflows/e2e-db-backup-restore-tests.yaml b/.github/workflows/e2e-db-backup-restore-tests.yaml index eff0bfcb79fda..d2a890a0daad5 100644 --- a/.github/workflows/e2e-db-backup-restore-tests.yaml +++ b/.github/workflows/e2e-db-backup-restore-tests.yaml @@ -29,7 +29,7 @@ defaults: jobs: gke-db-backup-restore-tests: if: github.event_name == 'workflow_dispatch' || inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} diff --git a/.github/workflows/e2e-dispatch.yaml b/.github/workflows/e2e-dispatch.yaml index 178a967d166e7..b0e1870ba2007 100644 --- a/.github/workflows/e2e-dispatch.yaml +++ b/.github/workflows/e2e-dispatch.yaml @@ -135,7 +135,7 @@ jobs: wait-for-images: needs: [ should-dispatch ] if: needs.should-dispatch.outputs.wait-for-gha-images == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG_DIR: "." IMAGE_PREFIX: "" @@ -198,7 +198,7 @@ jobs: wait-for-konflux-images: needs: [ should-dispatch ] if: needs.should-dispatch.outputs.wait-for-konflux-images == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG_DIR: "operator" IMAGE_PREFIX: "release-" diff --git a/.github/workflows/e2e-gke-upgrade-tests.yaml b/.github/workflows/e2e-gke-upgrade-tests.yaml index 40f394eb5c724..d4f5977da436a 100644 --- a/.github/workflows/e2e-gke-upgrade-tests.yaml +++ b/.github/workflows/e2e-gke-upgrade-tests.yaml @@ -31,7 +31,7 @@ jobs: # Verifies Central DB upgrades/rollbacks. gke-upgrade-tests-central: if: github.event_name == 'workflow_dispatch' || inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} @@ -201,7 +201,7 @@ jobs: gke-upgrade-tests-postgres: needs: check-postgres-upgrade if: needs.check-postgres-upgrade.outputs.required == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} @@ -352,7 +352,7 @@ jobs: # Verifies Sensor/Secured Cluster `upgrader` (applicable to manifest installations only). gke-upgrade-tests-sensor: if: github.event_name == 'workflow_dispatch' || inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} diff --git a/.github/workflows/e2e-nongroovy-tests.yaml b/.github/workflows/e2e-nongroovy-tests.yaml index d7a1cead3ca7d..e3df36cf7a676 100644 --- a/.github/workflows/e2e-nongroovy-tests.yaml +++ b/.github/workflows/e2e-nongroovy-tests.yaml @@ -29,7 +29,7 @@ defaults: jobs: gke-nongroovy-e2e-tests: if: github.event_name == 'workflow_dispatch' || inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} diff --git a/.github/workflows/e2e-qa-tests.yaml b/.github/workflows/e2e-qa-tests.yaml index fe63f141908e0..9427cfc7cb047 100644 --- a/.github/workflows/e2e-qa-tests.yaml +++ b/.github/workflows/e2e-qa-tests.yaml @@ -72,7 +72,7 @@ defaults: jobs: qa-e2e-tests: if: inputs.should-run - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: MAIN_IMAGE_TAG: ${{ inputs.tag }} BUILD_TAG: ${{ inputs.tag }} diff --git a/.github/workflows/emailsender-central-compatibility.yaml b/.github/workflows/emailsender-central-compatibility.yaml index 9600d3cf78c94..ddbb8a009c46c 100644 --- a/.github/workflows/emailsender-central-compatibility.yaml +++ b/.github/workflows/emailsender-central-compatibility.yaml @@ -27,7 +27,7 @@ jobs: e2e-test-on-kind: timeout-minutes: 60 name: "Test on kind cluster" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ !github.event.pull_request.head.repo.fork }} # do not run for PRs from forks permissions: id-token: write diff --git a/.github/workflows/finish-release.yml b/.github/workflows/finish-release.yml index 480a4b67d6bfc..3e7a22ecaeed7 100644 --- a/.github/workflows/finish-release.yml +++ b/.github/workflows/finish-release.yml @@ -34,7 +34,7 @@ concurrency: Release automation ${{ inputs.version }} jobs: properties: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.fetch.outputs.dry-slack-channel, steps.fetch.outputs.slack-channel))[github.event.inputs.dry-run != 'true'] }} steps: @@ -47,7 +47,7 @@ jobs: run-parameters: if: github.event_name == 'workflow_dispatch' name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | [ "$DRY_RUN" = "true" ] && echo "::warning::This is a dry run" @@ -70,7 +70,7 @@ jobs: preflight-checks: needs: [variables] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Verify that this release is listed in scanner’s RELEASE_VERSION file on master run: | @@ -81,7 +81,7 @@ jobs: publish-release: name: Tag Release ${{ needs.variables.outputs.named-release-patch }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [variables, properties, preflight-checks] steps: - name: Check out code @@ -183,7 +183,7 @@ jobs: update-infra-demo-version: name: Update infra demo default versions - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [publish-release] env: BRANCH: "bump-demo-versions-${{ inputs.version }}" diff --git a/.github/workflows/fixxxer.yaml b/.github/workflows/fixxxer.yaml index d581a1ae15229..f2706f6355ef5 100644 --- a/.github/workflows/fixxxer.yaml +++ b/.github/workflows/fixxxer.yaml @@ -15,7 +15,7 @@ jobs: name: Run PR Fixxxer # TODO: support leading and trailing whitespace too if: ${{ github.event.issue.pull_request && github.event.comment.body == '/fixxx' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11@sha256:df3459cf038e73775314b3a5d36d14dda41e6df438a0273c9efa8d23e0f2358a # ratchet:quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11 steps: diff --git a/.github/workflows/labeler.yaml b/.github/workflows/labeler.yaml index 3a48fb21bfee2..53e135c2eebf5 100644 --- a/.github/workflows/labeler.yaml +++ b/.github/workflows/labeler.yaml @@ -8,7 +8,7 @@ on: jobs: label-pr: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ github.actor != 'dependabot[bot]' && !github.event.pull_request.head.repo.fork }} steps: - uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # ratchet:actions/labeler@v6 diff --git a/.github/workflows/nightly-tag.yml b/.github/workflows/nightly-tag.yml index f40edc3724b0e..6ef44bae5fd8f 100644 --- a/.github/workflows/nightly-tag.yml +++ b/.github/workflows/nightly-tag.yml @@ -6,7 +6,7 @@ on: jobs: create-nightly-tag: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -20,7 +20,7 @@ jobs: slack-on-failure: needs: create-nightly-tag if: failure() - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Slack on failure uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # ratchet:slackapi/slack-github-action@v3.0.3 diff --git a/.github/workflows/notify-milestone-change.yml b/.github/workflows/notify-milestone-change.yml index a6a648b50dec0..dc327ead0b241 100644 --- a/.github/workflows/notify-milestone-change.yml +++ b/.github/workflows/notify-milestone-change.yml @@ -18,7 +18,7 @@ env: jobs: properties: name: Read repository properties - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: docs-repository: ${{ steps.properties.outputs.docs-repository }} slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.properties.outputs.dry-slack-channel, steps.properties.outputs.slack-channel))[github.repository == 'stackrox/stackrox'] }} @@ -31,7 +31,7 @@ jobs: run: gh api -H "$ACCEPT_RAW" "$PROPERTIES_URL" >> "$GITHUB_OUTPUT" notify: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [properties] steps: - name: Determine Jira context for PR diff --git a/.github/workflows/performance-tests.yml b/.github/workflows/performance-tests.yml index c1561db61871e..13ced2205fb65 100644 --- a/.github/workflows/performance-tests.yml +++ b/.github/workflows/performance-tests.yml @@ -10,7 +10,7 @@ concurrency: performance-tests-${{ github.ref }} jobs: wait-for-images: name: Wait for images - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ contains(github.event.pull_request.labels.*.name, 'ci-performance-tests') }} steps: - name: Checkout repo @@ -33,7 +33,7 @@ jobs: run-k6-performance-tests: needs: [wait-for-images] name: Run k6 performance tests - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ contains(github.event.pull_request.labels.*.name, 'ci-performance-tests') }} env: USE_GKE_GCLOUD_AUTH_PLUGIN: "True" diff --git a/.github/workflows/release-ci.yaml b/.github/workflows/release-ci.yaml index ea7cc7238d2b6..32c8cd7fb54c5 100644 --- a/.github/workflows/release-ci.yaml +++ b/.github/workflows/release-ci.yaml @@ -9,7 +9,7 @@ on: jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | echo "Event: ${{ github.event_name }}" >> "$GITHUB_STEP_SUMMARY" @@ -21,7 +21,7 @@ jobs: secrets: inherit check-is-release: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: is_release: ${{ steps.is_release_check.outputs.is_release }} steps: @@ -40,7 +40,7 @@ jobs: fi check-collector-version: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -53,7 +53,7 @@ jobs: check_collector_version check-fact-version: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -68,7 +68,7 @@ jobs: publish-helm-charts: needs: [build, check-collector-version, check-fact-version, check-is-release] if: needs.check-is-release.outputs.is_release == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -97,7 +97,7 @@ jobs: publish-cli: needs: [build, check-collector-version, check-fact-version, check-is-release] if: needs.check-is-release.outputs.is_release == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -123,7 +123,7 @@ jobs: publish-openapispec: needs: [build, check-collector-version, check-fact-version, check-is-release] if: needs.check-is-release.outputs.is_release == 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/retest_periodic.yml b/.github/workflows/retest_periodic.yml index d30e223e91813..3c371a6102804 100644 --- a/.github/workflows/retest_periodic.yml +++ b/.github/workflows/retest_periodic.yml @@ -10,7 +10,7 @@ jobs: retest: if: ${{ github.repository_owner == 'stackrox' }} timeout-minutes: 10 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/scan-image-vulnerabilities.yaml b/.github/workflows/scan-image-vulnerabilities.yaml index 2ee393ab6b219..bb4befe0852d1 100644 --- a/.github/workflows/scan-image-vulnerabilities.yaml +++ b/.github/workflows/scan-image-vulnerabilities.yaml @@ -21,7 +21,7 @@ run-name: ${{ format('Scan images for vulnerabilities ({0})', inputs.version || jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: wait-for-images-limit: ${{ steps.run-parameters.outputs.wait-for-images-limit }} version: ${{ steps.run-parameters.outputs.version }} @@ -47,7 +47,7 @@ jobs: scan-image-vulnerabilities-upstream: name: "Upstream: ${{ matrix.image }}:${{ needs.run-parameters.outputs.version }}" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [run-parameters] permissions: # Needed for stackrox/central-login to create the JWT token. @@ -99,7 +99,7 @@ jobs: scan-image-vulnerabilities-konflux: name: "Konflux: ${{ matrix.image }}:${{ needs.run-parameters.outputs.version }}" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [run-parameters] permissions: # Needed for stackrox/central-login to create the JWT token. diff --git a/.github/workflows/scanner-db-integration-tests.yaml b/.github/workflows/scanner-db-integration-tests.yaml index 785f47924b715..effbe1190271e 100644 --- a/.github/workflows/scanner-db-integration-tests.yaml +++ b/.github/workflows/scanner-db-integration-tests.yaml @@ -20,7 +20,7 @@ jobs: db-integration-tests: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11@sha256:cea78f2b3a5a38c9ccda678712daaed90b7c372d6b5df963feb758b32dccebe1 # ratchet:quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11 steps: diff --git a/.github/workflows/scanner-e2e-test.yaml b/.github/workflows/scanner-e2e-test.yaml index e4ee1333e3964..b2d0e9670e165 100644 --- a/.github/workflows/scanner-e2e-test.yaml +++ b/.github/workflows/scanner-e2e-test.yaml @@ -14,7 +14,7 @@ jobs: if: > github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'scanner-functional-tests') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -36,7 +36,7 @@ jobs: name: Deploy and run needs: - scanner-ft-images - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: SCANNER_E2E_QUAY_USERNAME: ${{ secrets.QUAY_RHACS_ENG_RO_USERNAME }} SCANNER_E2E_QUAY_PASSWORD: ${{ secrets.QUAY_RHACS_ENG_RO_PASSWORD }} diff --git a/.github/workflows/scanner-mapping-update.yaml b/.github/workflows/scanner-mapping-update.yaml index 9883bf11b4c04..236c427937429 100644 --- a/.github/workflows/scanner-mapping-update.yaml +++ b/.github/workflows/scanner-mapping-update.yaml @@ -7,7 +7,7 @@ on: jobs: update-scanner-mappings: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: REPOMAPPING_DIR: repomapping steps: @@ -37,7 +37,7 @@ jobs: send-notification: needs: update-scanner-mappings if: failure() - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read checks: read diff --git a/.github/workflows/scanner-nvd-update.yaml b/.github/workflows/scanner-nvd-update.yaml index 0a29f375363c7..8294ffb27ab71 100644 --- a/.github/workflows/scanner-nvd-update.yaml +++ b/.github/workflows/scanner-nvd-update.yaml @@ -12,7 +12,7 @@ on: jobs: fetch-nvd-feeds: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: > github.repository_owner == 'stackrox' && github.event_name == 'schedule' || @@ -51,7 +51,7 @@ jobs: if-no-files-found: error fetch-nvd-api: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: > github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || @@ -94,7 +94,7 @@ jobs: upload-pr-nvd-feeds: needs: - fetch-nvd-feeds - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'pr-update-scanner-nvd') steps: # Checkout master to get the latest local actions @@ -153,7 +153,7 @@ jobs: upload-nvd-feeds: needs: - fetch-nvd-feeds - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event_name != 'pull_request' steps: - name: Checkout repository @@ -182,7 +182,7 @@ jobs: upload-nvd-api: needs: - fetch-nvd-api - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event_name != 'pull_request' steps: - name: Checkout repository @@ -212,7 +212,7 @@ jobs: needs: - upload-nvd-feeds - upload-nvd-api - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ failure() && github.ref_name == 'master' }} permissions: contents: read diff --git a/.github/workflows/scanner-offline-bundle-update.yaml b/.github/workflows/scanner-offline-bundle-update.yaml index 657246451eb02..10213e553e435 100644 --- a/.github/workflows/scanner-offline-bundle-update.yaml +++ b/.github/workflows/scanner-offline-bundle-update.yaml @@ -11,7 +11,7 @@ on: jobs: offline-bundle-matrix: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: > github.repository_owner == 'stackrox' && github.event_name == 'schedule' || @@ -36,7 +36,7 @@ jobs: offline-bundle-generate: needs: offline-bundle-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: @@ -69,7 +69,7 @@ jobs: if-no-files-found: error offline-bundle-upload: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - offline-bundle-generate steps: @@ -125,7 +125,7 @@ jobs: - offline-bundle-matrix - offline-bundle-generate - offline-bundle-upload - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event_name == 'schedule' && failure() permissions: contents: read diff --git a/.github/workflows/scanner-updater-bundle.yaml b/.github/workflows/scanner-updater-bundle.yaml index 8f26a5e8e6ba4..de4e98dc7c40a 100644 --- a/.github/workflows/scanner-updater-bundle.yaml +++ b/.github/workflows/scanner-updater-bundle.yaml @@ -21,7 +21,7 @@ permissions: jobs: build-matrix: if: github.repository_owner == 'stackrox' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: streams: ${{ steps.emit.outputs.streams }} steps: @@ -40,7 +40,7 @@ jobs: bundle: needs: build-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11@sha256:cea78f2b3a5a38c9ccda678712daaed90b7c372d6b5df963feb758b32dccebe1 volumes: @@ -216,7 +216,7 @@ jobs: notify: needs: [bundle] if: always() && needs.bundle.result == 'failure' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read checks: read diff --git a/.github/workflows/scanner-updater-export.yaml b/.github/workflows/scanner-updater-export.yaml index 91e3862ab8ba4..cbe0b3a3fa41c 100644 --- a/.github/workflows/scanner-updater-export.yaml +++ b/.github/workflows/scanner-updater-export.yaml @@ -40,7 +40,7 @@ permissions: jobs: recheck: if: ${{ !inputs.skip_freshness_check }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: result: ${{ steps.check.outputs.result }} concurrency: @@ -89,7 +89,7 @@ jobs: update: needs: recheck if: always() && (needs.recheck.result == 'skipped' || needs.recheck.outputs.result == 'run') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 concurrency: group: scanner-updater-export-${{ inputs.object }} cancel-in-progress: false @@ -195,7 +195,7 @@ jobs: !inputs.skip_freshness_check && always() && (needs.recheck.result == 'failure' || needs.update.result == 'failure') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read checks: read diff --git a/.github/workflows/scanner-updater-schedule.yaml b/.github/workflows/scanner-updater-schedule.yaml index 7999ec6045cbc..0fb2cc1079316 100644 --- a/.github/workflows/scanner-updater-schedule.yaml +++ b/.github/workflows/scanner-updater-schedule.yaml @@ -21,7 +21,7 @@ jobs: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'pr-update-scanner-vulns') ) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: needs-notification: ${{ steps.matrix-scheduled.outputs.has_errors }} steps: @@ -98,7 +98,7 @@ jobs: plan: needs: build-matrix - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: has_due: ${{ steps.emit.outputs.has_due }} matrix: ${{ steps.emit.outputs.matrix }} @@ -152,7 +152,7 @@ jobs: if: >- github.event_name != 'pull_request' && (failure() || needs.build-matrix.outputs.needs-notification == 'true') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: read checks: read diff --git a/.github/workflows/scanner-versioned-definitions-update.yaml b/.github/workflows/scanner-versioned-definitions-update.yaml index 3216f74a5bcf5..c9ba26d32df8f 100644 --- a/.github/workflows/scanner-versioned-definitions-update.yaml +++ b/.github/workflows/scanner-versioned-definitions-update.yaml @@ -43,7 +43,7 @@ on: jobs: parse-versions: if: github.repository_owner == 'stackrox' && github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'pr-update-scanner-vulns') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: versions: ${{ steps.set-versions.outputs.versions }} steps: @@ -102,7 +102,7 @@ jobs: prepare-environment: if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'pr-update-scanner-vulns') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: manual_url: ${{ steps.set-manual-url.outputs.manual_url }} steps: @@ -187,7 +187,7 @@ jobs: needs: - parse-versions - prepare-environment - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11@sha256:cea78f2b3a5a38c9ccda678712daaed90b7c372d6b5df963feb758b32dccebe1 # ratchet:quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11 volumes: @@ -340,7 +340,7 @@ jobs: if: github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'pr-update-scanner-vulns') needs: - prepare-environment - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11@sha256:cea78f2b3a5a38c9ccda678712daaed90b7c372d6b5df963feb758b32dccebe1 # ratchet:quay.io/stackrox-io/apollo-ci:scanner-test-0.5.11 volumes: @@ -430,7 +430,7 @@ jobs: needs: - build-and-run if: ${{ (failure() || success()) && (github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'false')) }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: # Checkout to run ./.github/actions/download-artifact-with-retry - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -510,7 +510,7 @@ jobs: needs: - build-and-run - upload-definitions - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ failure() && github.ref_name == 'master' && (github.event_name == 'schedule' || github.event.inputs.dry_run == 'false') }} permissions: checks: read diff --git a/.github/workflows/signing-key-bundle-update.yaml b/.github/workflows/signing-key-bundle-update.yaml index d456185299106..fda57fde6bd44 100644 --- a/.github/workflows/signing-key-bundle-update.yaml +++ b/.github/workflows/signing-key-bundle-update.yaml @@ -18,7 +18,7 @@ concurrency: jobs: validate-and-upload: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -48,7 +48,7 @@ jobs: send-notification: needs: - validate-and-upload - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: failure() permissions: contents: read diff --git a/.github/workflows/start-release.yml b/.github/workflows/start-release.yml index 34116d543db82..d23caf47e4a8b 100644 --- a/.github/workflows/start-release.yml +++ b/.github/workflows/start-release.yml @@ -42,7 +42,7 @@ concurrency: Release automation ${{ inputs.version }} jobs: start-sha: name: Find commit for release branch - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: start-sha: ${{ fromJSON(format('["{0}","{1}"]', env.USER_REF, steps.find.outputs.merge_base))[env.USER_REF == ''] }} steps: @@ -67,7 +67,7 @@ jobs: properties: name: Read repository properties - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: docs-repository: ${{ steps.properties.outputs.docs-repository }} slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.properties.outputs.dry-slack-channel, steps.properties.outputs.slack-channel))[github.event.inputs.dry-run != 'true'] }} @@ -81,7 +81,7 @@ jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | [ "$DRY_RUN" = "true" ] && echo "::warning::This is a dry run" @@ -102,7 +102,7 @@ jobs: check-jira: name: Check Jira release needs: [variables, properties] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: release-date: ${{steps.check-jira-release.outputs.date}} steps: @@ -122,7 +122,7 @@ jobs: branch: name: Prepare release branch needs: [variables, start-sha, check-jira] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check out code (normal release) if: needs.variables.outputs.patch == 0 @@ -193,7 +193,7 @@ jobs: name: Configure OpenShift CI jobs needs: [variables, branch] if: needs.variables.outputs.patch == 0 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: RELEASE: "${{needs.variables.outputs.release}}" BRANCH: "stackrox-release-${{needs.variables.outputs.release}}" @@ -262,7 +262,7 @@ jobs: name: Patch CHANGELOG.md on the default branch needs: [variables, branch, start-sha] if: needs.variables.outputs.patch == 0 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check out code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -288,7 +288,7 @@ jobs: patch-scanner-versions: name: Patch Scanner updater configuration needs: [variables, branch] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check out code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -310,7 +310,7 @@ jobs: milestone: name: Create milestone needs: [variables] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Create ${{needs.variables.outputs.next-milestone}} milestone if: env.DRY_RUN == 'false' @@ -336,7 +336,7 @@ jobs: notify: name: Notify everybody needs: [variables, properties, branch, milestone] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Post to Slack (normal release) if: needs.variables.outputs.patch == 0 diff --git a/.github/workflows/style.yaml b/.github/workflows/style.yaml index 0cfe9f54c7978..3989115a09bab 100644 --- a/.github/workflows/style.yaml +++ b/.github/workflows/style.yaml @@ -27,7 +27,7 @@ jobs: if: ${{ !needs.detect-changes.outputs.ui_only }} env: ARTIFACT_DIR: junit-reports/ - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -54,7 +54,7 @@ jobs: misc-checks: env: ARTIFACT_DIR: junit-reports/ - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -97,7 +97,7 @@ jobs: run: if [ -s scripts/ci/jobs/check-dependabot-gomod.sh ]; then scripts/ci/jobs/check-dependabot-gomod.sh; fi style-check: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -159,7 +159,7 @@ jobs: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} timeout-minutes: 240 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -208,7 +208,7 @@ jobs: # This job ensures that COLLECTOR_VERSION or FACT_VERSION files cannot be updated to a version # for which the image was not successfully built on Konflux (suffix "-fast"). It also verifies that GHA-built image # is there (no suffix) so that the failure also happens in this job. - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout repo uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -253,7 +253,7 @@ jobs: if: >- !needs.detect-changes.outputs.files || contains(needs.detect-changes.outputs.files, '^.github/') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: ./.github/actions/job-preamble @@ -267,7 +267,7 @@ jobs: if: >- !needs.detect-changes.outputs.files || contains(needs.detect-changes.outputs.files, '^.github/') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 - uses: ./.github/actions/job-preamble @@ -281,7 +281,7 @@ jobs: if: >- !needs.detect-changes.outputs.files || contains(needs.detect-changes.outputs.files, '^.openshift-ci/') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -313,7 +313,7 @@ jobs: contains(github.event.pull_request.labels.*.name, 'ci-test-github-action-slack-messages') ) name: Post failure message to Slack - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - check-generated-files - misc-checks diff --git a/.github/workflows/tag-more-reviewers.yaml b/.github/workflows/tag-more-reviewers.yaml index f6ce74aac7c50..4b94157c38a6d 100644 --- a/.github/workflows/tag-more-reviewers.yaml +++ b/.github/workflows/tag-more-reviewers.yaml @@ -18,7 +18,7 @@ jobs: github.event.pull_request.user.login != 'red-hat-konflux[bot]' env: GH_TOKEN: ${{ secrets.RHACS_BOT_GITHUB_TOKEN }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Tag Konflux Maintainers for review run: | diff --git a/.github/workflows/tagged-ci.yaml b/.github/workflows/tagged-ci.yaml index 028412d071aa8..e936f4f4ea0ca 100644 --- a/.github/workflows/tagged-ci.yaml +++ b/.github/workflows/tagged-ci.yaml @@ -8,7 +8,7 @@ on: jobs: slack-tagged-notice: name: Slack Tagged Notice - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/triage-report_periodic.yml b/.github/workflows/triage-report_periodic.yml index 4843660c8ab0b..2df7169befde0 100644 --- a/.github/workflows/triage-report_periodic.yml +++ b/.github/workflows/triage-report_periodic.yml @@ -6,7 +6,7 @@ on: jobs: triage-report: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index d5ca5b28812be..51b67cd25c7f2 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -41,7 +41,7 @@ jobs: gotags: [ 'GOTAGS=""', 'GOTAGS=release' ] exclude: - gotags: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci-release-build') && 'GOTAGS=release' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} steps: @@ -116,7 +116,7 @@ jobs: exclude: - gotags: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci-release-build') && 'GOTAGS=release' }} - pg: ${{ github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'ci-postgres-tests') && 'default' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} env: @@ -205,7 +205,7 @@ jobs: go-bench: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -264,7 +264,7 @@ jobs: !needs.detect-changes.outputs.files || contains(needs.detect-changes.outputs.files, '^ui/') || contains(needs.detect-changes.outputs.files, '^.github/actions/cache-ui-dependencies/') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} steps: @@ -318,7 +318,7 @@ jobs: !needs.detect-changes.outputs.files || contains(needs.detect-changes.outputs.files, '^ui/') || contains(needs.detect-changes.outputs.files, '^.github/actions/cache-ui-dependencies/') - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} steps: @@ -380,7 +380,7 @@ jobs: local-roxctl-tests: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} container: @@ -426,7 +426,7 @@ jobs: shell-unit-tests: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} container: @@ -464,7 +464,7 @@ jobs: openshift-ci-unit-tests: needs: detect-changes if: ${{ !needs.detect-changes.outputs.ui_only }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: image: quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11@sha256:df3459cf038e73775314b3a5d36d14dda41e6df438a0273c9efa8d23e0f2358a # ratchet:quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.11 steps: @@ -486,7 +486,7 @@ jobs: if: ${{ !needs.detect-changes.outputs.ui_only }} env: KUBECONFIG: "/tmp/kubeconfig" - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: new-jiras: ${{ steps.junit2jira.outputs.new-jiras }} steps: @@ -565,7 +565,7 @@ jobs: contains(github.event.pull_request.labels.*.name, 'ci-test-github-action-slack-messages') ) name: Post failure message to Slack - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - go - go-bench diff --git a/.github/workflows/update_collector_periodic.yaml b/.github/workflows/update_collector_periodic.yaml index aca8fd0cf0f3e..6eec999095b3d 100644 --- a/.github/workflows/update_collector_periodic.yaml +++ b/.github/workflows/update_collector_periodic.yaml @@ -6,7 +6,7 @@ on: jobs: update-collector: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 with: diff --git a/.github/workflows/update_fact_periodic.yaml b/.github/workflows/update_fact_periodic.yaml index 12ec44dd22b65..1ba1644308290 100644 --- a/.github/workflows/update_fact_periodic.yaml +++ b/.github/workflows/update_fact_periodic.yaml @@ -6,7 +6,7 @@ on: jobs: update-fact: if: ${{ github.repository_owner == 'stackrox' }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 with: diff --git a/.github/workflows/upgrade-test.yml b/.github/workflows/upgrade-test.yml index 78ddcbeb0c98d..0c8387864b17d 100644 --- a/.github/workflows/upgrade-test.yml +++ b/.github/workflows/upgrade-test.yml @@ -40,7 +40,7 @@ concurrency: Release automation ${{ inputs.milestone }} jobs: properties: name: Read repository properties - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: slack-channel: ${{ fromJSON(format('["{0}","{1}"]', steps.properties.outputs.dry-slack-channel, steps.properties.outputs.slack-channel))[inputs.dry-run != 'true'] }} steps: @@ -52,7 +52,7 @@ jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | [ "$DRY_RUN" = "true" ] && echo "::warning::This is a dry run" @@ -66,7 +66,7 @@ jobs: create-clusters: needs: [properties] if: github.event.inputs.dry-run != 'true' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: matrix: name: [test1, test2] @@ -83,7 +83,7 @@ jobs: prepare-clusters: needs: [properties, create-clusters] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check out code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # ratchet:actions/checkout@v7.0.0 @@ -136,7 +136,7 @@ jobs: name: Notify about failed cluster creation needs: [properties, prepare-clusters] if: always() && needs.prepare-clusters.result == 'failure' - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Post to Slack uses: slackapi/slack-github-action@45a88b9581bfab2566dc881e2cd66d334e621e2c # ratchet:slackapi/slack-github-action@v3.0.3 diff --git a/.github/workflows/variables.yml b/.github/workflows/variables.yml index f574eec48faa4..6fedd4d7f5546 100644 --- a/.github/workflows/variables.yml +++ b/.github/workflows/variables.yml @@ -56,7 +56,7 @@ on: jobs: parse: name: Parse ${{inputs.version}} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: release: ${{steps.parse.outputs.release}} major: ${{steps.parse.outputs.major}} diff --git a/.github/workflows/verify-release.yml b/.github/workflows/verify-release.yml index 5751a5121b968..3792e9c80958b 100644 --- a/.github/workflows/verify-release.yml +++ b/.github/workflows/verify-release.yml @@ -32,7 +32,7 @@ concurrency: Release automation ${{ inputs.version }} jobs: run-parameters: name: Run parameters - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - run: | { @@ -52,7 +52,7 @@ jobs: properties: name: Read repository properties - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 outputs: jira-project: ${{ steps.properties.outputs.jira-project }} steps: @@ -64,7 +64,7 @@ jobs: verify-release: name: Verify all artifacts for release ${{ needs.variables.outputs.named-release-patch }} are published - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [variables, properties] env: JIRA_USER: ${{ vars.RHACS_BOT_GITHUB_EMAIL }} From 7af1f6f2aeb331773d446b920a649669eceb8d57 Mon Sep 17 00:00:00 2001 From: Jouko Virtanen Date: Wed, 30 Sep 2026 08:57:25 -0700 Subject: [PATCH 146/327] ROX-37017: Perf and scale tests should save collector metrics (#22830) --- scripts/ci/collect-collector-metrics.sh | 11 +++++++++-- scripts/ci/jobs/ocp-perf-scale-tests-post.sh | 12 ++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/scripts/ci/collect-collector-metrics.sh b/scripts/ci/collect-collector-metrics.sh index 777e922197db9..6d9ef92fd4af7 100755 --- a/scripts/ci/collect-collector-metrics.sh +++ b/scripts/ci/collect-collector-metrics.sh @@ -53,6 +53,7 @@ main() { exit 0 fi + exit_code=0 for pod in ${pods}; do remote="${pod}:${pod_port}" metrics_file="${pod}.txt" @@ -73,11 +74,17 @@ main() { done echo echo "set up port-forwarding from $remote to $local" - curl --silent --fail -k "${local}/${metrics_path}" > "${metrics_dir}/${metrics_file}" - echo "finished download ${metrics_file}" + if curl --silent --fail -k "${local}/${metrics_path}" > "${metrics_dir}/${metrics_file}"; then + echo "finished download ${metrics_file}" + else + echo >&2 "failed to download metrics from $pod" + exit_code=1 + fi kill ${PID} echo "finished tear down of port-forwarding from $remote to $local" done + + return "${exit_code}" } main "$@" diff --git a/scripts/ci/jobs/ocp-perf-scale-tests-post.sh b/scripts/ci/jobs/ocp-perf-scale-tests-post.sh index ca83582ff7713..cb0d75324c3fe 100755 --- a/scripts/ci/jobs/ocp-perf-scale-tests-post.sh +++ b/scripts/ci/jobs/ocp-perf-scale-tests-post.sh @@ -89,12 +89,24 @@ else info "Warning: Failed to get central diagnostics" fi +# Collect collector metrics +COLLECTOR_METRICS_OUTPUT="collector-metrics" +info "Collecting collector metrics to ${COLLECTOR_METRICS_OUTPUT}" +if "${ROOT}/scripts/ci/collect-collector-metrics.sh" stackrox "${COLLECTOR_METRICS_OUTPUT}"; then + info "Collected collector metrics to ${COLLECTOR_METRICS_OUTPUT}" +else + info "Warning: Failed to collect collector metrics" +fi + # Store artifacts to OpenShift CI artifact directory if [[ -n "${ARTIFACT_DIR:-}" ]]; then info "Copying diagnostics to ${ARTIFACT_DIR}" if [[ -d "${DIAGNOSTIC_OUTPUT}" ]]; then cp -r "${DIAGNOSTIC_OUTPUT}" "${ARTIFACT_DIR}/" || info "Warning: Failed to copy ${DIAGNOSTIC_OUTPUT}" fi + if [[ -d "${COLLECTOR_METRICS_OUTPUT}" ]]; then + cp -r "${COLLECTOR_METRICS_OUTPUT}" "${ARTIFACT_DIR}/" || info "Warning: Failed to copy ${COLLECTOR_METRICS_OUTPUT}" + fi else info "Warning: ARTIFACT_DIR not set, diagnostics not copied to artifacts" fi From 6e01785189bef42535acadfe299cc2c6c81c684e Mon Sep 17 00:00:00 2001 From: Yann Brillouet <91869377+rhybrillou@users.noreply.github.com> Date: Wed, 30 Sep 2026 18:44:15 +0200 Subject: [PATCH 147/327] chore(fixxxers): Ensure config controller CRDs are re-generated (#23102) --- scripts/fixxxers/config-controller/10-generate.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100755 scripts/fixxxers/config-controller/10-generate.sh diff --git a/scripts/fixxxers/config-controller/10-generate.sh b/scripts/fixxxers/config-controller/10-generate.sh new file mode 100755 index 0000000000000..22fcfa5a44923 --- /dev/null +++ b/scripts/fixxxers/config-controller/10-generate.sh @@ -0,0 +1,4 @@ +#!/bin/bash +set -euo pipefail + +make config-controller-gen From bcc43573769aabc3d27552c80775f832865cc778 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 19:51:56 +0200 Subject: [PATCH 148/327] chore(deps): bump github.com/cockroachdb/pebble/v2 from 2.1.6 to 2.1.7 (#23155) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9ec24e12bb8df..c7e6f3cb34b02 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,7 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 github.com/cespare/xxhash/v2 v2.3.0 github.com/cloudflare/cfssl v1.6.5 - github.com/cockroachdb/pebble/v2 v2.1.6 + github.com/cockroachdb/pebble/v2 v2.1.7 github.com/containers/image/v5 v5.36.2 github.com/coreos/go-oidc/v3 v3.20.0 github.com/coreos/go-systemd/v22 v22.7.0 @@ -243,7 +243,7 @@ require ( github.com/cockroachdb/errors v1.12.0 // indirect github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 // indirect github.com/cockroachdb/redact v1.1.6 // indirect - github.com/cockroachdb/swiss v0.0.0-20251224182025-b0f6560f979b // indirect + github.com/cockroachdb/swiss v0.0.0-20260820225851-333444432258 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb // indirect github.com/coder/websocket v1.8.14 // indirect github.com/containers/storage v1.59.1 // indirect diff --git a/go.sum b/go.sum index a1e3af545ffcc..74babc197c6a6 100644 --- a/go.sum +++ b/go.sum @@ -330,12 +330,12 @@ github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILM github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo= github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895 h1:XANOgPYtvELQ/h4IrmPAohXqe2pWA8Bwhejr3VQoZsA= github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895/go.mod h1:aPd7gM9ov9M8v32Yy5NJrDyOcD8z642dqs+F0CeNXfA= -github.com/cockroachdb/pebble/v2 v2.1.6 h1:GDo7Z2+LgFZ7LJLdLmBXhDeTVIwgSPGxIT15hE7vGqM= -github.com/cockroachdb/pebble/v2 v2.1.6/go.mod h1:Reo1RTniv1UjVTAu/Fv74y5i3kJ5gmVrPhO9UtFiKn8= +github.com/cockroachdb/pebble/v2 v2.1.7 h1:hFQnbsniSWg9BVcNKMuaUufYPiVXY6uJvaY9grbQ9+U= +github.com/cockroachdb/pebble/v2 v2.1.7/go.mod h1:JhU5cqqYkr2BdsBHbZhRZOryAtfhcV3eNI/oBcbrxWc= github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314= github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/cockroachdb/swiss v0.0.0-20251224182025-b0f6560f979b h1:VXvSNzmr8hMj8XTuY0PT9Ane9qZGul/p67vGYwl9BFI= -github.com/cockroachdb/swiss v0.0.0-20251224182025-b0f6560f979b/go.mod h1:yBRu/cnL4ks9bgy4vAASdjIW+/xMlFwuHKqtmh3GZQg= +github.com/cockroachdb/swiss v0.0.0-20260820225851-333444432258 h1:IJ+uNItEm0qx9FE2AgIc1PMsCUtk8nbSIzhQE1t5GWw= +github.com/cockroachdb/swiss v0.0.0-20260820225851-333444432258/go.mod h1:yBRu/cnL4ks9bgy4vAASdjIW+/xMlFwuHKqtmh3GZQg= github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb h1:3bCgBvB8PbJVMX1ouCcSIxvsqKPYM7gs72o0zC76n9g= github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE= From 1c597a3d790b817655530a3b06229e96a91cdeb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Sep 2026 20:25:18 +0200 Subject: [PATCH 149/327] chore(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0 in /operator/tools/operator-sdk (#22893) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/operator-sdk/go.mod | 10 +++++----- operator/tools/operator-sdk/go.sum | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/operator/tools/operator-sdk/go.mod b/operator/tools/operator-sdk/go.mod index 017715960a436..e68af3cf7313c 100644 --- a/operator/tools/operator-sdk/go.mod +++ b/operator/tools/operator-sdk/go.mod @@ -65,7 +65,7 @@ require ( github.com/go-git/go-git/v5 v5.19.1 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect github.com/go-jose/go-jose/v4 v4.1.4 // indirect - github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/logr v1.4.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.22.4 // indirect github.com/go-openapi/jsonreference v0.21.4 // indirect @@ -194,12 +194,12 @@ require ( go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect - go.opentelemetry.io/otel v1.44.0 // indirect + go.opentelemetry.io/otel v1.45.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 // indirect - go.opentelemetry.io/otel/metric v1.44.0 // indirect - go.opentelemetry.io/otel/sdk v1.44.0 // indirect - go.opentelemetry.io/otel/trace v1.44.0 // indirect + go.opentelemetry.io/otel/metric v1.45.0 // indirect + go.opentelemetry.io/otel/sdk v1.45.0 // indirect + go.opentelemetry.io/otel/trace v1.45.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.podman.io/common v0.66.1 // indirect go.podman.io/image/v5 v5.38.0 // indirect diff --git a/operator/tools/operator-sdk/go.sum b/operator/tools/operator-sdk/go.sum index c16a85d690c9e..6a377f0ac4059 100644 --- a/operator/tools/operator-sdk/go.sum +++ b/operator/tools/operator-sdk/go.sum @@ -161,8 +161,8 @@ github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpj github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8= +github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= @@ -527,8 +527,8 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.67.0/go.mod h1:NoUCKYWK+3ecatC4HjkRktREheMeEtrXoQxrqYFeHSc= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 h1:OyrsyzuttWTSur2qN/Lm0m2a8yqyIjUVBZcxFPuXq2o= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0/go.mod h1:C2NGBr+kAB4bk3xtMXfZ94gqFDtg/GkI7e9zqGh5Beg= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU= +go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0 h1:deI9UQMoGFgrg5iLPgzueqFPHevDl+28YKfSpPTI6rY= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.18.0/go.mod h1:PFx9NgpNUKXdf7J4Q3agRxMs3Y07QhTCVipKmLsMKnU= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag= @@ -553,16 +553,16 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0 h1:s/1iRkCKDfhlh1J go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.42.0/go.mod h1:UI3wi0FXg1Pofb8ZBiBLhtMzgoTm1TYkMvn71fAqDzs= go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4= go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= -go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= -go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= -go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= -go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M= +go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s= +go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw= +go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA= go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko= go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= -go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= -go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= +go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJjNEYILuiE3o= +go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA= +go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= +go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= From d7b64b7eb4b13d513830d943952d495e772a3463 Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Wed, 30 Sep 2026 15:20:27 -0700 Subject: [PATCH 150/327] chore(ui): remove unused Access Control Redux writers (#22889) Signed-off-by: Saif Chaudhry --- ui/apps/platform/src/reducers/groups.js | 5 -- ui/apps/platform/src/reducers/roles.js | 39 ---------- ui/apps/platform/src/reducers/roles.test.js | 1 - ui/apps/platform/src/sagas/groupSagas.js | 24 +----- ui/apps/platform/src/sagas/roleSagas.js | 76 +------------------ .../platform/src/services/GroupsService.ts | 11 --- 6 files changed, 5 insertions(+), 151 deletions(-) diff --git a/ui/apps/platform/src/reducers/groups.js b/ui/apps/platform/src/reducers/groups.js index 763d38f677872..5416f27ed3f7d 100644 --- a/ui/apps/platform/src/reducers/groups.js +++ b/ui/apps/platform/src/reducers/groups.js @@ -6,7 +6,6 @@ import { createFetchingActionTypes, createFetchingActions } from 'utils/fetching export const types = { FETCH_RULE_GROUPS: createFetchingActionTypes('groups/FETCH_RULE_GROUPS'), SAVE_RULE_GROUP: 'groups/SAVE_RULE_GROUP', - DELETE_RULE_GROUP: 'groups/DELETE_RULE_GROUP', }; export const actions = { @@ -17,10 +16,6 @@ export const actions = { defaultRole, id, }), - deleteRuleGroup: (group) => ({ - type: types.DELETE_RULE_GROUP, - group, - }), }; const groups = (state = [], action) => { diff --git a/ui/apps/platform/src/reducers/roles.js b/ui/apps/platform/src/reducers/roles.js index 4e9b2d87c3741..13fe27efba559 100644 --- a/ui/apps/platform/src/reducers/roles.js +++ b/ui/apps/platform/src/reducers/roles.js @@ -13,26 +13,11 @@ export const ACCESS_LEVEL = Object.freeze({ export const types = { FETCH_USER_ROLE_PERMISSIONS: createFetchingActionTypes('roles/FETCH_USER_ROLE_PERMISSIONS'), FETCH_ROLES: createFetchingActionTypes('roles/FETCH_ROLES'), - SELECTED_ROLE: 'roles/SELECTED_ROLE', - SAVE_ROLE: 'roles/SAVE_ROLE', - DELETE_ROLE: 'roles/DELETE_ROLE', }; export const actions = { fetchUserRolePermissions: createFetchingActions(types.FETCH_USER_ROLE_PERMISSIONS), fetchRoles: createFetchingActions(types.FETCH_ROLES), - selectRole: (role) => ({ - type: types.SELECTED_ROLE, - role, - }), - saveRole: (role) => ({ - type: types.SAVE_ROLE, - role, - }), - deleteRole: (id) => ({ - type: types.DELETE_ROLE, - id, - }), }; const roles = (state = [], action) => { @@ -42,19 +27,6 @@ const roles = (state = [], action) => { return state; }; -const selectedRole = (state = null, action) => { - if (action.type === types.FETCH_ROLES.SUCCESS && !state) { - if (action.response.roles.length) { - return action.response.roles[0]; - } - return state; - } - if (action.type === types.SELECTED_ROLE && action.role) { - return isEqual(action.role, state) ? state : action.role; - } - return state; -}; - const userRolePermissions = (state = null, action) => { if (action.type === types.FETCH_USER_ROLE_PERMISSIONS.SUCCESS) { return isEqual(action.response, state) ? state : action.response; @@ -93,22 +65,16 @@ const isLoading = (state = true, action) => { const reducer = combineReducers({ roles, - selectedRole, userRolePermissions, error, isLoading, }); const getRoles = (state) => state.roles; -const getSelectedRole = (state) => state.selectedRole; const getUserRolePermissions = (state) => state.userRolePermissions; const getUserRolePermissionsError = (state) => state.error; const getIsLoadingUserRolePermissions = (state) => state.isLoading; -/* - * Given resource string (for example, "Integration") and role or permissionSet object, - * return access level (for example, "READ_ACCESS"). - */ const getAccessForPermission = (resource, userRolePermissionsArg) => { return userRolePermissionsArg?.resourceToAccess?.[resource] ?? ACCESS_LEVEL.NO_ACCESS; }; @@ -118,7 +84,6 @@ export const getHasReadPermission = (resource, userRolePermissionsArg) => { if (access === ACCESS_LEVEL.READ_WRITE_ACCESS || access === ACCESS_LEVEL.READ_ACCESS) { return true; } - // If the given resource doesn't yield the required access, try with the replacing resource (if there is any). if (replacedResourceMapping.has(resource)) { const replacingResourceAccess = getAccessForPermission( replacedResourceMapping.get(resource), @@ -129,7 +94,6 @@ export const getHasReadPermission = (resource, userRolePermissionsArg) => { replacingResourceAccess === ACCESS_LEVEL.READ_ACCESS ); } - // Return false if neither the resource nor the replacing resource have the correct access. return false; }; @@ -138,7 +102,6 @@ export const getHasReadWritePermission = (resource, userRolePermissionsArg) => { if (access === ACCESS_LEVEL.READ_WRITE_ACCESS) { return true; } - // If the given resource doesn't yield the required access, try with the replacing resource (if there is any). if (replacedResourceMapping.has(resource)) { const replacingResourceAccess = getAccessForPermission( replacedResourceMapping.get(resource), @@ -146,13 +109,11 @@ export const getHasReadWritePermission = (resource, userRolePermissionsArg) => { ); return replacingResourceAccess === ACCESS_LEVEL.READ_WRITE_ACCESS; } - // Return false if neither the resource nor the replacing resource have the correct access. return false; }; export const selectors = { getRoles, - getSelectedRole, getUserRolePermissions, getUserRolePermissionsError, getIsLoadingUserRolePermissions, diff --git a/ui/apps/platform/src/reducers/roles.test.js b/ui/apps/platform/src/reducers/roles.test.js index d63f8d79418ae..73dfef5bd619b 100644 --- a/ui/apps/platform/src/reducers/roles.test.js +++ b/ui/apps/platform/src/reducers/roles.test.js @@ -4,7 +4,6 @@ describe('roles reducer', () => { it('should return the initial state', () => { const expected = { roles: [], - selectedRole: null, userRolePermissions: null, error: null, isLoading: true, diff --git a/ui/apps/platform/src/sagas/groupSagas.js b/ui/apps/platform/src/sagas/groupSagas.js index a30ad168c3be8..bf49401d17e1d 100644 --- a/ui/apps/platform/src/sagas/groupSagas.js +++ b/ui/apps/platform/src/sagas/groupSagas.js @@ -1,6 +1,5 @@ -import { all, call, fork, put, select, takeLatest } from 'redux-saga/effects'; +import { all, call, put, select, takeLatest } from 'redux-saga/effects'; import { - deleteRuleGroup as serviceDeleteRuleGroup, fetchGroups as serviceFetchGroups, getDefaultGroup as serviceGetDefaultGroup, updateOrAddGroup as serviceUpdateOrAddGroup, @@ -66,28 +65,9 @@ function* saveRuleGroup(action) { } } -function* deleteRuleGroup(action) { - const { group } = action; - try { - yield call(serviceDeleteRuleGroup, group); - yield call(getRuleGroups); - } catch (error) { - Raven.captureException(error); - } -} - -function* watchSaveRuleGroup() { - yield takeLatest(types.SAVE_RULE_GROUP, saveRuleGroup); -} - -function* watchDeleteRuleGroup() { - yield takeLatest(types.DELETE_RULE_GROUP, deleteRuleGroup); -} - export default function* groups() { yield all([ takeLatest(types.FETCH_RULE_GROUPS.REQUEST, getRuleGroups), - fork(watchSaveRuleGroup), - fork(watchDeleteRuleGroup), + takeLatest(types.SAVE_RULE_GROUP, saveRuleGroup), ]); } diff --git a/ui/apps/platform/src/sagas/roleSagas.js b/ui/apps/platform/src/sagas/roleSagas.js index 862de22e0dfb7..e3be95248d78e 100644 --- a/ui/apps/platform/src/sagas/roleSagas.js +++ b/ui/apps/platform/src/sagas/roleSagas.js @@ -1,15 +1,6 @@ -import { all, call, fork, put, select, takeLatest } from 'redux-saga/effects'; -import { - createRole as serviceCreateRole, - deleteRole as serviceDeleteRole, - fetchRoles as serviceFetchRoles, - updateRole as serviceUpdateRole, -} from 'services/RolesService'; +import { all, call, put, takeLatest } from 'redux-saga/effects'; +import { fetchRoles as serviceFetchRoles } from 'services/RolesService'; import { actions, types } from 'reducers/roles'; -import { selectors } from 'reducers'; - -import Raven from 'raven-js'; -import { actions as notificationActions } from 'reducers/notifications'; function* getRoles() { try { @@ -20,67 +11,6 @@ function* getRoles() { } } -function* saveRole(action) { - try { - const { role } = action; - const roles = yield select(selectors.getRoles); - const isNewRole = !roles.filter((currRole) => currRole.name === role.name).length; - if (isNewRole) { - yield call(serviceCreateRole, role); - yield put(actions.selectRole(role)); - } else { - yield call(serviceUpdateRole, role); - yield put(actions.selectRole(role)); - } - yield call(getRoles); - } catch (error) { - yield put(notificationActions.addNotification(error.response.data.error)); - yield put(notificationActions.removeOldestNotification()); - Raven.captureException(error); - } -} - -function* deleteRole(action) { - const { id } = action; - try { - yield call(serviceDeleteRole, id); - yield put(actions.fetchRoles.request()); - } catch (error) { - yield put(notificationActions.addNotification(error.response.data.error)); - yield put(notificationActions.removeOldestNotification()); - Raven.captureException(error); - } -} - -function* selectRole(action) { - const { role } = action; - try { - if (!role) { - const roles = yield select(selectors.getRoles); - yield put(actions.selectRole(roles[0])); - } - } catch (error) { - Raven.captureException(error); - } -} - -function* watchSaveRole() { - yield takeLatest(types.SAVE_ROLE, saveRole); -} - -function* watchDeleteRole() { - yield takeLatest(types.DELETE_ROLE, deleteRole); -} - -function* watchSelectRole() { - yield takeLatest(types.SELECTED_ROLE, selectRole); -} - export default function* integrations() { - yield all([ - takeLatest(types.FETCH_ROLES.REQUEST, getRoles), - fork(watchSaveRole), - fork(watchDeleteRole), - fork(watchSelectRole), - ]); + yield all([takeLatest(types.FETCH_ROLES.REQUEST, getRoles)]); } diff --git a/ui/apps/platform/src/services/GroupsService.ts b/ui/apps/platform/src/services/GroupsService.ts index 83e0bffeae953..16b5cfd43fc20 100644 --- a/ui/apps/platform/src/services/GroupsService.ts +++ b/ui/apps/platform/src/services/GroupsService.ts @@ -48,14 +48,3 @@ export function getDefaultGroup({ response: response.data?.groups[0], })); } - -/** - * Deletes a group rule. - */ -export function deleteRuleGroup(data: Group) { - const { key, authProviderId, value, id } = data.props; - return axios.delete( - `${url}?authProviderId=${authProviderId}&key=${key}&value=${value}&id=${id}`, - {} - ); -} From e7c8a3ddf45d4521777efc36573ea18e1184d32e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 01:17:29 +0200 Subject: [PATCH 151/327] chore(deps): bump oras.land/oras-go/v2 from 2.6.0 to 2.6.2 in /operator/tools/operator-sdk (#22884) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/operator-sdk/go.mod | 2 +- operator/tools/operator-sdk/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/operator/tools/operator-sdk/go.mod b/operator/tools/operator-sdk/go.mod index e68af3cf7313c..57a33d97aa1e4 100644 --- a/operator/tools/operator-sdk/go.mod +++ b/operator/tools/operator-sdk/go.mod @@ -239,7 +239,7 @@ require ( k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // indirect k8s.io/kubectl v0.35.1 // indirect k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect - oras.land/oras-go/v2 v2.6.0 // indirect + oras.land/oras-go/v2 v2.6.2 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect sigs.k8s.io/controller-runtime v0.23.1 // indirect sigs.k8s.io/controller-tools v0.20.0 // indirect diff --git a/operator/tools/operator-sdk/go.sum b/operator/tools/operator-sdk/go.sum index 6a377f0ac4059..62851de86910d 100644 --- a/operator/tools/operator-sdk/go.sum +++ b/operator/tools/operator-sdk/go.sum @@ -780,8 +780,8 @@ k8s.io/kubectl v0.35.1 h1:zP3Er8C5i1dcAFUMh9Eva0kVvZHptXIn/+8NtRWMxwg= k8s.io/kubectl v0.35.1/go.mod h1:cQ2uAPs5IO/kx8R5s5J3Ihv3VCYwrx0obCXum0CvnXo= k8s.io/utils v0.0.0-20260108192941-914a6e750570 h1:JT4W8lsdrGENg9W+YwwdLJxklIuKWdRm+BC+xt33FOY= k8s.io/utils v0.0.0-20260108192941-914a6e750570/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= -oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= -oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o= +oras.land/oras-go/v2 v2.6.2 h1:N04RXngAp1LJKTG6ifz3xHPipasEkWr+hFmInja5YKo= +oras.land/oras-go/v2 v2.6.2/go.mod h1:PlTtg4JTDJkDe8yVHpM2wz7/YDc00GVas+i4jAW2TZ4= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 h1:hSfpvjjTQXQY2Fol2CS0QHMNs/WI1MOSGzCm1KhM5ec= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= sigs.k8s.io/controller-runtime v0.23.1 h1:TjJSM80Nf43Mg21+RCy3J70aj/W6KyvDtOlpKf+PupE= From 029556e02923042e8e961fd3d45fb589ee2d9a36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 01:18:02 +0200 Subject: [PATCH 152/327] chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.42.0 to 1.45.0 in /operator/tools/operator-sdk (#22894) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/operator-sdk/go.mod | 10 +++++----- operator/tools/operator-sdk/go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/operator/tools/operator-sdk/go.mod b/operator/tools/operator-sdk/go.mod index 57a33d97aa1e4..8f42d084d33bb 100644 --- a/operator/tools/operator-sdk/go.mod +++ b/operator/tools/operator-sdk/go.mod @@ -195,12 +195,12 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.67.0 // indirect go.opentelemetry.io/otel v1.45.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 // indirect go.opentelemetry.io/otel/metric v1.45.0 // indirect go.opentelemetry.io/otel/sdk v1.45.0 // indirect go.opentelemetry.io/otel/trace v1.45.0 // indirect - go.opentelemetry.io/proto/otlp v1.10.0 // indirect + go.opentelemetry.io/proto/otlp v1.11.0 // indirect go.podman.io/common v0.66.1 // indirect go.podman.io/image/v5 v5.38.0 // indirect go.podman.io/storage v1.61.0 // indirect @@ -218,8 +218,8 @@ require ( golang.org/x/time v0.15.0 // indirect golang.org/x/tools v0.48.0 // indirect google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d // indirect google.golang.org/grpc v1.83.2 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect diff --git a/operator/tools/operator-sdk/go.sum b/operator/tools/operator-sdk/go.sum index 62851de86910d..7e97323d86fd2 100644 --- a/operator/tools/operator-sdk/go.sum +++ b/operator/tools/operator-sdk/go.sum @@ -537,10 +537,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0 h1:MdK go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.42.0/go.mod h1:RolT8tWtfHcjajEH5wFIZ4Dgh5jpPdFXYV9pTAk/qjc= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 h1:w1K+pCJoPpQifuVpsKamUdn9U0zM3xUziVOqsGksUrY= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0/go.mod h1:HBy4BjzgVE8139ieRI75oXm3EcDN+6GhD88JT1Kjvxg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0 h1:zWWrB1U6nqhS/k6zYB74CjRpuiitRtLLi68VcgmOEto= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.42.0/go.mod h1:2qXPNBX1OVRC0IwOnfo1ljoid+RD0QK3443EaqVlsOU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 h1:QRefszxJmfPdjXUUm3j6iDzY03mTPXMjqErFqQ67vUg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0/go.mod h1:Tiz03lTBVBrm7eWZBOidzEaYaJa8tjwGUGv6d8mlTyk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 h1:fG5MCxGz8+2VtrN/WgqSpJFctVz24gpxj8CxkKmc8Ww= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0/go.mod h1:BmAYTn+3ysbRe+IU2msxmf5Rx3g6DHvex+tWI3LdhYI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 h1:3iZJKlCZufyRzPzlQhUIWVmfltrXuGyfjREgGP3UUjc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0/go.mod h1:/G+nUPfhq2e+qiXMGxMwumDrP5jtzU+mWN7/sjT2rak= go.opentelemetry.io/otel/exporters/prometheus v0.64.0 h1:g0LRDXMX/G1SEZtK8zl8Chm4K6GBwRkjPKE36LxiTYs= @@ -563,8 +563,8 @@ go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJj go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA= go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= -go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= -go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= +go.opentelemetry.io/proto/otlp v1.11.0 h1:5rrYs0Ykyj50sdU/JU0x8etU+LubXWb+gED6TbEdMIk= +go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT72hLMhv8VwA8E= go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= go.podman.io/common v0.66.1/go.mod h1:aNd2a0S7pY+fx1X5kpQYuF4hbwLU8ZOccuVrhu7h1Xc= go.podman.io/image/v5 v5.38.0 h1:aUKrCANkPvze1bnhLJsaubcfz0d9v/bSDLnwsXJm6G4= @@ -713,10 +713,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 h1:XzmzkmB14QhVhgnawEVsOn6OFsnpyxNPRY9QV01dNB0= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:L43LFes82YgSonw6iTXTxXUX1OlULt4AQtkik4ULL/I= -google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= -google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= +google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d h1:IL4hdHzcUv2l/gcg98/Rj3FbtE6axwqslOW8SW0C+S0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260803160001-6ac0973c030d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= From 163842726244e315b68aa904aac92fc54ea57103 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 01:50:30 +0200 Subject: [PATCH 153/327] chore(deps): bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.29.0 to 2.31.0 (#22209) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: StackRox PR Fixxxer --- .../v1/administration_events_service.pb.gw.go | 18 +- .../v1/administration_usage_service.pb.gw.go | 6 +- generated/api/v1/alert_service.pb.gw.go | 48 +++--- generated/api/v1/alert_service.swagger.json | 7 +- generated/api/v1/api_token_service.pb.gw.go | 18 +- .../api/v1/api_token_service.swagger.json | 3 +- generated/api/v1/auth_service.pb.gw.go | 18 +- .../api/v1/authprovider_service.pb.gw.go | 30 ++-- generated/api/v1/backup_service.pb.gw.go | 30 ++-- .../api/v1/cloud_source_service.pb.gw.go | 30 ++-- .../api/v1/cluster_init_service.swagger.json | 3 +- generated/api/v1/cluster_service.pb.gw.go | 24 +-- generated/api/v1/cluster_service.swagger.json | 2 +- .../v1/compliance_management_service.pb.gw.go | 12 +- ...compliance_management_service.swagger.json | 3 +- generated/api/v1/compliance_service.pb.gw.go | 24 +-- generated/api/v1/config_service.swagger.json | 3 +- .../api/v1/credential_expiry_service.pb.gw.go | 6 +- .../v1/credential_expiry_service.swagger.json | 3 +- generated/api/v1/cve_service.swagger.json | 6 +- generated/api/v1/db_service.pb.gw.go | 12 +- generated/api/v1/db_service.swagger.json | 2 +- generated/api/v1/debug_service.pb.gw.go | 6 +- generated/api/v1/debug_service.swagger.json | 3 +- ...gated_registry_config_service.swagger.json | 5 +- generated/api/v1/deployment_service.pb.gw.go | 42 ++--- .../api/v1/deployment_service.swagger.json | 9 +- .../api/v1/detection_service.swagger.json | 9 +- .../v1/discovered_cluster_service.pb.gw.go | 18 +- .../api/v1/feature_flag_service.swagger.json | 3 +- generated/api/v1/group_service.pb.gw.go | 24 +-- .../api/v1/image_integration_service.pb.gw.go | 30 ++-- .../v1/image_integration_service.swagger.json | 3 +- generated/api/v1/image_service.pb.gw.go | 36 ++-- generated/api/v1/image_service.swagger.json | 3 +- .../v1/integration_health_service.pb.gw.go | 6 +- generated/api/v1/metadata_service.pb.gw.go | 6 +- generated/api/v1/mitre_service.pb.gw.go | 6 +- generated/api/v1/mitre_service.swagger.json | 3 +- generated/api/v1/namespace_service.pb.gw.go | 12 +- .../api/v1/network_baseline_service.pb.gw.go | 36 ++-- .../v1/network_baseline_service.swagger.json | 4 +- .../api/v1/network_graph_service.pb.gw.go | 42 ++--- .../api/v1/network_graph_service.swagger.json | 2 +- .../api/v1/network_policy_service.pb.gw.go | 90 +++++----- .../v1/network_policy_service.swagger.json | 2 +- generated/api/v1/node_service.pb.gw.go | 18 +- generated/api/v1/node_service.swagger.json | 3 +- generated/api/v1/notifier_service.pb.gw.go | 24 +-- generated/api/v1/pod_service.pb.gw.go | 12 +- generated/api/v1/pod_service.swagger.json | 3 +- .../api/v1/policy_category_service.pb.gw.go | 18 +- .../v1/policy_category_service.swagger.json | 3 +- generated/api/v1/policy_service.pb.gw.go | 60 +++---- generated/api/v1/policy_service.swagger.json | 3 +- .../api/v1/probe_upload_service.pb.gw.go | 6 +- .../api/v1/process_baseline_service.pb.gw.go | 12 +- .../v1/process_baseline_service.swagger.json | 3 +- ...process_listening_on_port_service.pb.gw.go | 6 +- ...ess_listening_on_port_service.swagger.json | 3 +- generated/api/v1/process_service.pb.gw.go | 24 +-- generated/api/v1/process_service.swagger.json | 3 +- generated/api/v1/rbac_service.pb.gw.go | 36 ++-- .../v1/resource_collection_service.pb.gw.go | 30 ++-- generated/api/v1/role_service.pb.gw.go | 78 ++++----- generated/api/v1/search_service.pb.gw.go | 18 +- generated/api/v1/search_service.swagger.json | 2 +- generated/api/v1/secret_service.pb.gw.go | 24 +-- .../api/v1/sensor_upgrade_service.pb.gw.go | 12 +- .../v1/sensor_upgrade_service.swagger.json | 3 +- .../api/v1/service_account_service.pb.gw.go | 12 +- .../v1/signature_integration_service.pb.gw.go | 18 +- generated/api/v1/user_service.pb.gw.go | 6 +- generated/api/v1/vuln_mgmt_service.pb.gw.go | 6 +- .../api/v1/vuln_mgmt_service.swagger.json | 7 +- generated/api/v2/base_image_service.pb.gw.go | 12 +- .../api/v2/base_image_service.swagger.json | 3 +- .../compliance_integration_service.pb.gw.go | 6 +- ...ompliance_integration_service.swagger.json | 2 +- .../v2/compliance_profile_service.pb.gw.go | 18 +- .../v2/compliance_results_service.pb.gw.go | 42 ++--- .../compliance_results_stats_service.pb.gw.go | 42 ++--- .../api/v2/compliance_rule_service.pb.gw.go | 6 +- ...liance_scan_configuration_service.pb.gw.go | 60 +++---- generated/api/v2/node_report_service.pb.gw.go | 72 ++++---- .../api/v2/node_report_service.swagger.json | 6 +- generated/api/v2/report_service.pb.gw.go | 72 ++++---- generated/api/v2/report_service.swagger.json | 6 +- .../api/v2/virtual_machine_service.pb.gw.go | 12 +- .../v2/virtual_machine_v2_service.pb.gw.go | 60 +++---- .../virtual_machine_v2_service.swagger.json | 3 +- .../api/v2/vuln_exception_service.pb.gw.go | 42 ++--- .../v2/vuln_exception_service.swagger.json | 3 +- .../central/development_service.pb.gw.go | 12 +- .../central/v1/token_service.pb.gw.go | 6 +- go.mod | 67 ++++---- go.sum | 154 +++++++++--------- 97 files changed, 946 insertions(+), 921 deletions(-) diff --git a/generated/api/v1/administration_events_service.pb.gw.go b/generated/api/v1/administration_events_service.pb.gw.go index 57855747ef4fb..fabc7317f3e53 100644 --- a/generated/api/v1/administration_events_service.pb.gw.go +++ b/generated/api/v1/administration_events_service.pb.gw.go @@ -42,15 +42,15 @@ func request_AdministrationEventService_CountAdministrationEvents_0(ctx context. protoReq CountAdministrationEventsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdministrationEventService_CountAdministrationEvents_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountAdministrationEvents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_AdministrationEventService_GetAdministrationEvent_0(ctx context.Con metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -87,6 +84,9 @@ func request_AdministrationEventService_GetAdministrationEvent_0(ctx context.Con if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAdministrationEvent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_AdministrationEventService_ListAdministrationEvents_0(ctx context.C protoReq ListAdministrationEventsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdministrationEventService_ListAdministrationEvents_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListAdministrationEvents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/administration_usage_service.pb.gw.go b/generated/api/v1/administration_usage_service.pb.gw.go index 0889ec45c387c..b9dec12d1b966 100644 --- a/generated/api/v1/administration_usage_service.pb.gw.go +++ b/generated/api/v1/administration_usage_service.pb.gw.go @@ -63,15 +63,15 @@ func request_AdministrationUsageService_GetMaxSecuredUnitsUsage_0(ctx context.Co protoReq TimeRange metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AdministrationUsageService_GetMaxSecuredUnitsUsage_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMaxSecuredUnitsUsage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/alert_service.pb.gw.go b/generated/api/v1/alert_service.pb.gw.go index 07c4e44e552ba..1f46e3201bf5a 100644 --- a/generated/api/v1/alert_service.pb.gw.go +++ b/generated/api/v1/alert_service.pb.gw.go @@ -41,9 +41,6 @@ func request_AlertService_GetAlert_0(ctx context.Context, marshaler runtime.Mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_AlertService_GetAlert_0(ctx context.Context, marshaler runtime.Mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAlert(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_AlertService_CountAlerts_0(ctx context.Context, marshaler runtime.M protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_CountAlerts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountAlerts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_AlertService_ListAlerts_0(ctx context.Context, marshaler runtime.Ma protoReq ListAlertsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_ListAlerts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListAlerts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -151,15 +151,15 @@ func request_AlertService_GetAlertsGroup_0(ctx context.Context, marshaler runtim protoReq ListAlertsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_GetAlertsGroup_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAlertsGroup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -186,15 +186,15 @@ func request_AlertService_GetAlertsCounts_0(ctx context.Context, marshaler runti protoReq GetAlertsCountsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_GetAlertsCounts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAlertsCounts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -221,15 +221,15 @@ func request_AlertService_GetAlertTimeseries_0(ctx context.Context, marshaler ru protoReq ListAlertsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_GetAlertTimeseries_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAlertTimeseries(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -258,9 +258,6 @@ func request_AlertService_ResolveAlert_0(ctx context.Context, marshaler runtime. if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -269,6 +266,9 @@ func request_AlertService_ResolveAlert_0(ctx context.Context, marshaler runtime. if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ResolveAlert(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -328,15 +328,15 @@ func request_AlertService_DeleteAlerts_0(ctx context.Context, marshaler runtime. protoReq DeleteAlertsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AlertService_DeleteAlerts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteAlerts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/alert_service.swagger.json b/generated/api/v1/alert_service.swagger.json index 2134c2e45324b..307efecd9bdcd 100644 --- a/generated/api/v1/alert_service.swagger.json +++ b/generated/api/v1/alert_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "AlertService" + "name": "AlertService", + "description": "AlertService APIs can be used to manage alerts." } ], "consumes": [ @@ -1518,7 +1519,7 @@ "NODE" ], "default": "DEPLOYMENT", - "title": "A special ListAlert-only enumeration of all resource types. Unlike Alert.Resource.ResourceType this also includes deployment and node as types\nThis must be kept in sync with Alert.Resource.ResourceType (excluding the deployment and node values)" + "description": "A special ListAlert-only enumeration of all resource types. Unlike Alert.Resource.ResourceType this also includes deployment and node as types\nThis must be kept in sync with Alert.Resource.ResourceType (excluding the deployment and node values)" }, "storageNetworkEntityInfoType": { "type": "string", @@ -1531,7 +1532,7 @@ "INTERNAL_ENTITIES" ], "default": "UNKNOWN_TYPE", - "title": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" + "description": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" }, "storagePolicy": { "type": "object", diff --git a/generated/api/v1/api_token_service.pb.gw.go b/generated/api/v1/api_token_service.pb.gw.go index ad7c42e56b2e6..dc9007767ffa3 100644 --- a/generated/api/v1/api_token_service.pb.gw.go +++ b/generated/api/v1/api_token_service.pb.gw.go @@ -41,9 +41,6 @@ func request_APITokenService_GetAPIToken_0(ctx context.Context, marshaler runtim metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_APITokenService_GetAPIToken_0(ctx context.Context, marshaler runtim if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAPIToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_APITokenService_GetAPITokens_0(ctx context.Context, marshaler runti protoReq GetAPITokensRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_APITokenService_GetAPITokens_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAPITokens(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -142,9 +142,6 @@ func request_APITokenService_RevokeToken_0(ctx context.Context, marshaler runtim metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -153,6 +150,9 @@ func request_APITokenService_RevokeToken_0(ctx context.Context, marshaler runtim if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.RevokeToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/api_token_service.swagger.json b/generated/api/v1/api_token_service.swagger.json index 96a411c1f51bb..35fe471045723 100644 --- a/generated/api/v1/api_token_service.swagger.json +++ b/generated/api/v1/api_token_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "APITokenService" + "name": "APITokenService", + "description": "APITokenService APIs can be used to manage API tokens." } ], "consumes": [ diff --git a/generated/api/v1/auth_service.pb.gw.go b/generated/api/v1/auth_service.pb.gw.go index e8c4600adf4ec..fea8409f5290c 100644 --- a/generated/api/v1/auth_service.pb.gw.go +++ b/generated/api/v1/auth_service.pb.gw.go @@ -83,9 +83,6 @@ func request_AuthService_GetAuthMachineToMachineConfig_0(ctx context.Context, ma metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -94,6 +91,9 @@ func request_AuthService_GetAuthMachineToMachineConfig_0(ctx context.Context, ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAuthMachineToMachineConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -152,9 +152,6 @@ func request_AuthService_UpdateAuthMachineToMachineConfig_0(ctx context.Context, if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["config.id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "config.id") @@ -163,6 +160,9 @@ func request_AuthService_UpdateAuthMachineToMachineConfig_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "config.id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateAuthMachineToMachineConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -194,9 +194,6 @@ func request_AuthService_DeleteAuthMachineToMachineConfig_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -205,6 +202,9 @@ func request_AuthService_DeleteAuthMachineToMachineConfig_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteAuthMachineToMachineConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/authprovider_service.pb.gw.go b/generated/api/v1/authprovider_service.pb.gw.go index 6f928439c544c..2de8e8e0edd2c 100644 --- a/generated/api/v1/authprovider_service.pb.gw.go +++ b/generated/api/v1/authprovider_service.pb.gw.go @@ -63,9 +63,6 @@ func request_AuthProviderService_GetAuthProvider_0(ctx context.Context, marshale metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -74,6 +71,9 @@ func request_AuthProviderService_GetAuthProvider_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAuthProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -124,15 +124,15 @@ func request_AuthProviderService_GetAuthProviders_0(ctx context.Context, marshal protoReq GetAuthProvidersRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthProviderService_GetAuthProviders_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAuthProviders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -188,9 +188,6 @@ func request_AuthProviderService_UpdateAuthProvider_0(ctx context.Context, marsh if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -199,6 +196,9 @@ func request_AuthProviderService_UpdateAuthProvider_0(ctx context.Context, marsh if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateAuthProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -233,9 +233,6 @@ func request_AuthProviderService_PutAuthProvider_0(ctx context.Context, marshale if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -244,6 +241,9 @@ func request_AuthProviderService_PutAuthProvider_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutAuthProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -277,9 +277,6 @@ func request_AuthProviderService_DeleteAuthProvider_0(ctx context.Context, marsh metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -294,6 +291,9 @@ func request_AuthProviderService_DeleteAuthProvider_0(ctx context.Context, marsh if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthProviderService_DeleteAuthProvider_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteAuthProvider(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/backup_service.pb.gw.go b/generated/api/v1/backup_service.pb.gw.go index 114272eb9be8f..e2d80b0f41032 100644 --- a/generated/api/v1/backup_service.pb.gw.go +++ b/generated/api/v1/backup_service.pb.gw.go @@ -42,9 +42,6 @@ func request_ExternalBackupService_GetExternalBackup_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -53,6 +50,9 @@ func request_ExternalBackupService_GetExternalBackup_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetExternalBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -132,9 +132,6 @@ func request_ExternalBackupService_PutExternalBackup_0(ctx context.Context, mars if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -143,6 +140,9 @@ func request_ExternalBackupService_PutExternalBackup_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutExternalBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -201,9 +201,6 @@ func request_ExternalBackupService_DeleteExternalBackup_0(ctx context.Context, m metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -212,6 +209,9 @@ func request_ExternalBackupService_DeleteExternalBackup_0(ctx context.Context, m if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteExternalBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -240,9 +240,6 @@ func request_ExternalBackupService_TriggerExternalBackup_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -251,6 +248,9 @@ func request_ExternalBackupService_TriggerExternalBackup_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.TriggerExternalBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -282,9 +282,6 @@ func request_ExternalBackupService_UpdateExternalBackup_0(ctx context.Context, m if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["external_backup.id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "external_backup.id") @@ -293,6 +290,9 @@ func request_ExternalBackupService_UpdateExternalBackup_0(ctx context.Context, m if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "external_backup.id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateExternalBackup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/cloud_source_service.pb.gw.go b/generated/api/v1/cloud_source_service.pb.gw.go index 510f5f44218c0..2334cf4b1faa6 100644 --- a/generated/api/v1/cloud_source_service.pb.gw.go +++ b/generated/api/v1/cloud_source_service.pb.gw.go @@ -42,15 +42,15 @@ func request_CloudSourcesService_CountCloudSources_0(ctx context.Context, marsha protoReq CountCloudSourcesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CloudSourcesService_CountCloudSources_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountCloudSources(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_CloudSourcesService_GetCloudSource_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -87,6 +84,9 @@ func request_CloudSourcesService_GetCloudSource_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetCloudSource(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_CloudSourcesService_ListCloudSources_0(ctx context.Context, marshal protoReq ListCloudSourcesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CloudSourcesService_ListCloudSources_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListCloudSources(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -180,9 +180,6 @@ func request_CloudSourcesService_UpdateCloudSource_0(ctx context.Context, marsha if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cloud_source.id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cloud_source.id") @@ -191,6 +188,9 @@ func request_CloudSourcesService_UpdateCloudSource_0(ctx context.Context, marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cloud_source.id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateCloudSource(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -222,9 +222,6 @@ func request_CloudSourcesService_DeleteCloudSource_0(ctx context.Context, marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -233,6 +230,9 @@ func request_CloudSourcesService_DeleteCloudSource_0(ctx context.Context, marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteCloudSource(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/cluster_init_service.swagger.json b/generated/api/v1/cluster_init_service.swagger.json index 9e4773f0410d0..ec48899b0e1c2 100644 --- a/generated/api/v1/cluster_init_service.swagger.json +++ b/generated/api/v1/cluster_init_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ClusterInitService" + "name": "ClusterInitService", + "description": "ClusterInitService manages cluster init bundles and CRSs." } ], "consumes": [ diff --git a/generated/api/v1/cluster_service.pb.gw.go b/generated/api/v1/cluster_service.pb.gw.go index d0ed73dd50c9c..55f9e25111dc7 100644 --- a/generated/api/v1/cluster_service.pb.gw.go +++ b/generated/api/v1/cluster_service.pb.gw.go @@ -43,15 +43,15 @@ func request_ClustersService_GetClusters_0(ctx context.Context, marshaler runtim protoReq GetClustersRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ClustersService_GetClusters_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetClusters(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -77,9 +77,6 @@ func request_ClustersService_GetCluster_0(ctx context.Context, marshaler runtime metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -88,6 +85,9 @@ func request_ClustersService_GetCluster_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetCluster(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -146,9 +146,6 @@ func request_ClustersService_PutCluster_0(ctx context.Context, marshaler runtime if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -157,6 +154,9 @@ func request_ClustersService_PutCluster_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutCluster(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -188,9 +188,6 @@ func request_ClustersService_DeleteCluster_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -199,6 +196,9 @@ func request_ClustersService_DeleteCluster_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteCluster(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/cluster_service.swagger.json b/generated/api/v1/cluster_service.swagger.json index e7cb5f337dafc..9401492401ef4 100644 --- a/generated/api/v1/cluster_service.swagger.json +++ b/generated/api/v1/cluster_service.swagger.json @@ -229,7 +229,7 @@ "HEALTHY" ], "default": "UNINITIALIZED", - "title": "- UNAVAILABLE: Only collector can have unavailable status" + "description": "- UNAVAILABLE: Only collector can have unavailable status" }, "ClusterUpgradeStatusUpgradability": { "type": "string", diff --git a/generated/api/v1/compliance_management_service.pb.gw.go b/generated/api/v1/compliance_management_service.pb.gw.go index d07c28da3c7c6..85beb2bcc2ed7 100644 --- a/generated/api/v1/compliance_management_service.pb.gw.go +++ b/generated/api/v1/compliance_management_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ComplianceManagementService_GetRecentRuns_0(ctx context.Context, ma protoReq GetRecentComplianceRunsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceManagementService_GetRecentRuns_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRecentRuns(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -104,15 +104,15 @@ func request_ComplianceManagementService_GetRunStatuses_0(ctx context.Context, m protoReq GetComplianceRunStatusesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceManagementService_GetRunStatuses_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRunStatuses(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/compliance_management_service.swagger.json b/generated/api/v1/compliance_management_service.swagger.json index e243bbe6ff9f5..6896bba6a615b 100644 --- a/generated/api/v1/compliance_management_service.swagger.json +++ b/generated/api/v1/compliance_management_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ComplianceManagementService" + "name": "ComplianceManagementService", + "description": "BEGIN EXPERIMENTAL/UNSTABLE API" } ], "consumes": [ diff --git a/generated/api/v1/compliance_service.pb.gw.go b/generated/api/v1/compliance_service.pb.gw.go index 519f5634ac267..a4f8692fd62f2 100644 --- a/generated/api/v1/compliance_service.pb.gw.go +++ b/generated/api/v1/compliance_service.pb.gw.go @@ -62,9 +62,6 @@ func request_ComplianceService_GetStandard_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -73,6 +70,9 @@ func request_ComplianceService_GetStandard_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetStandard(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -102,15 +102,15 @@ func request_ComplianceService_GetRunResults_0(ctx context.Context, marshaler ru protoReq GetComplianceRunResultsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceService_GetRunResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRunResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -137,15 +137,15 @@ func request_ComplianceService_GetAggregatedResults_0(ctx context.Context, marsh protoReq ComplianceAggregationRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceService_GetAggregatedResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAggregatedResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -174,9 +174,6 @@ func request_ComplianceService_UpdateComplianceStandardConfig_0(ctx context.Cont if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -185,6 +182,9 @@ func request_ComplianceService_UpdateComplianceStandardConfig_0(ctx context.Cont if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateComplianceStandardConfig(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/config_service.swagger.json b/generated/api/v1/config_service.swagger.json index ceb25909aa01f..0cf414400003e 100644 --- a/generated/api/v1/config_service.swagger.json +++ b/generated/api/v1/config_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ConfigService" + "name": "ConfigService", + "description": "ConfigService APIs can be used to manage Central config." } ], "consumes": [ diff --git a/generated/api/v1/credential_expiry_service.pb.gw.go b/generated/api/v1/credential_expiry_service.pb.gw.go index 6429afb93f087..30b40f12b9633 100644 --- a/generated/api/v1/credential_expiry_service.pb.gw.go +++ b/generated/api/v1/credential_expiry_service.pb.gw.go @@ -42,15 +42,15 @@ func request_CredentialExpiryService_GetCertExpiry_0(ctx context.Context, marsha protoReq GetCertExpiry_Request metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CredentialExpiryService_GetCertExpiry_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetCertExpiry(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/credential_expiry_service.swagger.json b/generated/api/v1/credential_expiry_service.swagger.json index f5c32c154bd68..d553c06514444 100644 --- a/generated/api/v1/credential_expiry_service.swagger.json +++ b/generated/api/v1/credential_expiry_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "CredentialExpiryService" + "name": "CredentialExpiryService", + "description": "CredentialExpiryService APIs can be used to retrieve information related to expiry\nof credentials of various StackRox services." } ], "consumes": [ diff --git a/generated/api/v1/cve_service.swagger.json b/generated/api/v1/cve_service.swagger.json index 53503c19cd0a3..b94b6ccfe68aa 100644 --- a/generated/api/v1/cve_service.swagger.json +++ b/generated/api/v1/cve_service.swagger.json @@ -6,10 +6,12 @@ }, "tags": [ { - "name": "NodeCVEService" + "name": "NodeCVEService", + "description": "NodeCVEService APIs can be used to manage node cves." }, { - "name": "ClusterCVEService" + "name": "ClusterCVEService", + "description": "ClusterCVEService APIs can be used to manage cluster cves." } ], "consumes": [ diff --git a/generated/api/v1/db_service.pb.gw.go b/generated/api/v1/db_service.pb.gw.go index 0979bd8be0048..7e864977dc57b 100644 --- a/generated/api/v1/db_service.pb.gw.go +++ b/generated/api/v1/db_service.pb.gw.go @@ -83,9 +83,6 @@ func request_DBService_InterruptRestoreProcess_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["process_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "process_id") @@ -102,6 +99,9 @@ func request_DBService_InterruptRestoreProcess_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "attempt_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.InterruptRestoreProcess(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -138,9 +138,6 @@ func request_DBService_CancelRestoreProcess_0(ctx context.Context, marshaler run metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -149,6 +146,9 @@ func request_DBService_CancelRestoreProcess_0(ctx context.Context, marshaler run if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CancelRestoreProcess(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/db_service.swagger.json b/generated/api/v1/db_service.swagger.json index eff15bc22e485..792ea0368bf80 100644 --- a/generated/api/v1/db_service.swagger.json +++ b/generated/api/v1/db_service.swagger.json @@ -323,7 +323,7 @@ "COMPLETED" ], "default": "UNKNOWN", - "title": "- COMPLETED: successful if error is empty, unsuccessful otherwise" + "description": "- COMPLETED: successful if error is empty, unsuccessful otherwise" }, "v1DBRestoreRequestHeader": { "type": "object", diff --git a/generated/api/v1/debug_service.pb.gw.go b/generated/api/v1/debug_service.pb.gw.go index f12ab6475098f..8dab0495d0993 100644 --- a/generated/api/v1/debug_service.pb.gw.go +++ b/generated/api/v1/debug_service.pb.gw.go @@ -42,15 +42,15 @@ func request_DebugService_GetLogLevel_0(ctx context.Context, marshaler runtime.M protoReq GetLogLevelRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DebugService_GetLogLevel_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetLogLevel(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/debug_service.swagger.json b/generated/api/v1/debug_service.swagger.json index 3749e09c0718f..8a986517ce8cc 100644 --- a/generated/api/v1/debug_service.swagger.json +++ b/generated/api/v1/debug_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "DebugService" + "name": "DebugService", + "description": "APIs for debugging." } ], "consumes": [ diff --git a/generated/api/v1/delegated_registry_config_service.swagger.json b/generated/api/v1/delegated_registry_config_service.swagger.json index 00f59b70a2a22..bed355282cd08 100644 --- a/generated/api/v1/delegated_registry_config_service.swagger.json +++ b/generated/api/v1/delegated_registry_config_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "DelegatedRegistryConfigService" + "name": "DelegatedRegistryConfigService", + "description": "DelegatedRegistryConfigService APIs can be used to control how to route image scans amongst\ncentral and secured clusters" } ], "consumes": [ @@ -117,7 +118,7 @@ "SPECIFIC" ], "default": "NONE", - "title": "- NONE: Scan all images via central services except for images from the OCP integrated registry\n - ALL: Scan all images via the secured clusters\n - SPECIFIC: Scan images that match `registries` or are from the OCP integrated registry via the secured clusters\notherwise scan via central services" + "description": "- NONE: Scan all images via central services except for images from the OCP integrated registry\n - ALL: Scan all images via the secured clusters\n - SPECIFIC: Scan images that match `registries` or are from the OCP integrated registry via the secured clusters\notherwise scan via central services" }, "googleRpcStatus": { "type": "object", diff --git a/generated/api/v1/deployment_service.pb.gw.go b/generated/api/v1/deployment_service.pb.gw.go index 004e1ad0b7d70..ae0d3da2eab9a 100644 --- a/generated/api/v1/deployment_service.pb.gw.go +++ b/generated/api/v1/deployment_service.pb.gw.go @@ -41,9 +41,6 @@ func request_DeploymentService_GetDeployment_0(ctx context.Context, marshaler ru metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_DeploymentService_GetDeployment_0(ctx context.Context, marshaler ru if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -80,9 +80,6 @@ func request_DeploymentService_GetDeploymentWithRisk_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -91,6 +88,9 @@ func request_DeploymentService_GetDeploymentWithRisk_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDeploymentWithRisk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -119,9 +119,6 @@ func request_DeploymentService_GetDeploymentRiskAISummary_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -130,6 +127,9 @@ func request_DeploymentService_GetDeploymentRiskAISummary_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDeploymentRiskAISummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -159,15 +159,15 @@ func request_DeploymentService_CountDeployments_0(ctx context.Context, marshaler protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DeploymentService_CountDeployments_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountDeployments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -194,15 +194,15 @@ func request_DeploymentService_ListDeployments_0(ctx context.Context, marshaler protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DeploymentService_ListDeployments_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListDeployments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -229,15 +229,15 @@ func request_DeploymentService_ListDeploymentsWithProcessInfo_0(ctx context.Cont protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DeploymentService_ListDeploymentsWithProcessInfo_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListDeploymentsWithProcessInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -285,15 +285,15 @@ func request_DeploymentService_ExportDeployments_0(ctx context.Context, marshale protoReq ExportDeploymentRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DeploymentService_ExportDeployments_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.ExportDeployments(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/generated/api/v1/deployment_service.swagger.json b/generated/api/v1/deployment_service.swagger.json index f5e9523e7e413..afa5445cc0098 100644 --- a/generated/api/v1/deployment_service.swagger.json +++ b/generated/api/v1/deployment_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "DeploymentService" + "name": "DeploymentService", + "description": "DeploymentService APIs can be used to manage deployments." } ], "consumes": [ @@ -456,7 +457,7 @@ "UNKNOWN" ], "default": "UNSET", - "title": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" + "description": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" }, "LabelSelectorRequirement": { "type": "object", @@ -1027,7 +1028,7 @@ "CLUSTER_ADMIN" ], "default": "UNSET", - "title": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" + "description": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" }, "storagePortConfig": { "type": "object", @@ -1141,7 +1142,7 @@ "SERVICEACCOUNT" ], "default": "UNKNOWN", - "title": "Next tag: 9" + "description": "Next tag: 9" }, "storageSecurityContext": { "type": "object", diff --git a/generated/api/v1/detection_service.swagger.json b/generated/api/v1/detection_service.swagger.json index 4bfb593f41f83..8be964b719432 100644 --- a/generated/api/v1/detection_service.swagger.json +++ b/generated/api/v1/detection_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "DetectionService" + "name": "DetectionService", + "description": "DetectionService APIs can be used to check for build and deploy time policy violations." } ], "consumes": [ @@ -279,7 +280,7 @@ "UNKNOWN" ], "default": "UNSET", - "title": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" + "description": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" }, "ExclusionImage": { "type": "object", @@ -1250,7 +1251,7 @@ "INTERNAL_ENTITIES" ], "default": "UNKNOWN_TYPE", - "title": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" + "description": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" }, "storagePermissionLevel": { "type": "string", @@ -1263,7 +1264,7 @@ "CLUSTER_ADMIN" ], "default": "UNSET", - "title": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" + "description": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" }, "storagePolicy": { "type": "object", diff --git a/generated/api/v1/discovered_cluster_service.pb.gw.go b/generated/api/v1/discovered_cluster_service.pb.gw.go index 10892f9ceb505..db873c116ff01 100644 --- a/generated/api/v1/discovered_cluster_service.pb.gw.go +++ b/generated/api/v1/discovered_cluster_service.pb.gw.go @@ -42,15 +42,15 @@ func request_DiscoveredClustersService_CountDiscoveredClusters_0(ctx context.Con protoReq CountDiscoveredClustersRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DiscoveredClustersService_CountDiscoveredClusters_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountDiscoveredClusters(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_DiscoveredClustersService_GetDiscoveredCluster_0(ctx context.Contex metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -87,6 +84,9 @@ func request_DiscoveredClustersService_GetDiscoveredCluster_0(ctx context.Contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDiscoveredCluster(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_DiscoveredClustersService_ListDiscoveredClusters_0(ctx context.Cont protoReq ListDiscoveredClustersRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DiscoveredClustersService_ListDiscoveredClusters_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListDiscoveredClusters(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/feature_flag_service.swagger.json b/generated/api/v1/feature_flag_service.swagger.json index 795e4e2532902..c7896b60c6319 100644 --- a/generated/api/v1/feature_flag_service.swagger.json +++ b/generated/api/v1/feature_flag_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "FeatureFlagService" + "name": "FeatureFlagService", + "description": "FeatureFlagService retrieves information about feature flags." } ], "consumes": [ diff --git a/generated/api/v1/group_service.pb.gw.go b/generated/api/v1/group_service.pb.gw.go index e1d807e755e26..4b73b238ea96b 100644 --- a/generated/api/v1/group_service.pb.gw.go +++ b/generated/api/v1/group_service.pb.gw.go @@ -43,15 +43,15 @@ func request_GroupService_GetGroups_0(ctx context.Context, marshaler runtime.Mar protoReq GetGroupsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_GroupService_GetGroups_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetGroups(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -78,15 +78,15 @@ func request_GroupService_GetGroup_0(ctx context.Context, marshaler runtime.Mars protoReq storage.GroupProperties metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_GroupService_GetGroup_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetGroup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -170,15 +170,15 @@ func request_GroupService_UpdateGroup_0(ctx context.Context, marshaler runtime.M if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Group); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_GroupService_UpdateGroup_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateGroup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -208,15 +208,15 @@ func request_GroupService_DeleteGroup_0(ctx context.Context, marshaler runtime.M protoReq DeleteGroupRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_GroupService_DeleteGroup_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteGroup(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/image_integration_service.pb.gw.go b/generated/api/v1/image_integration_service.pb.gw.go index 2d5fab0235a4b..1be46ef0ea676 100644 --- a/generated/api/v1/image_integration_service.pb.gw.go +++ b/generated/api/v1/image_integration_service.pb.gw.go @@ -42,9 +42,6 @@ func request_ImageIntegrationService_GetImageIntegration_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -53,6 +50,9 @@ func request_ImageIntegrationService_GetImageIntegration_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetImageIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -82,15 +82,15 @@ func request_ImageIntegrationService_GetImageIntegrations_0(ctx context.Context, protoReq GetImageIntegrationsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageIntegrationService_GetImageIntegrations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetImageIntegrations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -146,9 +146,6 @@ func request_ImageIntegrationService_PutImageIntegration_0(ctx context.Context, if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -157,6 +154,9 @@ func request_ImageIntegrationService_PutImageIntegration_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutImageIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -215,9 +215,6 @@ func request_ImageIntegrationService_DeleteImageIntegration_0(ctx context.Contex metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -226,6 +223,9 @@ func request_ImageIntegrationService_DeleteImageIntegration_0(ctx context.Contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteImageIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -257,9 +257,6 @@ func request_ImageIntegrationService_UpdateImageIntegration_0(ctx context.Contex if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["config.id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "config.id") @@ -268,6 +265,9 @@ func request_ImageIntegrationService_UpdateImageIntegration_0(ctx context.Contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "config.id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateImageIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/image_integration_service.swagger.json b/generated/api/v1/image_integration_service.swagger.json index 1385bd1518eb2..9006e3b4e1b25 100644 --- a/generated/api/v1/image_integration_service.swagger.json +++ b/generated/api/v1/image_integration_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ImageIntegrationService" + "name": "ImageIntegrationService", + "description": "ImageIntegrationService APIs manage image registry and image scanner integration." } ], "consumes": [ diff --git a/generated/api/v1/image_service.pb.gw.go b/generated/api/v1/image_service.pb.gw.go index b90487a79c248..bd047a05a4f2a 100644 --- a/generated/api/v1/image_service.pb.gw.go +++ b/generated/api/v1/image_service.pb.gw.go @@ -43,9 +43,6 @@ func request_ImageService_GetImage_0(ctx context.Context, marshaler runtime.Mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -60,6 +57,9 @@ func request_ImageService_GetImage_0(ctx context.Context, marshaler runtime.Mars if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_GetImage_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -95,15 +95,15 @@ func request_ImageService_CountImages_0(ctx context.Context, marshaler runtime.M protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_CountImages_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountImages(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -130,15 +130,15 @@ func request_ImageService_ListImages_0(ctx context.Context, marshaler runtime.Ma protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_ListImages_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListImages(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -213,15 +213,15 @@ func request_ImageService_DeleteImages_0(ctx context.Context, marshaler runtime. protoReq DeleteImagesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_DeleteImages_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteImages(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -275,15 +275,15 @@ func request_ImageService_UnwatchImage_0(ctx context.Context, marshaler runtime. protoReq UnwatchImageRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_UnwatchImage_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UnwatchImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -331,15 +331,15 @@ func request_ImageService_ExportImages_0(ctx context.Context, marshaler runtime. protoReq ExportImageRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ImageService_ExportImages_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.ExportImages(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/generated/api/v1/image_service.swagger.json b/generated/api/v1/image_service.swagger.json index 51036b8b504f4..013a93f5f0b2b 100644 --- a/generated/api/v1/image_service.swagger.json +++ b/generated/api/v1/image_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ImageService" + "name": "ImageService", + "description": "ImageService APIs manages image metadata." } ], "consumes": [ diff --git a/generated/api/v1/integration_health_service.pb.gw.go b/generated/api/v1/integration_health_service.pb.gw.go index 3e0b4c0bf7568..14e6b575d6a80 100644 --- a/generated/api/v1/integration_health_service.pb.gw.go +++ b/generated/api/v1/integration_health_service.pb.gw.go @@ -126,15 +126,15 @@ func request_IntegrationHealthService_GetVulnDefinitionsInfo_0(ctx context.Conte protoReq VulnDefinitionsInfoRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_IntegrationHealthService_GetVulnDefinitionsInfo_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVulnDefinitionsInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/metadata_service.pb.gw.go b/generated/api/v1/metadata_service.pb.gw.go index 59807b91a4e92..30f10d2b48a76 100644 --- a/generated/api/v1/metadata_service.pb.gw.go +++ b/generated/api/v1/metadata_service.pb.gw.go @@ -63,15 +63,15 @@ func request_MetadataService_TLSChallenge_0(ctx context.Context, marshaler runti protoReq TLSChallengeRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MetadataService_TLSChallenge_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.TLSChallenge(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/mitre_service.pb.gw.go b/generated/api/v1/mitre_service.pb.gw.go index 20d08c6b0f6f3..b28db6432449f 100644 --- a/generated/api/v1/mitre_service.pb.gw.go +++ b/generated/api/v1/mitre_service.pb.gw.go @@ -62,9 +62,6 @@ func request_MitreAttackService_GetMitreAttackVector_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -73,6 +70,9 @@ func request_MitreAttackService_GetMitreAttackVector_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMitreAttackVector(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/mitre_service.swagger.json b/generated/api/v1/mitre_service.swagger.json index 79ccd8044ec9b..cee9fb88f3394 100644 --- a/generated/api/v1/mitre_service.swagger.json +++ b/generated/api/v1/mitre_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "MitreAttackService" + "name": "MitreAttackService", + "description": "MitreAttackService can be used to retrieve information about MITRE ATT&CK matrix." } ], "consumes": [ diff --git a/generated/api/v1/namespace_service.pb.gw.go b/generated/api/v1/namespace_service.pb.gw.go index 0234b1f9b1610..83f6246c36824 100644 --- a/generated/api/v1/namespace_service.pb.gw.go +++ b/generated/api/v1/namespace_service.pb.gw.go @@ -42,15 +42,15 @@ func request_NamespaceService_GetNamespaces_0(ctx context.Context, marshaler run protoReq GetNamespaceRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NamespaceService_GetNamespaces_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNamespaces(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_NamespaceService_GetNamespace_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -87,6 +84,9 @@ func request_NamespaceService_GetNamespace_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/network_baseline_service.pb.gw.go b/generated/api/v1/network_baseline_service.pb.gw.go index b8351ab14126a..a5b1194bc3030 100644 --- a/generated/api/v1/network_baseline_service.pb.gw.go +++ b/generated/api/v1/network_baseline_service.pb.gw.go @@ -44,9 +44,6 @@ func request_NetworkBaselineService_GetNetworkBaselineStatusForFlows_0(ctx conte if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -55,6 +52,9 @@ func request_NetworkBaselineService_GetNetworkBaselineStatusForFlows_0(ctx conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkBaselineStatusForFlows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -88,9 +88,6 @@ func request_NetworkBaselineService_GetNetworkBaselineStatusForExternalFlows_0(c metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -105,6 +102,9 @@ func request_NetworkBaselineService_GetNetworkBaselineStatusForExternalFlows_0(c if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkBaselineService_GetNetworkBaselineStatusForExternalFlows_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkBaselineStatusForExternalFlows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -139,9 +139,6 @@ func request_NetworkBaselineService_GetNetworkBaseline_0(ctx context.Context, ma metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -150,6 +147,9 @@ func request_NetworkBaselineService_GetNetworkBaseline_0(ctx context.Context, ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkBaseline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -181,9 +181,6 @@ func request_NetworkBaselineService_ModifyBaselineStatusForPeers_0(ctx context.C if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -192,6 +189,9 @@ func request_NetworkBaselineService_ModifyBaselineStatusForPeers_0(ctx context.C if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ModifyBaselineStatusForPeers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -226,9 +226,6 @@ func request_NetworkBaselineService_LockNetworkBaseline_0(ctx context.Context, m if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -237,6 +234,9 @@ func request_NetworkBaselineService_LockNetworkBaseline_0(ctx context.Context, m if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.LockNetworkBaseline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -271,9 +271,6 @@ func request_NetworkBaselineService_UnlockNetworkBaseline_0(ctx context.Context, if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -282,6 +279,9 @@ func request_NetworkBaselineService_UnlockNetworkBaseline_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UnlockNetworkBaseline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/network_baseline_service.swagger.json b/generated/api/v1/network_baseline_service.swagger.json index 38d7a0bb1d716..0878afb1c71f5 100644 --- a/generated/api/v1/network_baseline_service.swagger.json +++ b/generated/api/v1/network_baseline_service.swagger.json @@ -531,7 +531,7 @@ "INTERNAL_ENTITIES" ], "default": "UNKNOWN_TYPE", - "title": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" + "description": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" }, "storageNetworkEntityScope": { "type": "object", @@ -627,7 +627,7 @@ "ANOMALOUS" ], "default": "BASELINE", - "title": "Status of this peer connection. As of now we only have two statuses:\n - BASELINE: the connection is in the current deployment baseline\n - ANOMALOUS: the connection is not recognized by the current deployment baseline" + "description": "Status of this peer connection. As of now we only have two statuses:\n - BASELINE: the connection is in the current deployment baseline\n - ANOMALOUS: the connection is not recognized by the current deployment baseline" }, "v1NetworkBaselineStatusPeer": { "type": "object", diff --git a/generated/api/v1/network_graph_service.pb.gw.go b/generated/api/v1/network_graph_service.pb.gw.go index f4854fbfcd6c8..7fbc8d1069b0d 100644 --- a/generated/api/v1/network_graph_service.pb.gw.go +++ b/generated/api/v1/network_graph_service.pb.gw.go @@ -43,9 +43,6 @@ func request_NetworkGraphService_GetNetworkGraph_0(ctx context.Context, marshale metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -60,6 +57,9 @@ func request_NetworkGraphService_GetNetworkGraph_0(ctx context.Context, marshale if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkGraphService_GetNetworkGraph_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -96,9 +96,6 @@ func request_NetworkGraphService_GetExternalNetworkEntities_0(ctx context.Contex metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -113,6 +110,9 @@ func request_NetworkGraphService_GetExternalNetworkEntities_0(ctx context.Contex if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkGraphService_GetExternalNetworkEntities_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetExternalNetworkEntities(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -149,9 +149,6 @@ func request_NetworkGraphService_GetExternalNetworkFlows_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -174,6 +171,9 @@ func request_NetworkGraphService_GetExternalNetworkFlows_0(ctx context.Context, if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkGraphService_GetExternalNetworkFlows_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetExternalNetworkFlows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -218,9 +218,6 @@ func request_NetworkGraphService_GetExternalNetworkFlowsMetadata_0(ctx context.C metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -235,6 +232,9 @@ func request_NetworkGraphService_GetExternalNetworkFlowsMetadata_0(ctx context.C if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkGraphService_GetExternalNetworkFlowsMetadata_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetExternalNetworkFlowsMetadata(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -272,9 +272,6 @@ func request_NetworkGraphService_CreateExternalNetworkEntity_0(ctx context.Conte if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -283,6 +280,9 @@ func request_NetworkGraphService_CreateExternalNetworkEntity_0(ctx context.Conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cluster_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CreateExternalNetworkEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -317,9 +317,6 @@ func request_NetworkGraphService_PatchExternalNetworkEntity_0(ctx context.Contex if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -328,6 +325,9 @@ func request_NetworkGraphService_PatchExternalNetworkEntity_0(ctx context.Contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PatchExternalNetworkEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -359,9 +359,6 @@ func request_NetworkGraphService_DeleteExternalNetworkEntity_0(ctx context.Conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -370,6 +367,9 @@ func request_NetworkGraphService_DeleteExternalNetworkEntity_0(ctx context.Conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteExternalNetworkEntity(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/network_graph_service.swagger.json b/generated/api/v1/network_graph_service.swagger.json index 841f6bd97449b..88756b1f3b6f9 100644 --- a/generated/api/v1/network_graph_service.swagger.json +++ b/generated/api/v1/network_graph_service.swagger.json @@ -603,7 +603,7 @@ "INTERNAL_ENTITIES" ], "default": "UNKNOWN_TYPE", - "title": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" + "description": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" }, "storageNetworkEntityScope": { "type": "object", diff --git a/generated/api/v1/network_policy_service.pb.gw.go b/generated/api/v1/network_policy_service.pb.gw.go index c472d6ec1006f..5575bdd5119b1 100644 --- a/generated/api/v1/network_policy_service.pb.gw.go +++ b/generated/api/v1/network_policy_service.pb.gw.go @@ -41,9 +41,6 @@ func request_NetworkPolicyService_GetNetworkPolicy_0(ctx context.Context, marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_NetworkPolicyService_GetNetworkPolicy_0(ctx context.Context, marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_NetworkPolicyService_GetNetworkPolicies_0(ctx context.Context, mars protoReq GetNetworkPoliciesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_GetNetworkPolicies_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkPolicies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -117,9 +117,6 @@ func request_NetworkPolicyService_GetNetworkGraph_0(ctx context.Context, marshal metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -134,6 +131,9 @@ func request_NetworkPolicyService_GetNetworkGraph_0(ctx context.Context, marshal if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_GetNetworkGraph_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -169,15 +169,15 @@ func request_NetworkPolicyService_GetNetworkGraphEpoch_0(ctx context.Context, ma protoReq GetNetworkGraphEpochRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_GetNetworkGraphEpoch_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNetworkGraphEpoch(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -206,9 +206,6 @@ func request_NetworkPolicyService_ApplyNetworkPolicy_0(ctx context.Context, mars if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Modification); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -217,6 +214,9 @@ func request_NetworkPolicyService_ApplyNetworkPolicy_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cluster_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ApplyNetworkPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -248,9 +248,6 @@ func request_NetworkPolicyService_GetUndoModification_0(ctx context.Context, mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -259,6 +256,9 @@ func request_NetworkPolicyService_GetUndoModification_0(ctx context.Context, mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cluster_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetUndoModification(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -292,9 +292,6 @@ func request_NetworkPolicyService_SimulateNetworkGraph_0(ctx context.Context, ma if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Modification); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -309,6 +306,9 @@ func request_NetworkPolicyService_SimulateNetworkGraph_0(ctx context.Context, ma if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_SimulateNetworkGraph_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.SimulateNetworkGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -351,9 +351,6 @@ func request_NetworkPolicyService_SendNetworkPolicyYAML_0(ctx context.Context, m if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Modification); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -368,6 +365,9 @@ func request_NetworkPolicyService_SendNetworkPolicyYAML_0(ctx context.Context, m if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_SendNetworkPolicyYAML_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.SendNetworkPolicyYAML(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -407,9 +407,6 @@ func request_NetworkPolicyService_GenerateNetworkPolicies_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -424,6 +421,9 @@ func request_NetworkPolicyService_GenerateNetworkPolicies_0(ctx context.Context, if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NetworkPolicyService_GenerateNetworkPolicies_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GenerateNetworkPolicies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -461,9 +461,6 @@ func request_NetworkPolicyService_GetBaselineGeneratedNetworkPolicyForDeployment if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -472,6 +469,9 @@ func request_NetworkPolicyService_GetBaselineGeneratedNetworkPolicyForDeployment if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetBaselineGeneratedNetworkPolicyForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -503,9 +503,6 @@ func request_NetworkPolicyService_GetAllowedPeersFromCurrentPolicyForDeployment_ metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -514,6 +511,9 @@ func request_NetworkPolicyService_GetAllowedPeersFromCurrentPolicyForDeployment_ if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetAllowedPeersFromCurrentPolicyForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -545,9 +545,6 @@ func request_NetworkPolicyService_ApplyNetworkPolicyYamlForDeployment_0(ctx cont if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -556,6 +553,9 @@ func request_NetworkPolicyService_ApplyNetworkPolicyYamlForDeployment_0(ctx cont if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ApplyNetworkPolicyYamlForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -587,9 +587,6 @@ func request_NetworkPolicyService_GetUndoModificationForDeployment_0(ctx context metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -598,6 +595,9 @@ func request_NetworkPolicyService_GetUndoModificationForDeployment_0(ctx context if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetUndoModificationForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -626,9 +626,6 @@ func request_NetworkPolicyService_GetDiffFlowsBetweenPolicyAndBaselineForDeploym metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -637,6 +634,9 @@ func request_NetworkPolicyService_GetDiffFlowsBetweenPolicyAndBaselineForDeploym if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDiffFlowsBetweenPolicyAndBaselineForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -665,9 +665,6 @@ func request_NetworkPolicyService_GetDiffFlowsFromUndoModificationForDeployment_ metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -676,6 +673,9 @@ func request_NetworkPolicyService_GetDiffFlowsFromUndoModificationForDeployment_ if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetDiffFlowsFromUndoModificationForDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/network_policy_service.swagger.json b/generated/api/v1/network_policy_service.swagger.json index 6cae046bb1aa1..7b15ea6766ec8 100644 --- a/generated/api/v1/network_policy_service.swagger.json +++ b/generated/api/v1/network_policy_service.swagger.json @@ -843,7 +843,7 @@ "INTERNAL_ENTITIES" ], "default": "UNKNOWN_TYPE", - "title": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" + "description": "- INTERNAL_ENTITIES: INTERNAL_ENTITIES is for grouping all internal entities under a single network graph node" }, "storageNetworkPolicy": { "type": "object", diff --git a/generated/api/v1/node_service.pb.gw.go b/generated/api/v1/node_service.pb.gw.go index 02ab873b2bdf9..59afbd7b8a3e8 100644 --- a/generated/api/v1/node_service.pb.gw.go +++ b/generated/api/v1/node_service.pb.gw.go @@ -41,9 +41,6 @@ func request_NodeService_ListNodes_0(ctx context.Context, marshaler runtime.Mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -52,6 +49,9 @@ func request_NodeService_ListNodes_0(ctx context.Context, marshaler runtime.Mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cluster_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListNodes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -80,9 +80,6 @@ func request_NodeService_GetNode_0(ctx context.Context, marshaler runtime.Marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -99,6 +96,9 @@ func request_NodeService_GetNode_0(ctx context.Context, marshaler runtime.Marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "node_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNode(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -136,15 +136,15 @@ func request_NodeService_ExportNodes_0(ctx context.Context, marshaler runtime.Ma protoReq ExportNodeRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeService_ExportNodes_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.ExportNodes(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/generated/api/v1/node_service.swagger.json b/generated/api/v1/node_service.swagger.json index a50f3bc54ff87..6643b1fca6c29 100644 --- a/generated/api/v1/node_service.swagger.json +++ b/generated/api/v1/node_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "NodeService" + "name": "NodeService", + "description": "storage.Node represents information about a node in the cluster." } ], "consumes": [ diff --git a/generated/api/v1/notifier_service.pb.gw.go b/generated/api/v1/notifier_service.pb.gw.go index a6efe55dc4d07..efc7340a7a505 100644 --- a/generated/api/v1/notifier_service.pb.gw.go +++ b/generated/api/v1/notifier_service.pb.gw.go @@ -42,9 +42,6 @@ func request_NotifierService_GetNotifier_0(ctx context.Context, marshaler runtim metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -53,6 +50,9 @@ func request_NotifierService_GetNotifier_0(ctx context.Context, marshaler runtim if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNotifier(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -105,9 +105,6 @@ func request_NotifierService_PutNotifier_0(ctx context.Context, marshaler runtim if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -116,6 +113,9 @@ func request_NotifierService_PutNotifier_0(ctx context.Context, marshaler runtim if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutNotifier(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -203,9 +203,6 @@ func request_NotifierService_DeleteNotifier_0(ctx context.Context, marshaler run metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -220,6 +217,9 @@ func request_NotifierService_DeleteNotifier_0(ctx context.Context, marshaler run if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NotifierService_DeleteNotifier_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteNotifier(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -257,9 +257,6 @@ func request_NotifierService_UpdateNotifier_0(ctx context.Context, marshaler run if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["notifier.id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "notifier.id") @@ -268,6 +265,9 @@ func request_NotifierService_UpdateNotifier_0(ctx context.Context, marshaler run if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "notifier.id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateNotifier(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/pod_service.pb.gw.go b/generated/api/v1/pod_service.pb.gw.go index 39b12fc48f088..2ce4c45231940 100644 --- a/generated/api/v1/pod_service.pb.gw.go +++ b/generated/api/v1/pod_service.pb.gw.go @@ -42,15 +42,15 @@ func request_PodService_GetPods_0(ctx context.Context, marshaler runtime.Marshal protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PodService_GetPods_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPods(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -77,15 +77,15 @@ func request_PodService_ExportPods_0(ctx context.Context, marshaler runtime.Mars protoReq ExportPodRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PodService_ExportPods_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.ExportPods(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/generated/api/v1/pod_service.swagger.json b/generated/api/v1/pod_service.swagger.json index cb2ff3dfc3dd6..9999e581a2497 100644 --- a/generated/api/v1/pod_service.swagger.json +++ b/generated/api/v1/pod_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "PodService" + "name": "PodService", + "description": "PodService APIs can be used to manage pods." } ], "consumes": [ diff --git a/generated/api/v1/policy_category_service.pb.gw.go b/generated/api/v1/policy_category_service.pb.gw.go index 86e759ec0dbdc..a5a74a2474bfb 100644 --- a/generated/api/v1/policy_category_service.pb.gw.go +++ b/generated/api/v1/policy_category_service.pb.gw.go @@ -41,9 +41,6 @@ func request_PolicyCategoryService_GetPolicyCategory_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_PolicyCategoryService_GetPolicyCategory_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPolicyCategory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_PolicyCategoryService_GetPolicyCategories_0(ctx context.Context, ma protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PolicyCategoryService_GetPolicyCategories_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPolicyCategories(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -169,9 +169,6 @@ func request_PolicyCategoryService_DeletePolicyCategory_0(ctx context.Context, m metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -180,6 +177,9 @@ func request_PolicyCategoryService_DeletePolicyCategory_0(ctx context.Context, m if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeletePolicyCategory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/policy_category_service.swagger.json b/generated/api/v1/policy_category_service.swagger.json index 7c631508e36af..6814e80eb5f00 100644 --- a/generated/api/v1/policy_category_service.swagger.json +++ b/generated/api/v1/policy_category_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "PolicyCategoryService" + "name": "PolicyCategoryService", + "description": "PolicyCategoryService APIs can be used to manage policy categories." } ], "consumes": [ diff --git a/generated/api/v1/policy_service.pb.gw.go b/generated/api/v1/policy_service.pb.gw.go index 2477addfe0469..0d08aab492beb 100644 --- a/generated/api/v1/policy_service.pb.gw.go +++ b/generated/api/v1/policy_service.pb.gw.go @@ -42,9 +42,6 @@ func request_PolicyService_GetPolicy_0(ctx context.Context, marshaler runtime.Ma metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -53,6 +50,9 @@ func request_PolicyService_GetPolicy_0(ctx context.Context, marshaler runtime.Ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -83,9 +83,6 @@ func request_PolicyService_GetPolicyMitreVectors_0(ctx context.Context, marshale metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -100,6 +97,9 @@ func request_PolicyService_GetPolicyMitreVectors_0(ctx context.Context, marshale if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PolicyService_GetPolicyMitreVectors_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPolicyMitreVectors(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -135,15 +135,15 @@ func request_PolicyService_ListPolicies_0(ctx context.Context, marshaler runtime protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PolicyService_ListPolicies_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListPolicies(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -173,15 +173,15 @@ func request_PolicyService_PostPolicy_0(ctx context.Context, marshaler runtime.M if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Policy); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PolicyService_PostPolicy_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PostPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -213,9 +213,6 @@ func request_PolicyService_PutPolicy_0(ctx context.Context, marshaler runtime.Ma if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -224,6 +221,9 @@ func request_PolicyService_PutPolicy_0(ctx context.Context, marshaler runtime.Ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -258,9 +258,6 @@ func request_PolicyService_PatchPolicy_0(ctx context.Context, marshaler runtime. if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -269,6 +266,9 @@ func request_PolicyService_PatchPolicy_0(ctx context.Context, marshaler runtime. if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PatchPolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -300,9 +300,6 @@ func request_PolicyService_DeletePolicy_0(ctx context.Context, marshaler runtime metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -311,6 +308,9 @@ func request_PolicyService_DeletePolicy_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeletePolicy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -342,9 +342,6 @@ func request_PolicyService_EnableDisablePolicyNotification_0(ctx context.Context if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["policy_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "policy_id") @@ -353,6 +350,9 @@ func request_PolicyService_EnableDisablePolicyNotification_0(ctx context.Context if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "policy_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.EnableDisablePolicyNotification(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -459,9 +459,6 @@ func request_PolicyService_QueryDryRunJobStatus_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["job_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") @@ -470,6 +467,9 @@ func request_PolicyService_QueryDryRunJobStatus_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.QueryDryRunJobStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -498,9 +498,6 @@ func request_PolicyService_CancelDryRunJob_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["job_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "job_id") @@ -509,6 +506,9 @@ func request_PolicyService_CancelDryRunJob_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "job_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CancelDryRunJob(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/policy_service.swagger.json b/generated/api/v1/policy_service.swagger.json index faeb58adf12cf..e084db38a9d74 100644 --- a/generated/api/v1/policy_service.swagger.json +++ b/generated/api/v1/policy_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "PolicyService" + "name": "PolicyService", + "description": "PolicyService APIs can be used to manage policies." } ], "consumes": [ diff --git a/generated/api/v1/probe_upload_service.pb.gw.go b/generated/api/v1/probe_upload_service.pb.gw.go index f35454c7cde77..526b315d8a40e 100644 --- a/generated/api/v1/probe_upload_service.pb.gw.go +++ b/generated/api/v1/probe_upload_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ProbeUploadService_GetExistingProbes_0(ctx context.Context, marshal protoReq GetExistingProbesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProbeUploadService_GetExistingProbes_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetExistingProbes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/process_baseline_service.pb.gw.go b/generated/api/v1/process_baseline_service.pb.gw.go index bd4fa797522a9..bf2f96e5b64d5 100644 --- a/generated/api/v1/process_baseline_service.pb.gw.go +++ b/generated/api/v1/process_baseline_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ProcessBaselineService_GetProcessBaseline_0(ctx context.Context, ma protoReq GetProcessBaselineRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProcessBaselineService_GetProcessBaseline_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetProcessBaseline(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -185,15 +185,15 @@ func request_ProcessBaselineService_DeleteProcessBaselines_0(ctx context.Context protoReq DeleteProcessBaselinesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProcessBaselineService_DeleteProcessBaselines_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteProcessBaselines(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/process_baseline_service.swagger.json b/generated/api/v1/process_baseline_service.swagger.json index 8ab759940ec00..1e81749ddf499 100644 --- a/generated/api/v1/process_baseline_service.swagger.json +++ b/generated/api/v1/process_baseline_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ProcessBaselineService" + "name": "ProcessBaselineService", + "description": "`ProcessBaselineService` APIs can be used to manage process baselines." } ], "consumes": [ diff --git a/generated/api/v1/process_listening_on_port_service.pb.gw.go b/generated/api/v1/process_listening_on_port_service.pb.gw.go index ad3a52474e845..abf8f51636f0c 100644 --- a/generated/api/v1/process_listening_on_port_service.pb.gw.go +++ b/generated/api/v1/process_listening_on_port_service.pb.gw.go @@ -43,9 +43,6 @@ func request_ListeningEndpointsService_GetListeningEndpoints_0(ctx context.Conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -60,6 +57,9 @@ func request_ListeningEndpointsService_GetListeningEndpoints_0(ctx context.Conte if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ListeningEndpointsService_GetListeningEndpoints_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetListeningEndpoints(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/process_listening_on_port_service.swagger.json b/generated/api/v1/process_listening_on_port_service.swagger.json index 7953707c2f48a..52fe688b4fe00 100644 --- a/generated/api/v1/process_listening_on_port_service.swagger.json +++ b/generated/api/v1/process_listening_on_port_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ListeningEndpointsService" + "name": "ListeningEndpointsService", + "description": "ListeningEndpointsService API can be used to list listening endpoints and the processes that opened them." } ], "consumes": [ diff --git a/generated/api/v1/process_service.pb.gw.go b/generated/api/v1/process_service.pb.gw.go index f25925019271f..82447c5165500 100644 --- a/generated/api/v1/process_service.pb.gw.go +++ b/generated/api/v1/process_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ProcessService_CountProcesses_0(ctx context.Context, marshaler runt protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProcessService_CountProcesses_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountProcesses(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_ProcessService_GetProcessesByDeployment_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -87,6 +84,9 @@ func request_ProcessService_GetProcessesByDeployment_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetProcessesByDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -115,9 +115,6 @@ func request_ProcessService_GetGroupedProcessByDeployment_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -126,6 +123,9 @@ func request_ProcessService_GetGroupedProcessByDeployment_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetGroupedProcessByDeployment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -154,9 +154,6 @@ func request_ProcessService_GetGroupedProcessByDeploymentAndContainer_0(ctx cont metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["deployment_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployment_id") @@ -165,6 +162,9 @@ func request_ProcessService_GetGroupedProcessByDeploymentAndContainer_0(ctx cont if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployment_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetGroupedProcessByDeploymentAndContainer(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/process_service.swagger.json b/generated/api/v1/process_service.swagger.json index c517bfb0d3de2..6df20adc41588 100644 --- a/generated/api/v1/process_service.swagger.json +++ b/generated/api/v1/process_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "ProcessService" + "name": "ProcessService", + "description": "ProcessService APIs can be used to list processes executed in deployments." } ], "consumes": [ diff --git a/generated/api/v1/rbac_service.pb.gw.go b/generated/api/v1/rbac_service.pb.gw.go index 83e52643eb37b..e762978e6b3be 100644 --- a/generated/api/v1/rbac_service.pb.gw.go +++ b/generated/api/v1/rbac_service.pb.gw.go @@ -41,9 +41,6 @@ func request_RbacService_GetRole_0(ctx context.Context, marshaler runtime.Marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_RbacService_GetRole_0(ctx context.Context, marshaler runtime.Marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_RbacService_ListRoles_0(ctx context.Context, marshaler runtime.Mars protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RbacService_ListRoles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListRoles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -115,9 +115,6 @@ func request_RbacService_GetRoleBinding_0(ctx context.Context, marshaler runtime metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -126,6 +123,9 @@ func request_RbacService_GetRoleBinding_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRoleBinding(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -155,15 +155,15 @@ func request_RbacService_ListRoleBindings_0(ctx context.Context, marshaler runti protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RbacService_ListRoleBindings_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListRoleBindings(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -189,9 +189,6 @@ func request_RbacService_GetSubject_0(ctx context.Context, marshaler runtime.Mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -200,6 +197,9 @@ func request_RbacService_GetSubject_0(ctx context.Context, marshaler runtime.Mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetSubject(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -229,15 +229,15 @@ func request_RbacService_ListSubjects_0(ctx context.Context, marshaler runtime.M protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RbacService_ListSubjects_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListSubjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/resource_collection_service.pb.gw.go b/generated/api/v1/resource_collection_service.pb.gw.go index 6de4f6646b426..17989bc5527ed 100644 --- a/generated/api/v1/resource_collection_service.pb.gw.go +++ b/generated/api/v1/resource_collection_service.pb.gw.go @@ -64,9 +64,6 @@ func request_CollectionService_GetCollection_0(ctx context.Context, marshaler ru metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -81,6 +78,9 @@ func request_CollectionService_GetCollection_0(ctx context.Context, marshaler ru if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CollectionService_GetCollection_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetCollection(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_CollectionService_GetCollectionCount_0(ctx context.Context, marshal protoReq GetCollectionCountRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CollectionService_GetCollectionCount_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetCollectionCount(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -180,9 +180,6 @@ func request_CollectionService_UpdateCollection_0(ctx context.Context, marshaler if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -191,6 +188,9 @@ func request_CollectionService_UpdateCollection_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateCollection(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -223,15 +223,15 @@ func request_CollectionService_ListCollections_0(ctx context.Context, marshaler protoReq ListCollectionsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CollectionService_ListCollections_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListCollections(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -257,9 +257,6 @@ func request_CollectionService_DeleteCollection_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -268,6 +265,9 @@ func request_CollectionService_DeleteCollection_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteCollection(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/role_service.pb.gw.go b/generated/api/v1/role_service.pb.gw.go index 69f19e28bf71c..ffd6c83912a0d 100644 --- a/generated/api/v1/role_service.pb.gw.go +++ b/generated/api/v1/role_service.pb.gw.go @@ -63,9 +63,6 @@ func request_RoleService_GetRole_0(ctx context.Context, marshaler runtime.Marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -74,6 +71,9 @@ func request_RoleService_GetRole_0(ctx context.Context, marshaler runtime.Marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -126,9 +126,6 @@ func request_RoleService_CreateRole_0(ctx context.Context, marshaler runtime.Mar if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Role); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") @@ -137,6 +134,9 @@ func request_RoleService_CreateRole_0(ctx context.Context, marshaler runtime.Mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CreateRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -171,9 +171,6 @@ func request_RoleService_UpdateRole_0(ctx context.Context, marshaler runtime.Mar if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") @@ -182,6 +179,9 @@ func request_RoleService_UpdateRole_0(ctx context.Context, marshaler runtime.Mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -213,9 +213,6 @@ func request_RoleService_DeleteRole_0(ctx context.Context, marshaler runtime.Mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -224,6 +221,9 @@ func request_RoleService_DeleteRole_0(ctx context.Context, marshaler runtime.Mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteRole(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -273,9 +273,6 @@ func request_RoleService_GetPermissionSet_0(ctx context.Context, marshaler runti metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -284,6 +281,9 @@ func request_RoleService_GetPermissionSet_0(ctx context.Context, marshaler runti if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetPermissionSet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -363,9 +363,6 @@ func request_RoleService_PutPermissionSet_0(ctx context.Context, marshaler runti if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -374,6 +371,9 @@ func request_RoleService_PutPermissionSet_0(ctx context.Context, marshaler runti if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutPermissionSet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -405,9 +405,6 @@ func request_RoleService_DeletePermissionSet_0(ctx context.Context, marshaler ru metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -416,6 +413,9 @@ func request_RoleService_DeletePermissionSet_0(ctx context.Context, marshaler ru if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeletePermissionSet(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -444,9 +444,6 @@ func request_RoleService_GetSimpleAccessScope_0(ctx context.Context, marshaler r metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -455,6 +452,9 @@ func request_RoleService_GetSimpleAccessScope_0(ctx context.Context, marshaler r if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetSimpleAccessScope(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -534,9 +534,6 @@ func request_RoleService_PutSimpleAccessScope_0(ctx context.Context, marshaler r if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -545,6 +542,9 @@ func request_RoleService_PutSimpleAccessScope_0(ctx context.Context, marshaler r if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutSimpleAccessScope(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -576,9 +576,6 @@ func request_RoleService_DeleteSimpleAccessScope_0(ctx context.Context, marshale metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -587,6 +584,9 @@ func request_RoleService_DeleteSimpleAccessScope_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteSimpleAccessScope(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -619,15 +619,15 @@ func request_RoleService_ComputeEffectiveAccessScope_0(ctx context.Context, mars if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.AccessScope); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_ComputeEffectiveAccessScope_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ComputeEffectiveAccessScope(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -657,15 +657,15 @@ func request_RoleService_GetClustersForPermissions_0(ctx context.Context, marsha protoReq GetClustersForPermissionsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_GetClustersForPermissions_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetClustersForPermissions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -693,9 +693,6 @@ func request_RoleService_GetNamespacesForClusterAndPermissions_0(ctx context.Con metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -710,6 +707,9 @@ func request_RoleService_GetNamespacesForClusterAndPermissions_0(ctx context.Con if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RoleService_GetNamespacesForClusterAndPermissions_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNamespacesForClusterAndPermissions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/search_service.pb.gw.go b/generated/api/v1/search_service.pb.gw.go index d3552e35e4529..d378f935e30c5 100644 --- a/generated/api/v1/search_service.pb.gw.go +++ b/generated/api/v1/search_service.pb.gw.go @@ -42,15 +42,15 @@ func request_SearchService_Search_0(ctx context.Context, marshaler runtime.Marsh protoReq RawSearchRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SearchService_Search_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.Search(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -77,15 +77,15 @@ func request_SearchService_Options_0(ctx context.Context, marshaler runtime.Mars protoReq SearchOptionsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SearchService_Options_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.Options(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -112,15 +112,15 @@ func request_SearchService_Autocomplete_0(ctx context.Context, marshaler runtime protoReq RawSearchRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SearchService_Autocomplete_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.Autocomplete(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/search_service.swagger.json b/generated/api/v1/search_service.swagger.json index f5a8a5301592d..50579f6c31c4a 100644 --- a/generated/api/v1/search_service.swagger.json +++ b/generated/api/v1/search_service.swagger.json @@ -531,7 +531,7 @@ "IMAGE_CVE_INFOS" ], "default": "SEARCH_UNSET", - "title": "Next available tag: 85" + "description": "Next available tag: 85" }, "v1SearchOptionsResponse": { "type": "object", diff --git a/generated/api/v1/secret_service.pb.gw.go b/generated/api/v1/secret_service.pb.gw.go index 5cc80c64bf04c..d48c3cd9aaf6a 100644 --- a/generated/api/v1/secret_service.pb.gw.go +++ b/generated/api/v1/secret_service.pb.gw.go @@ -41,9 +41,6 @@ func request_SecretService_GetSecret_0(ctx context.Context, marshaler runtime.Ma metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_SecretService_GetSecret_0(ctx context.Context, marshaler runtime.Ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetSecret(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_SecretService_CountSecrets_0(ctx context.Context, marshaler runtime protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SecretService_CountSecrets_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountSecrets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_SecretService_ListSecrets_0(ctx context.Context, marshaler runtime. protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SecretService_ListSecrets_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListSecrets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -151,15 +151,15 @@ func request_SecretService_ListSecretsExtended_0(ctx context.Context, marshaler protoReq ListSecretsExtendedRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_SecretService_ListSecretsExtended_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListSecretsExtended(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/sensor_upgrade_service.pb.gw.go b/generated/api/v1/sensor_upgrade_service.pb.gw.go index 77e2081bf85f1..8ae39c741f536 100644 --- a/generated/api/v1/sensor_upgrade_service.pb.gw.go +++ b/generated/api/v1/sensor_upgrade_service.pb.gw.go @@ -89,9 +89,6 @@ func request_SensorUpgradeService_TriggerSensorUpgrade_0(ctx context.Context, ma metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -100,6 +97,9 @@ func request_SensorUpgradeService_TriggerSensorUpgrade_0(ctx context.Context, ma if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.TriggerSensorUpgrade(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -128,9 +128,6 @@ func request_SensorUpgradeService_TriggerSensorCertRotation_0(ctx context.Contex metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -139,6 +136,9 @@ func request_SensorUpgradeService_TriggerSensorCertRotation_0(ctx context.Contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.TriggerSensorCertRotation(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/sensor_upgrade_service.swagger.json b/generated/api/v1/sensor_upgrade_service.swagger.json index a324e351aea17..0a768d37d377d 100644 --- a/generated/api/v1/sensor_upgrade_service.swagger.json +++ b/generated/api/v1/sensor_upgrade_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "SensorUpgradeService" + "name": "SensorUpgradeService", + "description": "SensorUpgradeService is deprecated. Use operator-based installation instead;\nthe operator handles sensor upgrades and certificate rotation." } ], "consumes": [ diff --git a/generated/api/v1/service_account_service.pb.gw.go b/generated/api/v1/service_account_service.pb.gw.go index 8958f848a264f..8bddc40cc38c8 100644 --- a/generated/api/v1/service_account_service.pb.gw.go +++ b/generated/api/v1/service_account_service.pb.gw.go @@ -41,9 +41,6 @@ func request_ServiceAccountService_GetServiceAccount_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_ServiceAccountService_GetServiceAccount_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetServiceAccount(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_ServiceAccountService_ListServiceAccounts_0(ctx context.Context, ma protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ServiceAccountService_ListServiceAccounts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListServiceAccounts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/signature_integration_service.pb.gw.go b/generated/api/v1/signature_integration_service.pb.gw.go index 9159179d308eb..3e0726fa787d4 100644 --- a/generated/api/v1/signature_integration_service.pb.gw.go +++ b/generated/api/v1/signature_integration_service.pb.gw.go @@ -63,9 +63,6 @@ func request_SignatureIntegrationService_GetSignatureIntegration_0(ctx context.C metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -74,6 +71,9 @@ func request_SignatureIntegrationService_GetSignatureIntegration_0(ctx context.C if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetSignatureIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -132,9 +132,6 @@ func request_SignatureIntegrationService_PutSignatureIntegration_0(ctx context.C if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -143,6 +140,9 @@ func request_SignatureIntegrationService_PutSignatureIntegration_0(ctx context.C if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.PutSignatureIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -174,9 +174,6 @@ func request_SignatureIntegrationService_DeleteSignatureIntegration_0(ctx contex metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -185,6 +182,9 @@ func request_SignatureIntegrationService_DeleteSignatureIntegration_0(ctx contex if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteSignatureIntegration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/user_service.pb.gw.go b/generated/api/v1/user_service.pb.gw.go index 231759af351f3..842f59fccefe4 100644 --- a/generated/api/v1/user_service.pb.gw.go +++ b/generated/api/v1/user_service.pb.gw.go @@ -62,9 +62,6 @@ func request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -73,6 +70,9 @@ func request_UserService_GetUser_0(ctx context.Context, marshaler runtime.Marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v1/vuln_mgmt_service.pb.gw.go b/generated/api/v1/vuln_mgmt_service.pb.gw.go index 211534deb1394..77e79d7c43d65 100644 --- a/generated/api/v1/vuln_mgmt_service.pb.gw.go +++ b/generated/api/v1/vuln_mgmt_service.pb.gw.go @@ -42,15 +42,15 @@ func request_VulnMgmtService_VulnMgmtExportWorkloads_0(ctx context.Context, mars protoReq VulnMgmtExportWorkloadsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VulnMgmtService_VulnMgmtExportWorkloads_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } stream, err := client.VulnMgmtExportWorkloads(ctx, &protoReq) if err != nil { return nil, metadata, err diff --git a/generated/api/v1/vuln_mgmt_service.swagger.json b/generated/api/v1/vuln_mgmt_service.swagger.json index f35a4d8d751fa..3ffb4f3fa154c 100644 --- a/generated/api/v1/vuln_mgmt_service.swagger.json +++ b/generated/api/v1/vuln_mgmt_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "VulnMgmtService" + "name": "VulnMgmtService", + "description": "VulnMgmtService APIs are used to manage workload vulnerabilities." } ], "consumes": [ @@ -183,7 +184,7 @@ "UNKNOWN" ], "default": "UNSET", - "title": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" + "description": "For any update to EnvVarSource, please also update 'ui/src/messages/common.js'" }, "LabelSelectorRequirement": { "type": "object", @@ -1399,7 +1400,7 @@ "CLUSTER_ADMIN" ], "default": "UNSET", - "title": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" + "description": "For any update to PermissionLevel, also update:\n- pkg/searchbasedpolicies/builders/k8s_rbac.go\n- ui/src/messages/common.js" }, "storagePortConfig": { "type": "object", diff --git a/generated/api/v2/base_image_service.pb.gw.go b/generated/api/v2/base_image_service.pb.gw.go index 4f16f63e08867..c3a0d7cf29f6f 100644 --- a/generated/api/v2/base_image_service.pb.gw.go +++ b/generated/api/v2/base_image_service.pb.gw.go @@ -92,9 +92,6 @@ func request_BaseImageServiceV2_UpdateBaseImageTagPattern_0(ctx context.Context, if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -103,6 +100,9 @@ func request_BaseImageServiceV2_UpdateBaseImageTagPattern_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateBaseImageTagPattern(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -134,9 +134,6 @@ func request_BaseImageServiceV2_DeleteBaseImageReference_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -145,6 +142,9 @@ func request_BaseImageServiceV2_DeleteBaseImageReference_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteBaseImageReference(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/base_image_service.swagger.json b/generated/api/v2/base_image_service.swagger.json index 60d0dd4bb7c61..4fe252015cbb7 100644 --- a/generated/api/v2/base_image_service.swagger.json +++ b/generated/api/v2/base_image_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "BaseImageServiceV2" + "name": "BaseImageServiceV2", + "description": "BaseImageServiceV2 APIs manages base image references." } ], "consumes": [ diff --git a/generated/api/v2/compliance_integration_service.pb.gw.go b/generated/api/v2/compliance_integration_service.pb.gw.go index b3ae5fb8f858a..1fedb13211987 100644 --- a/generated/api/v2/compliance_integration_service.pb.gw.go +++ b/generated/api/v2/compliance_integration_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ComplianceIntegrationService_ListComplianceIntegrations_0(ctx conte protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceIntegrationService_ListComplianceIntegrations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListComplianceIntegrations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/compliance_integration_service.swagger.json b/generated/api/v2/compliance_integration_service.swagger.json index 8457fc910e24f..c3162a7b61802 100644 --- a/generated/api/v2/compliance_integration_service.swagger.json +++ b/generated/api/v2/compliance_integration_service.swagger.json @@ -150,7 +150,7 @@ "UNHEALTHY" ], "default": "HEALTHY", - "title": "Represents the status of compliance operator" + "description": "Represents the status of compliance operator" }, "v2ClusterPlatformType": { "type": "string", diff --git a/generated/api/v2/compliance_profile_service.pb.gw.go b/generated/api/v2/compliance_profile_service.pb.gw.go index 76840ac44f315..54b5a20c7959b 100644 --- a/generated/api/v2/compliance_profile_service.pb.gw.go +++ b/generated/api/v2/compliance_profile_service.pb.gw.go @@ -41,9 +41,6 @@ func request_ComplianceProfileService_GetComplianceProfile_0(ctx context.Context metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_ComplianceProfileService_GetComplianceProfile_0(ctx context.Context if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_ComplianceProfileService_ListComplianceProfiles_0(ctx context.Conte protoReq ProfilesForClusterRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceProfileService_ListComplianceProfiles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListComplianceProfiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -116,15 +116,15 @@ func request_ComplianceProfileService_ListProfileSummaries_0(ctx context.Context protoReq ClustersProfileSummaryRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceProfileService_ListProfileSummaries_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListProfileSummaries(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/compliance_results_service.pb.gw.go b/generated/api/v2/compliance_results_service.pb.gw.go index 1e74de8c07eb7..0b059ab384986 100644 --- a/generated/api/v2/compliance_results_service.pb.gw.go +++ b/generated/api/v2/compliance_results_service.pb.gw.go @@ -41,9 +41,6 @@ func request_ComplianceResultsService_GetComplianceScanCheckResult_0(ctx context metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_ComplianceResultsService_GetComplianceScanCheckResult_0(ctx context if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceScanCheckResult(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_ComplianceResultsService_GetComplianceScanResults_0(ctx context.Con protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceScanResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceScanResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -117,9 +117,6 @@ func request_ComplianceResultsService_GetComplianceScanConfigurationResults_0(ct metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["scan_config_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "scan_config_name") @@ -134,6 +131,9 @@ func request_ComplianceResultsService_GetComplianceScanConfigurationResults_0(ct if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceScanConfigurationResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceScanConfigurationResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -170,9 +170,6 @@ func request_ComplianceResultsService_GetComplianceProfileResults_0(ctx context. metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -187,6 +184,9 @@ func request_ComplianceResultsService_GetComplianceProfileResults_0(ctx context. if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceProfileResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -223,9 +223,6 @@ func request_ComplianceResultsService_GetComplianceProfileCheckResult_0(ctx cont metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -248,6 +245,9 @@ func request_ComplianceResultsService_GetComplianceProfileCheckResult_0(ctx cont if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceProfileCheckResult_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileCheckResult(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -292,9 +292,6 @@ func request_ComplianceResultsService_GetComplianceProfileClusterResults_0(ctx c metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -317,6 +314,9 @@ func request_ComplianceResultsService_GetComplianceProfileClusterResults_0(ctx c if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceProfileClusterResults_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileClusterResults(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -361,9 +361,6 @@ func request_ComplianceResultsService_GetComplianceProfileCheckDetails_0(ctx con metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -386,6 +383,9 @@ func request_ComplianceResultsService_GetComplianceProfileCheckDetails_0(ctx con if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsService_GetComplianceProfileCheckDetails_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileCheckDetails(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/compliance_results_stats_service.pb.gw.go b/generated/api/v2/compliance_results_stats_service.pb.gw.go index a5a101f60df19..ea656923fb95f 100644 --- a/generated/api/v2/compliance_results_stats_service.pb.gw.go +++ b/generated/api/v2/compliance_results_stats_service.pb.gw.go @@ -43,9 +43,6 @@ func request_ComplianceResultsStatsService_GetComplianceProfileStats_0(ctx conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -60,6 +57,9 @@ func request_ComplianceResultsStatsService_GetComplianceProfileStats_0(ctx conte if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceProfileStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -95,15 +95,15 @@ func request_ComplianceResultsStatsService_GetComplianceProfilesStats_0(ctx cont protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceProfilesStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfilesStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -131,9 +131,6 @@ func request_ComplianceResultsStatsService_GetComplianceProfilesClusterStats_0(c metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -148,6 +145,9 @@ func request_ComplianceResultsStatsService_GetComplianceProfilesClusterStats_0(c if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceProfilesClusterStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfilesClusterStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -184,9 +184,6 @@ func request_ComplianceResultsStatsService_GetComplianceProfileCheckStats_0(ctx metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -209,6 +206,9 @@ func request_ComplianceResultsStatsService_GetComplianceProfileCheckStats_0(ctx if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceProfileCheckStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceProfileCheckStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -253,9 +253,6 @@ func request_ComplianceResultsStatsService_GetComplianceClusterScanStats_0(ctx c metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -270,6 +267,9 @@ func request_ComplianceResultsStatsService_GetComplianceClusterScanStats_0(ctx c if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceClusterScanStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceClusterScanStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -305,15 +305,15 @@ func request_ComplianceResultsStatsService_GetComplianceOverallClusterStats_0(ct protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceOverallClusterStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceOverallClusterStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -341,9 +341,6 @@ func request_ComplianceResultsStatsService_GetComplianceClusterStats_0(ctx conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["profile_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "profile_name") @@ -358,6 +355,9 @@ func request_ComplianceResultsStatsService_GetComplianceClusterStats_0(ctx conte if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceResultsStatsService_GetComplianceClusterStats_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceClusterStats(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/compliance_rule_service.pb.gw.go b/generated/api/v2/compliance_rule_service.pb.gw.go index 4a934175a8038..6584493a35518 100644 --- a/generated/api/v2/compliance_rule_service.pb.gw.go +++ b/generated/api/v2/compliance_rule_service.pb.gw.go @@ -43,9 +43,6 @@ func request_ComplianceRuleService_GetComplianceRule_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["rule_name"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "rule_name") @@ -60,6 +57,9 @@ func request_ComplianceRuleService_GetComplianceRule_0(ctx context.Context, mars if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceRuleService_GetComplianceRule_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceRule(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/compliance_scan_configuration_service.pb.gw.go b/generated/api/v2/compliance_scan_configuration_service.pb.gw.go index 67b0864a0e3f9..c500547c45890 100644 --- a/generated/api/v2/compliance_scan_configuration_service.pb.gw.go +++ b/generated/api/v2/compliance_scan_configuration_service.pb.gw.go @@ -42,15 +42,15 @@ func request_ComplianceScanConfigurationService_ListComplianceScanConfigurations protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceScanConfigurationService_ListComplianceScanConfigurations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListComplianceScanConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -76,9 +76,6 @@ func request_ComplianceScanConfigurationService_GetComplianceScanConfiguration_0 metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -87,6 +84,9 @@ func request_ComplianceScanConfigurationService_GetComplianceScanConfiguration_0 if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetComplianceScanConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -145,9 +145,6 @@ func request_ComplianceScanConfigurationService_UpdateComplianceScanConfiguratio if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -156,6 +153,9 @@ func request_ComplianceScanConfigurationService_UpdateComplianceScanConfiguratio if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateComplianceScanConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -187,9 +187,6 @@ func request_ComplianceScanConfigurationService_DeleteComplianceScanConfiguratio metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -198,6 +195,9 @@ func request_ComplianceScanConfigurationService_DeleteComplianceScanConfiguratio if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteComplianceScanConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -226,9 +226,6 @@ func request_ComplianceScanConfigurationService_RunComplianceScanConfiguration_0 metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -237,6 +234,9 @@ func request_ComplianceScanConfigurationService_RunComplianceScanConfiguration_0 if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.RunComplianceScanConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -294,9 +294,6 @@ func request_ComplianceScanConfigurationService_GetReportHistory_0(ctx context.C metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -311,6 +308,9 @@ func request_ComplianceScanConfigurationService_GetReportHistory_0(ctx context.C if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceScanConfigurationService_GetReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -347,9 +347,6 @@ func request_ComplianceScanConfigurationService_GetMyReportHistory_0(ctx context metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -364,6 +361,9 @@ func request_ComplianceScanConfigurationService_GetMyReportHistory_0(ctx context if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceScanConfigurationService_GetMyReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMyReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -398,9 +398,6 @@ func request_ComplianceScanConfigurationService_DeleteReport_0(ctx context.Conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -409,6 +406,9 @@ func request_ComplianceScanConfigurationService_DeleteReport_0(ctx context.Conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -438,15 +438,15 @@ func request_ComplianceScanConfigurationService_ListComplianceScanConfigProfiles protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceScanConfigurationService_ListComplianceScanConfigProfiles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListComplianceScanConfigProfiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -474,9 +474,6 @@ func request_ComplianceScanConfigurationService_ListComplianceScanConfigClusterP metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cluster_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cluster_id") @@ -491,6 +488,9 @@ func request_ComplianceScanConfigurationService_ListComplianceScanConfigClusterP if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ComplianceScanConfigurationService_ListComplianceScanConfigClusterProfiles_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListComplianceScanConfigClusterProfiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/node_report_service.pb.gw.go b/generated/api/v2/node_report_service.pb.gw.go index c1bad98935a47..d9a561139487d 100644 --- a/generated/api/v2/node_report_service.pb.gw.go +++ b/generated/api/v2/node_report_service.pb.gw.go @@ -71,9 +71,6 @@ func request_NodeReportService_UpdateNodeReportConfiguration_0(ctx context.Conte if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -82,6 +79,9 @@ func request_NodeReportService_UpdateNodeReportConfiguration_0(ctx context.Conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateNodeReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -114,15 +114,15 @@ func request_NodeReportService_ListNodeReportConfigurations_0(ctx context.Contex protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_ListNodeReportConfigurations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListNodeReportConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -149,15 +149,15 @@ func request_NodeReportService_CountNodeReportConfigurations_0(ctx context.Conte protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_CountNodeReportConfigurations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountNodeReportConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -183,9 +183,6 @@ func request_NodeReportService_GetNodeReportConfiguration_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -194,6 +191,9 @@ func request_NodeReportService_GetNodeReportConfiguration_0(ctx context.Context, if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNodeReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -222,9 +222,6 @@ func request_NodeReportService_DeleteNodeReportConfiguration_0(ctx context.Conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -233,6 +230,9 @@ func request_NodeReportService_DeleteNodeReportConfiguration_0(ctx context.Conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteNodeReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -290,9 +290,6 @@ func request_NodeReportService_GetNodeReportHistory_0(ctx context.Context, marsh metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -307,6 +304,9 @@ func request_NodeReportService_GetNodeReportHistory_0(ctx context.Context, marsh if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_GetNodeReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNodeReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -343,9 +343,6 @@ func request_NodeReportService_GetMyNodeReportHistory_0(ctx context.Context, mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -360,6 +357,9 @@ func request_NodeReportService_GetMyNodeReportHistory_0(ctx context.Context, mar if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_GetMyNodeReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMyNodeReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -394,9 +394,6 @@ func request_NodeReportService_GetNodeReportStatus_0(ctx context.Context, marsha metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -405,6 +402,9 @@ func request_NodeReportService_GetNodeReportStatus_0(ctx context.Context, marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetNodeReportStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -433,9 +433,6 @@ func request_NodeReportService_CancelNodeReport_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -444,6 +441,9 @@ func request_NodeReportService_CancelNodeReport_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CancelNodeReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -472,9 +472,6 @@ func request_NodeReportService_DeleteNodeReport_0(ctx context.Context, marshaler metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -483,6 +480,9 @@ func request_NodeReportService_DeleteNodeReport_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteNodeReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -539,15 +539,15 @@ func request_NodeReportService_GetViewBasedNodeReportHistory_0(ctx context.Conte protoReq GetViewBasedReportHistoryRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_GetViewBasedNodeReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetViewBasedNodeReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -574,15 +574,15 @@ func request_NodeReportService_GetViewBasedMyNodeReportHistory_0(ctx context.Con protoReq GetViewBasedReportHistoryRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NodeReportService_GetViewBasedMyNodeReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetViewBasedMyNodeReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/node_report_service.swagger.json b/generated/api/v2/node_report_service.swagger.json index 7af235e1fb798..f66f7737488b5 100644 --- a/generated/api/v2/node_report_service.swagger.json +++ b/generated/api/v2/node_report_service.swagger.json @@ -1070,7 +1070,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportHistoryResponse": { "type": "object", @@ -1108,7 +1108,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportSchedule": { "type": "object", @@ -1232,7 +1232,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportStatus": { "type": "object", diff --git a/generated/api/v2/report_service.pb.gw.go b/generated/api/v2/report_service.pb.gw.go index c950a85a074fa..360f14b3d2e54 100644 --- a/generated/api/v2/report_service.pb.gw.go +++ b/generated/api/v2/report_service.pb.gw.go @@ -71,9 +71,6 @@ func request_ReportService_UpdateReportConfiguration_0(ctx context.Context, mars if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -82,6 +79,9 @@ func request_ReportService_UpdateReportConfiguration_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -114,15 +114,15 @@ func request_ReportService_ListReportConfigurations_0(ctx context.Context, marsh protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_ListReportConfigurations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListReportConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -149,15 +149,15 @@ func request_ReportService_CountReportConfigurations_0(ctx context.Context, mars protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_CountReportConfigurations_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CountReportConfigurations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -183,9 +183,6 @@ func request_ReportService_GetReportConfiguration_0(ctx context.Context, marshal metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -194,6 +191,9 @@ func request_ReportService_GetReportConfiguration_0(ctx context.Context, marshal if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -222,9 +222,6 @@ func request_ReportService_DeleteReportConfiguration_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -233,6 +230,9 @@ func request_ReportService_DeleteReportConfiguration_0(ctx context.Context, mars if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteReportConfiguration(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -261,9 +261,6 @@ func request_ReportService_GetReportStatus_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -272,6 +269,9 @@ func request_ReportService_GetReportStatus_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetReportStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -302,9 +302,6 @@ func request_ReportService_GetReportHistory_0(ctx context.Context, marshaler run metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -319,6 +316,9 @@ func request_ReportService_GetReportHistory_0(ctx context.Context, marshaler run if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_GetReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -355,9 +355,6 @@ func request_ReportService_GetMyReportHistory_0(ctx context.Context, marshaler r metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -372,6 +369,9 @@ func request_ReportService_GetMyReportHistory_0(ctx context.Context, marshaler r if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_GetMyReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetMyReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -433,9 +433,6 @@ func request_ReportService_CancelReport_0(ctx context.Context, marshaler runtime metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -444,6 +441,9 @@ func request_ReportService_CancelReport_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CancelReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -472,9 +472,6 @@ func request_ReportService_DeleteReport_0(ctx context.Context, marshaler runtime metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -483,6 +480,9 @@ func request_ReportService_DeleteReport_0(ctx context.Context, marshaler runtime if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteReport(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -539,15 +539,15 @@ func request_ReportService_GetViewBasedMyReportHistory_0(ctx context.Context, ma protoReq GetViewBasedReportHistoryRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_GetViewBasedMyReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetViewBasedMyReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -574,15 +574,15 @@ func request_ReportService_GetViewBasedReportHistory_0(ctx context.Context, mars protoReq GetViewBasedReportHistoryRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ReportService_GetViewBasedReportHistory_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetViewBasedReportHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/report_service.swagger.json b/generated/api/v2/report_service.swagger.json index c1dc856396903..20949012ad90d 100644 --- a/generated/api/v2/report_service.swagger.json +++ b/generated/api/v2/report_service.swagger.json @@ -1082,7 +1082,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportHistoryResponse": { "type": "object", @@ -1120,7 +1120,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportSchedule": { "type": "object", @@ -1244,7 +1244,7 @@ "NODE_VULNERABILITY" ], "default": "VULNERABILITY", - "title": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" + "description": "- VULNERABILITY: for historical reasons, this short form was used to mean \"Image Vulnerability\"" }, "v2ReportStatus": { "type": "object", diff --git a/generated/api/v2/virtual_machine_service.pb.gw.go b/generated/api/v2/virtual_machine_service.pb.gw.go index 7a0f59a3c2ec1..ab4bf0dc49f3f 100644 --- a/generated/api/v2/virtual_machine_service.pb.gw.go +++ b/generated/api/v2/virtual_machine_service.pb.gw.go @@ -43,9 +43,6 @@ func request_VirtualMachineService_GetVirtualMachine_0(ctx context.Context, mars metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -60,6 +57,9 @@ func request_VirtualMachineService_GetVirtualMachine_0(ctx context.Context, mars if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineService_GetVirtualMachine_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVirtualMachine(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -95,15 +95,15 @@ func request_VirtualMachineService_ListVirtualMachines_0(ctx context.Context, ma protoReq ListVirtualMachinesRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineService_ListVirtualMachines_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVirtualMachines(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/virtual_machine_v2_service.pb.gw.go b/generated/api/v2/virtual_machine_v2_service.pb.gw.go index 1ed2bd3562d05..aeafc249b1ffc 100644 --- a/generated/api/v2/virtual_machine_v2_service.pb.gw.go +++ b/generated/api/v2/virtual_machine_v2_service.pb.gw.go @@ -41,9 +41,6 @@ func request_VirtualMachineV2Service_GetVM_0(ctx context.Context, marshaler runt metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_VirtualMachineV2Service_GetVM_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVM(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -82,9 +82,6 @@ func request_VirtualMachineV2Service_GetVMVulnSummary_0(ctx context.Context, mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -99,6 +96,9 @@ func request_VirtualMachineV2Service_GetVMVulnSummary_0(ctx context.Context, mar if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_GetVMVulnSummary_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVMVulnSummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -135,9 +135,6 @@ func request_VirtualMachineV2Service_ListVMCVEsByVM_0(ctx context.Context, marsh metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["vm_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "vm_id") @@ -152,6 +149,9 @@ func request_VirtualMachineV2Service_ListVMCVEsByVM_0(ctx context.Context, marsh if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_ListVMCVEsByVM_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVMCVEsByVM(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -186,9 +186,6 @@ func request_VirtualMachineV2Service_GetVMCVEComponents_0(ctx context.Context, m metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["vm_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "vm_id") @@ -205,6 +202,9 @@ func request_VirtualMachineV2Service_GetVMCVEComponents_0(ctx context.Context, m if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "cve_id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVMCVEComponents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -243,9 +243,6 @@ func request_VirtualMachineV2Service_ListVMComponents_0(ctx context.Context, mar metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["vm_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "vm_id") @@ -260,6 +257,9 @@ func request_VirtualMachineV2Service_ListVMComponents_0(ctx context.Context, mar if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_ListVMComponents_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVMComponents(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -295,15 +295,15 @@ func request_VirtualMachineV2Service_ListVMs_0(ctx context.Context, marshaler ru protoReq ListVMsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_ListVMs_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVMs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -330,15 +330,15 @@ func request_VirtualMachineV2Service_ListVMCVEs_0(ctx context.Context, marshaler protoReq ListVMCVEsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_ListVMCVEs_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVMCVEs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -365,15 +365,15 @@ func request_VirtualMachineV2Service_GetVMDashboardCounts_0(ctx context.Context, protoReq VMDashboardCountsRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_GetVMDashboardCounts_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVMDashboardCounts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -401,9 +401,6 @@ func request_VirtualMachineV2Service_GetVMCVEDetail_0(ctx context.Context, marsh metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cve_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cve_id") @@ -418,6 +415,9 @@ func request_VirtualMachineV2Service_GetVMCVEDetail_0(ctx context.Context, marsh if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_GetVMCVEDetail_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVMCVEDetail(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -454,9 +454,6 @@ func request_VirtualMachineV2Service_ListVMCVEAffectedVMs_0(ctx context.Context, metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["cve_id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "cve_id") @@ -471,6 +468,9 @@ func request_VirtualMachineV2Service_ListVMCVEAffectedVMs_0(ctx context.Context, if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VirtualMachineV2Service_ListVMCVEAffectedVMs_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVMCVEAffectedVMs(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/virtual_machine_v2_service.swagger.json b/generated/api/v2/virtual_machine_v2_service.swagger.json index 39b003a344de8..ec95ea8fc97a4 100644 --- a/generated/api/v2/virtual_machine_v2_service.swagger.json +++ b/generated/api/v2/virtual_machine_v2_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "VirtualMachineV2Service" + "name": "VirtualMachineV2Service", + "description": "NOTE: RPC ordering matters for grpc-gateway routing. The gateway prepends\neach handler (last registered = first matched), so wildcard routes like\n{id} must be defined FIRST to end up at the back of the matching list.\nLiteral routes defined after will match before the wildcard." } ], "consumes": [ diff --git a/generated/api/v2/vuln_exception_service.pb.gw.go b/generated/api/v2/vuln_exception_service.pb.gw.go index c2cf3ff4bdc5c..f2132de0f7ad9 100644 --- a/generated/api/v2/vuln_exception_service.pb.gw.go +++ b/generated/api/v2/vuln_exception_service.pb.gw.go @@ -41,9 +41,6 @@ func request_VulnerabilityExceptionService_GetVulnerabilityException_0(ctx conte metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -52,6 +49,9 @@ func request_VulnerabilityExceptionService_GetVulnerabilityException_0(ctx conte if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GetVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -81,15 +81,15 @@ func request_VulnerabilityExceptionService_ListVulnerabilityExceptions_0(ctx con protoReq RawQuery metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_VulnerabilityExceptionService_ListVulnerabilityExceptions_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ListVulnerabilityExceptions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -172,9 +172,6 @@ func request_VulnerabilityExceptionService_ApproveVulnerabilityException_0(ctx c if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -183,6 +180,9 @@ func request_VulnerabilityExceptionService_ApproveVulnerabilityException_0(ctx c if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.ApproveVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -217,9 +217,6 @@ func request_VulnerabilityExceptionService_DenyVulnerabilityException_0(ctx cont if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -228,6 +225,9 @@ func request_VulnerabilityExceptionService_DenyVulnerabilityException_0(ctx cont if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DenyVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -262,9 +262,6 @@ func request_VulnerabilityExceptionService_UpdateVulnerabilityException_0(ctx co if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -273,6 +270,9 @@ func request_VulnerabilityExceptionService_UpdateVulnerabilityException_0(ctx co if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.UpdateVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -304,9 +304,6 @@ func request_VulnerabilityExceptionService_CancelVulnerabilityException_0(ctx co metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -315,6 +312,9 @@ func request_VulnerabilityExceptionService_CancelVulnerabilityException_0(ctx co if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.CancelVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -343,9 +343,6 @@ func request_VulnerabilityExceptionService_DeleteVulnerabilityException_0(ctx co metadata runtime.ServerMetadata err error ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } val, ok := pathParams["id"] if !ok { return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") @@ -354,6 +351,9 @@ func request_VulnerabilityExceptionService_DeleteVulnerabilityException_0(ctx co if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.DeleteVulnerabilityException(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/api/v2/vuln_exception_service.swagger.json b/generated/api/v2/vuln_exception_service.swagger.json index 6bb1cd47996dc..348e5cb80392e 100644 --- a/generated/api/v2/vuln_exception_service.swagger.json +++ b/generated/api/v2/vuln_exception_service.swagger.json @@ -6,7 +6,8 @@ }, "tags": [ { - "name": "VulnerabilityExceptionService" + "name": "VulnerabilityExceptionService", + "description": "VulnerabilityExceptionService APIs can be used to manage create and manage vulnerability exceptions." } ], "consumes": [ diff --git a/generated/internalapi/central/development_service.pb.gw.go b/generated/internalapi/central/development_service.pb.gw.go index 1de6586c60742..21ba64121e2dd 100644 --- a/generated/internalapi/central/development_service.pb.gw.go +++ b/generated/internalapi/central/development_service.pb.gw.go @@ -69,15 +69,15 @@ func request_DevelopmentService_URLHasValidCert_0(ctx context.Context, marshaler protoReq URLHasValidCertRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DevelopmentService_URLHasValidCert_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.URLHasValidCert(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -104,15 +104,15 @@ func request_DevelopmentService_RandomData_0(ctx context.Context, marshaler runt protoReq RandomDataRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_DevelopmentService_RandomData_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.RandomData(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/generated/internalapi/central/v1/token_service.pb.gw.go b/generated/internalapi/central/v1/token_service.pb.gw.go index 7d726f38314dd..ee94c3884fed2 100644 --- a/generated/internalapi/central/v1/token_service.pb.gw.go +++ b/generated/internalapi/central/v1/token_service.pb.gw.go @@ -42,15 +42,15 @@ func request_TokenService_GenerateTokenForPermissionsAndScope_0(ctx context.Cont protoReq GenerateTokenForPermissionsAndScopeRequest metadata runtime.ServerMetadata ) - if req.Body != nil { - _, _ = io.Copy(io.Discard, req.Body) - } if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_TokenService_GenerateTokenForPermissionsAndScope_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } msg, err := client.GenerateTokenForPermissionsAndScope(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } diff --git a/go.mod b/go.mod index c7e6f3cb34b02..2e2331e0d1e39 100644 --- a/go.mod +++ b/go.mod @@ -70,7 +70,7 @@ require ( github.com/graph-gophers/graphql-go v1.10.3-0.20260702060009-60399cce0c05 github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-retryablehttp v0.7.8 github.com/hashicorp/go-version v1.9.0 @@ -157,7 +157,7 @@ require ( golang.stackrox.io/grpc-http1 v0.5.1 google.golang.org/api v0.299.0 google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d - google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d + google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459 google.golang.org/grpc v1.84.0 google.golang.org/grpc/examples v0.0.0-20250407062114-b368379ef8f6 google.golang.org/protobuf v1.36.12 @@ -283,29 +283,28 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-openapi/analysis v0.26.0 // indirect - github.com/go-openapi/errors v0.22.8 // indirect - github.com/go-openapi/jsonpointer v1.0.0 // indirect - github.com/go-openapi/jsonreference v1.0.0 // indirect - github.com/go-openapi/loads v0.25.1 // indirect - github.com/go-openapi/runtime v0.33.0 // indirect - github.com/go-openapi/runtime/server-middleware v0.30.0 // indirect - github.com/go-openapi/spec v0.22.9 // indirect - github.com/go-openapi/strfmt v0.27.0 // indirect - github.com/go-openapi/swag v0.26.1 // indirect - github.com/go-openapi/swag/cmdutils v0.27.0 // indirect - github.com/go-openapi/swag/conv v0.28.0 // indirect - github.com/go-openapi/swag/fileutils v0.28.0 // indirect - github.com/go-openapi/swag/jsonname v0.26.1 // indirect - github.com/go-openapi/swag/jsonutils v0.28.0 // indirect - github.com/go-openapi/swag/loading v0.28.0 // indirect - github.com/go-openapi/swag/mangling v0.28.0 // indirect - github.com/go-openapi/swag/netutils v0.27.0 // indirect - github.com/go-openapi/swag/pools v0.28.0 // indirect - github.com/go-openapi/swag/stringutils v0.28.0 // indirect - github.com/go-openapi/swag/typeutils v0.28.0 // indirect - github.com/go-openapi/swag/yamlutils v0.28.0 // indirect - github.com/go-openapi/validate v0.26.3 // indirect + github.com/go-openapi/analysis v1.0.0 // indirect + github.com/go-openapi/errors v0.22.9 // indirect + github.com/go-openapi/jsonpointer v1.0.1 // indirect + github.com/go-openapi/jsonreference v1.0.1 // indirect + github.com/go-openapi/loads v0.25.2 // indirect + github.com/go-openapi/runtime v0.33.2 // indirect + github.com/go-openapi/runtime/server-middleware v0.33.2 // indirect + github.com/go-openapi/spec v1.0.0 // indirect + github.com/go-openapi/strfmt v0.27.2 // indirect + github.com/go-openapi/swag v0.29.2 // indirect + github.com/go-openapi/swag/cmdutils v0.29.2 // indirect + github.com/go-openapi/swag/conv v0.29.2 // indirect + github.com/go-openapi/swag/fileutils v0.29.2 // indirect + github.com/go-openapi/swag/jsonutils v0.29.2 // indirect + github.com/go-openapi/swag/loading v0.29.2 // indirect + github.com/go-openapi/swag/mangling v0.29.2 // indirect + github.com/go-openapi/swag/netutils v0.29.2 // indirect + github.com/go-openapi/swag/pools v0.29.2 // indirect + github.com/go-openapi/swag/stringutils v0.29.2 // indirect + github.com/go-openapi/swag/typeutils v0.29.2 // indirect + github.com/go-openapi/swag/yamlutils v0.29.2 // indirect + github.com/go-openapi/validate v1.0.0 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/gobuffalo/flect v1.0.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -379,7 +378,7 @@ require ( github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 // indirect github.com/np-guard/models v0.5.7 // indirect github.com/nwaples/rardecode v1.1.3 // indirect - github.com/oklog/ulid/v2 v2.1.1 // indirect + github.com/oklog/ulid/v2 v2.1.2 // indirect github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect github.com/olekukonko/errors v1.2.0 // indirect github.com/olekukonko/ll v0.1.6 // indirect @@ -444,19 +443,19 @@ require ( go.etcd.io/bbolt v1.4.3 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/contrib/detectors/gcp v1.44.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect - go.opentelemetry.io/otel v1.45.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.71.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 // indirect + go.opentelemetry.io/otel v1.46.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.45.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.45.0 // indirect - go.opentelemetry.io/otel/metric v1.45.0 // indirect - go.opentelemetry.io/otel/sdk v1.45.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.45.0 // indirect - go.opentelemetry.io/otel/trace v1.45.0 // indirect + go.opentelemetry.io/otel/metric v1.46.0 // indirect + go.opentelemetry.io/otel/sdk v1.46.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.46.0 // indirect + go.opentelemetry.io/otel/trace v1.46.0 // indirect go.opentelemetry.io/proto/otlp v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect + golang.org/x/exp v0.0.0-20260908205506-85c1c2202aba // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect diff --git a/go.sum b/go.sum index 74babc197c6a6..f130186feba73 100644 --- a/go.sum +++ b/go.sum @@ -523,69 +523,67 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/analysis v0.26.0 h1:1xECln1iMMmQnTjgcknC1vi1hA4KISt6IHpSwnqcuwI= -github.com/go-openapi/analysis v0.26.0/go.mod h1:40gERFi/2dyXA1FaqRRLxkv1IlC6X+GPDNd1xrYAjZE= -github.com/go-openapi/errors v0.22.8 h1:oP7sW7TWc3wFFjrzzj0nI83H2qMBkNjNfSd+XRejk/I= -github.com/go-openapi/errors v0.22.8/go.mod h1:BuUoHcYrU6E7V9gfj1I5wLQqgtIHnup/alXZ8KdgQ0w= +github.com/go-openapi/analysis v1.0.0 h1:sNvbAGCJqUTqIAodr9IVqJMmuZas3YS9ms1dGK9yiJ4= +github.com/go-openapi/analysis v1.0.0/go.mod h1:NhYjJ57fnE+bcE7UwrJyMkhWA3Dfz7TdiBfTVAnos4Y= +github.com/go-openapi/errors v0.22.9 h1:HI9+SyVYiRzyeBQGv0CbWbQa+u2S0nny7G7AhY+UMiM= +github.com/go-openapi/errors v0.22.9/go.mod h1:R73q66sXP2smzAGgFOI4nqtusRK2xN5pYCjsij+KX58= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonpointer v1.0.0 h1:kR9tHqY0CtZaOPVFm622dPVNhrvYpwr4uCxgL3h1H8s= -github.com/go-openapi/jsonpointer v1.0.0/go.mod h1:Z3rw7dWu1p9IgitXCFamSlA5lmDiklEB6vkaxcNZW5Y= +github.com/go-openapi/jsonpointer v1.0.1 h1:2KxywRmNwJkT/FMBa3iRNHEaAxSJvjqoufQZy3au1Mg= +github.com/go-openapi/jsonpointer v1.0.1/go.mod h1:wI7ZYsFmbIi9nBXOZqgDaS/bqOchRGZjqxFli7FBYxY= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= -github.com/go-openapi/jsonreference v1.0.0 h1:jlmTr6torcd1YgDQvSfNmRtKzYDO4FGBkrAdlAVWnpY= -github.com/go-openapi/jsonreference v1.0.0/go.mod h1:jtwdyGbJk0Xhe5Y+rwtglQP6Sb1WZST4rT32LWB+sv0= -github.com/go-openapi/loads v0.25.1 h1:toKQdIDLxlqfKLLGUUmUsiTd5/X0Chzvde9EGYQP/Ac= -github.com/go-openapi/loads v0.25.1/go.mod h1:33Hen4tsKXHL45TyYojvfD5fZUFN4O1y4r/XhsRW2zc= -github.com/go-openapi/runtime v0.33.0 h1:Dd3Oj2ig+WH8ckK95l0Wn2V8a4bH/UqWPRZVT0vc8yU= -github.com/go-openapi/runtime v0.33.0/go.mod h1:+rsupH3+TFKqmFysqkmgBOTxpVJV8eV+j9myvvea2Xw= -github.com/go-openapi/runtime/server-middleware v0.30.0 h1:8rPoJ/xv7JL8BsovaqboKETlpWBArVh8n+0L/GyePog= -github.com/go-openapi/runtime/server-middleware v0.30.0/go.mod h1:OYNT/TxNvB/VK5oe4htM2jDTwlEXuejVJmu0DVZfAMs= -github.com/go-openapi/spec v0.22.9 h1:/vKIFDcGKp0ktZWGbym/tJEWbk6/XOEmAVU0kqKMH+w= -github.com/go-openapi/spec v0.22.9/go.mod h1:b/mNUYIOQOyIiUzUzXEE8xzyZqf93KvM9hQGP91yfl0= -github.com/go-openapi/strfmt v0.27.0 h1:kbcTeaD9TXuXD0hhMXzuYa1sdTo6+dWGvwjW93E80IM= -github.com/go-openapi/strfmt v0.27.0/go.mod h1:s/qhDqfY72irigXUGJmtgid2Rm+3tnz3k8hZaRmvWYc= +github.com/go-openapi/jsonreference v1.0.1 h1:4zJ7AmYDKNmD3aSpfPnFNCFA5E80/xMHUNKgydaLh38= +github.com/go-openapi/jsonreference v1.0.1/go.mod h1:dYplQXa6p5lXprLcJ8LE2iU7vNpXsAHDQ5ZAgL+Qx3A= +github.com/go-openapi/loads v0.25.2 h1:+uNsDlRQfYtZTrh+3pdwampcAqZVPuBJW0IA82aZHII= +github.com/go-openapi/loads v0.25.2/go.mod h1:RXsfJEQGGNv4uw8u/KdmF8Vh8OR4fTfs9ZO4QrzNohA= +github.com/go-openapi/runtime v0.33.2 h1:HSxskMs0WmpCdQvBWVxHt2t2mXMwn8DDav3VtVidwig= +github.com/go-openapi/runtime v0.33.2/go.mod h1:NQpSLiIsEAIpZDEs6xUrhjm6ZiQh85X8bHKlqLPgNP8= +github.com/go-openapi/runtime/server-middleware v0.33.2 h1:BVFjAaW4Jh/kZ4QSsgDrGzLuSuaKzSiyvappUFKxgUk= +github.com/go-openapi/runtime/server-middleware v0.33.2/go.mod h1:E3mWY61/UgBJ5EUmKh+h6A1oQQdD1U4raowVMmPmQug= +github.com/go-openapi/spec v1.0.0 h1:JtB/GHOj+eetjse6YvxqLze88oEekl/4uPBethvzRrA= +github.com/go-openapi/spec v1.0.0/go.mod h1:boj1PRhqS0x5jylgcNp9BRWxenphrh7vVNYZ90IRCoo= +github.com/go-openapi/strfmt v0.27.2 h1:SG32SlbwNy92s0KJiVxt2joJeFdqIYHvwrA0OU6HqzQ= +github.com/go-openapi/strfmt v0.27.2/go.mod h1:M4CKsMO0Fb8qR10+1Ra75wCKNNquy+Vj+4LWZrhTo2E= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-openapi/swag v0.26.1 h1:l5sVEyVpwj+DDYeZyo7wQI/Ebn/mKYIyGB/pFwAfGoQ= -github.com/go-openapi/swag v0.26.1/go.mod h1:yNY38BbIVthxbkDtq1UHBCGasBqjakW3lCR6ANzdBEw= -github.com/go-openapi/swag/cmdutils v0.27.0 h1:aIKiqhB29AaP+7xm8/CPg3uOpeHx2SUp6TvMpu/a31Y= -github.com/go-openapi/swag/cmdutils v0.27.0/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= -github.com/go-openapi/swag/conv v0.28.0 h1:GtqqbyFe7vR5Y7ehxG9W6/OvrSFdf1OLeTGp40TqxH8= -github.com/go-openapi/swag/conv v0.28.0/go.mod h1:mbUE+mzctnhxi864m0Q07SpN8OowD9JhxmxuYvZZD/k= -github.com/go-openapi/swag/fileutils v0.28.0 h1:Z04XWQD7R8Eq+7GnOrjovBxPPmZzsS4gt2H2GPGIViU= -github.com/go-openapi/swag/fileutils v0.28.0/go.mod h1:VvJFZLTZS0AI854gEQz5tk7dBESdLjiNUMSZ/th2ry8= -github.com/go-openapi/swag/jsonname v0.26.1 h1:VReupaV6WxlAsCn0e4DUfgV6bPmINnPpyJDLqSfNPcE= -github.com/go-openapi/swag/jsonname v0.26.1/go.mod h1:OvdW6BoWoj33pTfi7x9vFrgmT+fk7aw0BRwvCE0YOuc= -github.com/go-openapi/swag/jsonutils v0.28.0 h1:YIch6FwO7RXzeAnbO8Tu7dWBZeUEH+4nA0HXltVTnv4= -github.com/go-openapi/swag/jsonutils v0.28.0/go.mod h1:CYM3WlTUcagR2ZoHdz54di/cbBqt82tuxuXgAjxw+mg= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.28.0 h1:qV+VVUAx5Oro8WjVWpZeql7YReTKhT4smR4zhcOQZr0= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.28.0/go.mod h1:mofwUWx70wvskwESqRJ//k/9kURmCgyJl5m5Ppoh5kY= -github.com/go-openapi/swag/loading v0.28.0 h1:td8QZdZC9MIYGGSnSPKShKiK22I2tU5UQvuUhIBPRLU= -github.com/go-openapi/swag/loading v0.28.0/go.mod h1:rXB0QiQX5mMveXEA7ouM4KiiM9jVJe4K6BVbwhD1M4k= -github.com/go-openapi/swag/mangling v0.28.0 h1:pH8eyeNO9SLYsTMWJrurnNfKmDa28XrlA+HePVD53VM= -github.com/go-openapi/swag/mangling v0.28.0/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= -github.com/go-openapi/swag/netutils v0.27.0 h1:lEUG+hHvPvLggB3A8snFk0IRKNf9uC0YKc+7WYqvAF8= -github.com/go-openapi/swag/netutils v0.27.0/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= -github.com/go-openapi/swag/pools v0.28.0 h1:HPMZWSAfce3rdVTFcjFiCIBtDg9h4x2QlRrHipwhxeU= -github.com/go-openapi/swag/pools v0.28.0/go.mod h1:kVQefhSK5RWuRe7BXsL8htgBPAMpN7HDGpGEknqugeE= -github.com/go-openapi/swag/stringutils v0.28.0 h1:ixsc9iYgDPubHL/8nSkbnryEHpD2VRlBMLKpQyPXcDU= -github.com/go-openapi/swag/stringutils v0.28.0/go.mod h1:lzRN95CxXmA03XcDWHLOb6nOMcxCqR5rGY0lOgsfRoM= -github.com/go-openapi/swag/typeutils v0.28.0 h1:nRBKSBXjDgf01VDPB3fWeD9nQuhCOVeIYAkUx2tbkyY= -github.com/go-openapi/swag/typeutils v0.28.0/go.mod h1:Srm0xFNRZ1Y+vCxJclo5qzx8aj+1pAKda/YfFPrG0dQ= -github.com/go-openapi/swag/yamlutils v0.28.0 h1:TV3JXH6DS46KUroDtMLAYHGkdWf5VDq3wVWFirmzROY= -github.com/go-openapi/swag/yamlutils v0.28.0/go.mod h1:x0q/yndZHEgk9Rx3DyDqzFUmHy55KTvIZldvF2dTJXs= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.0 h1:gGHwAJ0R/5jU8BEGDbfRNR3hL68dAVi84WuOApp29B0= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.0/go.mod h1:tY+St1SGq4NFl0QIqdTY4aEdbChAHxhyB77XQi9iJCo= -github.com/go-openapi/testify/v2 v2.6.0 h1:5PKH2HE7YJ/LuRPQGvSxBRlFXNQhSetBLlGAgUEu3ug= -github.com/go-openapi/testify/v2 v2.6.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= -github.com/go-openapi/validate v0.26.3 h1:OkfZgLvLDnGP2hrRGD+42WBiPWWkoHomTJ+IVI+KaDc= -github.com/go-openapi/validate v0.26.3/go.mod h1:7DOOa4raU6NRe7A8VQSKbm3VcuUIioREYHFt+er9Sk8= +github.com/go-openapi/swag v0.29.2 h1:9n8frkcsuQRA0INU31VbxNxt1zBaHxrHYGEf5BUjFi4= +github.com/go-openapi/swag v0.29.2/go.mod h1:RkCiX1gCVXWgLOavDXE3ALJrQ/VO2ziiIzOUs3z10xo= +github.com/go-openapi/swag/cmdutils v0.29.2 h1:cXEzX/nWCODon251f+1HgL75/R4XXML5IZxgLCWMoro= +github.com/go-openapi/swag/cmdutils v0.29.2/go.mod h1:XziaSVzYqkDvpWXzASfWajw2YvJrLscq610O2XiyqJw= +github.com/go-openapi/swag/conv v0.29.2 h1:8c9shoB8l0QRSR6ymq1llHdBWDqpIgJfjTGHx3Vuhm0= +github.com/go-openapi/swag/conv v0.29.2/go.mod h1:AZS0YigTNf8qNtD6WqJz/N4RUNmpr76SyjFGkq4+p6Q= +github.com/go-openapi/swag/fileutils v0.29.2 h1:mdUL+Vw5ah1fO1AvFCoHeIyv7YZsCz2MN3KNqd/lLVI= +github.com/go-openapi/swag/fileutils v0.29.2/go.mod h1:7QKmmodjAebaq61lGVJa8ldLdGeMF4DSgYv8tXOGGo0= +github.com/go-openapi/swag/jsonutils v0.29.2 h1:uZNSD2/rJDYAfvsLYkykTzXuyxM3QpDKV9jhRHrMu6k= +github.com/go-openapi/swag/jsonutils v0.29.2/go.mod h1:ONTdNvj3Y+IXRzfa17E+Rgt2ns/qiSOYjIo2K7v2yDs= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.29.2 h1:w+Fd6EBOMGlC74GYGHqCLGyb3Bpams8TtNrgM/SG4jo= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.29.2/go.mod h1:HC2egPORFzbj/gf05Zrfgz8Mgplx3oW7hgGi7pjZVhM= +github.com/go-openapi/swag/loading v0.29.2 h1:QU1ry24e6r6Shoxe380Nx0X5iKkpRO+hJffsyJ2dVlY= +github.com/go-openapi/swag/loading v0.29.2/go.mod h1:DqilDjuiJKETecsS4TRopWG1acUDsfqN39ZmQhPu6uI= +github.com/go-openapi/swag/mangling v0.29.2 h1:ltdo3K0tTP4P6zWhVVWDU9D37/YYBuMJRdZxiS2Dtog= +github.com/go-openapi/swag/mangling v0.29.2/go.mod h1:RjDi4TnItAenS3cgCXSpIl1kKbjG7il6pnmQVl/8bp8= +github.com/go-openapi/swag/netutils v0.29.2 h1:dBli6jyUa93sDS/XYWShJzf4+nnVfFKfvY9SLUaUzB8= +github.com/go-openapi/swag/netutils v0.29.2/go.mod h1:1pM6Xg/Um8E1eps3umWl8Hme3ByWXOtHsvFC0CULHUE= +github.com/go-openapi/swag/pools v0.29.2 h1:PlGoDRF8WtSyXkedZZkpW3f9wDhFf3u8KtaBcmgmh8c= +github.com/go-openapi/swag/pools v0.29.2/go.mod h1:V3lhxVT4qDYRqc2MRSSbLsTYIYV/2HlHafhyEkmzLIc= +github.com/go-openapi/swag/stringutils v0.29.2 h1:lcnBxwAaysT3bMUVBfn9V/PkfVqkurpqufKU6rTUMGk= +github.com/go-openapi/swag/stringutils v0.29.2/go.mod h1:i9cdh7sGaa0nm3CqIvH5IM5h2QClk1wns2ktKeILvRI= +github.com/go-openapi/swag/typeutils v0.29.2 h1:O7aVvkTs3pXwikgtrPLenigEMdQFgONKRooQA9pgf2I= +github.com/go-openapi/swag/typeutils v0.29.2/go.mod h1:7+GDG+uz9Ke+eVt4rClZg7wklSDp8hT/mKNh/pC26TE= +github.com/go-openapi/swag/yamlutils v0.29.2 h1:IFKFFeDnuIwzfsuWRQU+rI8iL3g4XyAYjV/RlnlxPLM= +github.com/go-openapi/swag/yamlutils v0.29.2/go.mod h1:7MGqtcrK73sxQ4ceiyIf8qiXS/s09JLMdR5esK5euYQ= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0 h1:wPW6YRgx3+SID1yUy/Xwa17L8kFEaEKod2VRbJDZNUs= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0/go.mod h1:mI1M88etYbc3PhgHsWQK2kwvNwW5aGFqMPbmib+SGIs= +github.com/go-openapi/testify/v2 v2.8.0 h1:19QDx5b57p8KjO2E4sgs/woL4Akp+FGLRlVm2xn0Rho= +github.com/go-openapi/testify/v2 v2.8.0/go.mod h1:4gUN8jC+RqOE2qjW/vDmfyTvl5BCht4qL7oca0odrak= +github.com/go-openapi/validate v1.0.0 h1:dFsYCLVUQUL6Vi2lQSexgwmCXDuHe7eWRDhQxkE+xYA= +github.com/go-openapi/validate v1.0.0/go.mod h1:wwXGRqMQzOZ7PCqBcgNk+DD9+Cacnxv7we5T0M/eA3Y= github.com/go-rod/rod v0.116.2 h1:A5t2Ky2A+5eD/ZJQr1EfsQSe5rms5Xof/qj296e+ZqA= github.com/go-rod/rod v0.116.2/go.mod h1:H+CMO9SCNc2TJ2WfrG+pKhITz57uGNYU43qYHh438Mg= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -768,8 +766,8 @@ github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.4/go.mod h1:0xydIeg2omQ9DH6 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99 h1:JYghRBlGCZyCF2wNUJ8W0cwaQdtpcssJ4CgC406g+WU= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0 h1:Bd7KaOxzULLxtZ/K5s1aLbWhR0+5RToO65TXHsf3bqQ= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.31.0/go.mod h1:nN7ts3dFXKtCZWc//yfkpcQNKJABg16/uDVAZpLDalo= github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -1049,8 +1047,8 @@ github.com/np-guard/netpol-analyzer v1.4.4/go.mod h1:T31vBeTIBl1ksQr9NTW5GJBMHpm 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/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= -github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= +github.com/oklog/ulid/v2 v2.1.2 h1:IEclFb9JNvzYA6MW2SCxbLzcHTVsfqm3PrqGQJH5zec= +github.com/oklog/ulid/v2 v2.1.2/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc= github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0= github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo= @@ -1460,12 +1458,12 @@ go.opentelemetry.io/contrib/detectors/gcp v1.44.0 h1:NmLfL734pJhM0JKaYd2Y28+nY9d go.opentelemetry.io/contrib/detectors/gcp v1.44.0/go.mod h1:tNAsgd8avTGke1+MndXlU5Cru4PQ9Ai/cCNWQv/ZJ/s= go.opentelemetry.io/contrib/exporters/autoexport v0.67.0 h1:4fnRcNpc6YFtG3zsFw9achKn3XgmxPxuMuqIL5rE8e8= go.opentelemetry.io/contrib/exporters/autoexport v0.67.0/go.mod h1:qTvIHMFKoxW7HXg02gm6/Wofhq5p3Ib/A/NNt1EoBSQ= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 h1:0Qx7VGBacMm9ZENQ7TnNObTYI4ShC+lHI16seduaxZo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0/go.mod h1:Sje3i3MjSPKTSPvVWCaL8ugBzJwik3u4smCjUeuupqg= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= -go.opentelemetry.io/otel v1.45.0 h1:pdrWmLHofpubmArBv1LgFSv1Z0Ie/ppdZzu+kUN5EeU= -go.opentelemetry.io/otel v1.45.0/go.mod h1:XZxIqPapzEYnhNSScF5DIqXhm/rYi0FzCe2XddAwZfQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.71.0 h1:B2h3uqicet1CT2N5TOFhS+Gq++9i0/CLmaxvhmhtP5s= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.71.0/go.mod h1:dylvB+ZiiwMvsDij9O84Uy7SijLgHMX4mbkncds+4Sw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0 h1:3g7B90UzBltIDKq1/5mrTGxTnOFDV0ICOhLoxiZ8jlg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.71.0/go.mod h1:Ef8SuTh59BT7+ofpDxN9z+yOlc4t2GjLmKDgYNJL/NU= +go.opentelemetry.io/otel v1.46.0 h1:FHt5/CDyVxi/8IM1CH7VE/rRgq3kLHa2mSTVMO8AWyc= +go.opentelemetry.io/otel v1.46.0/go.mod h1:Gj3SEScelsNC45tp4nSxRYlS+f5iez7W8XPMCt905kE= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 h1:Dn8rkudDzY6KV9dr/D/bTUuWgqDf9xe0rr4G2elrn0Y= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0/go.mod h1:gMk9F0xDgyN9M/3Ed5Y1wKcx/9mlU91NXY2SNq7RQuU= go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag= @@ -1486,22 +1484,22 @@ go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0 h1:GJkybS+crDMdExT/B go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0/go.mod h1:NuAyxRYIG2lKX3YQkB+83StTxM7s52PUUkRRiC0wnYI= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0 h1:hqxVTu/GtBF+vJ8d1fzW7fRxZFvgoDjWcxwwCaFDYpU= go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0/go.mod h1:z5fVEF4X5v0ESvlJqBrrFlBVoj5EQuefZpzsu7R+x5Q= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0 h1:mS47AX77OtFfKG4vtp+84kuGSFZHTyxtXIN269vChY0= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0/go.mod h1:PJnsC41lAGncJlPUniSwM81gc80GkgWJWr3cu2nKEtU= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.46.0 h1:KdRxPiAoMptR3vfWzvjjvutTsSiwbC2uG0496rzZNfo= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.46.0/go.mod h1:K/qSA+3G7Eovxi4K09wzrAgkWRnosS0DAOZeEpve7sM= go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4= go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= -go.opentelemetry.io/otel/metric v1.45.0 h1:7Eg1uH7CJ5cXv9is6tnBe1FI6rj1nwUdbFypRm3br/M= -go.opentelemetry.io/otel/metric v1.45.0/go.mod h1:HAPbm1nd3p1PmFH7v2dR+6BjXxw+Lq4a2+pndMAm08s= -go.opentelemetry.io/otel/metric/x v0.67.0 h1:PcicCNZFkZ4bXfSooXdo3WN7RBOVOtjVdo1wD358Uns= -go.opentelemetry.io/otel/metric/x v0.67.0/go.mod h1:FBjCWZe6wgcqxcMtjdGiClDKXb2YxxXii0CXftE4QtI= -go.opentelemetry.io/otel/sdk v1.45.0 h1:4VVSMgQ83dUgW2aoX5f6JgLvHwIvzcuLnF9lUdCSpCw= -go.opentelemetry.io/otel/sdk v1.45.0/go.mod h1:Sr40LgXV7DsKMMJMKOhUWOgMWTfAaqvm2kF0g7ilwuA= +go.opentelemetry.io/otel/metric v1.46.0 h1:yBnkXvgV7AXFILZc5K6IZe/CBFF3OS7BJ8ov6/lj0K8= +go.opentelemetry.io/otel/metric v1.46.0/go.mod h1:iPmdWqifKUdzziPkvvzIJXITl56fQx2mGM/DHLB3/2o= +go.opentelemetry.io/otel/metric/x v0.68.0 h1:TA/cBT23D3MnxYPwHL7YFOdYGdx0A0v+s7Mzotpd1dU= +go.opentelemetry.io/otel/metric/x v0.68.0/go.mod h1:agudOmvWhwUTjgibWDzxD2PoWYnpw5Ht5jISYOD2Hd4= +go.opentelemetry.io/otel/sdk v1.46.0 h1:h5CNQQjEbuQXY/JfZtgt3i7HVFV3aHPO2OAwO2eTYPI= +go.opentelemetry.io/otel/sdk v1.46.0/go.mod h1:GAERFXFt5SYCEB+YiKUbMBeza6UaDH7GmGOZEfh2gSM= go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko= go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= -go.opentelemetry.io/otel/sdk/metric v1.45.0 h1:oVFszMfyj1Am6s24Vtc7wBb8BKLcwepJjNEYILuiE3o= -go.opentelemetry.io/otel/sdk/metric v1.45.0/go.mod h1:vUWUxDZvu1WVRj8JA8S0AdhsPrZoDpA2DdZauIh4mDA= -go.opentelemetry.io/otel/trace v1.45.0 h1:l/mP6Uv7oNO7/TblbhpbgMidxhq1uO/rPsikOyVhxag= -go.opentelemetry.io/otel/trace v1.45.0/go.mod h1:qoJJA2xNMnxRrdISU/kLtfUH2wNeQbiv+jhs/CxI8bc= +go.opentelemetry.io/otel/sdk/metric v1.46.0 h1:0piZ26EG4RBfebb2jhDH6ERCYHoVWduc3kLgPCwSnSE= +go.opentelemetry.io/otel/sdk/metric v1.46.0/go.mod h1:I1PbKrdVc8Qu8HYVDNtqVIwLwjNrhsV/uFuxfwg8mO4= +go.opentelemetry.io/otel/trace v1.46.0 h1:OULy7ccdJnZtJ0UDYFOIGaCmiWzJ8Vi2G/Rsu60qs1c= +go.opentelemetry.io/otel/trace v1.46.0/go.mod h1:J7GAXweO77XSFkB/rmAqk9D6ihszhFjLU+d9WuUxDLI= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v1.11.0 h1:5rrYs0Ykyj50sdU/JU0x8etU+LubXWb+gED6TbEdMIk= go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT72hLMhv8VwA8E= @@ -1562,8 +1560,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= -golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= +golang.org/x/exp v0.0.0-20260908205506-85c1c2202aba h1:Ck8QetSgk912qxWLMCKxd0in+aiyBQyDSMae6e/xmpU= +golang.org/x/exp v0.0.0-20260908205506-85c1c2202aba/go.mod h1:50RgIsmK7OwqzTTeqcSXQW8SswW0o8fRcDxmqGluJ8E= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -2036,8 +2034,8 @@ google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d h1:C9v1o0/4quuhOAfmRXA2j+we0PqZIp8traLdeogF3Ms= google.golang.org/genproto v0.0.0-20260715232425-e75dac1f907d/go.mod h1:Wz2wFJntZFmLGo7pLDXZ3wYk5hyc0Mb+SkHhDDXT+lU= -google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d h1:FarXi840EJWSHYTN3ERkADbPWjl307+FGrA22KAVjjc= -google.golang.org/genproto/googleapis/api v0.0.0-20260803160001-6ac0973c030d/go.mod h1:K/+WGbmBY7aNW1HDw1fJnKYo10i0DkAX6pows00dLig= +google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459 h1:GS9OIt/j7c8bvBjYNgnKQysVfmV7e4jM0H8ZK95G4t8= +google.golang.org/genproto/googleapis/api v0.0.0-20260921155816-b14227669459/go.mod h1:PX5/4vemwVoXtwEcRDWwcR1/r0qrosfx3qoVADMwnVE= google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459 h1:b0xCahf3FK2m2Cv0p4vTozGPWncCvLfwV86UNg8xWU8= google.golang.org/genproto/googleapis/rpc v0.0.0-20260921155816-b14227669459/go.mod h1:OaIUM3+LpYcK2GXM4FTmhWoIq371Owdr+Cc7/BsYHHc= google.golang.org/grpc v1.18.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= From f1d90bc6a74a098d835361c3f8b8919298b14531 Mon Sep 17 00:00:00 2001 From: David Shrewsberry <99685630+dashrews78@users.noreply.github.com> Date: Wed, 30 Sep 2026 20:55:54 -0400 Subject: [PATCH 154/327] ROX-36946: upgrade Postgres images for central-db (#22831) --- .github/docker/images.hcl | 2 +- image/postgres/Dockerfile | 2 +- image/postgres/download.sh | 3 +- image/postgres/konflux.Dockerfile | 4 +- image/postgres/scripts/docker-entrypoint.sh | 4 +- image/rhel/download.sh | 3 +- image/rhel/konflux.Dockerfile | 2 +- rpms.in.yaml | 2 +- rpms.lock.yaml | 248 +++++++++--------- .../CentralDatabaseHealthCard.cy.jsx | 4 +- .../CentralDatabaseHealthCard.tsx | 4 +- 11 files changed, 140 insertions(+), 138 deletions(-) diff --git a/.github/docker/images.hcl b/.github/docker/images.hcl index 4e9de4284681e..b4b6d47ac7760 100644 --- a/.github/docker/images.hcl +++ b/.github/docker/images.hcl @@ -28,7 +28,7 @@ group "databases" { targets = ["central-db", "scanner-v4-db"] } -# Central database (PostgreSQL 15) +# Central database (PostgreSQL 16) target "central-db" { context = "image/postgres" dockerfile = "Dockerfile" diff --git a/image/postgres/Dockerfile b/image/postgres/Dockerfile index edb3503720933..dd775fda126b7 100644 --- a/image/postgres/Dockerfile +++ b/image/postgres/Dockerfile @@ -1,4 +1,4 @@ -ARG PG_VERSION=15 +ARG PG_VERSION=16 FROM quay.io/sclorg/postgresql-${PG_VERSION}-c9s:latest AS final USER root diff --git a/image/postgres/download.sh b/image/postgres/download.sh index 624b992ee4867..977dfde78cf4f 100755 --- a/image/postgres/download.sh +++ b/image/postgres/download.sh @@ -2,7 +2,7 @@ set -euo pipefail -postgres_major=15 +postgres_major=16 pg_rhel_major=9 arch="$(uname -m)" @@ -16,6 +16,7 @@ output_dir="/rpms" mkdir $output_dir if [[ "$arch" == "s390x" ]]; then + dnf module enable -y postgresql:16 dnf install -y --downloadonly --downloaddir=/tmp postgresql postgresql-private-libs postgresql-server postgresql-contrib mv /tmp/postgresql-contrib-*.rpm "${output_dir}/postgres-contrib.rpm" mv /tmp/postgresql-server-*.rpm "${output_dir}/postgres-server.rpm" diff --git a/image/postgres/konflux.Dockerfile b/image/postgres/konflux.Dockerfile index e68bb68a7eb91..763e3bb197bd0 100644 --- a/image/postgres/konflux.Dockerfile +++ b/image/postgres/konflux.Dockerfile @@ -1,5 +1,5 @@ -ARG PG_VERSION=15 -FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:a3a5c31afcd91ef5d96f20bcf7aa7b47b10c034f86b549b04985ebed6d14567e AS final +ARG PG_VERSION=16 +FROM registry.redhat.io/rhel9/postgresql-${PG_VERSION}:latest@sha256:106060b6e14c948aed9e33854b1a67d4089f35aa8a11e404da67156b1f8eb7e4 AS final USER root diff --git a/image/postgres/scripts/docker-entrypoint.sh b/image/postgres/scripts/docker-entrypoint.sh index 371b5dbd60021..6eafa1e5ac6bb 100755 --- a/image/postgres/scripts/docker-entrypoint.sh +++ b/image/postgres/scripts/docker-entrypoint.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# This file is from https://github.com/docker-library/postgres/tree/master/15/bookworm +# This file is from https://github.com/docker-library/postgres/tree/master/16/bookworm set -Eeo pipefail # TODO swap to -Eeuo pipefail above (after handling all potentially-unset variables) @@ -362,7 +362,7 @@ _main() { ### ROX_TLS_MIN_VERSION: passed to ssl_min_protocol_version (e.g. "TLSv1.2", "TLSv1.3"). ### ROX_TLS_OPENSSL_CIPHERS: colon-separated OpenSSL cipher names ### (e.g. "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384"). - ### Only affects TLS 1.2; TLS 1.3 ciphers are not configurable in PostgreSQL 15. + ### Only affects TLS 1.2; TLS 1.3 ciphers are not configurable in PostgreSQL 16. if [ -n "${ROX_TLS_MIN_VERSION:-}" ]; then set -- "$@" -c "ssl_min_protocol_version=${ROX_TLS_MIN_VERSION}" fi diff --git a/image/rhel/download.sh b/image/rhel/download.sh index 82570540b1b49..2cc7af11b156e 100755 --- a/image/rhel/download.sh +++ b/image/rhel/download.sh @@ -35,11 +35,12 @@ fi mkdir -p "$output_dir/rpms" if [[ "$arch" == "s390x" ]]; then + dnf module enable -y postgresql:16 dnf install -y --downloadonly --downloaddir=/tmp postgresql postgresql-private-libs mv /tmp/postgresql-private-libs-*.rpm "${output_dir}/rpms/postgres-libs.rpm" mv /tmp/postgresql-*.rpm "${output_dir}/rpms/postgres.rpm" else - postgres_major=15 + postgres_major=16 pg_rhel_major=9 postgres_repo_url="https://download.postgresql.org/pub/repos/yum/reporpms/EL-${pg_rhel_major}-${arch}/pgdg-redhat-repo-latest.noarch.rpm" dnf install --disablerepo='*' -y "${postgres_repo_url}" diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index 7361053a6a0f8..5d4a2baf85c66 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -1,4 +1,4 @@ -ARG PG_VERSION=15 +ARG PG_VERSION=16 FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_golang_1.26@sha256:e74b03198cccc24c24a27071ad4d6c2edcfe0bb10c6de99c609ce6e3c06d6d04 AS go-builder diff --git a/rpms.in.yaml b/rpms.in.yaml index 8df6cca8fdb6a..ee1616dcd4c38 100644 --- a/rpms.in.yaml +++ b/rpms.in.yaml @@ -19,7 +19,7 @@ packages: - tar moduleEnable: # final stage in image/rhel/konflux.Dockerfile -- postgresql:15 +- postgresql:16 contentOrigin: repofiles: [ "rpms.rhel.repo" ] context: diff --git a/rpms.lock.yaml b/rpms.lock.yaml index eaaf8f5d53047..e139cae85bea8 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -18,13 +18,13 @@ arches: name: delve evr: 1.26.1-1.el9_8 sourcerpm: delve-1.26.1-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9_8.1.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 216292 - checksum: sha256:3fd73bd271e9c04dc297eb08c3829d276faee372f77666aad29f4b676ea220f4 + size: 218086 + checksum: sha256:d38712f7aa4e5b3821ba899d6b4f62821407f6f239e17bf240ca488fb1d35376 name: gawk-all-langpacks - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/g/gcc-11.5.0-14.el9.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 31291354 @@ -137,20 +137,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 1828909 - checksum: sha256:06bde44430fc94e09d7dac2c748f19b41161fdc2fa4b4b6cd861ca9a7a1532c0 + size: 2049624 + checksum: sha256:5295a9a347f24655946ca8870d76cc7acdaa96c1e631a6880193576e92061d27 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.aarch64.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/postgresql-private-libs-16.15-1.module+el9.8.0+24803+9dca000b.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 150016 - checksum: sha256:869f22709281040978c3130c972685c217b4be0c4f915c69c3036b886d75bcc2 + size: 149710 + checksum: sha256:e4b9f9f73ee8986c64148b838c9a32492d75e4c6352810542952a8126eaa31ef name: postgresql-private-libs - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 32440 @@ -361,13 +361,13 @@ arches: name: findutils evr: 1:4.8.0-7.el9 sourcerpm: findutils-4.8.0-7.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/g/gawk-5.1.0-6.el9.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/g/gawk-5.1.0-6.el9_8.1.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms - size: 1024204 - checksum: sha256:a4b7202ac90653a7d3e072c2444bde6a9270d6a818eb6f2ffcfcaa50774f1fad + size: 1026105 + checksum: sha256:54365d2a6150079c2dc5003eeb94ada32fc15801b5db05422361f02ed58e6772 name: gawk - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.aarch64.rpm repoid: rhel-9-for-aarch64-baseos-rpms size: 60311 @@ -1070,12 +1070,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms - size: 53848854 - checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 + size: 48516429 + checksum: sha256:fdb3a4e84c097bb87061fbf6b3f1f11a03b4aa6adf13b0b20cc1d439b5a2c7d7 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 + evr: 16.15-1.module+el9.8.0+24803+9dca000b - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-aarch64-appstream-source-rpms size: 20894742 @@ -1232,12 +1232,12 @@ arches: checksum: sha256:48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f name: findutils evr: 1:4.8.0-7.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9_8.1.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 3190934 - checksum: sha256:37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d + size: 3197459 + checksum: sha256:8f156f11c96b1720ba2e9e287f2ddf5e0588a9c9ad17753f779ebbdf0c4e99df name: gawk - evr: 5.1.0-6.el9 + evr: 5.1.0-6.el9_8.1 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 81978017 @@ -1635,10 +1635,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/80a77d18ba9e517b5d62a2859474edc8ab833383bc13d0fdbf1027a05f45a1bc-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/f310ddcbea4a32af8415a78c2ccf7b7eb34ebf5fe763be2bfe0ae728654c1449-modules.yaml.gz repoid: rhel-9-for-aarch64-appstream-rpms - size: 68829 - checksum: sha256:80a77d18ba9e517b5d62a2859474edc8ab833383bc13d0fdbf1027a05f45a1bc + size: 68974 + checksum: sha256:f310ddcbea4a32af8415a78c2ccf7b7eb34ebf5fe763be2bfe0ae728654c1449 - arch: ppc64le packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/c/cpp-11.5.0-14.el9.ppc64le.rpm @@ -1655,13 +1655,13 @@ arches: name: delve evr: 1.26.1-1.el9_8 sourcerpm: delve-1.26.1-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9_8.1.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 216324 - checksum: sha256:f44a17730803f53266874678031b8121541b5b1a8047a3205c2576630216f468 + size: 218118 + checksum: sha256:c12a101cc4a7fd08f4fa1a430629fe45fa7fd56e59d5f4094aaa159c9a0aabea name: gawk-all-langpacks - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/g/gcc-11.5.0-14.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 29072214 @@ -1774,20 +1774,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 1893060 - checksum: sha256:cb037d48821efe06c06c45369e4a4fd9ca9f048022bd62bf7373028b9c8c74d9 + size: 2115888 + checksum: sha256:a5f63dd209db8b709ebda515c4a71c746360e2438ed54a448920a84b431ab3d3 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.ppc64le.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/postgresql-private-libs-16.15-1.module+el9.8.0+24803+9dca000b.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 170264 - checksum: sha256:64a378b9cb22b6228f0b1a5a1b2b3b50b959e7d8d093953f5c09058c8e2167f3 + size: 171976 + checksum: sha256:96366eb8e165d019f05d42c0b5fb801e658377f65b1d92bae29a8e9d73722725 name: postgresql-private-libs - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 32494 @@ -1998,13 +1998,13 @@ arches: name: findutils evr: 1:4.8.0-7.el9 sourcerpm: findutils-4.8.0-7.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/g/gawk-5.1.0-6.el9.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/g/gawk-5.1.0-6.el9_8.1.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms - size: 1064251 - checksum: sha256:b0cc389ad0855900c79f2cfa525df8cbc663093056b0b5d29ec3e36a189b325e + size: 1062624 + checksum: sha256:4c2d81c6874201646d5c5eee719ecdb95f610b277b3782bb1956a19f71d17d59 name: gawk - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-baseos-rpms size: 65838 @@ -2714,12 +2714,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms - size: 53848854 - checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 + size: 48516429 + checksum: sha256:fdb3a4e84c097bb87061fbf6b3f1f11a03b4aa6adf13b0b20cc1d439b5a2c7d7 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 + evr: 16.15-1.module+el9.8.0+24803+9dca000b - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-ppc64le-appstream-source-rpms size: 20894742 @@ -2876,12 +2876,12 @@ arches: checksum: sha256:48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f name: findutils evr: 1:4.8.0-7.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9_8.1.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 3190934 - checksum: sha256:37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d + size: 3197459 + checksum: sha256:8f156f11c96b1720ba2e9e287f2ddf5e0588a9c9ad17753f779ebbdf0c4e99df name: gawk - evr: 5.1.0-6.el9 + evr: 5.1.0-6.el9_8.1 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 81978017 @@ -3285,10 +3285,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/008320dd4d21a6fa411c839dcc3c6d1a773b019ad9bddbac6ddb3c3718c5d4a7-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/a2ba371afa8702da112fc35262a64188c67b41c55df301eb20b44e2dff3a6b7d-modules.yaml.gz repoid: rhel-9-for-ppc64le-appstream-rpms - size: 70701 - checksum: sha256:008320dd4d21a6fa411c839dcc3c6d1a773b019ad9bddbac6ddb3c3718c5d4a7 + size: 70407 + checksum: sha256:a2ba371afa8702da112fc35262a64188c67b41c55df301eb20b44e2dff3a6b7d - arch: s390x packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/c/cpp-11.5.0-14.el9.s390x.rpm @@ -3298,13 +3298,13 @@ arches: name: cpp evr: 11.5.0-14.el9 sourcerpm: gcc-11.5.0-14.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9_8.1.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 216312 - checksum: sha256:fc71db041e9b749a3f8bcbc9f812509625cfaf5d4fa83d37324c4dbdeb00a36e + size: 218106 + checksum: sha256:4828be3b34d4f1e54ec4b0ff53c1291f18b01be78165e10ec4967b6b061e13d4 name: gawk-all-langpacks - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/g/gcc-11.5.0-14.el9.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 26825105 @@ -3424,20 +3424,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 1861033 - checksum: sha256:a3aa3b5a24a81f1cb8a36a0eecba4f0eb00a54cbb5840d101533cf4793d9c67e + size: 2085027 + checksum: sha256:7c047295d9ae473c18fbbeb9b0ce4a432ae6a75f1a8378d857809cbad2596214 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.s390x.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/postgresql-private-libs-16.15-1.module+el9.8.0+24803+9dca000b.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 147716 - checksum: sha256:738dfc0971a4ec61b9092d9598809c5cb082c6aff8db768507d9c0aaa5ae35ea + size: 150732 + checksum: sha256:fa72693328f1f6fa5958912ca1d048aec07563e4bc7f013ccb1f4050805a8703 name: postgresql-private-libs - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 32298 @@ -3648,13 +3648,13 @@ arches: name: findutils evr: 1:4.8.0-7.el9 sourcerpm: findutils-4.8.0-7.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/g/gawk-5.1.0-6.el9.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/g/gawk-5.1.0-6.el9_8.1.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms - size: 1029188 - checksum: sha256:d34fd3f586240f43f71bc74824ae513cba2e4a6812f0ebbd101122e7e99bafe8 + size: 1029963 + checksum: sha256:7382392d06b5e21161966cec0c187bba6afb9710047ab17d79e7b55ce43def40 name: gawk - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.s390x.rpm repoid: rhel-9-for-s390x-baseos-rpms size: 60437 @@ -4351,12 +4351,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms - size: 53848854 - checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 + size: 48516429 + checksum: sha256:fdb3a4e84c097bb87061fbf6b3f1f11a03b4aa6adf13b0b20cc1d439b5a2c7d7 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 + evr: 16.15-1.module+el9.8.0+24803+9dca000b - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-s390x-appstream-source-rpms size: 20894742 @@ -4513,12 +4513,12 @@ arches: checksum: sha256:48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f name: findutils evr: 1:4.8.0-7.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9_8.1.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 3190934 - checksum: sha256:37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d + size: 3197459 + checksum: sha256:8f156f11c96b1720ba2e9e287f2ddf5e0588a9c9ad17753f779ebbdf0c4e99df name: gawk - evr: 5.1.0-6.el9 + evr: 5.1.0-6.el9_8.1 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 81978017 @@ -4916,10 +4916,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/dcb8fd74f73344285f768b59afb2d490b9f2b3c9afcee99023e950a69df10ba7-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/532ca027fab74fd8ae42adae8ec472c1ddf8940c704f3ad3d36114c91c0d210b-modules.yaml.gz repoid: rhel-9-for-s390x-appstream-rpms - size: 65924 - checksum: sha256:dcb8fd74f73344285f768b59afb2d490b9f2b3c9afcee99023e950a69df10ba7 + size: 65587 + checksum: sha256:532ca027fab74fd8ae42adae8ec472c1ddf8940c704f3ad3d36114c91c0d210b - arch: x86_64 packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/c/cpp-11.5.0-14.el9.x86_64.rpm @@ -4936,13 +4936,13 @@ arches: name: delve evr: 1.26.1-1.el9_8 sourcerpm: delve-1.26.1-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/gawk-all-langpacks-5.1.0-6.el9_8.1.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 216340 - checksum: sha256:c1fcc71c1cc1160d58ace4b60cc6733b68d6f6d406e5ec5ce24327787f452cd1 + size: 218134 + checksum: sha256:bedaac1d71ca9f41e3398dc413dea2008bfd20799de1b4db14e37ebb7a7ce74d name: gawk-all-langpacks - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/g/gcc-11.5.0-14.el9.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 33982584 @@ -5048,20 +5048,20 @@ arches: name: openssl-devel evr: 1:3.5.8-1.el9_8 sourcerpm: openssl-3.5.8-1.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 1842434 - checksum: sha256:18506bf4217ef40600adcb830fe651840f041423ef3bea67bd73d6f8c78e383c + size: 2067493 + checksum: sha256:f078cf1183f6bb750e39cdcab4d2ecb3f936d745b7360b741a6919e926855ad7 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-private-libs-15.19-1.module+el9.8.0+24800+a95bf172.x86_64.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/postgresql-private-libs-16.15-1.module+el9.8.0+24803+9dca000b.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 154163 - checksum: sha256:18d4936ef18627f03facdf1b8f54e313d04f67883d0019abee9a599b7e3e621b + size: 153488 + checksum: sha256:f36cf284eb08753b6b2576f8eed63c8c2651ef82e618fe1641a6b0ff4cd2d4ca name: postgresql-private-libs - evr: 15.19-1.module+el9.8.0+24800+a95bf172 - sourcerpm: postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + evr: 16.15-1.module+el9.8.0+24803+9dca000b + sourcerpm: postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/p/python3.12-3.12.14-1.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 32484 @@ -5272,13 +5272,13 @@ arches: name: findutils evr: 1:4.8.0-7.el9 sourcerpm: findutils-4.8.0-7.el9.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/g/gawk-5.1.0-6.el9.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/g/gawk-5.1.0-6.el9_8.1.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms - size: 1045534 - checksum: sha256:99fda6725a2c668bae29fbab74d1b347e074f4e8c8ed18d656cb928fb6fc92b7 + size: 1046649 + checksum: sha256:fcc5e724c32597cf781626728f0faff2f0e5ed6455ab95af4883eefca30a074e name: gawk - evr: 5.1.0-6.el9 - sourcerpm: gawk-5.1.0-6.el9.src.rpm + evr: 5.1.0-6.el9_8.1 + sourcerpm: gawk-5.1.0-6.el9_8.1.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/Packages/g/gdbm-libs-1.23-1.el9.x86_64.rpm repoid: rhel-9-for-x86_64-baseos-rpms size: 60152 @@ -5974,12 +5974,12 @@ arches: checksum: sha256:2f5ece89d6a8d892816f386462d8be291ad83f1500b4c4b3655dcc7ed5192c0d name: mpdecimal evr: 2.5.1-3.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/postgresql-15.19-1.module+el9.8.0+24800+a95bf172.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/postgresql-16.15-1.module+el9.8.0+24803+9dca000b.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms - size: 53848854 - checksum: sha256:9e2e4c6af57fe5ab47f3f2ca77b4cb8d16a828cfa03b1eba6704203fe926eb96 + size: 48516429 + checksum: sha256:fdb3a4e84c097bb87061fbf6b3f1f11a03b4aa6adf13b0b20cc1d439b5a2c7d7 name: postgresql - evr: 15.19-1.module+el9.8.0+24800+a95bf172 + evr: 16.15-1.module+el9.8.0+24803+9dca000b - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/source/SRPMS/Packages/p/python3.12-3.12.14-1.el9_8.src.rpm repoid: rhel-9-for-x86_64-appstream-source-rpms size: 20894742 @@ -6136,12 +6136,12 @@ arches: checksum: sha256:48bd4d4dd081120bcc6ab772b930a150f30b2fc89a4a14a24220383d24a30b3f name: findutils evr: 1:4.8.0-7.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/g/gawk-5.1.0-6.el9_8.1.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 3190934 - checksum: sha256:37571947707e835d36ceb5641b187aba13ef8f5f605a6762ce72aeea3e745b8d + size: 3197459 + checksum: sha256:8f156f11c96b1720ba2e9e287f2ddf5e0588a9c9ad17753f779ebbdf0c4e99df name: gawk - evr: 5.1.0-6.el9 + evr: 5.1.0-6.el9_8.1 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/g/gcc-11.5.0-14.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 81978017 @@ -6539,7 +6539,7 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/c57f58f8a4b1141dde68ffc9572f4b61fa851fd2c6819db8bd600704f831b512-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/d4f5a831afd58619b36a4842a572502fc730e04eefb3e8acca4679a59be2eeff-modules.yaml.gz repoid: rhel-9-for-x86_64-appstream-rpms - size: 72089 - checksum: sha256:c57f58f8a4b1141dde68ffc9572f4b61fa851fd2c6819db8bd600704f831b512 + size: 72271 + checksum: sha256:d4f5a831afd58619b36a4842a572502fc730e04eefb3e8acca4679a59be2eeff diff --git a/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.cy.jsx b/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.cy.jsx index f609bbeba28a9..15d4a0ec3f2cf 100644 --- a/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.cy.jsx +++ b/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.cy.jsx @@ -5,7 +5,7 @@ function patchDatabaseStatusResponse(overrides = {}) { req.reply({ databaseAvailable: true, databaseType: 'PostgresDB', - databaseVersion: '15.0', + databaseVersion: '16.0', databaseIsExternal: false, ...overrides, }); @@ -20,7 +20,7 @@ describe(Cypress.spec.relative, () => { patchDatabaseStatusResponse(); cy.mount(); cy.get(`${cardHeader}:contains("no errors")`); - cy.get(`${cardHeader}:contains("PostgresDB 15.0")`); + cy.get(`${cardHeader}:contains("PostgresDB 16.0")`); }); it('should not show a warning if the database is external', () => { diff --git a/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.tsx b/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.tsx index 83430c2e5b54e..66376891a1f6c 100644 --- a/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.tsx +++ b/ui/apps/platform/src/Containers/SystemHealth/CentralDatabaseHealth/CentralDatabaseHealthCard.tsx @@ -20,7 +20,7 @@ function isDatabaseVersionSupported(databaseVersion: string | undefined): boolea if (!databaseVersion) { return true; } - return databaseVersion.startsWith('15'); + return databaseVersion.startsWith('16'); } function getDatabaseHealthInfo(data: DatabaseStatus | undefined): { @@ -42,7 +42,7 @@ function getDatabaseHealthInfo(data: DatabaseStatus | undefined): { messages: [ 'Running an unsupported configuration of PostgreSQL', `Current version: ${data.databaseVersion}`, - `Required version: 15`, + `Required version: 16`, ], }; } From d4b416393f52e7a61f0f861452d9a95c5a55a751 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 02:47:51 +0000 Subject: [PATCH 155/327] chore(deps): update all dependencies (#23176) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/create-custom-snapshot.yaml | 2 +- .tekton/operator-index-build.yaml | 2 +- image/rhel/konflux.Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index d82ad2a8b5bbb..6fc004f6e642f 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -132,7 +132,7 @@ spec: - name: SHOULD_REALLY_WORK steps: - name: determine - image: registry.redhat.io/ubi9-minimal:latest@sha256:beeada7dd17903dfb69fd5f6916c054720bf28a52daaa2f7a1910a1394244bd2 + image: registry.redhat.io/ubi9-minimal:latest@sha256:1d7c5517a4a1a8e2688620b39ee980e82505ca1ab7ae5541b5463120ae9b3897 imagePullPolicy: IfNotPresent # The script expresses the same condition as pipelinesascode.tekton.dev/on-cel-expression in other pipelines # but in a more verbose way because, as it turns out, both syntax and fields of CEL expressions are slightly diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index a3c1aa9ceff8f..55794f741a56c 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -249,7 +249,7 @@ spec: description: Full operator-index image tag with v prefix and -fast suffix to avoid collision with GHA builds steps: - name: compute-index-tag - image: registry.access.redhat.com/ubi9-minimal:latest@sha256:beeada7dd17903dfb69fd5f6916c054720bf28a52daaa2f7a1910a1394244bd2 + image: registry.access.redhat.com/ubi9-minimal:latest@sha256:1d7c5517a4a1a8e2688620b39ee980e82505ca1ab7ae5541b5463120ae9b3897 imagePullPolicy: IfNotPresent script: | #!/bin/bash diff --git a/image/rhel/konflux.Dockerfile b/image/rhel/konflux.Dockerfile index 5d4a2baf85c66..8de4fe0903b4c 100644 --- a/image/rhel/konflux.Dockerfile +++ b/image/rhel/konflux.Dockerfile @@ -49,7 +49,7 @@ RUN arch=$(uname -m) ; \ /go/src/github.com/stackrox/rox/app/image/rhel/bin/roxctl -FROM registry.access.redhat.com/ubi9/nodejs-22@sha256:ef4f18a7e736696b1314bdc21bcf57bfd50ba3ea4f80c13833f777316b25c035 as ui-builder +FROM registry.access.redhat.com/ubi9/nodejs-22@sha256:99cef5d0a64011463c411db508b1570f9edc37219dd38eabbf90bb8c0e45ccc3 as ui-builder WORKDIR /go/src/github.com/stackrox/rox/app From e838d97294d13a50ab7dd77db6c042897adb848a Mon Sep 17 00:00:00 2001 From: Marcin Owsiany Date: Thu, 1 Oct 2026 07:54:35 +0200 Subject: [PATCH 156/327] ROX-36578: use roxie in BOYDB tests (#22667) Co-authored-by: Vlad Bologa --- .github/workflows/e2e-byodb-tests.yaml | 10 ++++++ qa-tests-backend/scripts/run-part-1.sh | 2 ++ .../jobs/gke_external_pg_17_qa_e2e_tests.py | 1 + tests/e2e/lib-compat.sh | 31 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/.github/workflows/e2e-byodb-tests.yaml b/.github/workflows/e2e-byodb-tests.yaml index ea298e07a8dba..ede1805fa1ecd 100644 --- a/.github/workflows/e2e-byodb-tests.yaml +++ b/.github/workflows/e2e-byodb-tests.yaml @@ -98,6 +98,15 @@ jobs: - name: Create artifact directory run: mkdir -p "$ARTIFACT_DIR" + - name: Retrieve roxie version from repository + id: roxie-version + run: echo "version=$(cat ROXIE_VERSION)" >> "$GITHUB_OUTPUT" + + - name: Install roxie + uses: stackrox/actions/roxie/install-cli@43bb707aa4f32ead5bfb8d5ab11fb409f971ffc8 # ratchet:stackrox/actions@v1 + with: + version: "v${{ steps.roxie-version.outputs.version }}" + - name: Run pre-test shell: python env: @@ -141,6 +150,7 @@ jobs: CLOUD_SOURCES_TEST_OCM_CLIENT_ID: ${{ secrets.CLOUD_SOURCES_TEST_OCM_CLIENT_ID }} CLOUD_SOURCES_TEST_OCM_CLIENT_SECRET: ${{ secrets.CLOUD_SOURCES_TEST_OCM_CLIENT_SECRET }} BUILD_ID: ${{ github.run_id }} + USE_ROXIE_DEPLOY: true timeout-minutes: 245 run: tests/byodb/run.sh /tmp/byodb-test-logs diff --git a/qa-tests-backend/scripts/run-part-1.sh b/qa-tests-backend/scripts/run-part-1.sh index ef446d76f608a..90a8bf9d3ec3e 100755 --- a/qa-tests-backend/scripts/run-part-1.sh +++ b/qa-tests-backend/scripts/run-part-1.sh @@ -58,6 +58,8 @@ config_part_1() { if [[ "$use_roxie_deploy" == "true" ]]; then info "Using roxie-based config_part_1 for qa-tests-backend" + ensure_roxie_on_path + local config_file config_file="$(mktemp)" diff --git a/scripts/ci/jobs/gke_external_pg_17_qa_e2e_tests.py b/scripts/ci/jobs/gke_external_pg_17_qa_e2e_tests.py index 2c652d5e83a9a..787be524961f8 100755 --- a/scripts/ci/jobs/gke_external_pg_17_qa_e2e_tests.py +++ b/scripts/ci/jobs/gke_external_pg_17_qa_e2e_tests.py @@ -15,6 +15,7 @@ os.environ["KUBERNETES_PROVIDER"] = "gke" os.environ["POSTGRES_VERSION"] = "17" os.environ["BYODB_TEST"] = "true" +os.environ["USE_ROXIE_DEPLOY"] = "true" os.environ["ROX_RISK_REPROCESSING_INTERVAL"] = "15s" os.environ["ROX_SENSOR_CONNECTION_RETRY_MAX_INTERVAL"] = "30s" diff --git a/tests/e2e/lib-compat.sh b/tests/e2e/lib-compat.sh index 2b85aa4392e4a..0a13226f860c5 100644 --- a/tests/e2e/lib-compat.sh +++ b/tests/e2e/lib-compat.sh @@ -96,6 +96,11 @@ roxie_config_from_environment_compat() { handle_endpoints_for_test "$config_file" # Echoes info internally. + if [[ -n "${EXTERNAL_DB:-}" ]]; then + info "Configuring external database..." + handle_external_database_settings "$config_file" "$namespace" + fi + info "Configuring custom central environment..." while read -r var_val; do local name="${var_val%%=*}" @@ -197,6 +202,32 @@ roxie_config_from_environment_compat() { handle_virtual_machines_configuration "$config_file" } +handle_external_database_settings() { + local config_file="$1" + local namespace="$2" + + merge_yaml "$config_file" < Date: Thu, 1 Oct 2026 04:15:35 -0400 Subject: [PATCH 157/327] fix(build): s390x builds (#23180) --- image/rhel/Dockerfile | 34 ++++++++++++++++++++++++++++++---- image/rhel/README.md | 11 +++++++++++ image/rhel/download.sh | 6 +++--- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/image/rhel/Dockerfile b/image/rhel/Dockerfile index 73ebed2028f8d..b0658e3886547 100644 --- a/image/rhel/Dockerfile +++ b/image/rhel/Dockerfile @@ -1,9 +1,20 @@ +ARG TARGETARCH +ARG PG_VERSION=16 + FROM registry.access.redhat.com/ubi9:latest AS ubi-base FROM registry.access.redhat.com/ubi9/ubi-micro:latest AS ubi-micro-base -FROM ubi-base AS downloads +# PGDG does not publish s390x RPMs, and UBI only provides PostgreSQL 13. +# Use CentOS Stream's PostgreSQL module for that architecture's download stage. +FROM ubi-base AS downloads-amd64 +FROM ubi-base AS downloads-arm64 +FROM ubi-base AS downloads-ppc64le +FROM quay.io/centos/centos:stream9 AS downloads-s390x + +FROM downloads-${TARGETARCH} AS downloads ARG DEBUG_BUILD=no +ARG PG_VERSION WORKDIR / COPY download.sh /download.sh @@ -39,6 +50,23 @@ RUN rpm --import /tmp/RPM-GPG-KEY-CentOS-Official && \ dnf clean all --installroot=/out/ && \ rm -rf /out/var/cache/dnf /out/var/cache/yum +FROM ubi-micro-base AS runtime-base + +ARG PG_VERSION + +COPY --from=package_installer /out/ / + +# Execute the clients in the final runtime to check their version and libraries. +RUN set -eu; \ + for client in pg_dump pg_restore; do \ + version="$("$client" --version)"; \ + echo "$version"; \ + case "$version" in \ + "$client (PostgreSQL) ${PG_VERSION}."*) ;; \ + *) echo "Expected PostgreSQL ${PG_VERSION} client: $client" >&2; exit 1 ;; \ + esac; \ + done + FROM ubi-base AS cli-tarballs RUN dnf install -y pigz @@ -50,7 +78,7 @@ RUN cd /tmp/roxctl && \ tar -I pigz -cvf "${f%.exe}.tar.gz" "$f"; \ done -FROM ubi-micro-base +FROM runtime-base ARG LABEL_VERSION ARG LABEL_RELEASE @@ -73,8 +101,6 @@ ENV PATH="/stackrox:$PATH" \ ROX_IMAGE_FLAVOR=${ROX_IMAGE_FLAVOR} \ ROX_PRODUCT_BRANDING=${ROX_PRODUCT_BRANDING} -COPY --from=package_installer /out/ / - COPY static-bin /stackrox/ COPY --from=downloads /output/go/ /go/ diff --git a/image/rhel/README.md b/image/rhel/README.md index c3283e8a714f3..8eff97ca75f4b 100644 --- a/image/rhel/README.md +++ b/image/rhel/README.md @@ -3,3 +3,14 @@ The RedHat based main image is currently used for the RedHat marketplace as well as for DoD customers. This image is built in opinionated way based on the DoD Centralized Artifacts Repository (DCAR) requirements outlined [here](https://dccscr.dsop.io/dsop/dccscr/tree/master/contributor-onboarding) + +## PostgreSQL clients + +`Dockerfile` downloads PostgreSQL client RPMs from PGDG for amd64, arm64, and +ppc64le. For s390x it uses a CentOS Stream 9 download stage because PGDG does not +publish s390x packages and UBI's repositories do not provide the PostgreSQL 16 +module. The runtime remains UBI on every architecture. + +`PG_VERSION` selects the client major version. The `runtime-base` stage runs +`pg_dump` and `pg_restore` and checks their versions in the runtime filesystem, +so missing libraries or an older client fail the image build. diff --git a/image/rhel/download.sh b/image/rhel/download.sh index 2cc7af11b156e..c706129851a0a 100755 --- a/image/rhel/download.sh +++ b/image/rhel/download.sh @@ -3,6 +3,7 @@ set -euo pipefail arch=$(uname -m) +postgres_major="${PG_VERSION:-16}" goarch="$arch" dnf_list_args=() if [[ "$arch" == "x86_64" ]]; then @@ -35,16 +36,15 @@ fi mkdir -p "$output_dir/rpms" if [[ "$arch" == "s390x" ]]; then - dnf module enable -y postgresql:16 + dnf module enable -y "postgresql:${postgres_major}" dnf install -y --downloadonly --downloaddir=/tmp postgresql postgresql-private-libs mv /tmp/postgresql-private-libs-*.rpm "${output_dir}/rpms/postgres-libs.rpm" mv /tmp/postgresql-*.rpm "${output_dir}/rpms/postgres.rpm" else - postgres_major=16 pg_rhel_major=9 postgres_repo_url="https://download.postgresql.org/pub/repos/yum/reporpms/EL-${pg_rhel_major}-${arch}/pgdg-redhat-repo-latest.noarch.rpm" dnf install --disablerepo='*' -y "${postgres_repo_url}" - postgres_minor=$(dnf list ${dnf_list_args[@]+"${dnf_list_args[@]}"} --disablerepo='*' ""--enablerepo=pgdg${postgres_major} -y postgresql${postgres_major}-server."$arch" | tail -n 1 | awk '{print $2}') + postgres_minor=$(dnf list ${dnf_list_args[@]+"${dnf_list_args[@]}"} --disablerepo='*' "--enablerepo=pgdg${postgres_major}" -y "postgresql${postgres_major}-server.${arch}" | tail -n 1 | awk '{print $2}') postgres_minor="$postgres_minor.$arch" postgres_url="https://download.postgresql.org/pub/repos/yum/${postgres_major}/redhat/rhel-${pg_rhel_major}-${arch}" From 06c357c1cfaaffc4e5c1b1155df4bd090e01bf7d Mon Sep 17 00:00:00 2001 From: Yann Brillouet <91869377+rhybrillou@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:26:18 +0200 Subject: [PATCH 158/327] chore(linters): fixes for reflecttypeassert slicesclip and nolintlint (#22781) --- .../evaluator/base_evaluators.go | 4 +- pkg/concurrency/value_stream.go | 2 +- pkg/postgres/walker/walker.go | 2 +- pkg/protocompat/oneof.go | 2 +- pkg/protoconv/resources/resources.go | 6 +- pkg/protoreflect/field.go | 2 +- pkg/search/predicate/base_predicates.go | 2 +- pkg/search/predicate/timestamp_predicate.go | 2 +- pkg/search/walker.go | 2 +- pkg/telemetry/data/data_test.go | 2 +- roxctl/central/generate/interactive.go | 2 - .../kubernetes/listener/resources/convert.go | 4 +- tools/linters/go.mod | 107 ++++---- tools/linters/go.sum | 232 +++++++++--------- tools/roxvet/common/traverse.go | 5 +- 15 files changed, 189 insertions(+), 187 deletions(-) diff --git a/pkg/booleanpolicy/evaluator/base_evaluators.go b/pkg/booleanpolicy/evaluator/base_evaluators.go index 78fec49431158..d187c64eb5a64 100644 --- a/pkg/booleanpolicy/evaluator/base_evaluators.go +++ b/pkg/booleanpolicy/evaluator/base_evaluators.go @@ -252,7 +252,7 @@ func generateTimestampMatcher(value string, matchAll bool) (baseMatcherAndExtrac } } return func(instance reflect.Value) []valueMatchedPair { - ts, ok := instance.Interface().(*protocompat.Timestamp) + ts, ok := reflect.TypeAssert[*protocompat.Timestamp](instance) if !ok { return nil } @@ -335,7 +335,7 @@ func generateBoolMatcher(value string, _ reflect.Type, matchAll bool) (baseMatch } func generateIntMatcher(value string, fieldType reflect.Type, matchAll bool) (baseMatcherAndExtractor, error) { - if enum, ok := reflect.Zero(fieldType).Interface().(protoreflect.ProtoEnum); ok { + if enum, ok := reflect.TypeAssert[protoreflect.ProtoEnum](reflect.Zero(fieldType)); ok { return generateEnumMatcher(value, enum, matchAll) } if matchAll && value != "" { diff --git a/pkg/concurrency/value_stream.go b/pkg/concurrency/value_stream.go index 354be592cb9d3..c106a7d9faafb 100644 --- a/pkg/concurrency/value_stream.go +++ b/pkg/concurrency/value_stream.go @@ -101,7 +101,7 @@ func (i *valueStreamIterBase[T]) Done() <-chan struct{} { return i.nextC } -func (*valueStreamIterBase[T]) isValueStreamIter(T) {} //nolint:unused // This is required for generic magic +func (*valueStreamIterBase[T]) isValueStreamIter(T) {} type valueStreamStrictIter[T any] struct { valueStreamIterBase[T] diff --git a/pkg/postgres/walker/walker.go b/pkg/postgres/walker/walker.go index fcfe5a6e82e1e..fb79783ca2119 100644 --- a/pkg/postgres/walker/walker.go +++ b/pkg/postgres/walker/walker.go @@ -357,7 +357,7 @@ func tableName(parent, child string) string { } func typeIsEnum(typ reflect.Type) bool { - enum, ok := reflect.Zero(typ).Interface().(protoreflect.ProtoEnum) + enum, ok := reflect.TypeAssert[protoreflect.ProtoEnum](reflect.Zero(typ)) if !ok { return false } diff --git a/pkg/protocompat/oneof.go b/pkg/protocompat/oneof.go index 96d043e7249c5..aa148cd07926d 100644 --- a/pkg/protocompat/oneof.go +++ b/pkg/protocompat/oneof.go @@ -25,7 +25,7 @@ func GetOneOfTypesByInterface(msgType reflect.Type, oneOfInterfaceType reflect.T oneOfFieldTypes := make([]reflect.Type, 0) // Get proto message from Go reflect type. - msg, ok := reflect.New(msgType).Interface().(proto.Message) + msg, ok := reflect.TypeAssert[proto.Message](reflect.New(msgType)) if !ok { return oneOfFieldTypes } diff --git a/pkg/protoconv/resources/resources.go b/pkg/protoconv/resources/resources.go index e95a3a12736b7..e03afc7e1a050 100644 --- a/pkg/protoconv/resources/resources.go +++ b/pkg/protoconv/resources/resources.go @@ -106,7 +106,7 @@ func SpecToPodTemplateSpec(spec reflect.Value) (v1.PodTemplateSpec, error) { if templateInterface.Type().Kind() == reflect.Pointer && !templateInterface.IsNil() { templateInterface = templateInterface.Elem() } - podTemplate, ok := templateInterface.Interface().(v1.PodTemplateSpec) + podTemplate, ok := reflect.TypeAssert[v1.PodTemplateSpec](templateInterface) if !ok { return v1.PodTemplateSpec{}, errors.New("not a valid PodTemplateSpec") } @@ -356,12 +356,12 @@ func (w *DeploymentWrap) populateReplicas(spec reflect.Value, obj interface{}) { return } - replicasPointer, ok := replicaField.Interface().(*int32) + replicasPointer, ok := reflect.TypeAssert[*int32](replicaField) if ok && replicasPointer != nil { w.Deployment.Replicas = int64(*replicasPointer) } - replicas, ok := replicaField.Interface().(int32) + replicas, ok := reflect.TypeAssert[int32](replicaField) if ok { w.Deployment.Replicas = int64(replicas) } diff --git a/pkg/protoreflect/field.go b/pkg/protoreflect/field.go index c7a97b95069f1..f06ae1d1ed51e 100644 --- a/pkg/protoreflect/field.go +++ b/pkg/protoreflect/field.go @@ -7,7 +7,7 @@ import ( ) func IsProtoMessage(msgType reflect.Type) bool { - _, ok := reflect.New(msgType).Interface().(protocompat.Message) + _, ok := reflect.TypeAssert[protocompat.Message](reflect.New(msgType)) return ok } diff --git a/pkg/search/predicate/base_predicates.go b/pkg/search/predicate/base_predicates.go index 1497c46ed3935..556695794f25e 100644 --- a/pkg/search/predicate/base_predicates.go +++ b/pkg/search/predicate/base_predicates.go @@ -38,7 +38,7 @@ func createBasePredicate(fullPath string, fieldType reflect.Type, value string) case reflect.Bool: return createBoolPredicate(fullPath, value) case reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8, reflect.Int: - if enum, ok := reflect.Zero(fieldType).Interface().(protoreflect.ProtoEnum); ok { + if enum, ok := reflect.TypeAssert[protoreflect.ProtoEnum](reflect.Zero(fieldType)); ok { return createEnumPredicate(fullPath, value, enum) } return createIntPredicate(fullPath, value) diff --git a/pkg/search/predicate/timestamp_predicate.go b/pkg/search/predicate/timestamp_predicate.go index 2dd98eb589f75..18aea5f5e070e 100644 --- a/pkg/search/predicate/timestamp_predicate.go +++ b/pkg/search/predicate/timestamp_predicate.go @@ -14,7 +14,7 @@ func createTimestampPredicate(fullPath, value string) (internalPredicate, error) return nil, err } return internalPredicateFunc(func(instance reflect.Value) (*search.Result, bool) { - instanceTS, ok := instance.Interface().(*protocompat.Timestamp) + instanceTS, ok := reflect.TypeAssert[*protocompat.Timestamp](instance) if ok && baseMatcher(instanceTS) { return &search.Result{ diff --git a/pkg/search/walker.go b/pkg/search/walker.go index 2a4a3df0e3571..0e6262a8617a5 100644 --- a/pkg/search/walker.go +++ b/pkg/search/walker.go @@ -137,7 +137,7 @@ func (s *searchWalker) walkRecursive(prefix string, original reflect.Type) v1.Se case reflect.Bool: return v1.SearchDataType_SEARCH_BOOL case reflect.Uint32, reflect.Uint64, reflect.Int32, reflect.Int64, reflect.Float32, reflect.Float64: - enum, ok := reflect.Zero(original).Interface().(protoreflect.ProtoEnum) + enum, ok := reflect.TypeAssert[protoreflect.ProtoEnum](reflect.Zero(original)) if !ok { return v1.SearchDataType_SEARCH_NUMERIC } diff --git a/pkg/telemetry/data/data_test.go b/pkg/telemetry/data/data_test.go index 1f9b94d47d909..2f8850001fe5b 100644 --- a/pkg/telemetry/data/data_test.go +++ b/pkg/telemetry/data/data_test.go @@ -26,7 +26,7 @@ func validateJSONFieldNames(t *testing.T, val reflect.Value) { validateJSONFieldNames(t, val.Index(i)) } case reflect.Map: - m, ok := val.Interface().(map[string]interface{}) + m, ok := reflect.TypeAssert[map[string]interface{}](val) assert.True(t, ok) for mKey, mVal := range m { validateFieldName(t, mKey) diff --git a/roxctl/central/generate/interactive.go b/roxctl/central/generate/interactive.go index fe544dca69b66..e5df581fb6f4a 100644 --- a/roxctl/central/generate/interactive.go +++ b/roxctl/central/generate/interactive.go @@ -352,11 +352,9 @@ func processFlagWraps(argSlice *argSlice, fws []flagWrap) { depUnmet := false for _, dep := range fw.Annotations[flags.DependenciesKey] { flag := flagsByName[dep] - //nolint:staticcheck // SA5011 flag is definitely not nil because utils.Must panics. if flag == nil { utils.CrashOnError(errors.Errorf("invalid flag dependency %q", dep)) } - //nolint:staticcheck // SA5011 flag is definitely not nil because utils.Must panics. if !argSlice.flagNameIsSetExplicitly(flag.Name) { depUnmet = true break diff --git a/sensor/kubernetes/listener/resources/convert.go b/sensor/kubernetes/listener/resources/convert.go index 79650f98be89c..7329c81b51fb4 100644 --- a/sensor/kubernetes/listener/resources/convert.go +++ b/sensor/kubernetes/listener/resources/convert.go @@ -476,14 +476,14 @@ func (w *deploymentWrap) getLabelSelector(spec reflect.Value) (*metav1.LabelSele } // Selector is of map type for replication controller - if labelMap, ok := s.Interface().(map[string]string); ok { + if labelMap, ok := reflect.TypeAssert[map[string]string](s); ok { return &metav1.LabelSelector{ MatchLabels: labelMap, }, nil } // All other resources uses labelSelector. - if ls, ok := s.Interface().(*metav1.LabelSelector); ok { + if ls, ok := reflect.TypeAssert[*metav1.LabelSelector](s); ok { return ls, nil } diff --git a/tools/linters/go.mod b/tools/linters/go.mod index ab424a14e39e4..3c6174baa1a78 100644 --- a/tools/linters/go.mod +++ b/tools/linters/go.mod @@ -3,35 +3,36 @@ module github.com/stackrox/stackrox/tools/linters go 1.26.3 require ( - github.com/golangci/golangci-lint/v2 v2.12.2 + github.com/golangci/golangci-lint/v2 v2.13.2 github.com/nilslice/protolock v0.17.0 github.com/rhysd/actionlint v1.7.12 github.com/sethvargo/ratchet v0.12.0 - golang.org/x/vuln v1.6.0 + golang.org/x/vuln v1.8.0 ) require ( - 4d63.com/gocheckcompilerdirectives v1.3.0 // indirect + 4d63.com/gocheckcompilerdirectives v1.4.0 // indirect 4d63.com/gochecknoglobals v0.2.2 // indirect - charm.land/lipgloss/v2 v2.0.3 // indirect + charm.land/lipgloss/v2 v2.0.6 // indirect codeberg.org/chavacava/garif v0.2.0 // indirect codeberg.org/polyfloyd/go-errorlint v1.9.0 // indirect dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect - dev.gaijin.team/go/golib v0.6.0 // indirect + dev.gaijin.team/go/exhaustruct/v5 v5.0.3 // indirect + dev.gaijin.team/go/golib v0.8.1 // indirect github.com/4meepo/tagalign v1.4.3 // indirect - github.com/Abirdcfly/dupword v0.1.7 // indirect + github.com/Abirdcfly/dupword v0.1.8 // indirect github.com/AdminBenni/iota-mixing v1.0.0 // indirect - github.com/AlwxSin/noinlineerr v1.0.5 // indirect - github.com/Antonboom/errname v1.1.1 // indirect - github.com/Antonboom/nilnil v1.1.1 // indirect + github.com/AlwxSin/noinlineerr v1.0.6 // indirect + github.com/Antonboom/errname v1.1.2 // indirect + github.com/Antonboom/nilnil v1.1.2 // indirect github.com/Antonboom/testifylint v1.6.4 // indirect github.com/BurntSushi/toml v1.6.0 // indirect - github.com/ClickHouse/clickhouse-go-linter v1.2.0 // indirect + github.com/ClickHouse/clickhouse-go-linter v1.2.1 // indirect github.com/Djarvur/go-err113 v0.1.1 // indirect github.com/Masterminds/semver/v3 v3.5.0 // indirect github.com/MirrexOne/unqueryvet v1.5.4 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect - github.com/alecthomas/chroma/v2 v2.24.1 // indirect + github.com/alecthomas/chroma/v2 v2.27.0 // indirect github.com/alecthomas/go-check-sumtype v0.3.1 // indirect github.com/alexkohler/nakedret/v2 v2.0.6 // indirect github.com/alexkohler/prealloc v1.1.0 // indirect @@ -45,19 +46,19 @@ require ( github.com/blizzy78/varnamelen v0.8.0 // indirect github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect github.com/bombsimon/wsl/v4 v4.7.0 // indirect - github.com/bombsimon/wsl/v5 v5.8.0 // indirect + github.com/bombsimon/wsl/v5 v5.9.0 // indirect github.com/braydonk/yaml v0.9.0 // indirect github.com/breml/bidichk v0.3.3 // indirect github.com/breml/errchkjson v0.4.1 // indirect github.com/butuzov/ireturn v0.4.1 // indirect - github.com/butuzov/mirror v1.3.0 // indirect + github.com/butuzov/mirror v1.3.3 // indirect github.com/catenacyber/perfsprint v0.10.1 // indirect github.com/ccojocar/zxcvbn-go v1.0.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.11 // indirect github.com/charmbracelet/colorprofile v0.4.3 // indirect - github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318 // indirect - github.com/charmbracelet/x/ansi v0.11.7 // indirect + github.com/charmbracelet/ultraviolet v0.0.0-20260811164956-006e29f97886 // indirect + github.com/charmbracelet/x/ansi v0.11.8 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect github.com/charmbracelet/x/termios v0.1.1 // indirect github.com/charmbracelet/x/windows v0.2.2 // indirect @@ -67,20 +68,19 @@ require ( github.com/curioswitch/go-reassign v0.3.0 // indirect github.com/daixiang0/gci v0.13.7 // indirect github.com/dave/dst v0.27.3 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect - github.com/dlclark/regexp2 v1.12.0 // indirect + github.com/dlclark/regexp2/v2 v2.2.1 // indirect github.com/docker/cli v29.6.2+incompatible // indirect github.com/docker/docker-credential-helpers v0.9.8 // indirect github.com/emicklei/proto v1.9.1 // indirect github.com/ettle/strcase v0.2.0 // indirect github.com/fatih/color v1.19.0 // indirect github.com/fatih/structtag v1.2.0 // indirect - github.com/firefart/nonamedreturns v1.0.6 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/firefart/nonamedreturns v1.0.8 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/ghostiam/protogetter v0.3.20 // indirect - github.com/go-critic/go-critic v0.14.3 // indirect + github.com/ghostiam/protogetter v0.3.21 // indirect + github.com/go-critic/go-critic v0.14.4 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.2.0 // indirect @@ -95,9 +95,10 @@ require ( github.com/gofrs/flock v0.13.0 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golangci/asciicheck v0.5.0 // indirect + github.com/golangci/canonicalheader v0.0.0-20260827115959-a25c71c521f6 // indirect github.com/golangci/dupl v0.0.0-20260401084720-c99c5cf5c202 // indirect github.com/golangci/go-printf-func-name v0.1.1 // indirect - github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d // indirect + github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792 // indirect github.com/golangci/golines v0.15.0 // indirect github.com/golangci/misspell v0.8.0 // indirect github.com/golangci/plugin-module-register v0.1.2 // indirect @@ -120,24 +121,23 @@ require ( github.com/hashicorp/hcl v1.0.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/jgautheron/goconst v1.10.0 // indirect + github.com/jgautheron/goconst v1.11.0 // indirect github.com/jjti/go-spancheck v0.6.5 // indirect github.com/julz/importas v0.2.0 // indirect github.com/karamaru-alpha/copyloopvar v1.2.2 // indirect - github.com/kisielk/errcheck v1.10.0 // indirect + github.com/kisielk/errcheck v1.20.0 // indirect github.com/kkHAIKE/contextcheck v1.1.6 // indirect github.com/klauspost/compress v1.19.0 // indirect github.com/kulti/thelper v0.7.1 // indirect github.com/kunwardeep/paralleltest v1.0.15 // indirect - github.com/lasiar/canonicalheader v1.1.2 // indirect github.com/ldez/exptostd v0.4.5 // indirect - github.com/ldez/gomoddirectives v0.8.0 // indirect + github.com/ldez/gomoddirectives v0.9.0 // indirect github.com/ldez/grignotin v0.10.1 // indirect github.com/ldez/structtags v0.6.1 // indirect github.com/ldez/tagliatelle v0.7.2 // indirect github.com/ldez/usetesting v0.5.0 // indirect github.com/leonklingele/grouper v1.1.2 // indirect - github.com/lucasb-eyer/go-colorful v1.4.0 // indirect + github.com/lucasb-eyer/go-colorful v1.4.1 // indirect github.com/macabu/inamedparam v0.2.0 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect @@ -145,9 +145,9 @@ require ( github.com/maratori/testableexamples v1.0.1 // indirect github.com/maratori/testpackage v1.1.2 // indirect github.com/matoous/godox v1.1.0 // indirect - github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-colorable v0.1.15 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.23 // indirect + github.com/mattn/go-runewidth v0.0.24 // indirect github.com/mattn/go-shellwords v1.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mgechev/revive v1.15.0 // indirect @@ -158,12 +158,11 @@ require ( github.com/nakabonne/nestif v0.3.1 // indirect github.com/nishanths/exhaustive v0.12.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect - github.com/nunnatsa/ginkgolinter v0.23.0 // indirect + github.com/nunnatsa/ginkgolinter v0.24.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 v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.3.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.4.3 // indirect github.com/prometheus/client_golang v1.12.1 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.32.1 // indirect @@ -173,19 +172,19 @@ require ( github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/raeperd/recvcheck v0.2.0 // indirect + github.com/raeperd/recvcheck v0.3.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/rogpeppe/go-internal v1.14.1 // indirect + github.com/rogpeppe/go-internal v1.16.0 // indirect github.com/ryancurrah/gomodguard v1.4.1 // indirect github.com/ryancurrah/gomodguard/v2 v2.1.3 // indirect github.com/ryanrolds/sqlclosecheck v0.6.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect - github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect + github.com/santhosh-tekuri/jsonschema/v6 v6.0.3 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect - github.com/securego/gosec/v2 v2.26.1 // indirect - github.com/sirupsen/logrus v1.9.4 // indirect + github.com/securego/gosec/v2 v2.28.0 // indirect + github.com/sirupsen/logrus v1.10.1 // indirect github.com/sivchari/containedctx v1.0.3 // indirect github.com/sonatard/noctx v0.5.1 // indirect github.com/sourcegraph/go-diff v0.8.0 // indirect @@ -197,8 +196,8 @@ require ( github.com/spf13/viper v1.13.0 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.3.1 // indirect - github.com/stretchr/objx v0.5.2 // indirect - github.com/stretchr/testify v1.11.1 // indirect + github.com/stretchr/objx v0.5.3 // indirect + github.com/stretchr/testify v1.12.1 // indirect github.com/subosito/gotenv v1.4.1 // indirect github.com/tetafro/godot v1.5.6 // indirect github.com/timakin/bodyclose v0.0.0-20260129054331-73d1f95b84b4 // indirect @@ -208,7 +207,7 @@ require ( github.com/ultraware/funlen v0.2.0 // indirect github.com/ultraware/whitespace v0.2.0 // indirect github.com/uudashr/gocognit v1.2.1 // indirect - github.com/uudashr/iface v1.4.2 // indirect + github.com/uudashr/iface v1.5.1 // indirect github.com/xen0n/gosmopolitan v1.3.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/yagipy/maintidx v1.0.0 // indirect @@ -218,24 +217,24 @@ require ( go-simpler.org/musttag v0.14.0 // indirect go-simpler.org/sloglint v0.12.0 // indirect go.augendre.info/arangolint v0.4.0 // indirect - go.augendre.info/fatcontext v0.9.0 // indirect + go.augendre.info/fatcontext v0.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect - go.yaml.in/yaml/v4 v4.0.0-rc.3 // indirect - golang.org/x/exp/typeparams v0.0.0-20260209203927-2842357ff358 // indirect - golang.org/x/mod v0.38.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect + golang.org/x/exp/typeparams v0.0.0-20260811152304-ee035b5b010f // indirect + golang.org/x/mod v0.41.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sync v0.22.0 // indirect - golang.org/x/sys v0.47.0 // indirect - golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959 // indirect - golang.org/x/text v0.36.0 // indirect - golang.org/x/tools v0.48.0 // indirect - google.golang.org/protobuf v1.36.10 // indirect + golang.org/x/sync v0.23.0 // indirect + golang.org/x/sys v0.48.0 // indirect + golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 // indirect + golang.org/x/text v0.40.0 // indirect + golang.org/x/tools v0.50.0 // indirect + google.golang.org/protobuf v1.36.11 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - honnef.co/go/tools v0.7.0 // indirect - mvdan.cc/gofumpt v0.9.2 // indirect - mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 // indirect + honnef.co/go/tools v0.8.1 // indirect + mvdan.cc/gofumpt v0.11.0 // indirect + mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8 // indirect ) diff --git a/tools/linters/go.sum b/tools/linters/go.sum index cee066806ecae..1efaa36ce124b 100644 --- a/tools/linters/go.sum +++ b/tools/linters/go.sum @@ -1,9 +1,9 @@ -4d63.com/gocheckcompilerdirectives v1.3.0 h1:Ew5y5CtcAAQeTVKUVFrE7EwHMrTO6BggtEj8BZSjZ3A= -4d63.com/gocheckcompilerdirectives v1.3.0/go.mod h1:ofsJ4zx2QAuIP/NO/NAh1ig6R1Fb18/GI7RVMwz7kAY= +4d63.com/gocheckcompilerdirectives v1.4.0 h1:ZLq62rbGWVmQhiZ8kuNVIT/M09xCSTdJz9K3xOdT/CY= +4d63.com/gocheckcompilerdirectives v1.4.0/go.mod h1:9ZOAiMOjqC/nRwci2fcUXVHUNLG/cH6r6rhUh+jTFtQ= 4d63.com/gochecknoglobals v0.2.2 h1:H1vdnwnMaZdQW/N+NrkT1SZMTBmcwHe9Vq8lJcYYTtU= 4d63.com/gochecknoglobals v0.2.2/go.mod h1:lLxwTQjL5eIesRbvnzIP3jZtG140FnTdz+AlMa+ogt0= -charm.land/lipgloss/v2 v2.0.3 h1:yM2zJ4Cf5Y51b7RHIwioil4ApI/aypFXXVHSwlM6RzU= -charm.land/lipgloss/v2 v2.0.3/go.mod h1:7myLU9iG/3xluAWzpY/fSxYYHCgoKTie7laxk6ATwXA= +charm.land/lipgloss/v2 v2.0.6 h1:EaGKeuA8FvF+v2BT5VmZd2LoYLaMZJXA5n34th8nCIQ= +charm.land/lipgloss/v2 v2.0.6/go.mod h1:ipDDJNSGa1hlwDtSfW1s2/xR8Vdhbut4PXh2zEKZd0Q= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -42,29 +42,31 @@ codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh codeberg.org/polyfloyd/go-errorlint v1.9.0/go.mod h1:GPRRu2LzVijNn4YkrZYJfatQIdS+TrcK8rL5Xs24qw8= dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= -dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= -dev.gaijin.team/go/golib v0.6.0/go.mod h1:uY1mShx8Z/aNHWDyAkZTkX+uCi5PdX7KsG1eDQa2AVE= +dev.gaijin.team/go/exhaustruct/v5 v5.0.3 h1:yOeA7DNjlT8y4yfmN6nWWYYggA13N523YAj9/TXbuTM= +dev.gaijin.team/go/exhaustruct/v5 v5.0.3/go.mod h1:KwtBsX8nHHH1YxhxkpiBq6bfsmw5WnazWpNvJPHgY9Y= +dev.gaijin.team/go/golib v0.8.1 h1:JYju4x9BSo+QD/AYeHULVDcvEhiFg8wOi6pT0IaZF5E= +dev.gaijin.team/go/golib v0.8.1/go.mod h1:c5fu7t1RSGMxSQgcUYO1sODbzsYnOCXJLmHeNG1Eb+0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8= github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= -github.com/Abirdcfly/dupword v0.1.7 h1:2j8sInznrje4I0CMisSL6ipEBkeJUJAmK1/lfoNGWrQ= -github.com/Abirdcfly/dupword v0.1.7/go.mod h1:K0DkBeOebJ4VyOICFdppB23Q0YMOgVafM0zYW0n9lF4= +github.com/Abirdcfly/dupword v0.1.8 h1:SrhcUuGsROBuChFxHALRYzyyPODWn9zwghmzPvD9Cd8= +github.com/Abirdcfly/dupword v0.1.8/go.mod h1:XZrhVnI7YGpsTiWZANSQaBJ4QpL/Tq5vIEdKJJAs9WI= github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo= github.com/AdminBenni/iota-mixing v1.0.0/go.mod h1:i4+tpAaB+qMVIV9OK3m4/DAynOd5bQFaOu+2AhtBCNY= -github.com/AlwxSin/noinlineerr v1.0.5 h1:RUjt63wk1AYWTXtVXbSqemlbVTb23JOSRiNsshj7TbY= -github.com/AlwxSin/noinlineerr v1.0.5/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= -github.com/Antonboom/errname v1.1.1 h1:bllB7mlIbTVzO9jmSWVWLjxTEbGBVQ1Ff/ClQgtPw9Q= -github.com/Antonboom/errname v1.1.1/go.mod h1:gjhe24xoxXp0ScLtHzjiXp0Exi1RFLKJb0bVBtWKCWQ= -github.com/Antonboom/nilnil v1.1.1 h1:9Mdr6BYd8WHCDngQnNVV0b554xyisFioEKi30sksufQ= -github.com/Antonboom/nilnil v1.1.1/go.mod h1:yCyAmSw3doopbOWhJlVci+HuyNRuHJKIv6V2oYQa8II= +github.com/AlwxSin/noinlineerr v1.0.6 h1:KAvuxunTe9QxvqrFB7nZTdb/7Wzas4AvifslTnG0Ld8= +github.com/AlwxSin/noinlineerr v1.0.6/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= +github.com/Antonboom/errname v1.1.2 h1:dxwONZJua3VB8Xh/VaCjqAcqF645sWWv7xj26zy7tdQ= +github.com/Antonboom/errname v1.1.2/go.mod h1:YeZIpgLMxT+SNkruGgYkLhzq/9vs3fsolTZegKaKDZI= +github.com/Antonboom/nilnil v1.1.2 h1:aNlFuJhaEseXe4fHO3xbjXlSeEiQVYa2lEkWD2s2hAY= +github.com/Antonboom/nilnil v1.1.2/go.mod h1:0ynwvphOLmAuMwTNDyBnDZmSwZoDpcFXmUHmzoHH2WA= github.com/Antonboom/testifylint v1.6.4 h1:gs9fUEy+egzxkEbq9P4cpcMB6/G0DYdMeiFS87UiqmQ= github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9qpVy7nXGbxDD4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/ClickHouse/clickhouse-go-linter v1.2.0 h1:zbm174up3hTKjp0wKZVnTzRiG7tSF5XZF0FJG/MuCBI= -github.com/ClickHouse/clickhouse-go-linter v1.2.0/go.mod h1:pLorS7ffPTfuUV9M0SJgfHA/h/WQPQUk2FWG9x74cQ4= +github.com/ClickHouse/clickhouse-go-linter v1.2.1 h1:zGEKIyd5YL08ieWG/LOUmlau2DxbxPVOfAeo+4Jz3ck= +github.com/ClickHouse/clickhouse-go-linter v1.2.1/go.mod h1:pLorS7ffPTfuUV9M0SJgfHA/h/WQPQUk2FWG9x74cQ4= github.com/Djarvur/go-err113 v0.1.1 h1:eHfopDqXRwAi+YmCUas75ZE0+hoBHJ2GQNLYRSxao4g= github.com/Djarvur/go-err113 v0.1.1/go.mod h1:IaWJdYFLg76t2ihfflPZnM1LIQszWOsFDh2hhhAVF6k= github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE= @@ -75,8 +77,8 @@ github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsu github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0= github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= -github.com/alecthomas/chroma/v2 v2.24.1 h1:m5ffpfZbIb++k8AqFEKy9uVgY12xIQtBsQlc6DfZJQM= -github.com/alecthomas/chroma/v2 v2.24.1/go.mod h1:l+ohZ9xRXIbGe7cIW+YZgOGbvuVLjMps/FYN/CwuabI= +github.com/alecthomas/chroma/v2 v2.27.0 h1:FodwmyOBgJULFYmDqibcp9pvfDLWdtPRh9v/r5BXYZs= +github.com/alecthomas/chroma/v2 v2.27.0/go.mod h1:NjJ3ciIgrqBNeIkWZ4e46nseoLDslxU1LmfCoL+wcY8= github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= @@ -112,8 +114,8 @@ github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6 github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ= github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg= -github.com/bombsimon/wsl/v5 v5.8.0 h1:JTkyfs4yl8SPejrCF2GdABXE+mO1WvM7iUYzRWlsxDs= -github.com/bombsimon/wsl/v5 v5.8.0/go.mod h1:AbOLsulgkqP4ZnitHf9gwPtCOGlrzkk0jb0uNxRSY0o= +github.com/bombsimon/wsl/v5 v5.9.0 h1:WCrgZ7RQnZO5oEwbVTlYgBdU3wL294kR1BSWV8vTfsU= +github.com/bombsimon/wsl/v5 v5.9.0/go.mod h1:kjo4HiAV5FDkHC8/uzJq9mBffEEd6WT/nvN7DoMovDM= github.com/braydonk/yaml v0.9.0 h1:ewGMrVmEVpsm3VwXQDR388sLg5+aQ8Yihp6/hc4m+h4= github.com/braydonk/yaml v0.9.0/go.mod h1:hcm3h581tudlirk8XEUPDBAimBPbmnL0Y45hCRl47N4= github.com/breml/bidichk v0.3.3 h1:WSM67ztRusf1sMoqH6/c4OBCUlRVTKq+CbSeo0R17sE= @@ -122,8 +124,8 @@ github.com/breml/errchkjson v0.4.1 h1:keFSS8D7A2T0haP9kzZTi7o26r7kE3vymjZNeNDRDw github.com/breml/errchkjson v0.4.1/go.mod h1:a23OvR6Qvcl7DG/Z4o0el6BRAjKnaReoPQFciAl9U3s= github.com/butuzov/ireturn v0.4.1 h1:vWb3NO4t77iku/sjCQ/2pHTQeOmxEhjIriJqRLg1Y+I= github.com/butuzov/ireturn v0.4.1/go.mod h1:q+DXKzTDV5guNuXLnIab9fKXizTn2miZHLhxH7V/GB4= -github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc= -github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI= +github.com/butuzov/mirror v1.3.3 h1:v0RsWBhfFc1RQqE/f3sHpSttKDtodFn0gFmtYyD4/hA= +github.com/butuzov/mirror v1.3.3/go.mod h1:h9BzzwYnTiHO0GzgvaTqIg7VSsOUhdIv51cHFFBmX1w= github.com/catenacyber/perfsprint v0.10.1 h1:u7Riei30bk46XsG8nknMhKLXG9BcXz3+3tl/WpKm0PQ= github.com/catenacyber/perfsprint v0.10.1/go.mod h1:DJTGsi/Zufpuus6XPGJyKOTMELe347o6akPvWG9Zcsc= github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNrUcc= @@ -137,10 +139,10 @@ github.com/charithe/durationcheck v0.0.11 h1:g1/EX1eIiKS57NTWsYtHDZ/APfeXKhye1Di github.com/charithe/durationcheck v0.0.11/go.mod h1:x5iZaixRNl8ctbM+3B2RrPG5t856TxRyVQEnbIEM2X4= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= github.com/charmbracelet/colorprofile v0.4.3/go.mod h1:/zT4BhpD5aGFpqQQqw7a+VtHCzu+zrQtt1zhMt9mR4Q= -github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318 h1:OqDqxQZliC7C8adA7KjelW3OjtAxREfeHkNcd66wpeI= -github.com/charmbracelet/ultraviolet v0.0.0-20251205161215-1948445e3318/go.mod h1:Y6kE2GzHfkyQQVCSL9r2hwokSrIlHGzZG+71+wDYSZI= -github.com/charmbracelet/x/ansi v0.11.7 h1:kzv1kJvjg2S3r9KHo8hDdHFQLEqn4RBCb39dAYC84jI= -github.com/charmbracelet/x/ansi v0.11.7/go.mod h1:9qGpnAVYz+8ACONkZBUWPtL7lulP9No6p1epAihUZwQ= +github.com/charmbracelet/ultraviolet v0.0.0-20260811164956-006e29f97886 h1:rdnVWKgJpTVXKuKuJyxDJ+NFJdUaUqGvyGy61OcvlbA= +github.com/charmbracelet/ultraviolet v0.0.0-20260811164956-006e29f97886/go.mod h1:nAw0d9PhFp1qdzi2xhQU5YOu5sVpDIHWlaW2Uz/bCro= +github.com/charmbracelet/x/ansi v0.11.8 h1:JMFwp0CgDC2+jcOB162HH5k7I3FVbgFSMMYg7dSPBQQ= +github.com/charmbracelet/x/ansi v0.11.8/go.mod h1:ZNN+3mXny/516oTQPLMPIBeSINvNJJQ8uQXDgbeJxY0= github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY= @@ -168,12 +170,15 @@ github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEy github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo= github.com/dave/jennifer v1.7.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc= 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/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/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8= github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2/v2 v2.2.1 h1:mf4KkFUj0gJuarK8P+LgiS+Lit7m9N1yAwEfPbee7R0= +github.com/dlclark/regexp2/v2 v2.2.1/go.mod h1:avUrQvPaLz2DrFNHJF0taWAFFX2C1GMSSoeiqFjcBmU= github.com/docker/cli v29.6.2+incompatible h1:/bjePvcbbFTnRrMfWJBY7AjfICdsiLVgHn6LwTVOcqw= github.com/docker/cli v29.6.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker-credential-helpers v0.9.8 h1:bIREROb7So6PRlq6KTtdS9MPEjC29OQRkFNlvK2OX8Q= @@ -190,18 +195,18 @@ github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= -github.com/firefart/nonamedreturns v1.0.6 h1:vmiBcKV/3EqKY3ZiPxCINmpS431OcE1S47AQUwhrg8E= -github.com/firefart/nonamedreturns v1.0.6/go.mod h1:R8NisJnSIpvPWheCq0mNRXJok6D8h7fagJTF8EMEwCo= +github.com/firefart/nonamedreturns v1.0.8 h1:iB32Dl17zJl1zlVEj/WlUWgx0HiRyQ85OUw1WHa4/II= +github.com/firefart/nonamedreturns v1.0.8/go.mod h1:vxFNvm5AfP/8rgAKFzYmnqx0yp1HjrYsErZ9pHPTznA= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghostiam/protogetter v0.3.20 h1:oW7OPFit2FxZOpmMRPP9FffU4uUpfeE/rEdE1f+MzD0= -github.com/ghostiam/protogetter v0.3.20/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI= -github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog= -github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= +github.com/ghostiam/protogetter v0.3.21 h1:EeWTGvL/Eyosp653hiWb6Byx4b69iJC4/E+za7vQHoI= +github.com/ghostiam/protogetter v0.3.21/go.mod h1:iAKSpyoHwYzay+OpjoWgwzRtPFthEfuUvmlomTThck0= +github.com/go-critic/go-critic v0.14.4 h1:dSX4C3pWSeuMVxvQh6yG8U0ReSf3YOmKi4nwX5q7n/8= +github.com/go-critic/go-critic v0.14.4/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -213,8 +218,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= -github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= +github.com/go-quicktest/qt v1.102.0 h1:HSQxCeh5YZH3EL3W39ixjtyaEhcWSXQHtHnMBzSs474= +github.com/go-quicktest/qt v1.102.0/go.mod h1:p4lGIVX+8Wa6ZPNDvqcxq36XpUDLh42FLetFU7odllI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= @@ -279,14 +284,16 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golangci/asciicheck v0.5.0 h1:jczN/BorERZwK8oiFBOGvlGPknhvq0bjnysTj4nUfo0= github.com/golangci/asciicheck v0.5.0/go.mod h1:5RMNAInbNFw2krqN6ibBxN/zfRFa9S6tA1nPdM0l8qQ= +github.com/golangci/canonicalheader v0.0.0-20260827115959-a25c71c521f6 h1:fVLolA3dG6s0brGetsiDAtcnpMSwVa2LqXJEw/9RJG4= +github.com/golangci/canonicalheader v0.0.0-20260827115959-a25c71c521f6/go.mod h1:1xo+NFW5S+bEf2DKXhaxuzvcDN5AR6o/KMwvqC5Mkpo= github.com/golangci/dupl v0.0.0-20260401084720-c99c5cf5c202 h1:CbTB8KpqnViI6lIXxp03Oclc4VFHi3K4BWC1TacsZ+A= github.com/golangci/dupl v0.0.0-20260401084720-c99c5cf5c202/go.mod h1:NUw9Zr2Sy7+HxzdjIULge71wI6yEg1lWQr7Evcu8K0E= github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarogrvjO9AfiW3B4U= github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss= -github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0aiOTsLKO2aZQAPT4nlQCsimGcSGE= -github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= -github.com/golangci/golangci-lint/v2 v2.12.2 h1:7+d1uY0bq1MU2UV3R5pW5Q7QWdcoq4naMRXM+gsJKrs= -github.com/golangci/golangci-lint/v2 v2.12.2/go.mod h1:opqHHuIcTG2R+4akzWMd4o1BnD9/1LcjICWOujr91U8= +github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792 h1:WL8YKrt3UbOBqSRU7GpP5BTtQTMWtVtj+mfPijgZeIg= +github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792/go.mod h1:te5hX0dW4C5r6YbXs+6ysNr8Q5UTmdIqGbb+mlFiYmA= +github.com/golangci/golangci-lint/v2 v2.13.2 h1:bCyq3E4vo9qwzifjpzJqYndEt7Ncva80qkk8G2B4TXU= +github.com/golangci/golangci-lint/v2 v2.13.2/go.mod h1:5xaMd1kAxV7GSBPEyngw8gnnjoRocqW9UVKdBR6627w= github.com/golangci/golines v0.15.0 h1:Qnph25g8Y1c5fdo1X7GaRDGgnMHgnxh4Gk4VfPTtRx0= github.com/golangci/golines v0.15.0/go.mod h1:AZjXd23tbHMpowhtnGlj9KCNsysj72aeZVVHnVcZx10= github.com/golangci/misspell v0.8.0 h1:qvxQhiE2/5z+BVRo1kwYA8yGz+lOlu5Jfvtx2b04Jbg= @@ -335,8 +342,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 h1:z2ogiKUYzX5Is6zr/vP9vJGqPwcdqsWjOt+V8J7+bTc= -github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= +github.com/google/pprof v0.0.0-20260709232956-b9395ee17fa0 h1:du0WGc8xSKq/++e0cglxhS/mXVqsR7+c7jLEi5Vqduw= +github.com/google/pprof v0.0.0-20260709232956-b9395ee17fa0/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -373,8 +380,8 @@ github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSo github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jgautheron/goconst v1.10.0 h1:Ptt+OoE4NaEWKhLrWrrN3IpZdGLiqaf7WLnEX/iv4Jw= -github.com/jgautheron/goconst v1.10.0/go.mod h1:0p+wv1lFOiUr0IlNNT1nrm6+8DB8u2sU6KHGzFRXHDc= +github.com/jgautheron/goconst v1.11.0 h1:KgN90z5qXt5f0Uzf3cWXev3hfMMFUyNeKdpkSBRvLDk= +github.com/jgautheron/goconst v1.11.0/go.mod h1:0p+wv1lFOiUr0IlNNT1nrm6+8DB8u2sU6KHGzFRXHDc= github.com/jjti/go-spancheck v0.6.5 h1:lmi7pKxa37oKYIMScialXUK6hP3iY5F1gu+mLBPgYB8= github.com/jjti/go-spancheck v0.6.5/go.mod h1:aEogkeatBrbYsyW6y5TgDfihCulDYciL1B7rG2vSsrU= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= @@ -390,8 +397,8 @@ github.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ= github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY= github.com/karamaru-alpha/copyloopvar v1.2.2 h1:yfNQvP9YaGQR7VaWLYcfZUlRP2eo2vhExWKxD/fP6q0= github.com/karamaru-alpha/copyloopvar v1.2.2/go.mod h1:oY4rGZqZ879JkJMtX3RRkcXRkmUvH0x35ykgaKgsgJY= -github.com/kisielk/errcheck v1.10.0 h1:Lvs/YAHP24YKg08LA8oDw2z9fJVme090RAXd90S+rrw= -github.com/kisielk/errcheck v1.10.0/go.mod h1:kQxWMMVZgIkDq7U8xtG/n2juOjbLgZtedi0D+/VL/i8= +github.com/kisielk/errcheck v1.20.0 h1:9rwHBNKzd4wkDWcROy3DvFGNqEPlkxBg305rvk7HabI= +github.com/kisielk/errcheck v1.20.0/go.mod h1:O+f80MKNwX8Oor2jwgpeQ9An7uJm+hRSgT+h22knRJU= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkHAIKE/contextcheck v1.1.6 h1:7HIyRcnyzxL9Lz06NGhiKvenXq7Zw6Q0UQu/ttjfJCE= github.com/kkHAIKE/contextcheck v1.1.6/go.mod h1:3dDbMRNBFaq8HFXWC1JyvDSPm43CmE6IuHam8Wr0rkg= @@ -411,12 +418,10 @@ github.com/kulti/thelper v0.7.1 h1:fI8QITAoFVLx+y+vSyuLBP+rcVIB8jKooNSCT2EiI98= github.com/kulti/thelper v0.7.1/go.mod h1:NsMjfQEy6sd+9Kfw8kCP61W1I0nerGSYSFnGaxQkcbs= github.com/kunwardeep/paralleltest v1.0.15 h1:ZMk4Qt306tHIgKISHWFJAO1IDQJLc6uDyJMLyncOb6w= github.com/kunwardeep/paralleltest v1.0.15/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= -github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4= -github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI= github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= -github.com/ldez/gomoddirectives v0.8.0 h1:JqIuTtgvFC2RdH1s357vrE23WJF2cpDCPFgA/TWDGpk= -github.com/ldez/gomoddirectives v0.8.0/go.mod h1:jutzamvZR4XYJLr0d5Honycp4Gy6GEg2mS9+2YX3F1Q= +github.com/ldez/gomoddirectives v0.9.0 h1:2YV/EX7nVlWL4jySusYTzBKHuE3D2fgcRsQuMa3yIoo= +github.com/ldez/gomoddirectives v0.9.0/go.mod h1:DdZzfm9MdXCjn2/UGYXCFfo+tzrp2Ib4iD2Q0kIJkwE= github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= github.com/ldez/structtags v0.6.1 h1:bUooFLbXx41tW8SvkfwfFkkjPYvFFs59AAMgVg6DUBk= @@ -427,8 +432,8 @@ github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= -github.com/lucasb-eyer/go-colorful v1.4.0 h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4= -github.com/lucasb-eyer/go-colorful v1.4.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.4.1 h1:1EO+WB73+EH8EVbzlrG3KLAfEypQWVHIBqlTf+2hNss= +github.com/lucasb-eyer/go-colorful v1.4.1/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/macabu/inamedparam v0.2.0 h1:VyPYpOc10nkhI2qeNUdh3Zket4fcZjEWe35poddBCpE= github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8Wgz/C0Zlq3U= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= @@ -445,12 +450,12 @@ github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4= github.com/matoous/godox v1.1.0/go.mod h1:jgE/3fUXiTurkdHOLT5WEkThTSuE7yxHv5iWPa80afs= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -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-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= +github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw= -github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.24 h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU= +github.com/mattn/go-runewidth v0.0.24/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -480,12 +485,12 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.23.0 h1:x3o4DGYOWbBMP/VdNQKgSj+25aJKx2Pe6lHr8gBcgf8= -github.com/nunnatsa/ginkgolinter v0.23.0/go.mod h1:9qN1+0akwXEccwV1CAcCDfcoBlWXHB+ML9884pL4SZ4= -github.com/onsi/ginkgo/v2 v2.28.2 h1:DTrMfpqxiNUyQ3Y0zhn1n3cOO2euFgQPYIpkWwxVFps= -github.com/onsi/ginkgo/v2 v2.28.2/go.mod h1:CLtbVInNckU3/+gC8LzkGUb9oF+e8W8TdUsxPwvdOgE= -github.com/onsi/gomega v1.39.1 h1:1IJLAad4zjPn2PsnhH70V4DKRFlrCzGBNrNaru+Vf28= -github.com/onsi/gomega v1.39.1/go.mod h1:hL6yVALoTOxeWudERyfppUcZXjMwIMLnuSfruD2lcfg= +github.com/nunnatsa/ginkgolinter v0.24.0 h1:Mp0EagluLFP98JatP6nqp/gGEoljNG97uf9AcxcBVy8= +github.com/nunnatsa/ginkgolinter v0.24.0/go.mod h1:2ZMRuzX6+3XXyY6UZOwb6n+MCocVGbkIsDBC4vuWz5c= +github.com/onsi/ginkgo/v2 v2.32.0 h1:Hw7s2pVrQo/8Yz5N77qdnpHaoc+c6cC9WIV1Jce+J6E= +github.com/onsi/ginkgo/v2 v2.32.0/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/gomega v1.42.1 h1:iN1rCUX+44NZ1Dc97MPoeFYbFR0vh8zxoxMFwKdyZ6I= +github.com/onsi/gomega v1.42.1/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= @@ -499,12 +504,11 @@ github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT9 github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.3.1 h1:MYEvvGnQjeNkRF1qUuGolNtNExTDwct51yp7olPtrEc= -github.com/pelletier/go-toml/v2 v2.3.1/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pelletier/go-toml/v2 v2.4.3 h1:GTRvJQutkOSftxIFD5xw9aepkYNuPWmVJpffdDPYVpY= +github.com/pelletier/go-toml/v2 v2.4.3/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -538,8 +542,8 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/raeperd/recvcheck v0.2.0 h1:GnU+NsbiCqdC2XX5+vMZzP+jAJC5fht7rcVTAhX74UI= -github.com/raeperd/recvcheck v0.2.0/go.mod h1:n04eYkwIR0JbgD73wT8wL4JjPC3wm0nFtzBnWNocnYU= +github.com/raeperd/recvcheck v0.3.0 h1:PM+XYvyxIj3bo+kobJfFTdTuU3Lmfu96mKDbyHDbRt8= +github.com/raeperd/recvcheck v0.3.0/go.mod h1:PZNwG+HztFYMH2ZPq0Hu3QgkV2yiA6VrtNz9c1fXWJo= github.com/rhysd/actionlint v1.7.12 h1:vQ4GeJN86C0QH+gTUQcs8McmK62OLT3kmakPMtEWYnY= github.com/rhysd/actionlint v1.7.12/go.mod h1:krOUhujIsJusovkaYzQ/VNH8PFexjNKqU0q5XI/4w+g= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -547,8 +551,8 @@ github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= -github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/rogpeppe/go-internal v1.16.0 h1:O9DK+vNMDVGLr2BeZqmpLeMjiMNkuXfcqntWbZV6S5g= +github.com/rogpeppe/go-internal v1.16.0/go.mod h1:DrUVZyrJU+txYW5/1kwtXQSMFio52ZOxX7yM1VHvnxs= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryancurrah/gomodguard v1.4.1 h1:eWC8eUMNZ/wM/PWuZBv7JxxqT5fiIKSIyTvjb7Elr+g= github.com/ryancurrah/gomodguard v1.4.1/go.mod h1:qnMJwV1hX9m+YJseXEBhd2s90+1Xn6x9dLz11ualI1I= @@ -558,14 +562,14 @@ github.com/ryanrolds/sqlclosecheck v0.6.0 h1:pEyL9okISdg1F1SEpJNlrEotkTGerv5BMk7 github.com/ryanrolds/sqlclosecheck v0.6.0/go.mod h1:xyX16hsDaCMXHrMJ3JMzGf5OpDfHTOTTQrT7HOFUmeU= github.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0= github.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4= -github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEVZGK7IN2kJkjTuQ= -github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.3 h1:1EYB5IzjZawrrnELUi78f9fPu57HuXjmddZPjrls/28= +github.com/santhosh-tekuri/jsonschema/v6 v6.0.3/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ= github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8= -github.com/securego/gosec/v2 v2.26.1 h1:gdkttGhQFVehqRJ8grKH4DrpqM/QlPKNHBnl8QgcEC4= -github.com/securego/gosec/v2 v2.26.1/go.mod h1:57UW4p0uoP3kxoTkhoo3axLdVAi+OWrLg/Ax/kdqtPE= +github.com/securego/gosec/v2 v2.28.0 h1:ZsSdiDb0AtTpLFVol5z91gbMei9ZiLEPG/pZjZujp7c= +github.com/securego/gosec/v2 v2.28.0/go.mod h1:lb4/9AHe+lJy/kjWmWRWWsEipvbwGKuxf+tY1Pmjdnk= 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/sethvargo/ratchet v0.12.0 h1:UY1sEevYHi28ryw9c8eHOLonc6oePZDUXHbzx0ESQqw= @@ -573,8 +577,8 @@ github.com/sethvargo/ratchet v0.12.0/go.mod h1:Unu+6zOcsnJj5x/hKgiaRKbGKPZkysoYk github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= -github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/sirupsen/logrus v1.10.1 h1:xi4336Zh11WpU14fXR6I67V3yaTPQYwRx2WEtHbRg4Q= +github.com/sirupsen/logrus v1.10.1/go.mod h1:vsQHnG7xzNsxk3NrwboUiWPnIC3dmbjcGPykD7+tiHk= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= github.com/sonatard/noctx v0.5.1 h1:wklWg9c9ZYugOAk7qG4yP4PBrlQsmSLPTvW1K4PRQMs= @@ -601,13 +605,13 @@ github.com/stbenjam/no-sprintf-host-port v0.3.1 h1:AyX7+dxI4IdLBPtDbsGAyqiTSLpCP github.com/stbenjam/no-sprintf-host-port v0.3.1/go.mod h1:ODbZesTCHMVKthBHskvUUexdcNHAQRXk9NpSsL8p/HQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= 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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= +github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -630,8 +634,8 @@ github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSW github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.2.1 h1:CSJynt5txTnORn/DkhiB4mZjwPuifyASC8/6Q0I/QS4= github.com/uudashr/gocognit v1.2.1/go.mod h1:acaubQc6xYlXFEMb9nWX2dYBzJ/bIjEkc1zzvyIZg5Q= -github.com/uudashr/iface v1.4.2 h1:06Vq5RKVYThBsj0Bnw4oasMjD1r+7CE/bcKOA8dVSvg= -github.com/uudashr/iface v1.4.2/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg= +github.com/uudashr/iface v1.5.1 h1:BS3yrgaT55s3dAtJoxuTnsZNbsejq/mVuzp49YDyfBA= +github.com/uudashr/iface v1.5.1/go.mod h1:5UWoT6SvTdTww/KToRj6clO+n4Kg3/NrAQvgOB+5Ggw= github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM= github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= @@ -658,8 +662,8 @@ go-simpler.org/sloglint v0.12.0 h1:UzWDlLWNE5FLqsvyq3tWYHuQMbqrervOhT8qPl4Mmw4= go-simpler.org/sloglint v0.12.0/go.mod h1:jBjjC2bm8rYrs88oTRlFX497kWjJsyZWYoNaXkGRI6I= go.augendre.info/arangolint v0.4.0 h1:xSCZjRoS93nXazBSg5d0OGCi9APPLNMmmLrC995tR50= go.augendre.info/arangolint v0.4.0/go.mod h1:l+f/b4plABuFISuKnTGD4RioXiCCgghv2xqst/xOvAA= -go.augendre.info/fatcontext v0.9.0 h1:Gt5jGD4Zcj8CDMVzjOJITlSb9cEch54hjRRlN3qDojE= -go.augendre.info/fatcontext v0.9.0/go.mod h1:L94brOAT1OOUNue6ph/2HnwxoNlds9aXDF2FcUntbNw= +go.augendre.info/fatcontext v0.10.0 h1:HhFopmivh8U1+AU7f0kuwUeg2eiIns7YsGQOMHwSJ90= +go.augendre.info/fatcontext v0.10.0/go.mod h1:pqpGvA9GlrXy+aXkp8L2dKz12Zp4g2FhzcAtwToU+2w= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -671,10 +675,11 @@ go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -go.yaml.in/yaml/v4 v4.0.0-rc.3 h1:3h1fjsh1CTAPjW7q/EMe+C8shx5d8ctzZTrLcs/j8Go= -go.yaml.in/yaml/v4 v4.0.0-rc.3/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4= +go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -696,8 +701,8 @@ golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/y golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20260209203927-2842357ff358 h1:qWFG1Dj7TBjOjOvhEOkmyGPVoquqUKnIU0lEVLp8xyk= -golang.org/x/exp/typeparams v0.0.0-20260209203927-2842357ff358/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= +golang.org/x/exp/typeparams v0.0.0-20260811152304-ee035b5b010f h1:+lI8cDJ4uceLipg2f1ODay7fEuLkk0BIHXd6PB8icxo= +golang.org/x/exp/typeparams v0.0.0-20260811152304-ee035b5b010f/go.mod h1:PqrXSW65cXDZH0k4IeUbhmg/bcAZDbzNz3byBpKCsXo= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -722,8 +727,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= -golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= +golang.org/x/mod v0.41.0 h1:qJmnOUb4YB+FsEuM3HcWucdZASCPGhsX6uljO6pog0c= +golang.org/x/mod v0.41.0/go.mod h1:Ek9pY8RKWXwsWvd3rQiHYtMqkjSUV+s1Rj7j4H5Ur6o= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -758,8 +763,8 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= -golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= +golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues= +golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -781,8 +786,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= -golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk= +golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -823,15 +828,14 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= -golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959 h1:RJhm5l6Fo4rmEIcndxDllNhhf/fAx8qIm4t6A7vpm2A= -golang.org/x/telemetry v0.0.0-20260708182218-49f421fb7959/go.mod h1:LV7u5Oco+Z/g6XI7PqN+EUUUGGkEcmB1uj2ceI0fOVg= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 h1:F5BWKvW126NXR74uxkxuc1jQHhm/rwm/J3rSiFyuRs4= +golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518/go.mod h1:i+ivNqjDnTF3WTElsdk5g9V5DTSBYgdNo7xTU9SDwYA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -843,8 +847,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= -golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -895,14 +899,14 @@ golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0t golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= -golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= +golang.org/x/tools v0.50.0 h1:c2ifzfcuY7L90lZ2aKd8S4K2NpASF08SZx9ZuJkHmSU= +golang.org/x/tools v0.50.0/go.mod h1:7ulVMw3831Mwi5EZD6RomGyffr4VFjuNYXf2BbCEAV0= golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= -golang.org/x/vuln v1.6.0 h1:FeMO9Rm/HwyduOztbvKcOw+zvDEPr4I4aQNSfevFcKY= -golang.org/x/vuln v1.6.0/go.mod h1:bWlG2493/sjR7ksvicBgMrznH3eYQEyK8ifUYBrqUbg= +golang.org/x/vuln v1.8.0 h1:clG4qBU6zH5VKjti8n5j8BBuYzoSha392xXMkXS351U= +golang.org/x/vuln v1.8.0/go.mod h1:Fzm4XK3Hbl1ZvZ7JpNTEWb7CJWOZ7m2LX0GLu4Fsrwo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -982,8 +986,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= -google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 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= @@ -1011,12 +1015,12 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.7.0 h1:w6WUp1VbkqPEgLz4rkBzH/CSU6HkoqNLp6GstyTx3lU= -honnef.co/go/tools v0.7.0/go.mod h1:pm29oPxeP3P82ISxZDgIYeOaf9ta6Pi0EWvCFoLG2vc= -mvdan.cc/gofumpt v0.9.2 h1:zsEMWL8SVKGHNztrx6uZrXdp7AX8r421Vvp23sz7ik4= -mvdan.cc/gofumpt v0.9.2/go.mod h1:iB7Hn+ai8lPvofHd9ZFGVg2GOr8sBUw1QUWjNbmIL/s= -mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 h1:ssMzja7PDPJV8FStj7hq9IKiuiKhgz9ErWw+m68e7DI= -mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15/go.mod h1:4M5MMXl2kW6fivUT6yRGpLLPNfuGtU2Z0cPvFquGDYU= +honnef.co/go/tools v0.8.1 h1:+JKf3xJ1ni4CwrhVg4/pqsfPGP6vNAXcKbMXJodYx3w= +honnef.co/go/tools v0.8.1/go.mod h1:XA+OnlRA9EDh/ukGvXMNSZNKGwFQJ+5dER0ioUkOxks= +mvdan.cc/gofumpt v0.11.0 h1:0H01XB95PnN2QgCSR9ELdZyTlJqNZ7181B0BTMh5VZc= +mvdan.cc/gofumpt v0.11.0/go.mod h1:BeT5wCsOJt6J9zT2MZIOGszjUHzFkn1/l9g6xAzqsXo= +mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8 h1:Re1NRyLpiAt9kB+ImaaoapwWiQXrKwER4tY8fLOkDew= +mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8/go.mod h1:MrS/+zJ1M2xvGXhKktiHbNQeQPyg3Qel+KkzT+f7/i4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/tools/roxvet/common/traverse.go b/tools/roxvet/common/traverse.go index 5a4d2ce5fd22c..358a16d3498a9 100644 --- a/tools/roxvet/common/traverse.go +++ b/tools/roxvet/common/traverse.go @@ -2,6 +2,7 @@ package common import ( "go/ast" + "slices" "golang.org/x/tools/go/ast/inspector" ) @@ -11,7 +12,7 @@ import ( func FilteredPreorder(inspector *inspector.Inspector, fileFilter FileFilter, nodeTypes []ast.Node, fn func(n ast.Node)) { // Limit the nodeTypes slice's capacity to its length. This ensures that any call to `append` will not write into // the backing storage, but allocate a new slice. - effectiveTypes := nodeTypes[:len(nodeTypes):len(nodeTypes)] + effectiveTypes := slices.Clip(nodeTypes) hadFile := hasFile(nodeTypes) if !hadFile { effectiveTypes = append(effectiveTypes, (*ast.File)(nil)) @@ -33,7 +34,7 @@ func FilteredPreorder(inspector *inspector.Inspector, fileFilter FileFilter, nod // FilteredNodes calls `inspector.Nodes(nodeTypes, fn)`, but filters out all files that do not pass the given // fileFilter. func FilteredNodes(inspector *inspector.Inspector, fileFilter FileFilter, nodeTypes []ast.Node, fn func(n ast.Node, push bool) bool) { - effTypes := nodeTypes[:len(nodeTypes):len(nodeTypes)] + effTypes := slices.Clip(nodeTypes) hadFile := hasFile(nodeTypes) if !hadFile { effTypes = append(effTypes, (*ast.File)(nil)) From 6de6672262311b1dfb184d7591061acac3017e78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:57:50 +0200 Subject: [PATCH 159/327] chore(deps): bump go.uber.org/atomic from 1.11.0 to 1.12.0 (#23185) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2e2331e0d1e39..04875322d5bec 100644 --- a/go.mod +++ b/go.mod @@ -139,7 +139,7 @@ require ( github.com/tkuchiki/go-timezone v0.2.3 github.com/travelaudience/go-promhttp v1.0.1 github.com/vbauerster/mpb/v4 v4.12.2 - go.uber.org/atomic v1.11.0 + go.uber.org/atomic v1.12.0 go.uber.org/goleak v1.3.0 go.uber.org/mock v0.6.0 go.uber.org/zap v1.28.0 diff --git a/go.sum b/go.sum index f130186feba73..32ecd1cc50323 100644 --- a/go.sum +++ b/go.sum @@ -1506,8 +1506,8 @@ go.opentelemetry.io/proto/otlp v1.11.0/go.mod h1:SmVizdCOAm3XBtG1g1NnOdhW6jtddT7 go.step.sm/crypto v0.87.0 h1:+u0pDz1OV9M/SswA6KtcQ3GSrYMMelbL//0W/ceJVYI= go.step.sm/crypto v0.87.0/go.mod h1:gBr1mpMiKs5804/Yt03uAoOBiw3DFxARZnGUKEUO82M= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/atomic v1.12.0 h1:BvcXdFKuviU4fTL/f+SxdQ5qJX/Jix8pAkgdUcb3XOE= +go.uber.org/atomic v1.12.0/go.mod h1:I6c4cg+6HCxRjfjSsYtApoFILnpc0CGUdGkXVqbYVNk= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= From 93448f6da8fba38efda1326be36efe645c8e66b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:25:58 +0200 Subject: [PATCH 160/327] chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.14.0 to 1.14.1 (#23188) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 04875322d5bec..b4cb8b0d4564c 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( dario.cat/mergo v1.0.2 github.com/Azure/azure-sdk-for-go-extensions v0.7.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.1 github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry v0.2.3 github.com/Azure/azure-sdk-for-go/sdk/monitor/ingestion/azlogs v1.1.0 github.com/BurntSushi/toml v1.6.0 @@ -197,7 +197,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/containerservice/armcontainerservice/v9 v9.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.8.0 // indirect github.com/ComplianceAsCode/compliance-sdk v0.0.0-20250925092238-0b432985772e // indirect github.com/DataDog/zstd v1.5.7 // indirect github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0 // indirect diff --git a/go.sum b/go.sum index 32ecd1cc50323..695e7e236910a 100644 --- a/go.sum +++ b/go.sum @@ -94,8 +94,8 @@ github.com/Azure/azure-sdk-for-go-extensions v0.7.0 h1:ko7jxarxFmfm3OAtIkKcnC2yK github.com/Azure/azure-sdk-for-go-extensions v0.7.0/go.mod h1:f/wRrqvvh197V5r4jGADV7528UdO/zfL+/Ud92BMSag= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 h1:zvXfGJCWvywnCA814d8ZiVyt+fm9nnTE8xSb99zRyfo= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1/go.mod h1:iptorS+VYKFL2N6PnebpS91dubG35eAOEERnT4PJbQU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0 h1:CU4+EJeJi3TKYWEcYuSdWsjzw0nVsK/H0MSQOiPcymU= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.0/go.mod h1:q0+UTSRvShwUCrR/s5HtyInYphN7Wvxb7snFM3u+SLA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.1 h1:u93s+zU2JD62im61Bm5CZIc1ZrOJaIAWEg0WOrMVkEo= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.1/go.mod h1:oXtinPO4OLj9d1DOTrqrL1oRwGhcqadvAmrl6wTeGlk= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0 h1:xFaZZ+IubdftrDHnGGwZ6QvQ3KHTtWl2MCK+GMt2vxs= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.4.0/go.mod h1:mCBhUhlMjLLJKr5aqw2TNS/VqJOie8MzWq3DAMJeKso= github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry v0.2.3 h1:ldKsKtEIblsgsr6mPwrd9yRntoX6uLz/K89wsldwx/k= @@ -118,8 +118,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2 h1:RHK7bS+HQMslb1sZpAokUt+zTVmue0hKSs2C791hhzU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.7.2/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= +github.com/AzureAD/microsoft-authentication-library-for-go v1.8.0 h1:Nljr4q1GRA/5vCrMONS+g4u4LRHNgOXVSh3O43J2CnI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.8.0/go.mod h1:Y33QHnf0FfdVewFFISOGe20mkZbxX4H839o955/PoeI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= From 737d4d88c30a8c1757b04413b8d247dd63385aa3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:26:10 +0200 Subject: [PATCH 161/327] chore(deps): bump cloud.google.com/go/storage from 1.64.0 to 1.68.0 (#23187) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b4cb8b0d4564c..ffefe4292bc09 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( cloud.google.com/go/compute/metadata v0.9.1 cloud.google.com/go/containeranalysis v0.20.0 cloud.google.com/go/securitycenter v1.46.0 - cloud.google.com/go/storage v1.64.0 + cloud.google.com/go/storage v1.68.0 dario.cat/mergo v1.0.2 github.com/Azure/azure-sdk-for-go-extensions v0.7.0 github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 diff --git a/go.sum b/go.sum index 695e7e236910a..31b41eb5ab7ae 100644 --- a/go.sum +++ b/go.sum @@ -73,8 +73,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.64.0 h1:KLpxI/oX9LxeRsNqn877d2WyeT3ryiEwnGt8pwcSPZg= -cloud.google.com/go/storage v1.64.0/go.mod h1:lWyAtwvDZHdL3k68WVKbESP6bmWaV23ZJJ/JEVw/ZaQ= +cloud.google.com/go/storage v1.68.0 h1:gqrAMJ51OZjYgU6AJ2U60um90YQhSjq8HEIQNtJ4C/8= +cloud.google.com/go/storage v1.68.0/go.mod h1:UsS9OgFg/XHOSYakQ8ZtLWWeyGkk1WnmD/GsGfN0BHM= cloud.google.com/go/trace v1.16.0 h1:GmQovzFc5F0CNfl0VLgL64aoTtu7xsM0YajW2GlG9+E= cloud.google.com/go/trace v1.16.0/go.mod h1:r+bdAn16dKLSV1G2D5v3e58IlQlizfxWrUfjx7kM7X0= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= From 8deb3e9588e082fad180b538b24543b5323657ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:46:27 +0200 Subject: [PATCH 162/327] chore(deps): bump github.com/kudobuilder/kuttl from 0.26.0 to 0.27.0 in /operator/tools/kuttl (#23148) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- operator/tools/kuttl/go.mod | 95 +++++++-------- operator/tools/kuttl/go.sum | 235 ++++++++++++++++++------------------ 2 files changed, 166 insertions(+), 164 deletions(-) diff --git a/operator/tools/kuttl/go.mod b/operator/tools/kuttl/go.mod index 78782800d13cc..efd998592d696 100644 --- a/operator/tools/kuttl/go.mod +++ b/operator/tools/kuttl/go.mod @@ -2,7 +2,7 @@ module github.com/stackrox/rox/operator/tools/kuttl go 1.26.3 -require github.com/kudobuilder/kuttl v0.26.0 +require github.com/kudobuilder/kuttl v0.27.0 require ( al.essio.dev/pkg/shellescape v1.5.1 // indirect @@ -22,31 +22,31 @@ require ( github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.7.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dustin/go-humanize v1.1.0 // indirect github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0 // indirect github.com/emicklei/go-restful/v3 v3.13.0 // indirect github.com/evanphx/json-patch/v5 v5.9.11 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.10.0 // indirect github.com/fxamacker/cbor/v2 v2.9.1 // indirect - github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/logr v1.4.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-logr/zapr v1.3.0 // indirect - github.com/go-openapi/jsonpointer v0.23.1 // indirect - github.com/go-openapi/jsonreference v0.21.5 // indirect - github.com/go-openapi/swag v0.26.0 // indirect - github.com/go-openapi/swag/cmdutils v0.26.0 // indirect - github.com/go-openapi/swag/conv v0.26.0 // indirect - github.com/go-openapi/swag/fileutils v0.26.0 // indirect - github.com/go-openapi/swag/jsonname v0.26.0 // indirect - github.com/go-openapi/swag/jsonutils v0.26.0 // indirect - github.com/go-openapi/swag/loading v0.26.0 // indirect - github.com/go-openapi/swag/mangling v0.26.0 // indirect - github.com/go-openapi/swag/netutils v0.26.0 // indirect - github.com/go-openapi/swag/stringutils v0.26.0 // indirect - github.com/go-openapi/swag/typeutils v0.26.0 // indirect - github.com/go-openapi/swag/yamlutils v0.26.0 // indirect - github.com/google/cel-go v0.29.0 // indirect + github.com/go-openapi/jsonpointer v1.0.0 // indirect + github.com/go-openapi/jsonreference v1.0.0 // indirect + github.com/go-openapi/swag v0.27.1 // indirect + github.com/go-openapi/swag/cmdutils v0.27.1 // indirect + github.com/go-openapi/swag/conv v0.27.1 // indirect + github.com/go-openapi/swag/fileutils v0.27.1 // indirect + github.com/go-openapi/swag/jsonutils v0.27.1 // indirect + github.com/go-openapi/swag/loading v0.27.1 // indirect + github.com/go-openapi/swag/mangling v0.27.1 // indirect + github.com/go-openapi/swag/netutils v0.27.1 // indirect + github.com/go-openapi/swag/pools v0.27.1 // indirect + github.com/go-openapi/swag/stringutils v0.27.1 // indirect + github.com/go-openapi/swag/typeutils v0.27.1 // indirect + github.com/go-openapi/swag/yamlutils v0.27.1 // indirect + github.com/google/cel-go v0.31.0 // indirect github.com/google/gnostic-models v0.7.1 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect @@ -57,21 +57,22 @@ require ( github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/moby/moby/api v1.54.2 // indirect - github.com/moby/moby/client v0.4.1 // indirect + github.com/moby/moby/api v1.56.0 // indirect + github.com/moby/moby/client v0.6.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/gomega v1.40.0 // indirect + github.com/onsi/ginkgo/v2 v2.32.1 // indirect + github.com/onsi/gomega v1.43.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 v1.9.5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.23.2 // indirect + github.com/prometheus/client_golang v1.24.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.67.5 // indirect - github.com/prometheus/procfs v0.20.1 // indirect + github.com/prometheus/common v0.70.0 // indirect + github.com/prometheus/procfs v0.21.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.10.2 // indirect @@ -79,42 +80,42 @@ require ( github.com/thoas/go-funk v0.9.3 // indirect github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect - go.opentelemetry.io/otel v1.43.0 // indirect - go.opentelemetry.io/otel/metric v1.43.0 // indirect - go.opentelemetry.io/otel/trace v1.43.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect + go.opentelemetry.io/otel v1.44.0 // indirect + go.opentelemetry.io/otel/metric v1.44.0 // indirect + go.opentelemetry.io/otel/trace v1.44.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v2 v2.4.4 // indirect - go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.53.0 // indirect - golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect - golang.org/x/net v0.55.0 // indirect + go.yaml.in/yaml/v3 v3.0.5 // indirect + golang.org/x/crypto v0.55.0 // indirect + golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect + golang.org/x/net v0.58.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sync v0.21.0 // indirect - golang.org/x/sys v0.46.0 // indirect - golang.org/x/term v0.44.0 // indirect - golang.org/x/text v0.38.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/sys v0.47.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/time v0.15.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.36.0 // indirect - k8s.io/apiextensions-apiserver v0.36.0 // indirect - k8s.io/apimachinery v0.36.0 // indirect - k8s.io/client-go v0.36.0 // indirect + k8s.io/api v0.37.0 // indirect + k8s.io/apiextensions-apiserver v0.37.0 // indirect + k8s.io/apimachinery v0.37.0 // indirect + k8s.io/client-go v0.37.0 // indirect k8s.io/klog/v2 v2.140.0 // indirect - k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 // indirect - k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // indirect - sigs.k8s.io/controller-runtime v0.24.0 // indirect + k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect + k8s.io/utils v0.0.0-20260626114624-be93311217bd // indirect + sigs.k8s.io/controller-runtime v0.25.1 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect - sigs.k8s.io/kind v0.31.0 // indirect + sigs.k8s.io/kind v0.33.0 // indirect sigs.k8s.io/randfill v1.0.0 // indirect - sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.4.2 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/operator/tools/kuttl/go.sum b/operator/tools/kuttl/go.sum index 57a9d9a3222f9..6d90ca396d9c2 100644 --- a/operator/tools/kuttl/go.sum +++ b/operator/tools/kuttl/go.sum @@ -35,8 +35,8 @@ github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf github.com/docker/go-connections v0.7.0/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dustin/go-humanize v1.1.0 h1:dbKTrvD0klcbBV/h4AWJdMuZogJACoMlvWIWZ5b2xWg= +github.com/dustin/go-humanize v1.1.0/go.mod h1:hc1CvRkJMsgxqjmjMQF3QNRAZBwY8AXBAzKYoSX9sFI= github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0 h1:90Ly+6UfUypEF6vvvW5rQIv9opIL8CbmW9FT20LDQoY= github.com/dustinkirkland/golang-petname v0.0.0-20191129215211-8e5a1ed0cff0/go.mod h1:V+Qd57rJe8gd4eiGzZyg4h54VLHmYVVw54iMnlAMrF8= github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes= @@ -54,50 +54,50 @@ github.com/fsnotify/fsnotify v1.10.0/go.mod h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxv github.com/fxamacker/cbor/v2 v2.9.1 h1:2rWm8B193Ll4VdjsJY28jxs70IdDsHRWgQYAI80+rMQ= github.com/fxamacker/cbor/v2 v2.9.1/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8= +github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= -github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= -github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= -github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= -github.com/go-openapi/swag v0.26.0 h1:GVDXCmfvhfu1BxiHo8/FA+BbKmhecHnG3varjON5/RI= -github.com/go-openapi/swag v0.26.0/go.mod h1:82g3193sZJRbocs7bNCqGfIgq8pkuwVwCfhKIRlEQF0= -github.com/go-openapi/swag/cmdutils v0.26.0 h1:iowihOcvq7y4egO8cOq0dmfohz6wfeQ63U1EnuhO2TU= -github.com/go-openapi/swag/cmdutils v0.26.0/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= -github.com/go-openapi/swag/conv v0.26.0 h1:5yGGsPYI1ZCva93U0AoKi/iZrNhaJEjr324YVsiD89I= -github.com/go-openapi/swag/conv v0.26.0/go.mod h1:tpAmIL7X58VPnHHiSO4uE3jBeRamGsFsfdDeDtb5ECE= -github.com/go-openapi/swag/fileutils v0.26.0 h1:WJoPRvsA7QRiiWluowkLJa9jaYR7FCuxmDvnCgaRRxU= -github.com/go-openapi/swag/fileutils v0.26.0/go.mod h1:0WDJ7lp67eNjPMO50wAWYlKvhOb6CQ37rzR7wrgI8Tc= -github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= -github.com/go-openapi/swag/jsonname v0.26.0/go.mod h1:urBBR8bZNoDYGr653ynhIx+gTeIz0ARZxHkAPktJK2M= -github.com/go-openapi/swag/jsonutils v0.26.0 h1:FawFML2iAXsPqmERscuMPIHmFsoP1tOqWkxBaKNMsnA= -github.com/go-openapi/swag/jsonutils v0.26.0/go.mod h1:2VmA0CJlyFqgawOaPI9psnjFDqzyivIqLYN34t9p91E= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0 h1:apqeINu/ICHouqiRZbyFvuDge5jCmmLTqGQ9V95EaOM= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0/go.mod h1:AyM6QT8uz5IdKxk5akv0y6u4QvcL9GWERt0Jx/F/R8Y= -github.com/go-openapi/swag/loading v0.26.0 h1:Apg6zaKhCJurpJer0DCxq99qwmhFddBhaMX7kilDcko= -github.com/go-openapi/swag/loading v0.26.0/go.mod h1:dBxQ/6V2uBaAQdevN18VELE6xSpJWZxLX4txe12JwDg= -github.com/go-openapi/swag/mangling v0.26.0 h1:Du2YC4YLA/Y5m/YKQd7AnY5qq0wRKSFZTTt8ktFaXcQ= -github.com/go-openapi/swag/mangling v0.26.0/go.mod h1:jifS7W9vbg+pw63bT+GI53otluMQL3CeemuyCHKwVx0= -github.com/go-openapi/swag/netutils v0.26.0 h1:CmZp+ZT7HrmFwrC3GdGsXBq2+42T1bjKBapcqVpIs3c= -github.com/go-openapi/swag/netutils v0.26.0/go.mod h1:5iK+Ok3ZohWWex1C50BFTPexi03UaPwjW4Oj8kgrpwo= -github.com/go-openapi/swag/stringutils v0.26.0 h1:qZQngLxs5s7SLijc3N2ZO+fUq2o8LjuWAASSrJuh+xg= -github.com/go-openapi/swag/stringutils v0.26.0/go.mod h1:sWn5uY+QIIspwPhvgnqJsH8xqFT2ZbYcvbcFanRyhFE= -github.com/go-openapi/swag/typeutils v0.26.0 h1:2kdEwdiNWy+JJdOvu5MA2IIg2SylWAFuuyQIKYybfq4= -github.com/go-openapi/swag/typeutils v0.26.0/go.mod h1:oovDuIUvTrEHVMqWilQzKzV4YlSKgyZmFh7AlfABNVE= -github.com/go-openapi/swag/yamlutils v0.26.0 h1:H7O8l/8NJJQ/oiReEN+oMpnGMyt8G0hl460nRZxhLMQ= -github.com/go-openapi/swag/yamlutils v0.26.0/go.mod h1:1evKEGAtP37Pkwcc7EWMF0hedX0/x3Rkvei2wtG/TbU= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.2 h1:5zRca5jw7lzVREKCZVNBpysDNBjj74rBh0N2BGQbSR0= -github.com/go-openapi/testify/enable/yaml/v2 v2.4.2/go.mod h1:XVevPw5hUXuV+5AkI1u1PeAm27EQVrhXTTCPAF85LmE= -github.com/go-openapi/testify/v2 v2.4.2 h1:tiByHpvE9uHrrKjOszax7ZvKB7QOgizBWGBLuq0ePx4= -github.com/go-openapi/testify/v2 v2.4.2/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= +github.com/go-openapi/jsonpointer v1.0.0 h1:kR9tHqY0CtZaOPVFm622dPVNhrvYpwr4uCxgL3h1H8s= +github.com/go-openapi/jsonpointer v1.0.0/go.mod h1:Z3rw7dWu1p9IgitXCFamSlA5lmDiklEB6vkaxcNZW5Y= +github.com/go-openapi/jsonreference v1.0.0 h1:jlmTr6torcd1YgDQvSfNmRtKzYDO4FGBkrAdlAVWnpY= +github.com/go-openapi/jsonreference v1.0.0/go.mod h1:jtwdyGbJk0Xhe5Y+rwtglQP6Sb1WZST4rT32LWB+sv0= +github.com/go-openapi/swag v0.27.1 h1:VotvOLWW8q/EAxB0YdsBBGC8XYyeL1YwBj2ungAGPNg= +github.com/go-openapi/swag v0.27.1/go.mod h1:GTkJPwHfhJp6MWr4/rCh64HVI3Ofu+tcsbfjfHmTxpE= +github.com/go-openapi/swag/cmdutils v0.27.1 h1:I7sYqaWVl5mq0NEmNQkAmFDyNin9ufvMX/p2zwtQaOE= +github.com/go-openapi/swag/cmdutils v0.27.1/go.mod h1:Sm1MVFMkF6guJJ+pQqHnQA3N0j9qALV3NxzDSv6bETM= +github.com/go-openapi/swag/conv v0.27.1 h1:8wi9ZG+olmY1wXphl93EWniPtbSPkXM/feH7FgjsvrU= +github.com/go-openapi/swag/conv v0.27.1/go.mod h1:QbqMivkpKhC3g1B1GGGOJ6ANewI3S62dbzYu3Duowqs= +github.com/go-openapi/swag/fileutils v0.27.1 h1:QQqBSoi5mW4XpU85nS0mLcA+zAE6vLzrb0QkmLKf9oM= +github.com/go-openapi/swag/fileutils v0.27.1/go.mod h1:VvJFZLTZS0AI854gEQz5tk7dBESdLjiNUMSZ/th2ry8= +github.com/go-openapi/swag/jsonutils v0.27.1 h1:SVgK3i4USzCU5mibOOS/l4ea2h9UQXy7J7RNLTjuXjU= +github.com/go-openapi/swag/jsonutils v0.27.1/go.mod h1:tdlEpZqdcQ17uj6J4YdK9vd8It5qWMwjWXOs0tjpRlk= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1 h1:mJu3COL9WEaZVp/Kf2PRMi7tPszPEJfSr/OO75ynCs8= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.27.1/go.mod h1:mofwUWx70wvskwESqRJ//k/9kURmCgyJl5m5Ppoh5kY= +github.com/go-openapi/swag/loading v0.27.1 h1:/DxUgDXKbBX4bcn7r9uEXfJyzN5XpiJmZplzQTjrRCY= +github.com/go-openapi/swag/loading v0.27.1/go.mod h1:jvGh3iA2+zyUUycB5fgJWzeHnhrpvGnJJM0RVE9ZShE= +github.com/go-openapi/swag/mangling v0.27.1 h1:yC9D0HyUE8gbP+BfmGx9+AA89ikwZTMjESK3OnnoaqA= +github.com/go-openapi/swag/mangling v0.27.1/go.mod h1:jtBE2+V+3pILxOR7Vgce+Cwp6A2PgZbvVqfNntbVs0w= +github.com/go-openapi/swag/netutils v0.27.1 h1:mICMFoS82F5TZ4Zy3cqmcQk+BFeCp3Uyq3Np7GI0/qU= +github.com/go-openapi/swag/netutils v0.27.1/go.mod h1:J+WYyFMLtvtCGqa6jLv+YNUmIKI3ZRQRrvfNDMoQoEQ= +github.com/go-openapi/swag/pools v0.27.1 h1:9LeadcMyb2GJCbXX5hVQDbZ2Lq9TL4dCs/nx1j5DO0E= +github.com/go-openapi/swag/pools v0.27.1/go.mod h1:kVQefhSK5RWuRe7BXsL8htgBPAMpN7HDGpGEknqugeE= +github.com/go-openapi/swag/stringutils v0.27.1 h1:ZXePZ0r2p1qSjo8tD3Un4vFj8+FqlCkczxDrJIhYUp8= +github.com/go-openapi/swag/stringutils v0.27.1/go.mod h1:lzRN95CxXmA03XcDWHLOb6nOMcxCqR5rGY0lOgsfRoM= +github.com/go-openapi/swag/typeutils v0.27.1 h1:KSTdFlfnse4r6dP9IrEnwMldjE+zs71UeEB3//PtVXc= +github.com/go-openapi/swag/typeutils v0.27.1/go.mod h1:Srm0xFNRZ1Y+vCxJclo5qzx8aj+1pAKda/YfFPrG0dQ= +github.com/go-openapi/swag/yamlutils v0.27.1 h1:ftxv6xvXb1E3zohUc+okZ9nSqNb9StQX/FXnKZ98sQA= +github.com/go-openapi/swag/yamlutils v0.27.1/go.mod h1:bnxFIB1qewGRiZHypXGZ3fNgf13/0HfRgnS/iZBDrOo= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0 h1:gGHwAJ0R/5jU8BEGDbfRNR3hL68dAVi84WuOApp29B0= +github.com/go-openapi/testify/enable/yaml/v2 v2.6.0/go.mod h1:tY+St1SGq4NFl0QIqdTY4aEdbChAHxhyB77XQi9iJCo= +github.com/go-openapi/testify/v2 v2.6.0 h1:5PKH2HE7YJ/LuRPQGvSxBRlFXNQhSetBLlGAgUEu3ug= +github.com/go-openapi/testify/v2 v2.6.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/google/cel-go v0.29.0 h1:fEG+Ja3YRwNOqnQxTyJwoByAUAvTuxUGiro/jhrm4F4= -github.com/google/cel-go v0.29.0/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= +github.com/google/cel-go v0.31.0 h1:H0bhpFTqOvmHrBGrWKp7ZlhBm5Hh8PYUEXnwxT1LL7A= +github.com/google/cel-go v0.31.0/go.mod h1:X0bD6iVNR8pkROSOoHVdgTkzmRcosof7WQqCD6wcMc8= github.com/google/gnostic-models v0.7.1 h1:SisTfuFKJSKM5CPZkffwi6coztzzeYUhc3v4yxLWH8c= github.com/google/gnostic-models v0.7.1/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= @@ -105,8 +105,8 @@ github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= -github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 h1:EwtI+Al+DeppwYX2oXJCETMO23COyaKGP6fHVpkpWpg= +github.com/google/pprof v0.0.0-20260402051712-545e8a4df936/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= 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= @@ -117,14 +117,14 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -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/compress v1.19.0 h1:sXLILfc9jV2QYWkzFOPWStmcUVH2RHEB1JCdY2oVvCQ= +github.com/klauspost/compress v1.19.0/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kudobuilder/kuttl v0.26.0 h1:8PXqnuismPqmxk5yslqfCezXLfkCbR+PIqz8KDzuo7M= -github.com/kudobuilder/kuttl v0.26.0/go.mod h1:jsTOHjoskFIcrkIWnLjAztV5n86o+YqUOjgTK/5lKsc= +github.com/kudobuilder/kuttl v0.27.0 h1:Dc+h0OaoLSaNdSt0caMtHFr0mvdhz7flDuZzq1k1wuU= +github.com/kudobuilder/kuttl v0.27.0/go.mod h1:mpoA6IwOP7pe3hxGO5ojVcpbE6KphWTn7QNN9qpZaWw= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -135,10 +135,10 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/moby/api v1.54.2 h1:wiat9QAhnDQjA7wk1kh/TqHz2I1uUA7M7t9SAl/JNXg= -github.com/moby/moby/api v1.54.2/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= -github.com/moby/moby/client v0.4.1 h1:DMQgisVoMkmMs7fp3ROSdiBnoAu8+vo3GggFl06M/wY= -github.com/moby/moby/client v0.4.1/go.mod h1:z52C9O2POPOsnxZAy//WtKcQ32P+jT/NGeXu/7nfjGQ= +github.com/moby/moby/api v1.56.0 h1:GQzua3NA599ASSIICx0iFgiJeO9YkdDARvQsm23ZZuQ= +github.com/moby/moby/api v1.56.0/go.mod h1:sZ+THbVWkjOmBPPfbnzdD/G1LuIexWhqlSHHPTDQ1Uk= +github.com/moby/moby/client v0.6.0 h1:AJjEB21QPbXSXjDsZorFBoDZPhMrfbpaPLgSMAW9Bgs= +github.com/moby/moby/client v0.6.0/go.mod h1:OCo00wNRyA3m4lmJ228W3JbyCN4ZNNYjpOXiJydBdcQ= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -147,10 +147,10 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.27.4 h1:fcEcQW/A++6aZAZQNUmNjvA9PSOzefMJBerHJ4t8v8Y= -github.com/onsi/ginkgo/v2 v2.27.4/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= -github.com/onsi/gomega v1.40.0 h1:Vtol0e1MghCD2ZVIilPDIg44XSL9l2QAn8ZNaljWcJc= -github.com/onsi/gomega v1.40.0/go.mod h1:M/Uqpu/8qTjtzCLUA2zJHX9Iilrau25x1PdoSRbWh5A= +github.com/onsi/ginkgo/v2 v2.32.1 h1:6tlvcDm/3sE8lGJbZ4+d4mO3RLy24/tQWOFzVSQNIfw= +github.com/onsi/ginkgo/v2 v2.32.1/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU= +github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= @@ -162,14 +162,14 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= -github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_golang v1.24.0 h1:5XStIklKuAtJSNpdD3s8XJj/Yv78IQmE1kbNk87JrAI= +github.com/prometheus/client_golang v1.24.0/go.mod h1:QcsNdotprC2nS4BTM2ucbcqxd2CeXTEa9jW7zHO9iDE= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= -github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= -github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= -github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI= +github.com/prometheus/common v0.70.0/go.mod h1:S/SFasQmgGiYH6C81LKCtYa8QACgthGg5zxL2udV7SY= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -183,30 +183,30 @@ github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= 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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= +github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= github.com/thoas/go-funk v0.9.3 h1:7+nAEx3kn5ZJcnDm2Bh23N2yOtweO14bi//dvRtgLpw= github.com/thoas/go-funk v0.9.3/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= -go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= -go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= -go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= -go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= -go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= -go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= -go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= -go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= +go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= +go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= +go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= +go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= +go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= +go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -215,37 +215,38 @@ go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= -go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= -golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= -golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= -golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= +go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +golang.org/x/crypto v0.55.0 h1:+KWHjbgOaAQ66dh/YlkZKHlz9ZUlq61AFirAR9ntP8M= +golang.org/x/crypto v0.55.0/go.mod h1:uq0V9dE/fzQuJtbnL+2EhWOE63vo164FY8xqEnV9xis= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= +golang.org/x/mod v0.39.0 h1:UF5zwQdCRRUpHfyPwr7d4UrGiVeldIsogtzWVnczL74= +golang.org/x/mod v0.39.0/go.mod h1:bvIbwjQ0HUFFf5AKukeeYQG4ZBUG9yxQbR9aEweIwYY= +golang.org/x/net v0.58.0 h1:ynWG7rqYi4ccpTEuPZ2QGWHktVEM9DMCj9yzDE0Q7To= +golang.org/x/net v0.58.0/go.mod h1:YwCddHnFlT7eLQqVprV19OnhLGtc5xOKgE0RyqgfWAU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= -golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= -golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= -golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= -golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= -golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= -golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= -golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= -golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= +golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI= +golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9 h1:VPWxll4HlMw1Vs/qXtN7BvhZqsS9cdAittCNvVENElA= -google.golang.org/genproto/googleapis/api v0.0.0-20260401024825-9d38bb4040a9/go.mod h1:7QBABkRtR8z+TEnmXTqIqwJLlzrZKVfAUm7tY3yGv0M= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9 h1:m8qni9SQFH0tJc1X0vmnpw/0t+AImlSvp30sEupozUg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260401024825-9d38bb4040a9/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -262,31 +263,31 @@ 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.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= -k8s.io/api v0.36.0 h1:SgqDhZzHdOtMk40xVSvCXkP9ME0H05hPM3p9AB1kL80= -k8s.io/api v0.36.0/go.mod h1:m1LVrGPNYax5NBHdO+QuAedXyuzTt4RryI/qnmNvs34= -k8s.io/apiextensions-apiserver v0.36.0 h1:Wt7E8J+VBCbj4FjiBfDTK/neXDDjyJVJc7xfuOHImZ0= -k8s.io/apiextensions-apiserver v0.36.0/go.mod h1:kGDjH0msuiIB3tgsYRV0kS9GqpMYMUsQ3GHv7TApyug= -k8s.io/apimachinery v0.36.0 h1:jZyPzhd5Z+3h9vJLt0z9XdzW9VzNzWAUw+P1xZ9PXtQ= -k8s.io/apimachinery v0.36.0/go.mod h1:FklypaRJt6n5wUIwWXIP6GJlIpUizTgfo1T/As+Tyxc= -k8s.io/client-go v0.36.0 h1:pOYi7C4RHChYjMiHpZSpSbIM6ZxVbRXBy7CuiIwqA3c= -k8s.io/client-go v0.36.0/go.mod h1:ZKKcpwF0aLYfkHFCjillCKaTK/yBkEDHTDXCFY6AS9Y= +k8s.io/api v0.37.0 h1:Z//Vj9N7RA/yS2sDmxyeo7h+RR4zbUrd2vrd3Z0TbB4= +k8s.io/api v0.37.0/go.mod h1:LKXgcJWMc+f4OLbP5SFR8rulEg07zZhpi/zMULiBImk= +k8s.io/apiextensions-apiserver v0.37.0 h1:zRMQ3+/LIE5oZ0tVvXwYHC+dIkSP5cjNWju7AZU1LOI= +k8s.io/apiextensions-apiserver v0.37.0/go.mod h1:HU0PfSBwchHL5iDau6jjt9zU6ryWkDDlaVUiq91NK80= +k8s.io/apimachinery v0.37.0 h1:Np2AbDtf8x6RDHiD8T9LbKJ9gaegeVNa8yNm5FuGKm0= +k8s.io/apimachinery v0.37.0/go.mod h1:RN3nhprFSCxOi5Selxd7oMTXOe/c+ZbcE7Im+TS2zkE= +k8s.io/client-go v0.37.0 h1:nsN31fy8wBySuZ+QRnKmrjRSQLOG2rvoGN0tKd12zhQ= +k8s.io/client-go v0.37.0/go.mod h1:FcGqw+Ll/gNQiq+nPGY1Oyt9y7SgDh1d3MW3RFDEbn0= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= -k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 h1:sWu4Td5mgJlwunsUydnhKEAfNUHM7hm1wfKEQmD7G5c= -k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 h1:kBawHLSnx/mYHmRnNUf9d4CpjREbeZuxoSGOX/J+aYM= -k8s.io/utils v0.0.0-20260319190234-28399d86e0b5/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A= +k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad/go.mod h1:0/mqHCVhlumdJ3BhCfnjSZQE037nAhNodh1/hK0T8/I= +k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs= +k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -sigs.k8s.io/controller-runtime v0.24.0 h1:Ck6N2LdS8Lovy1o25BB4r1xjvLEKUl1s2o9kU+KWDE4= -sigs.k8s.io/controller-runtime v0.24.0/go.mod h1:vFkfY5fGt5xAC/sKb8IBFKgWPNKG9OUG29dR8Y2wImw= +sigs.k8s.io/controller-runtime v0.25.1 h1:BKgU9OeE8xv8EbbM8cY0NVzTQs35rokkdq1jh12fMb4= +sigs.k8s.io/controller-runtime v0.25.1/go.mod h1:4QqLdT6z/L6Olj8JJCtvztid4/fnIiYsfaTFScegctc= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= -sigs.k8s.io/kind v0.31.0 h1:UcT4nzm+YM7YEbqiAKECk+b6dsvc/HRZZu9U0FolL1g= -sigs.k8s.io/kind v0.31.0/go.mod h1:FSqriGaoTPruiXWfRnUXNykF8r2t+fHtK0P0m1AbGF8= +sigs.k8s.io/kind v0.33.0 h1:AjvDv3vOygb/VKLVQW87lfktIBzkxR8Ump9DjxC8+Lk= +sigs.k8s.io/kind v0.33.0/go.mod h1:FSqriGaoTPruiXWfRnUXNykF8r2t+fHtK0P0m1AbGF8= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0 h1:qmp2e3ZfFi1/jJbDGpD4mt3wyp6PE1NfKHCYLqgNQJo= -sigs.k8s.io/structured-merge-diff/v6 v6.4.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2 h1:qdOxHwrl2Kaag1aQEarlYcOA9vSyGCp3CIki3aW8c4Q= +sigs.k8s.io/structured-merge-diff/v6 v6.4.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= From e7de9a18e5b8a6dc121d509e8c96fb479be5281f Mon Sep 17 00:00:00 2001 From: Misha Sugakov <537715+msugakov@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:14:00 +0200 Subject: [PATCH 163/327] chore(ci): Collect `StorageClass`-es after tests (#23157) --- scripts/ci/collect-service-logs.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/ci/collect-service-logs.sh b/scripts/ci/collect-service-logs.sh index 82f0753973a3c..6564f669f4aa9 100755 --- a/scripts/ci/collect-service-logs.sh +++ b/scripts/ci/collect-service-logs.sh @@ -69,7 +69,8 @@ main() { set +e for object in daemonsets deployments services pods secrets serviceaccounts validatingwebhookconfigurations \ - catalogsources subscriptions clusterserviceversions central securedclusters nodes persistentvolumeclaims; do + catalogsources subscriptions clusterserviceversions central securedclusters nodes persistentvolumeclaims \ + storageclasses; do # A feel good command before pulling logs info ">>> Collecting ${object} from namespace ${namespace} <<<" out="$(mktemp)" From 25abe457bbcc430ed448950d56e4ac0294692789 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 11:13:02 +0000 Subject: [PATCH 164/327] chore(deps): bump cloud.google.com/go/securitycenter from 1.46.0 to 1.47.0 (#23186) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ffefe4292bc09..3dbb7f19cfbbd 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( cloud.google.com/go/artifactregistry v1.27.0 cloud.google.com/go/compute/metadata v0.9.1 cloud.google.com/go/containeranalysis v0.20.0 - cloud.google.com/go/securitycenter v1.46.0 + cloud.google.com/go/securitycenter v1.47.0 cloud.google.com/go/storage v1.68.0 dario.cat/mergo v1.0.2 github.com/Azure/azure-sdk-for-go-extensions v0.7.0 diff --git a/go.sum b/go.sum index 31b41eb5ab7ae..54bcba05a120b 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,8 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/securitycenter v1.46.0 h1:MfzR4Bj5W51MAIyJlA4molK/vj0xO64te4yCGAbwXL0= -cloud.google.com/go/securitycenter v1.46.0/go.mod h1:7mAlzsCsKlEVmciAFORl431laDGpoKGFkSQndAzFs30= +cloud.google.com/go/securitycenter v1.47.0 h1:cKjSLURYE5tewWgH6VW6Jo6YaZWG+FUUFh/SmrqrcHU= +cloud.google.com/go/securitycenter v1.47.0/go.mod h1:OWKAGzP36rJ4pFSjU441g+vi7WTRdMFRVw1rykvMwPE= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= From 5962b4cf993a84fa64e063c60c8d5ebabd4cf97a Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Thu, 1 Oct 2026 13:33:21 +0200 Subject: [PATCH 165/327] ROX-37373: reduce GKE E2E cluster to 2 nodes for GHA nongroovy (#23034) --- .github/workflows/e2e-nongroovy-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-nongroovy-tests.yaml b/.github/workflows/e2e-nongroovy-tests.yaml index e3df36cf7a676..9682455373095 100644 --- a/.github/workflows/e2e-nongroovy-tests.yaml +++ b/.github/workflows/e2e-nongroovy-tests.yaml @@ -75,7 +75,7 @@ jobs: - name: Create GKE cluster env: MACHINE_TYPE: e2-standard-8 - NUM_NODES: "3" + NUM_NODES: "2" GKE_SPOT: "false" timeout-minutes: 20 run: | From 7d20bd737a1f145d329e6e4436fc0d83973ceda9 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Thu, 1 Oct 2026 08:00:56 -0400 Subject: [PATCH 166/327] ROX-37316: Improve analytics for compliance scan schedules wizard (#23132) --- .../Schedules/CreateScanConfigPage.tsx | 2 +- .../Schedules/EditScanConfigDetail.tsx | 5 ++++- .../Schedules/ScanConfigDetailPage.tsx | 4 ++-- .../Schedules/ScanConfigsPage.tsx | 4 ++-- .../Schedules/Wizard/ScanConfigOptions.tsx | 4 ++-- .../Schedules/Wizard/ScanConfigWizardForm.tsx | 20 +++++++++++++++++-- .../compliance.scanConfigs.utils.tsx | 2 +- ui/apps/platform/src/hooks/useAnalytics.ts | 9 ++++++++- 8 files changed, 38 insertions(+), 12 deletions(-) diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx index d686ad51b0f3c..851ac85b7e708 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx @@ -28,7 +28,7 @@ function CreateScanConfigPage(): ReactElement { - + ); diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx index 6ed9bef795cf7..361fb2e4ae78c 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx @@ -81,7 +81,10 @@ function EditScanConfigDetail({ )} {!isLoading && scanConfig && ( - + )} diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigDetailPage.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigDetailPage.tsx index 9b2898d1beb44..e6f587d39f9b8 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigDetailPage.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigDetailPage.tsx @@ -8,7 +8,7 @@ import useRestQuery from 'hooks/useRestQuery'; import { getComplianceScanConfiguration } from 'services/ComplianceScanConfigurationService'; import EditScanConfigDetail from './EditScanConfigDetail'; import ViewScanConfigDetail from './ViewScanConfigDetail'; -import type { PageActions } from './compliance.scanConfigs.utils'; +import type { SchedulePageAction } from './compliance.scanConfigs.utils'; type ScanConfigDetailPageProps = { hasWriteAccessForCompliance: boolean; @@ -18,7 +18,7 @@ function ScanConfigDetailPage({ hasWriteAccessForCompliance, }: ScanConfigDetailPageProps): ReactElement { const { scanConfigId } = useParams() as { scanConfigId: string }; - const { pageAction } = usePageAction(); + const { pageAction } = usePageAction(); const scanConfigFetcher = useCallback(() => { const { request, cancel } = getComplianceScanConfiguration(scanConfigId); diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigsPage.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigsPage.tsx index 6e98bdcfacc63..3b25225ef7acc 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigsPage.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ScanConfigsPage.tsx @@ -4,7 +4,7 @@ import { Banner } from '@patternfly/react-core'; import usePageAction from 'hooks/usePageAction'; import usePermissions from 'hooks/usePermissions'; import { complianceEnhancedSchedulesPath } from 'routePaths'; -import type { PageActions } from './compliance.scanConfigs.utils'; +import type { SchedulePageAction } from './compliance.scanConfigs.utils'; import CreateScanConfigPage from './CreateScanConfigPage'; import ComplianceNotFoundPage from '../ComplianceNotFoundPage'; import ScanConfigDetailPage from './ScanConfigDetailPage'; @@ -17,7 +17,7 @@ function ScanConfigsPage() { * /main/compliance-enhanced/scan-configs?action=create * /main/compliance-enhanced/scan-configs/configId */ - const { pageAction } = usePageAction(); + const { pageAction } = usePageAction(); const { hasReadWriteAccess } = usePermissions(); const hasWriteAccessForCompliance = hasReadWriteAccess('Compliance'); diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx index 9e683163df5e2..cbcaef265f594 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx @@ -20,7 +20,7 @@ import FormLabelGroup from 'Components/PatternFly/FormLabelGroup'; import RepeatScheduleDropdown from 'Components/PatternFly/RepeatScheduleDropdown'; import usePageAction from 'hooks/usePageAction'; -import type { PageActions, ScanConfigFormValues } from '../compliance.scanConfigs.utils'; +import type { ScanConfigFormValues, SchedulePageAction } from '../compliance.scanConfigs.utils'; import { helperTextForName, helperTextForNameEdit, helperTextForTime } from './useFormikScanConfig'; @@ -28,7 +28,7 @@ import './ScanConfigOptions.css'; function ScanConfigOptions(): ReactElement { const formik: FormikContextType = useFormikContext(); - const { pageAction } = usePageAction(); + const { pageAction } = usePageAction(); const isEditAction = pageAction === 'edit'; function handleSelectChange(id: string, value: string): void { diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx index f6c6061e064b9..3949b3893004a 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx @@ -25,7 +25,7 @@ import ReportConfiguration from './ReportConfiguration'; import ReviewConfig from './ReviewConfig'; import useFormikScanConfig from './useFormikScanConfig'; import { convertFormikToScanConfig } from '../compliance.scanConfigs.utils'; -import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; +import type { ScanConfigFormValues, SchedulePageAction } from '../compliance.scanConfigs.utils'; const PARAMETERS = 'Set parameters'; const PARAMETERS_ID = 'parameters'; @@ -40,6 +40,7 @@ const REVIEW_CONFIG_ID = 'review'; type ScanConfigWizardFormProps = { initialFormValues?: ScanConfigFormValues; + pageAction: SchedulePageAction; }; type CustomWizardFooterProps = { @@ -115,7 +116,10 @@ function CustomWizardFooter({ ); } -function ScanConfigWizardForm({ initialFormValues }: ScanConfigWizardFormProps): ReactElement { +function ScanConfigWizardForm({ + initialFormValues, + pageAction, +}: ScanConfigWizardFormProps): ReactElement { const { analyticsTrack } = useAnalytics(); const navigate = useNavigate(); const formik = useFormikScanConfig(initialFormValues); @@ -133,6 +137,8 @@ function ScanConfigWizardForm({ initialFormValues }: ScanConfigWizardFormProps): setIsCreating(true); setCreateScanConfigError(''); const complianceScanConfig = convertFormikToScanConfig(formik.values); + const { clusters, scanConfig } = complianceScanConfig; + const { notifiers, profiles, scanSchedule } = scanConfig; try { await saveScanConfig(complianceScanConfig); @@ -141,6 +147,11 @@ function ScanConfigWizardForm({ initialFormValues }: ScanConfigWizardFormProps): properties: { success: true, errorMessage: '', + action: pageAction, + clusters: clusters.length, + intervalType: scanSchedule.intervalType, + notifiers: notifiers.length, + profiles: profiles.length, }, }); navigate(complianceEnhancedSchedulesPath); @@ -150,6 +161,11 @@ function ScanConfigWizardForm({ initialFormValues }: ScanConfigWizardFormProps): properties: { success: false, errorMessage: getAxiosErrorMessage(error), + action: pageAction, + clusters: clusters.length, + intervalType: scanSchedule.intervalType, + notifiers: notifiers.length, + profiles: profiles.length, }, }); setCreateScanConfigError(getAxiosErrorMessage(error)); diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/compliance.scanConfigs.utils.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/compliance.scanConfigs.utils.tsx index e1f6f4ad98235..bc455e5c67555 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/compliance.scanConfigs.utils.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/compliance.scanConfigs.utils.tsx @@ -36,7 +36,7 @@ export type ScanConfigFormValues = { report: ScanReportConfiguration; }; -export type PageActions = 'create' | 'edit' | 'clone'; +export type SchedulePageAction = 'create' | 'edit'; export function getTimeWithHourMinuteFromISO8601(timeISO8601: string) { // Given an ISO 8601 date time string from response, diff --git a/ui/apps/platform/src/hooks/useAnalytics.ts b/ui/apps/platform/src/hooks/useAnalytics.ts index 0a97d7bb47202..7a8e59980948e 100644 --- a/ui/apps/platform/src/hooks/useAnalytics.ts +++ b/ui/apps/platform/src/hooks/useAnalytics.ts @@ -3,8 +3,10 @@ import Raven from 'raven-js'; import mapValues from 'lodash/mapValues'; import type { ReportPageAction } from 'Components/Reports/reports.types'; +import type { SchedulePageAction } from 'Containers/ComplianceEnhanced/Schedules/compliance.scanConfigs.utils'; import type { ImageType } from 'services/ReportsService.types'; import type { Telemetry } from 'types/config.proto'; +import type { Schedule } from 'types/schedule.proto'; import { ensureExhaustive, tupleTypeGuard } from 'utils/type.utils'; import type { UnionFrom } from 'utils/type.utils'; import { getQueryObject, getQueryString } from 'utils/queryStringUtils'; @@ -391,7 +393,7 @@ export type AnalyticsEvent = properties: { action: ReportPageAction; cvesSince: 'allVuln'; // | 'sinceLastSentScheduledReport' | 'sinceStartDate' - intervalType: 'DAILY' | 'MONTHLY' | 'WEEKLY' | 'UNSET'; + intervalType: Schedule['intervalType']; notifiers: number; resourceScope: string; }; @@ -548,6 +550,11 @@ export type AnalyticsEvent = properties: { success: true | false; errorMessage: string; + action: SchedulePageAction; + clusters: number; + intervalType: Schedule['intervalType']; + notifiers: number; + profiles: number; }; } | { From 032d48a33915fc746c57d6ecc7abce4cbe467981 Mon Sep 17 00:00:00 2001 From: Piotr Rygielski <114479+vikin91@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:09:04 +0200 Subject: [PATCH 167/327] ci: Fail add-vms action on skipped VMs and accept rhel8 (#22710) --- .github/workflows/add-vms-to-cluster.yml | 7 ++++--- scripts/ci/add-vms/action.yml | 6 +++--- scripts/ci/add-vms/add-vms.bats | 1 + scripts/ci/add-vms/add-vms.sh | 15 ++++++++++++--- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/add-vms-to-cluster.yml b/.github/workflows/add-vms-to-cluster.yml index b790abaf6be2a..0ace3f5f384e7 100644 --- a/.github/workflows/add-vms-to-cluster.yml +++ b/.github/workflows/add-vms-to-cluster.yml @@ -1,5 +1,5 @@ -name: "Add VMs to Cluster" -run-name: "Add ${{ inputs.num-vms }} ${{ inputs.vm-os }} VMs to ${{ inputs.cluster-name }}" +name: "Ensure VMs on Cluster" +run-name: "Ensure ${{ inputs.num-vms }} ${{ inputs.vm-os }} VMs on ${{ inputs.cluster-name }}" on: workflow_dispatch: @@ -9,7 +9,7 @@ on: required: true type: string num-vms: - description: "Number of VMs to deploy" + description: "Desired count of {os}-1..N, not how many to add. Existing VMs are reused; 2 is a no-op if rhel9-1 and rhel9-2 already exist." required: false default: 1 type: number @@ -19,6 +19,7 @@ on: default: "rhel9" type: choice options: + - rhel8 - rhel9 - rhel10 ssh-public-key: diff --git a/scripts/ci/add-vms/action.yml b/scripts/ci/add-vms/action.yml index 3b300baf010ec..41eca4d2c9bda 100644 --- a/scripts/ci/add-vms/action.yml +++ b/scripts/ci/add-vms/action.yml @@ -1,4 +1,4 @@ -name: "Add VMs to ACS Cluster" +name: "Ensure VMs on ACS Cluster" description: "Install OpenShift Virtualization, deploy VMs, and install roxagent on an Infra-managed cluster" inputs: @@ -6,11 +6,11 @@ inputs: description: "Infra cluster name (from `infractl list`)" required: true num-vms: - description: "Number of VMs to deploy" + description: "Desired count of {os}-1..N. Existing VMs are reused." required: false default: "1" vm-os: - description: "VM OS: rhel9 or rhel10" + description: "VM OS: rhel8, rhel9, or rhel10" required: false default: "rhel9" ssh-public-key: diff --git a/scripts/ci/add-vms/add-vms.bats b/scripts/ci/add-vms/add-vms.bats index 4b37bc3dba926..1c6ce5090598f 100644 --- a/scripts/ci/add-vms/add-vms.bats +++ b/scripts/ci/add-vms/add-vms.bats @@ -21,6 +21,7 @@ load "../../test_helpers.bats" ' _ "${BATS_TEST_DIRNAME}/add-vms.sh" assert_success + assert_output --partial "::error title=Add VMs incomplete::Skipped: rhel10-3; agent failed: rhel10-3" run cat "$summary_file" assert_output --partial "## Add VMs to Cluster" diff --git a/scripts/ci/add-vms/add-vms.sh b/scripts/ci/add-vms/add-vms.sh index 517a0143a5625..fd4f89cc880d5 100755 --- a/scripts/ci/add-vms/add-vms.sh +++ b/scripts/ci/add-vms/add-vms.sh @@ -7,7 +7,7 @@ # Options: # --cluster NAME Infra cluster name (calls infractl for kubeconfig) # --num-vms N Number of VMs (default: 1) -# --os OS VM OS: rhel9|rhel10 (default: rhel9) +# --os OS VM OS: rhel8|rhel9|rhel10 (default: rhel9) # --ssh-key PATH Path to user SSH public key to add to target VMs # --namespace NS Target namespace (default: openshift-cnv) # --vm-prefix PREFIX VM name prefix (default: same as OS) @@ -64,7 +64,7 @@ parse_args() { if ! [[ "$NUM_VMS" =~ ^[0-9]+$ ]] || (( NUM_VMS < 1 )); then die "--num-vms must be a positive integer" fi - [[ "$VM_OS" =~ ^rhel(9|10)$ ]] || die "--os must be rhel9 or rhel10" + [[ "$VM_OS" =~ ^rhel(8|9|10)$ ]] || die "--os must be rhel8, rhel9, or rhel10" } # Sets KUBECONFIG: either fetches it from infractl for the given cluster @@ -218,7 +218,11 @@ write_github_summary() { echo "" } >> "$GITHUB_STEP_SUMMARY" - echo "::notice title=VM action summary::See the job summary for VM access, key download, and native service verification." + if [[ ${#SKIPPED_VMS[@]} -gt 0 || ${#NATIVE_AGENT_FAILED_VMS[@]} -gt 0 ]]; then + echo "::error title=Add VMs incomplete::Skipped: ${SKIPPED_VMS[*]}; agent failed: ${NATIVE_AGENT_FAILED_VMS[*]}. See the job summary." + else + echo "::notice title=VM action summary::See the job summary for VM access, key download, and native service verification." + fi } cleanup() { @@ -268,6 +272,8 @@ main() { accessible_vms+=("${MANAGED_VMS[@]}" "${ADOPTED_VMS[@]}") if [[ ${#accessible_vms[@]} -eq 0 ]]; then + # Summary first so the ::error annotation still names the skipped VMs. + print_summary die "No accessible VMs — cannot install agent. All VMs failed SSH readiness." else export AUTOMATION_SSH_PRIVKEY @@ -278,6 +284,9 @@ main() { # Step 4: Summary print_summary + if [[ ${#SKIPPED_VMS[@]} -gt 0 || ${#NATIVE_AGENT_FAILED_VMS[@]} -gt 0 ]]; then + die "Some VMs were skipped or the native agent failed to start" + fi } if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then From a9e53f013824e36a9e22c06cf69ec1034f3c7794 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Thu, 1 Oct 2026 14:22:18 +0200 Subject: [PATCH 168/327] chore: add Slack user ID for @rhmdnd (#23162) --- scripts/ci/get-slack-user-id.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/ci/get-slack-user-id.sh b/scripts/ci/get-slack-user-id.sh index b8287adce5be9..4f246c5179d7b 100755 --- a/scripts/ci/get-slack-user-id.sh +++ b/scripts/ci/get-slack-user-id.sh @@ -57,6 +57,7 @@ case "$github_login" in 'parametalol') slack_user='U02MJ72K1B5' ;; 'pedrottimark') slack_user='U01RN8V8DEH' ;; 'porridge') slack_user='U020XCUG2LA' ;; +'rhmdnd') slack_user='U01C24L97D1' ;; 'rhybrillou') slack_user='U02GPRG4NHF' ;; 'robbycochran') slack_user='U03NAEPKDE1' ;; 'rukletsov') slack_user='U01G6P17RTK' ;; From 18a59ab58c508bf37c5417f6a33bf7f329b8c99b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:43:24 +0200 Subject: [PATCH 169/327] chore(deps): bump docker/bake-action from 7.3.0 to 7.4.0 (#23150) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d2932976e7487..607c34fe7803f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -498,7 +498,7 @@ jobs: - name: Build and push DB images in parallel with bake if: | github.event_name == 'push' || !github.event.pull_request.head.repo.fork - uses: docker/bake-action@d3418bd7d0e9324001bca92fa8ba175ea7e6dc9b # ratchet:docker/bake-action@v7.3.0 + uses: docker/bake-action@018cb6412ab401ebaa809aa5f85966b74628600f # ratchet:docker/bake-action@v7.4.0 with: source: . files: .github/docker/images.hcl From 3cf91015ae1ab7e96a7dcefc2bd21ea6e6a55e83 Mon Sep 17 00:00:00 2001 From: Piotr Rygielski <114479+vikin91@users.noreply.github.com> Date: Thu, 1 Oct 2026 14:43:54 +0200 Subject: [PATCH 170/327] fix(CI): Collect roxagent journalctl logs after VM scan e2e (#22820) --- .openshift-ci/post_tests.py | 24 +- scripts/ci/collect-vm-guest-logs.sh | 287 +++++++++++++++++++ scripts/ci/delete-vm-ns.sh | 61 ++++ scripts/ci/jobs/ocp_vm_scanning_e2e_tests.py | 7 +- scripts/ci/lib.sh | 20 ++ tests/e2e/run-vm-scanning.sh | 2 + tests/e2e/vm-scanning-lib.sh | 76 +++++ tests/vm_scanning_suite_test.go | 6 +- 8 files changed, 477 insertions(+), 6 deletions(-) create mode 100755 scripts/ci/collect-vm-guest-logs.sh create mode 100755 scripts/ci/delete-vm-ns.sh diff --git a/.openshift-ci/post_tests.py b/.openshift-ci/post_tests.py index 10f8ed4947ace..64f27674b5204 100644 --- a/.openshift-ci/post_tests.py +++ b/.openshift-ci/post_tests.py @@ -34,6 +34,7 @@ class PostTestsConstants: DIAGNOSTIC_OUTPUT = "diagnostic-bundle" CENTRAL_DATA_OUTPUT = "central-data" STACKROX_LOG_DIR = "/tmp/stackrox-logs" + VM_GUEST_LOG_DIR = "/tmp/vm-diagnostics" class NullPostTest: @@ -151,12 +152,13 @@ def _store_osci_artifact(self, source): class PostClusterTest(StoreArtifacts): """The standard cluster test suite of debug gathering and analysis""" - # pylint: disable=too-many-arguments + # pylint: disable=too-many-arguments,too-many-positional-arguments def __init__( self, collect_collector_metrics=True, collect_central_artifacts=True, collect_service_logs=True, + collect_vm_guest_logs=False, check_stackrox_logs=False, artifact_destination_prefix=None, ): @@ -169,6 +171,7 @@ def __init__( self.service_logs_destination = self.K8S_LOG_DIR self._collect_collector_metrics = collect_collector_metrics self._collect_service_logs = collect_service_logs + self._collect_vm_guest_logs = collect_vm_guest_logs self._check_stackrox_logs = check_stackrox_logs self.k8s_namespaces = [ "stackrox", @@ -202,6 +205,8 @@ def run(self, test_outputs=None): self.grab_central_data() if self._collect_service_logs: self.collect_service_logs() + if self._collect_vm_guest_logs: + self.collect_vm_guest_logs() if self._check_stackrox_logs: self.check_stackrox_logs() self.store_artifacts(test_outputs) @@ -232,6 +237,23 @@ def collect_service_logs(self): ) self.data_to_store.append(self.service_logs_destination) + def collect_vm_guest_logs(self): + # Per-VM virtctl ssh is capped in the script. Cleanup is a second + # process because a collect timeout SIGKILLs the first before it can + # delete namespaces. + self.run_with_best_effort( + [ + "scripts/ci/collect-vm-guest-logs.sh", + self.VM_GUEST_LOG_DIR, + ], + timeout=10 * 60, + ) + self.data_to_store.append(self.VM_GUEST_LOG_DIR) + self.run_with_best_effort( + ["scripts/ci/delete-vm-ns.sh"], + timeout=60, + ) + def collect_collector_metrics(self): self.run_with_best_effort( [ diff --git a/scripts/ci/collect-vm-guest-logs.sh b/scripts/ci/collect-vm-guest-logs.sh new file mode 100755 index 0000000000000..ed9fae05bd5fe --- /dev/null +++ b/scripts/ci/collect-vm-guest-logs.sh @@ -0,0 +1,287 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# collect-vm-guest-logs.sh copies roxagent journals from VM-scanning e2e guests +# via virtctl ssh. Best-effort: always exits 0. +# +# Usage: +# collect-vm-guest-logs.sh +# +# Environment: +# VM_SCAN_NAMESPACE_PREFIX default: vm-scan-e2e +# VM_GUEST_USER default: cloud-user +# VM_SCAN_E2E_DIR host files shared with the test run (default: /tmp/vm-scan-e2e) +# VM_SSH_PRIVATE_KEY_PATH PEM identity for virtctl (default: $VM_SCAN_E2E_DIR/ssh-identity) +# VIRTCTL_PATH optional virtctl override +# VM_GUEST_JOURNAL_TIMEOUT per-VM virtctl ssh ceiling (default: 90s) +# VM_GUEST_COLLECT_DEADLINE total collection budget (default: 540s) + +SCRIPTS_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" +# shellcheck source=../../scripts/ci/lib.sh +source "$SCRIPTS_ROOT/scripts/ci/lib.sh" + +usage() { + echo "./scripts/ci/collect-vm-guest-logs.sh " +} + +vm_scan_e2e_dir() { + printf '%s\n' "${VM_SCAN_E2E_DIR:-/tmp/vm-scan-e2e}" +} + +resolve_virtctl() { + if [[ -n "${VIRTCTL_PATH:-}" ]]; then + if [[ -x "$VIRTCTL_PATH" ]]; then + printf '%s\n' "$VIRTCTL_PATH" + return 0 + fi + info "VIRTCTL_PATH is not executable: ${VIRTCTL_PATH}" >&2 + return 1 + fi + local persisted + persisted="$(vm_scan_e2e_dir)/virtctl" + if [[ -x "$persisted" ]]; then + printf '%s\n' "$persisted" + return 0 + fi + local pointed + pointed="$(vm_scan_e2e_dir)/virtctl-path" + if [[ -f "$pointed" ]]; then + local src + src="$(<"$pointed")" + if [[ -n "$src" && -x "$src" ]]; then + printf '%s\n' "$src" + return 0 + fi + fi + command -v virtctl +} + +resolve_ssh_identity() { + if [[ -n "${VM_SSH_PRIVATE_KEY_PATH:-}" && -f "${VM_SSH_PRIVATE_KEY_PATH}" ]]; then + printf '%s\n' "${VM_SSH_PRIVATE_KEY_PATH}" + return 0 + fi + local persisted + persisted="$(vm_scan_e2e_dir)/ssh-identity" + if [[ -f "$persisted" ]]; then + printf '%s\n' "$persisted" + return 0 + fi + return 1 +} + +# list_vm_scan_vmis prints "namespace name" lines for VMIs in vm-scan-e2e namespaces. +# Returns 1 when kubectl cannot list VMIs (distinct from zero matches). +list_vm_scan_vmis() { + local prefix="${VM_SCAN_NAMESPACE_PREFIX:-vm-scan-e2e}" + local out err ns name + out="$(mktemp)" + err="$(mktemp)" + if ! kubectl --request-timeout=30s get vmi -A \ + -o jsonpath='{range .items[*]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}' \ + > "$out" 2>"$err"; then + info "kubectl get vmi failed: $(<"$err")" >&2 + rm -f "$out" "$err" + return 1 + fi + rm -f "$err" + while read -r ns name; do + [[ -z "$ns" || -z "$name" ]] && continue + if [[ "$ns" == "$prefix" || "$ns" == "${prefix}-"* ]]; then + printf '%s %s\n' "$ns" "$name" + fi + done < "$out" + rm -f "$out" + return 0 +} + +run_with_timeout() { + local seconds="$1" + shift + if command -v timeout >/dev/null; then + timeout -k 5s "${seconds}s" "$@" + else + "$@" + fi +} + +guest_ssh() { + local virtctl_bin="$1" + local identity="$2" + local guest_user="$3" + local ns="$4" + local vmi="$5" + local ssh_timeout="$6" + local remote_cmd="$7" + + # virtctl ssh reads stdin (OpenSSH without -n) and would consume the VMI + # list from the caller's while-read loop. + run_with_timeout "$ssh_timeout" \ + "${virtctl_bin}" ssh \ + --namespace "$ns" \ + --identity-file "$identity" \ + --local-ssh-opts="-n" \ + --local-ssh-opts="-o StrictHostKeyChecking=no" \ + --local-ssh-opts="-o IdentitiesOnly=yes" \ + --local-ssh-opts="-o UserKnownHostsFile=/dev/null" \ + --local-ssh-opts="-o BatchMode=yes" \ + --local-ssh-opts="-o ConnectTimeout=30" \ + --username "$guest_user" \ + "vmi/${vmi}" \ + --command "$remote_cmd" \ + < /dev/null +} + +# seconds_left is the timeout for the next virtctl ssh. Collection stops +# on its own before the 10 minute post-test kill, which fails the job. +seconds_left() { + local cap="${VM_GUEST_JOURNAL_TIMEOUT:-90}" + local left=$((collect_deadline_at - SECONDS)) + if ((left < 1)); then + return 1 + fi + if ((left < cap)); then + printf '%s\n' "$left" + return 0 + fi + printf '%s\n' "$cap" +} + +# collect_roxagent_container_journal writes container stdout that RHEL 8 +# Podman stores in its own log, not the journal. Quadlet names that +# container systemd-roxagent. +collect_roxagent_container_journal() { + local virtctl_bin="$1" + local identity="$2" + local guest_user="$3" + local ns="$4" + local vmi="$5" + local out_file="$6" + local ssh_timeout="$7" + local stderr_file + + stderr_file="$(mktemp)" + if ! guest_ssh "$virtctl_bin" "$identity" "$guest_user" "$ns" "$vmi" "$ssh_timeout" \ + "sudo podman logs --timestamps systemd-roxagent || true" \ + > "$out_file" 2>"$stderr_file"; then + { + echo "roxagent container journal collection failed for ${ns}/${vmi}" + echo "virtctl: ${virtctl_bin}" + echo "guest_user: ${guest_user}" + echo "--- stderr ---" + cat "$stderr_file" + } >> "$out_file" + elif [[ -s "$stderr_file" ]]; then + { + echo "--- stderr ---" + cat "$stderr_file" + } >> "$out_file" + fi + rm -f "$stderr_file" +} + +# collect_roxagent_journal is enough on RHEL 9 and 10, where Podman files +# container stdout on roxagent.service. On RHEL 8 that stdout is missing +# here, so the container journal is collected separately. +collect_roxagent_journal() { + local virtctl_bin="$1" + local identity="$2" + local guest_user="$3" + local ns="$4" + local vmi="$5" + local out_file="$6" + local container_file="$7" + local ssh_timeout + + ssh_timeout="$(seconds_left)" || return 1 + + local stderr_file + stderr_file="$(mktemp)" + + if ! guest_ssh "$virtctl_bin" "$identity" "$guest_user" "$ns" "$vmi" "$ssh_timeout" \ + "sudo journalctl -u roxagent.service -u roxagent-serve.service -b --no-pager -o short-iso" \ + > "$out_file" 2>"$stderr_file"; then + { + echo "roxagent journal collection failed for ${ns}/${vmi}" + echo "virtctl: ${virtctl_bin}" + echo "guest_user: ${guest_user}" + echo "--- stderr ---" + cat "$stderr_file" + } >> "$out_file" + fi + rm -f "$stderr_file" + ssh_timeout="$(seconds_left)" || return 1 + collect_roxagent_container_journal "$virtctl_bin" "$identity" "$guest_user" "$ns" "$vmi" "$container_file" "$ssh_timeout" || true +} + +collect_journals() { + local output_dir="$1" + local guest_user="${VM_GUEST_USER:-cloud-user}" + local virtctl_bin="" identity="" + virtctl_bin="$(resolve_virtctl)" || virtctl_bin="" + identity="$(resolve_ssh_identity)" || identity="" + + if [[ -n "$virtctl_bin" && -n "$identity" ]]; then + info ">>> Collecting roxagent journals into ${output_dir} <<<" + collect_deadline_at=$((SECONDS + ${VM_GUEST_COLLECT_DEADLINE:-540})) + local vmi_count=0 ns vmi out_file container_file vmi_list list_err + vmi_list="$(mktemp)" + list_err="$(mktemp)" + if ! list_vm_scan_vmis > "$vmi_list" 2>"$list_err"; then + info "Failed to list VMIs; writing collection-failed.txt" + { + echo "kubectl get vmi failed (not an empty match)" + cat "$list_err" + } > "${output_dir}/collection-failed.txt" + rm -f "$vmi_list" "$list_err" + return 0 + fi + rm -f "$list_err" + while read -r ns vmi; do + [[ -z "$ns" || -z "$vmi" ]] && continue + vmi_count=$((vmi_count + 1)) + out_file="${output_dir}/${ns}_${vmi}_roxagent.journal.log" + container_file="${output_dir}/${ns}_${vmi}_roxagent.container.journal.log" + info "Collecting roxagent journals for ${ns}/${vmi} -> ${out_file} ${container_file}" + if ! collect_roxagent_journal "$virtctl_bin" "$identity" "$guest_user" "$ns" "$vmi" "$out_file" "$container_file"; then + echo "stopped at ${ns}/${vmi}: collect deadline reached" \ + > "${output_dir}/collection-partial.txt" + break + fi + done < "$vmi_list" + rm -f "$vmi_list" + + if [[ "$vmi_count" -eq 0 ]]; then + info "No VMIs found in VM scan namespaces" + echo "no VMIs matched prefix ${VM_SCAN_NAMESPACE_PREFIX:-vm-scan-e2e}" \ + > "${output_dir}/collection-skipped.txt" + fi + return 0 + fi + + if [[ -z "$virtctl_bin" ]]; then + info "virtctl not found; skipping VM guest journal collection" + echo "virtctl not found" > "${output_dir}/collection-skipped.txt" + else + info "VM SSH identity not found; skipping VM guest journal collection" + echo "ssh identity not found at $(vm_scan_e2e_dir)/ssh-identity" \ + > "${output_dir}/collection-skipped.txt" + fi +} + +main() { + cd "$SCRIPTS_ROOT" + + if [[ $# -lt 1 ]]; then + usage + exit 1 + fi + + local output_dir="$1" + mkdir -p "$output_dir" + collect_journals "$output_dir" || true + exit 0 +} + +main "$@" diff --git a/scripts/ci/delete-vm-ns.sh b/scripts/ci/delete-vm-ns.sh new file mode 100755 index 0000000000000..a733d1b5e012e --- /dev/null +++ b/scripts/ci/delete-vm-ns.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SCRIPTS_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" +# shellcheck source=../../scripts/ci/lib.sh +source "$SCRIPTS_ROOT/scripts/ci/lib.sh" + +usage() { + cat <>> Cleaning up VM scan e2e namespaces <<<" + ns_list="$(mktemp)" + if ! list_vm_scan_namespaces > "$ns_list"; then + info "Skipping namespace delete: kubectl get ns failed" + rm -f "$ns_list" + return 0 + fi + while IFS= read -r ns; do + [[ -z "$ns" ]] && continue + info "Deleting namespace ${ns}" + # 10s leaves room for the namespace list inside the 60s cleanup budget. + kubectl delete namespace "$ns" --wait=false --request-timeout=10s &1 || \ + info "Namespace delete for ${ns} failed or already removed" + done < "$ns_list" + rm -f "$ns_list" +} + +main() { + case "${1:-}" in + -h|--help) + usage + exit 0 + ;; + "") + ;; + *) + usage >&2 + exit 1 + ;; + esac + + cd "$SCRIPTS_ROOT" + delete_vm_scan_namespaces + exit 0 +} + +main "$@" diff --git a/scripts/ci/jobs/ocp_vm_scanning_e2e_tests.py b/scripts/ci/jobs/ocp_vm_scanning_e2e_tests.py index 695d9d77640fc..a77f458cb16b8 100755 --- a/scripts/ci/jobs/ocp_vm_scanning_e2e_tests.py +++ b/scripts/ci/jobs/ocp_vm_scanning_e2e_tests.py @@ -23,6 +23,9 @@ os.environ["SENSOR_HELM_MANAGED"] = "true" os.environ["INSTALL_CNV_OPERATOR"] = "true" os.environ["ROX_VIRTUAL_MACHINES"] = "true" +# Leave guests up so post-test can collect roxagent journals, then +# delete-vm-ns.sh deletes the test namespaces. +os.environ["VM_SCAN_SKIP_CLEANUP"] = "true" # Selectively enable vulnerability bundles to prevent timeouts of matcher not being ready in 40 minutes. # The rhel-vex bundle alone has ~3M records and can take >30 min to import. # Drops alpine, aws, debian, oracle, osv, photon, suse, ubuntu (unused for RHEL guests). @@ -36,10 +39,10 @@ class VMScanningPostTest(PostClusterTest): - """Extends standard post-test with CNV namespace logs.""" + """Extends standard post-test with CNV namespace logs and guest roxagent journals.""" def __init__(self, **kwargs): - super().__init__(**kwargs) + super().__init__(collect_vm_guest_logs=True, **kwargs) self.k8s_namespaces.extend([ "openshift-cnv", ]) diff --git a/scripts/ci/lib.sh b/scripts/ci/lib.sh index 5b6c0fd779515..7759df47cd625 100755 --- a/scripts/ci/lib.sh +++ b/scripts/ci/lib.sh @@ -2757,6 +2757,26 @@ _record_cluster_info() { set_ci_shared_export "cut_container_runtime_version" "$containerRuntimeVersion" } +# list_vm_scan_namespaces prints VM-scanning e2e namespace names, one per line. +# Returns 1 when kubectl cannot list namespaces, distinct from zero matches. +list_vm_scan_namespaces() { + local prefix="${VM_SCAN_NAMESPACE_PREFIX:-vm-scan-e2e}" + local out err + out="$(mktemp)" + err="$(mktemp)" + if ! kubectl --request-timeout=30s get ns \ + -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' \ + > "$out" 2>"$err"; then + info "kubectl get ns failed: $(<"$err")" >&2 + rm -f "$out" "$err" + return 1 + fi + rm -f "$err" + grep -E "^${prefix}(-|$)" "$out" || true + rm -f "$out" + return 0 +} + if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then if [[ "$#" -lt 1 ]]; then die "When invoked at the command line a method is required." diff --git a/tests/e2e/run-vm-scanning.sh b/tests/e2e/run-vm-scanning.sh index 2587aeb93f57f..e54198d332529 100755 --- a/tests/e2e/run-vm-scanning.sh +++ b/tests/e2e/run-vm-scanning.sh @@ -47,6 +47,8 @@ test_vm_scanning_e2e() { deploy_stackrox cd "$ROOT" + ensure_vm_scan_ssh_identity + persist_vm_scan_virtctl rm -f FAIL # Run the full VM scanning e2e suite. make -C tests TESTFLAGS="-race -p 1 -timeout 90m" vm-scanning-tests || touch FAIL diff --git a/tests/e2e/vm-scanning-lib.sh b/tests/e2e/vm-scanning-lib.sh index 58d771a00eb62..87d65f137746d 100755 --- a/tests/e2e/vm-scanning-lib.sh +++ b/tests/e2e/vm-scanning-lib.sh @@ -270,3 +270,79 @@ ensure_virtctl_binary_insecure() { is_CI || die "Secure virtctl download failed; refusing insecure curl -k fallback outside CI. Set VIRTCTL_PATH or fix cluster ingress trust material." _download_and_install_virtctl -k } + +# Host-side files shared between the Go suite (via exported env) and post-test +# guest journal collection. Kept out of test_outputs so the private key is not +# uploaded as a CI artifact. +vm_scan_e2e_dir() { + printf '%s\n' "${VM_SCAN_E2E_DIR:-/tmp/vm-scan-e2e}" +} + +# export_vm_scan_public_key fills VM_SSH_PUBLIC_KEY from identity when unset. +# LoadVMScanConfig requires both halves of the keypair. +export_vm_scan_public_key() { + local identity="$1" + if [[ -n "${VM_SSH_PUBLIC_KEY:-}" ]]; then + return 0 + fi + if [[ -f "${identity}.pub" ]]; then + VM_SSH_PUBLIC_KEY="$(<"${identity}.pub")" + export VM_SSH_PUBLIC_KEY + return 0 + fi + VM_SSH_PUBLIC_KEY="$(ssh-keygen -y -f "$identity")" + printf '%s\n' "$VM_SSH_PUBLIC_KEY" > "${identity}.pub" + export VM_SSH_PUBLIC_KEY +} + +# ensure_vm_scan_ssh_identity writes or reuses an SSH key under vm_scan_e2e_dir +# so the Go suite and post-test guest log collection share the same identity. +ensure_vm_scan_ssh_identity() { + local dir identity + dir="$(vm_scan_e2e_dir)" + mkdir -p "$dir" + identity="${dir}/ssh-identity" + + if [[ -n "${VM_SSH_PRIVATE_KEY:-}" ]]; then + printf '%s\n' "${VM_SSH_PRIVATE_KEY}" > "$identity" + chmod 600 "$identity" + export VM_SSH_PRIVATE_KEY_PATH="$identity" + export_vm_scan_public_key "$identity" + return 0 + fi + + if [[ -f "$identity" ]]; then + export VM_SSH_PRIVATE_KEY_PATH="$identity" + VM_SSH_PRIVATE_KEY="$(<"$identity")" + export VM_SSH_PRIVATE_KEY + export_vm_scan_public_key "$identity" + return 0 + fi + + ssh-keygen -t ed25519 -f "$identity" -N "" -C "stackrox-vm-scan-e2e" >/dev/null + chmod 600 "$identity" + VM_SSH_PRIVATE_KEY="$(<"$identity")" + VM_SSH_PUBLIC_KEY="$(<"${identity}.pub")" + export VM_SSH_PRIVATE_KEY VM_SSH_PUBLIC_KEY VM_SSH_PRIVATE_KEY_PATH="$identity" + info "Ephemeral VM scan SSH identity written to ${identity}" +} + +# persist_vm_scan_virtctl copies virtctl next to the SSH identity and records +# the resolved path so post-test can find it after the test process's PATH +# goes away. +persist_vm_scan_virtctl() { + local dir src dest + dir="$(vm_scan_e2e_dir)" + mkdir -p "$dir" + src="$(command -v virtctl)" || { + info "virtctl not on PATH; post-test guest journal collection will skip" + return 0 + } + printf '%s\n' "$src" > "${dir}/virtctl-path" + dest="${dir}/virtctl" + if cp "$src" "$dest" && chmod +x "$dest"; then + info "Persisted virtctl to ${dest} for post-test guest journal collection" + else + info "Could not copy virtctl to ${dest}; post-test will use ${src}" + fi +} diff --git a/tests/vm_scanning_suite_test.go b/tests/vm_scanning_suite_test.go index c2266513aa0cd..f529470ab7e9b 100644 --- a/tests/vm_scanning_suite_test.go +++ b/tests/vm_scanning_suite_test.go @@ -200,9 +200,9 @@ func (s *VMScanningSuite) TearDownSuite() { defer s.cancel() } - // When VM_SCAN_SKIP_CLEANUP is set, leave VMs and the namespace intact so a - // developer can SSH into the guests or inspect cluster state after a failure - // without having to re-provision from scratch. + // When VM_SCAN_SKIP_CLEANUP is set, skip VM/namespace deletion here so CI + // post-test can collect guest journals first; local runs use this to debug + // without re-provisioning. if s.cfg != nil && s.cfg.SkipCleanup { s.logf("teardown: VM_SCAN_SKIP_CLEANUP is set — skipping VM and namespace deletion (VMs and namespace left intact for debugging)") s.closeConn() From aa77803f713402dc1df32cd6a525f0fab8f01e85 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Thu, 1 Oct 2026 09:30:40 -0400 Subject: [PATCH 171/327] ROX-37354: Remove unique style from compliance scan schedule view (#23174) --- .../NotifierConfigurationView.tsx | 111 ------------------ .../Components/Reports/View/DeliveryView.tsx | 45 +------ .../View/DetailsDescriptionListGroups.tsx | 35 ++++++ .../Components/Reports/View/DetailsView.tsx | 28 ++--- ...fierConfigurationsDescriptionListGroup.tsx | 47 ++++++++ .../View/ScheduleDescriptionListGroup.tsx | 32 +++++ .../Schedules/ViewScanConfigDetail.tsx | 12 +- .../Schedules/Wizard/ReviewConfig.tsx | 44 ++----- .../compliance.scanConfigs.utils.tsx | 13 -- .../Schedules/components/ConfigDetails.tsx | 52 ++------ .../components/ScanConfigActivityView.tsx | 47 ++++++++ .../components/ScanConfigClustersView.tsx | 30 +++++ .../components/ScanConfigDeliveryView.tsx | 26 ++++ .../components/ScanConfigParametersView.tsx | 35 +----- 14 files changed, 255 insertions(+), 302 deletions(-) delete mode 100644 ui/apps/platform/src/Components/NotifierConfiguration/NotifierConfigurationView.tsx create mode 100644 ui/apps/platform/src/Components/Reports/View/DetailsDescriptionListGroups.tsx create mode 100644 ui/apps/platform/src/Components/Reports/View/NotifierConfigurationsDescriptionListGroup.tsx create mode 100644 ui/apps/platform/src/Components/Reports/View/ScheduleDescriptionListGroup.tsx create mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigActivityView.tsx create mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigClustersView.tsx create mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigDeliveryView.tsx diff --git a/ui/apps/platform/src/Components/NotifierConfiguration/NotifierConfigurationView.tsx b/ui/apps/platform/src/Components/NotifierConfiguration/NotifierConfigurationView.tsx deleted file mode 100644 index 9459a9416d830..0000000000000 --- a/ui/apps/platform/src/Components/NotifierConfiguration/NotifierConfigurationView.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { useState } from 'react'; -import type { ReactElement } from 'react'; -import { Button, Flex, FlexItem, Title } from '@patternfly/react-core'; -import { Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; - -import { isDefaultEmailTemplate } from 'Components/EmailTemplate/EmailTemplate.utils'; -import EmailTemplateModal from 'Components/EmailTemplate/EmailTemplateModal'; -import type { TemplatePreviewArgs } from 'Components/EmailTemplate/EmailTemplateModal'; -import useIndexKey from 'hooks/useIndexKey'; -import type { NotifierConfiguration } from 'services/ReportsService.types'; - -export type NotifierConfigurationViewProps = { - headingLevel: 'h2' | 'h3'; - customBodyDefault: string; - customSubjectDefault: string; - notifierConfigurations: NotifierConfiguration[]; - renderTemplatePreview?: (args: TemplatePreviewArgs) => ReactElement; -}; - -function NotifierConfigurationView({ - headingLevel, - customBodyDefault, - customSubjectDefault, - notifierConfigurations, - renderTemplatePreview, -}: NotifierConfigurationViewProps): ReactElement { - const { keyFor } = useIndexKey(); - const [notifierConfigurationSelected, setNotifierConfigurationSelected] = - useState(null); - - return ( - <> - - - Delivery destinations - - - {notifierConfigurations.length === 0 ? ( - 'No delivery destinations' - ) : ( - - - - - - - - - - {notifierConfigurations.map((notifierConfiguration, index) => { - const { emailConfig, notifierName } = notifierConfiguration; - const { customBody, customSubject, mailingLists } = emailConfig; - const isDefaultEmailTemplateApplied = isDefaultEmailTemplate({ - customBody, - customSubject, - }); - return ( - - - - - - ); - })} - -
Email notifierDistribution listEmail template
{notifierName} - {mailingLists.join(', ')} - - -
- )} -
-
- {notifierConfigurationSelected && ( - { - setNotifierConfigurationSelected(null); - }} - renderTemplatePreview={renderTemplatePreview} - title={ - isDefaultEmailTemplate({ - customBody: notifierConfigurationSelected.emailConfig.customBody, - customSubject: notifierConfigurationSelected.emailConfig.customSubject, - }) - ? 'Default template applied' - : 'Custom template applied' - } - /> - )} - - ); -} - -export default NotifierConfigurationView; diff --git a/ui/apps/platform/src/Components/Reports/View/DeliveryView.tsx b/ui/apps/platform/src/Components/Reports/View/DeliveryView.tsx index ea4548cf21741..3f88899f15278 100644 --- a/ui/apps/platform/src/Components/Reports/View/DeliveryView.tsx +++ b/ui/apps/platform/src/Components/Reports/View/DeliveryView.tsx @@ -1,20 +1,11 @@ import type { ReactElement } from 'react'; -import { - DescriptionList, - DescriptionListDescription, - DescriptionListGroup, - DescriptionListTerm, - Flex, - FlexItem, - Title, -} from '@patternfly/react-core'; +import { DescriptionList, Flex, FlexItem, Title } from '@patternfly/react-core'; import type { BreakpointModifiers } from '@patternfly/react-core'; -import { formatRecurringSchedule } from 'utils/dateUtils'; - import type { DeliveryType } from '../reports.types'; -import NotifierConfigurationDescriptionList from './NotifierConfigurationDescriptionList'; +import NotifierConfigurationsDescriptionListGroup from './NotifierConfigurationsDescriptionListGroup'; +import ScheduleDescriptionListGroup from './ScheduleDescriptionListGroup'; export type DeliveryViewProps = { headingLevel: 'h2' | 'h3'; @@ -27,7 +18,6 @@ function DeliveryView({ horizontalTermWidthModifier, values, }: DeliveryViewProps): ReactElement { - /* eslint-disable react/no-array-index-key */ return ( @@ -39,37 +29,12 @@ function DeliveryView({ isHorizontal horizontalTermWidthModifier={horizontalTermWidthModifier} > - - Destinations - - {values.notifiers.length === 0 ? ( - '-' - ) : ( - - {values.notifiers.map((notifier, index) => ( - - ))} - - )} - - - - Schedule - - {values.schedule ? formatRecurringSchedule(values.schedule) : '-'} - - + + ); - /* eslint-enable react/no-array-index-key */ } export default DeliveryView; diff --git a/ui/apps/platform/src/Components/Reports/View/DetailsDescriptionListGroups.tsx b/ui/apps/platform/src/Components/Reports/View/DetailsDescriptionListGroups.tsx new file mode 100644 index 0000000000000..0d7e409dc218e --- /dev/null +++ b/ui/apps/platform/src/Components/Reports/View/DetailsDescriptionListGroups.tsx @@ -0,0 +1,35 @@ +import type { ReactElement } from 'react'; +import { + DescriptionListDescription, + DescriptionListGroup, + DescriptionListTerm, +} from '@patternfly/react-core'; + +// Generic component for use cases: +// Parameters of compliance scan schedule configuration +// Details of vulnerability report configuration + +export type DetailsDescriptionListGroupsProps = { + description: string; + name: string; +}; + +function DetailsDescriptionListGroups({ + description, + name, +}: DetailsDescriptionListGroupsProps): ReactElement { + return ( + <> + + Name + {name || '-'} + + + Description + {description || '-'} + + + ); +} + +export default DetailsDescriptionListGroups; diff --git a/ui/apps/platform/src/Components/Reports/View/DetailsView.tsx b/ui/apps/platform/src/Components/Reports/View/DetailsView.tsx index 92d9f6b8e7b0a..5cde41afc9feb 100644 --- a/ui/apps/platform/src/Components/Reports/View/DetailsView.tsx +++ b/ui/apps/platform/src/Components/Reports/View/DetailsView.tsx @@ -1,17 +1,11 @@ import type { ReactElement } from 'react'; -import { - DescriptionList, - DescriptionListDescription, - DescriptionListGroup, - DescriptionListTerm, - Flex, - FlexItem, - Title, -} from '@patternfly/react-core'; +import { DescriptionList, Flex, FlexItem, Title } from '@patternfly/react-core'; import type { BreakpointModifiers } from '@patternfly/react-core'; import type { DetailsType } from '../reports.types'; +import DetailsDescriptionListGroups from './DetailsDescriptionListGroups'; + export type DetailsViewProps = { headingLevel: 'h2' | 'h3'; horizontalTermWidthModifier: BreakpointModifiers; @@ -34,18 +28,10 @@ function DetailsView({ isHorizontal horizontalTermWidthModifier={horizontalTermWidthModifier} > - - Name - - {values.name || '-'} - - - - Description - - {values.description || '-'} - - +
diff --git a/ui/apps/platform/src/Components/Reports/View/NotifierConfigurationsDescriptionListGroup.tsx b/ui/apps/platform/src/Components/Reports/View/NotifierConfigurationsDescriptionListGroup.tsx new file mode 100644 index 0000000000000..978195737cbb9 --- /dev/null +++ b/ui/apps/platform/src/Components/Reports/View/NotifierConfigurationsDescriptionListGroup.tsx @@ -0,0 +1,47 @@ +import type { ReactElement } from 'react'; +import { + DescriptionListDescription, + DescriptionListGroup, + DescriptionListTerm, + Flex, +} from '@patternfly/react-core'; + +import type { NotifierConfiguration } from 'services/ReportsService.types'; + +import NotifierConfigurationDescriptionList from './NotifierConfigurationDescriptionList'; + +// Generic component for use cases: +// Delivery of compliance scan schedule configuration does not have schedules +// Delivery of vulnerability report configuration does have schedules + +export type NotifierConfigurationsDescriptionListGroupProps = { + notifiers: NotifierConfiguration[]; +}; + +function NotifierConfigurationsDescriptionListGroup({ + notifiers, +}: NotifierConfigurationsDescriptionListGroupProps): ReactElement { + /* eslint-disable react/no-array-index-key */ + return ( + + Destinations + + {notifiers.length === 0 ? ( + '-' + ) : ( + + {notifiers.map((notifier, index) => ( + + ))} + + )} + + + ); + /* eslint-enable react/no-array-index-key */ +} + +export default NotifierConfigurationsDescriptionListGroup; diff --git a/ui/apps/platform/src/Components/Reports/View/ScheduleDescriptionListGroup.tsx b/ui/apps/platform/src/Components/Reports/View/ScheduleDescriptionListGroup.tsx new file mode 100644 index 0000000000000..cc74e0ae9930d --- /dev/null +++ b/ui/apps/platform/src/Components/Reports/View/ScheduleDescriptionListGroup.tsx @@ -0,0 +1,32 @@ +import type { ReactElement } from 'react'; +import { + DescriptionListDescription, + DescriptionListGroup, + DescriptionListTerm, +} from '@patternfly/react-core'; + +import type { Schedule } from 'types/schedule.proto'; +import { formatRecurringSchedule } from 'utils/dateUtils'; + +// Generic component for use cases: +// Parameters of compliance scan schedule configuration +// Delivery of vulnerability report configuration + +export type ScheduleDescriptionListGroupProps = { + schedule: Schedule | null; +}; + +function ScheduleDescriptionListGroup({ + schedule, +}: ScheduleDescriptionListGroupProps): ReactElement { + return ( + + Schedule + + {schedule ? formatRecurringSchedule(schedule) : '-'} + + + ); +} + +export default ScheduleDescriptionListGroup; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ViewScanConfigDetail.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ViewScanConfigDetail.tsx index 2eedb04bd92ba..097da5d7bd50b 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ViewScanConfigDetail.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/ViewScanConfigDetail.tsx @@ -5,8 +5,6 @@ import { AlertActionCloseButton, Breadcrumb, BreadcrumbItem, - Card, - CardBody, Flex, FlexItem, PageSection, @@ -211,15 +209,7 @@ function ViewScanConfigDetail({ {activeScanConfigTab === 'CONFIGURATION_DETAILS' && ( - - - - - + )} {activeScanConfigTab === 'ALL_REPORT_JOBS' && scanConfig?.id && ( diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReviewConfig.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReviewConfig.tsx index b4c551c4d825b..d9f9d35ce75a1 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReviewConfig.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReviewConfig.tsx @@ -1,26 +1,13 @@ import { useFormikContext } from 'formik'; import type { FormikContextType } from 'formik'; -import { - Alert, - Badge, - Divider, - Flex, - FlexItem, - List, - ListItem, - PageSection, - Title, -} from '@patternfly/react-core'; +import { Alert, Divider, Flex, FlexItem, PageSection, Title } from '@patternfly/react-core'; -import NotifierConfigurationView from 'Components/NotifierConfiguration/NotifierConfigurationView'; import type { ComplianceIntegration } from 'services/ComplianceIntegrationService'; -import { - convertFormikParametersToSchedule, - getBodyDefault, - getSubjectDefault, -} from '../compliance.scanConfigs.utils'; +import { convertFormikParametersToSchedule } from '../compliance.scanConfigs.utils'; import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; +import ScanConfigClustersView from '../components/ScanConfigClustersView'; +import ScanConfigDeliveryView from '../components/ScanConfigDeliveryView'; import ScanConfigParametersView from '../components/ScanConfigParametersView'; import ScanConfigProfilesView from '../components/ScanConfigProfilesView'; @@ -67,7 +54,7 @@ function ReviewConfig({ clusters, errorMessage }: ReviewConfigProps) { - - - Clusters - {selectedClusters.length} - - - {selectedClusters.map((cluster) => ( - {cluster.clusterName} - ))} - - + - + - - Last scanned - - {scanConfig.lastExecutedTime - ? getTimeWithHourMinuteFromISO8601(scanConfig.lastExecutedTime) - : 'Scan is in progress'} - - - - Last updated - - {getTimeWithHourMinuteFromISO8601(scanConfig.lastUpdatedTime)} - - - + /> + - ); diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigActivityView.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigActivityView.tsx new file mode 100644 index 0000000000000..3ca82196f8056 --- /dev/null +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigActivityView.tsx @@ -0,0 +1,47 @@ +import type { ReactElement } from 'react'; +import { + DescriptionList, + DescriptionListDescription, + DescriptionListGroup, + DescriptionListTerm, + Flex, + Title, +} from '@patternfly/react-core'; + +import type { ComplianceScanConfigurationStatus } from 'services/ComplianceScanConfigurationService'; + +import { getTimeWithHourMinuteFromISO8601 } from '../compliance.scanConfigs.utils'; + +type ScanConfigActivityViewProps = { + headingLevel: 'h2' | 'h3'; + scanConfig: ComplianceScanConfigurationStatus; +}; + +function ScanConfigActivityView({ + headingLevel, + scanConfig, +}: ScanConfigActivityViewProps): ReactElement { + return ( + + Activity + + + Last scanned + + {scanConfig.lastExecutedTime + ? getTimeWithHourMinuteFromISO8601(scanConfig.lastExecutedTime) + : 'Scan is in progress'} + + + + Last updated + + {getTimeWithHourMinuteFromISO8601(scanConfig.lastUpdatedTime)} + + + + + ); +} + +export default ScanConfigActivityView; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigClustersView.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigClustersView.tsx new file mode 100644 index 0000000000000..73a4c2c2df56d --- /dev/null +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigClustersView.tsx @@ -0,0 +1,30 @@ +import type { ReactElement } from 'react'; +import { Badge, Flex, List, ListItem, Title } from '@patternfly/react-core'; + +import type { ComplianceIntegration } from 'services/ComplianceIntegrationService'; + +type ScanConfigClustersViewProps = { + headingLevel: 'h2' | 'h3'; + clusters: ComplianceIntegration[]; +}; + +function ScanConfigClustersView({ + headingLevel, + clusters, +}: ScanConfigClustersViewProps): ReactElement { + return ( + + + Clusters + {clusters.length} + + + {clusters.map((cluster) => ( + {cluster.clusterName} + ))} + + + ); +} + +export default ScanConfigClustersView; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigDeliveryView.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigDeliveryView.tsx new file mode 100644 index 0000000000000..071648d5a5105 --- /dev/null +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigDeliveryView.tsx @@ -0,0 +1,26 @@ +import type { ReactElement } from 'react'; +import { DescriptionList, Flex, Title } from '@patternfly/react-core'; + +import NotifierConfigurationsDescriptionListGroup from 'Components/Reports/View/NotifierConfigurationsDescriptionListGroup'; +import type { NotifierConfiguration } from 'services/ReportsService.types'; + +type ScanConfigDeliveryViewProps = { + headingLevel: 'h2' | 'h3'; + notifiers: NotifierConfiguration[]; +}; + +function ScanConfigDeliveryView({ + headingLevel, + notifiers, +}: ScanConfigDeliveryViewProps): ReactElement { + return ( + + Delivery + + + + + ); +} + +export default ScanConfigDeliveryView; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigParametersView.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigParametersView.tsx index 16339575878c4..9721427fadf67 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigParametersView.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/components/ScanConfigParametersView.tsx @@ -1,22 +1,15 @@ -import type { ReactElement, ReactNode } from 'react'; -import { - DescriptionList, - DescriptionListDescription, - DescriptionListGroup, - DescriptionListTerm, - Flex, - Title, -} from '@patternfly/react-core'; +import type { ReactElement } from 'react'; +import { DescriptionList, Flex, Title } from '@patternfly/react-core'; +import DetailsDescriptionListGroups from 'Components/Reports/View/DetailsDescriptionListGroups'; +import ScheduleDescriptionListGroup from 'Components/Reports/View/ScheduleDescriptionListGroup'; import type { Schedule } from 'types/schedule.proto'; -import { formatRecurringSchedule } from 'utils/dateUtils'; type ScanConfigParametersViewProps = { headingLevel: 'h2' | 'h3'; scanName: string; description?: string; scanSchedule: Schedule; - children?: ReactNode; }; function ScanConfigParametersView({ @@ -24,29 +17,13 @@ function ScanConfigParametersView({ headingLevel, scanName, scanSchedule, - children, }: ScanConfigParametersViewProps): ReactElement { return ( Parameters - - Name - {scanName} - - - Description - - {description || No description} - - - - Schedule - - {formatRecurringSchedule(scanSchedule)} - - - {children} + + ); From 7c28d788d3d797cc5201fb608a934aaed038bc6e Mon Sep 17 00:00:00 2001 From: rhacs-bot <148914812+rhacs-bot@users.noreply.github.com> Date: Thu, 1 Oct 2026 15:50:08 +0200 Subject: [PATCH 172/327] chore(release): Add 4.10.10 to scanner updater configuration (#23189) Co-authored-by: vladbologa --- scanner/updater/version/RELEASE_VERSION | 1 + 1 file changed, 1 insertion(+) diff --git a/scanner/updater/version/RELEASE_VERSION b/scanner/updater/version/RELEASE_VERSION index 9461ad2816d53..cbb5c73927c9d 100644 --- a/scanner/updater/version/RELEASE_VERSION +++ b/scanner/updater/version/RELEASE_VERSION @@ -8,6 +8,7 @@ # offline bundle for that release. 4.10.0 4.10.1 +4.10.10 4.10.2 4.10.3 4.10.4 From e2079d08b9ceceaec269271d3c0955b347bdd558 Mon Sep 17 00:00:00 2001 From: David Shrewsberry <99685630+dashrews78@users.noreply.github.com> Date: Thu, 1 Oct 2026 10:01:32 -0400 Subject: [PATCH 173/327] fix(test): one source of byodb flakes (#23190) --- tests/byodb/lib.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/byodb/lib.sh b/tests/byodb/lib.sh index 55fe4e0d82f90..38ebe7f5e7ed9 100644 --- a/tests/byodb/lib.sh +++ b/tests/byodb/lib.sh @@ -19,7 +19,8 @@ deploy_external_postgres() { kubectl create namespace database envsubst < ./tests/byodb/simple-postgres.yaml | kubectl apply -f - - kubectl wait --for=condition=Ready pod -l app=postgres -n database --timeout=180s + # The StatefulSet exists, but its pod may not have been created yet. + kubectl rollout status statefulset/postgres -n database --timeout=180s } preamble() { From 957a0083cdb74288d4a039907b1c47213dc149fd Mon Sep 17 00:00:00 2001 From: Yann Brillouet <91869377+rhybrillou@users.noreply.github.com> Date: Thu, 1 Oct 2026 18:36:05 +0200 Subject: [PATCH 174/327] chore(deps): change github actionlint to a repo with active support (#23191) --- .github/workflows/cut-rc.yml | 2 ++ .github/workflows/release-ci.yaml | 4 ++++ Makefile | 2 +- tools/linters/go.mod | 12 ++++++------ tools/linters/go.sum | 21 ++++++++++----------- tools/linters/tools-import.go | 2 +- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.github/workflows/cut-rc.yml b/.github/workflows/cut-rc.yml index 6baf9ba5875a9..5ee3dc680dc37 100644 --- a/.github/workflows/cut-rc.yml +++ b/.github/workflows/cut-rc.yml @@ -37,6 +37,8 @@ on: default: true type: boolean +cache-mode: read + env: main_branch: ${{github.event.repository.default_branch}} script_url: /repos/${{github.repository}}/contents/.github/workflows/scripts/common.sh?ref=${{ github.ref_name }} diff --git a/.github/workflows/release-ci.yaml b/.github/workflows/release-ci.yaml index 32c8cd7fb54c5..7a631fd36b3ad 100644 --- a/.github/workflows/release-ci.yaml +++ b/.github/workflows/release-ci.yaml @@ -16,6 +16,10 @@ jobs: echo "Ref: ${{ github.ref_name }}" >> "$GITHUB_STEP_SUMMARY" build: + permissions: + actions: read + contents: read + pull-requests: write name: Build uses: ./.github/workflows/build.yaml secrets: inherit diff --git a/Makefile b/Makefile index 7ab67e2cd9c67..e774457dc668f 100644 --- a/Makefile +++ b/Makefile @@ -138,7 +138,7 @@ $(call go-tool, MOCKGEN_BIN, go.uber.org/mock/mockgen) $(call go-tool, GO_JUNIT_REPORT_BIN, github.com/jstemmer/go-junit-report/v2, tools/test) $(call go-tool, PROTOLOCK_BIN, github.com/nilslice/protolock/cmd/protolock, tools/linters) $(call go-tool, RATCHET_BIN, github.com/sethvargo/ratchet, tools/linters) -$(call go-tool, ACTIONLINT_BIN, github.com/rhysd/actionlint/cmd/actionlint, tools/linters) +$(call go-tool, ACTIONLINT_BIN, actionlint.kjanat.dev/cmd/actionlint, tools/linters) $(call go-tool, GOVULNCHECK_BIN, golang.org/x/vuln/cmd/govulncheck, tools/linters) $(call go-tool, IMAGE_PREFETCHER_DEPLOY_BIN, github.com/stackrox/image-prefetcher/deploy, tools/test) $(call go-tool, PROMETHEUS_METRIC_PARSER_BIN, github.com/stackrox/prometheus-metric-parser, tools/test) diff --git a/tools/linters/go.mod b/tools/linters/go.mod index 3c6174baa1a78..4d3dd838c74ef 100644 --- a/tools/linters/go.mod +++ b/tools/linters/go.mod @@ -1,11 +1,11 @@ module github.com/stackrox/stackrox/tools/linters -go 1.26.3 +go 1.26.7 require ( + actionlint.kjanat.dev v1.17.0 github.com/golangci/golangci-lint/v2 v2.13.2 github.com/nilslice/protolock v0.17.0 - github.com/rhysd/actionlint v1.7.12 github.com/sethvargo/ratchet v0.12.0 golang.org/x/vuln v1.8.0 ) @@ -146,9 +146,9 @@ require ( github.com/maratori/testpackage v1.1.2 // indirect github.com/matoous/godox v1.1.0 // indirect github.com/mattn/go-colorable v0.1.15 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.24 // indirect - github.com/mattn/go-shellwords v1.0.12 // indirect + github.com/mattn/go-isatty v0.0.24 // indirect + github.com/mattn/go-runewidth v0.0.28 // indirect + github.com/mattn/go-shellwords v1.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mgechev/revive v1.15.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -228,7 +228,7 @@ require ( golang.org/x/sync v0.23.0 // indirect golang.org/x/sys v0.48.0 // indirect golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 // indirect - golang.org/x/text v0.40.0 // indirect + golang.org/x/text v0.41.0 // indirect golang.org/x/tools v0.50.0 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/tools/linters/go.sum b/tools/linters/go.sum index 1efaa36ce124b..3b5529ba3af82 100644 --- a/tools/linters/go.sum +++ b/tools/linters/go.sum @@ -2,6 +2,8 @@ 4d63.com/gocheckcompilerdirectives v1.4.0/go.mod h1:9ZOAiMOjqC/nRwci2fcUXVHUNLG/cH6r6rhUh+jTFtQ= 4d63.com/gochecknoglobals v0.2.2 h1:H1vdnwnMaZdQW/N+NrkT1SZMTBmcwHe9Vq8lJcYYTtU= 4d63.com/gochecknoglobals v0.2.2/go.mod h1:lLxwTQjL5eIesRbvnzIP3jZtG140FnTdz+AlMa+ogt0= +actionlint.kjanat.dev v1.17.0 h1:wzkg6amflGqcF4QlkSERw0L1kdGSb/z2KZ7aidlgD74= +actionlint.kjanat.dev v1.17.0/go.mod h1:9BVNedMJ1sZTdAiszWaOl+H4IiKD9PfKrkwqpxeB+ao= charm.land/lipgloss/v2 v2.0.6 h1:EaGKeuA8FvF+v2BT5VmZd2LoYLaMZJXA5n34th8nCIQ= charm.land/lipgloss/v2 v2.0.6/go.mod h1:ipDDJNSGa1hlwDtSfW1s2/xR8Vdhbut4PXh2zEKZd0Q= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -452,12 +454,12 @@ github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.24 h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU= -github.com/mattn/go-runewidth v0.0.24/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= -github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI= +github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= +github.com/mattn/go-runewidth v0.0.28 h1:rPyg2ybwEKPebvpzVWe1gKBkH8EQFkxO4Y0hjBeLaBU= +github.com/mattn/go-runewidth v0.0.28/go.mod h1:3qAiGCV4Koz/yuveO58qUefmUTRm8r0IGEXZ9jeHp/8= +github.com/mattn/go-shellwords v1.0.14 h1:yUKzIgsCnosndOASY6/enly1EAuaXeFSQ7cdyA3OuYg= +github.com/mattn/go-shellwords v1.0.14/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgechev/revive v1.15.0 h1:vJ0HzSBzfNyPbHKolgiFjHxLek9KUijhqh42yGoqZ8Q= @@ -544,8 +546,6 @@ github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4l github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= github.com/raeperd/recvcheck v0.3.0 h1:PM+XYvyxIj3bo+kobJfFTdTuU3Lmfu96mKDbyHDbRt8= github.com/raeperd/recvcheck v0.3.0/go.mod h1:PZNwG+HztFYMH2ZPq0Hu3QgkV2yiA6VrtNz9c1fXWJo= -github.com/rhysd/actionlint v1.7.12 h1:vQ4GeJN86C0QH+gTUQcs8McmK62OLT3kmakPMtEWYnY= -github.com/rhysd/actionlint v1.7.12/go.mod h1:krOUhujIsJusovkaYzQ/VNH8PFexjNKqU0q5XI/4w+g= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= @@ -831,7 +831,6 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 h1:F5BWKvW126NXR74uxkxuc1jQHhm/rwm/J3rSiFyuRs4= @@ -847,8 +846,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= -golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= +golang.org/x/text v0.41.0 h1:vz/seA0lnX87Othu2f/0L24RcgrXD9/YFTSuGjj3rH8= +golang.org/x/text v0.41.0/go.mod h1:jvf1O8ajNzZqhSrQBPbutR/EB83Cc0CFrezNQIwbb5M= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/tools/linters/tools-import.go b/tools/linters/tools-import.go index c25dd3d3ed84e..ba96ee84647f5 100644 --- a/tools/linters/tools-import.go +++ b/tools/linters/tools-import.go @@ -8,9 +8,9 @@ package tools import ( // Tool dependencies, not used anywhere in the code. + _ "actionlint.kjanat.dev/cmd/actionlint" _ "github.com/golangci/golangci-lint/v2/cmd/golangci-lint" _ "github.com/nilslice/protolock" - _ "github.com/rhysd/actionlint/cmd/actionlint" _ "github.com/sethvargo/ratchet" _ "golang.org/x/vuln/cmd/govulncheck" ) From c47677e324073ebeb4de66f7dc8219ab76a3fc08 Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Thu, 1 Oct 2026 14:06:51 -0400 Subject: [PATCH 175/327] ROX-37298: Make compliance scan wizard step name and title consistent (#23108) --- .../Schedules/Wizard/ReportConfiguration.tsx | 2 +- .../Schedules/Wizard/ScanConfigOptions.tsx | 3 --- .../Schedules/Wizard/ScanConfigWizardForm.tsx | 9 +++++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx index 93093abad42ee..13ef9885a0edd 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx @@ -19,7 +19,7 @@ function ReportConfiguration(): ReactElement { - Report + Delivery Optionally configure e-mail delivery destinations for reports diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx index cbcaef265f594..ea400c613ecde 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx @@ -108,9 +108,6 @@ function ScanConfigOptions(): ReactElement { - - - diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx index 3949b3893004a..e67be6e7de4e8 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigWizardForm.tsx @@ -27,13 +27,14 @@ import useFormikScanConfig from './useFormikScanConfig'; import { convertFormikToScanConfig } from '../compliance.scanConfigs.utils'; import type { ScanConfigFormValues, SchedulePageAction } from '../compliance.scanConfigs.utils'; -const PARAMETERS = 'Set parameters'; +// Parameters (and so on) for step label are consistent with the corresponding step heading and view heading. +const PARAMETERS = 'Parameters'; const PARAMETERS_ID = 'parameters'; -const SELECT_CLUSTERS = 'Select clusters'; +const SELECT_CLUSTERS = 'Clusters'; const SELECT_CLUSTERS_ID = 'clusters'; -const SELECT_PROFILES = 'Select profiles'; +const SELECT_PROFILES = 'Profiles'; const SELECT_PROFILES_ID = 'profiles'; -const CONFIGURE_REPORT = 'Configure report'; +const CONFIGURE_REPORT = 'Delivery'; const CONFIGURE_REPORT_ID = 'report'; const REVIEW_CONFIG = 'Review'; const REVIEW_CONFIG_ID = 'review'; From e8a28befcac89bdfb0c608cf14a9a2c4cd572739 Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Thu, 1 Oct 2026 11:34:46 -0700 Subject: [PATCH 176/327] chore(ui): delete unread search autocomplete Redux (#22921) Signed-off-by: Saif Chaudhry --- .../Components/SearchInput/SearchInput.jsx | 4 -- .../URLSearchInputWithAutocomplete.jsx | 11 +--- ui/apps/platform/src/reducers/index.js | 4 -- .../src/reducers/searchAutocomplete.js | 57 ------------------- ui/apps/platform/src/sagas/index.js | 3 +- .../src/sagas/searchAutocompleteSagas.js | 24 -------- 6 files changed, 2 insertions(+), 101 deletions(-) delete mode 100644 ui/apps/platform/src/reducers/searchAutocomplete.js delete mode 100644 ui/apps/platform/src/sagas/searchAutocompleteSagas.js diff --git a/ui/apps/platform/src/Components/SearchInput/SearchInput.jsx b/ui/apps/platform/src/Components/SearchInput/SearchInput.jsx index fc8373d45b82d..99fc6726f6590 100644 --- a/ui/apps/platform/src/Components/SearchInput/SearchInput.jsx +++ b/ui/apps/platform/src/Components/SearchInput/SearchInput.jsx @@ -32,7 +32,6 @@ export const searchInputPropTypes = { sendAutoCompleteRequest: PropTypes.func, clearAutoComplete: PropTypes.func, autoCompleteCategories: PropTypes.arrayOf(PropTypes.string), - setAllSearchOptions: PropTypes.func, isDisabled: PropTypes.bool, prependAutocompleteQuery: PropTypes.arrayOf( PropTypes.shape({ @@ -53,7 +52,6 @@ export const searchInputDefaultProps = { sendAutoCompleteRequest: null, clearAutoComplete: null, autoCompleteCategories: [], - setAllSearchOptions: () => {}, isDisabled: false, prependAutocompleteQuery: [], }; @@ -108,8 +106,6 @@ class SearchInput extends Component { } sendAutoCompleteRequest = (searchOptions, input) => { - this.props.setAllSearchOptions(searchOptions); - // Don't populate autocomplete if the text box is totally empty, // since we want people to see just the chips in that case. if (!searchOptions.length && !input.length) { diff --git a/ui/apps/platform/src/Components/URLSearchInputWithAutocomplete.jsx b/ui/apps/platform/src/Components/URLSearchInputWithAutocomplete.jsx index 642611d65ef5f..575335cd00c91 100644 --- a/ui/apps/platform/src/Components/URLSearchInputWithAutocomplete.jsx +++ b/ui/apps/platform/src/Components/URLSearchInputWithAutocomplete.jsx @@ -3,10 +3,8 @@ import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; import PropTypes from 'prop-types'; import { components } from 'react-select'; import queryString from 'qs'; -import { connect } from 'react-redux'; import { Filter } from 'react-feather'; -import { actions as searchAutoCompleteActions } from 'reducers/searchAutocomplete'; import { Creatable } from 'Components/ReactSelect'; import searchOptionsToQuery from 'services/searchOptionsToQuery'; import searchContext from 'Containers/searchContext'; @@ -99,7 +97,6 @@ export const removeValuesForKey = (oldOptions, newOptions) => { const URLSearchInputWithAutocomplete = ({ autoCompleteResults, categoryOptions, - setAllSearchOptions, clearAutocomplete, fetchAutocomplete, placeholder, @@ -235,7 +232,6 @@ const URLSearchInputWithAutocomplete = ({ function updateAutocompleteState(searchOptions) { return (input) => { - setAllSearchOptions(searchOptions); if (searchOptions.length === 0) { if (clearAutocomplete) { clearAutocomplete(); @@ -311,7 +307,6 @@ URLSearchInputWithAutocomplete.propTypes = { autoCompleteResults: PropTypes.arrayOf(PropTypes.string), fetchAutocomplete: PropTypes.func, clearAutocomplete: PropTypes.func, - setAllSearchOptions: PropTypes.func.isRequired, prependAutocompleteQuery: PropTypes.arrayOf( PropTypes.shape({ value: PropTypes.string, @@ -328,8 +323,4 @@ URLSearchInputWithAutocomplete.defaultProps = { prependAutocompleteQuery: [], }; -const mapDispatchToProps = { - setAllSearchOptions: searchAutoCompleteActions.setAllSearchOptions, -}; - -export default connect(null, mapDispatchToProps)(URLSearchInputWithAutocomplete); +export default URLSearchInputWithAutocomplete; diff --git a/ui/apps/platform/src/reducers/index.js b/ui/apps/platform/src/reducers/index.js index 98a4f0139e04f..17724d264e4ab 100644 --- a/ui/apps/platform/src/reducers/index.js +++ b/ui/apps/platform/src/reducers/index.js @@ -7,7 +7,6 @@ import auth, { selectors as authSelectors } from './auth'; import invite, { selectors as inviteSelectors } from './invite'; import notifications, { selectors as notificationSelectors } from './notifications'; import roles, { selectors as roleSelectors } from './roles'; -import searchAutoComplete, { selectors as searchAutoCompleteSelectors } from './searchAutocomplete'; import serverResponseStatus, { selectors as serverResponseStatusSelectors, } from './serverResponseStatus'; @@ -25,7 +24,6 @@ const appReducer = combineReducers({ invite, notifications, roles, - searchAutoComplete, serverResponseStatus, loading, groups, @@ -49,7 +47,6 @@ const getAuth = (state) => getApp(state).auth; const getInvite = (state) => getApp(state).invite; const getNotifications = (state) => getApp(state).notifications; const getRoles = (state) => getApp(state).roles; -const getSearchAutocomplete = (state) => getApp(state).searchAutoComplete; const getServerResponseStatus = (state) => getApp(state).serverResponseStatus; const getLoadingStatus = (state) => getApp(state).loading; @@ -61,7 +58,6 @@ const boundSelectors = { ...bindSelectors(getInvite, inviteSelectors), ...bindSelectors(getNotifications, notificationSelectors), ...bindSelectors(getRoles, roleSelectors), - ...bindSelectors(getSearchAutocomplete, searchAutoCompleteSelectors), ...bindSelectors(getServerResponseStatus, serverResponseStatusSelectors), ...bindSelectors(getLoadingStatus, loadingSelectors), diff --git a/ui/apps/platform/src/reducers/searchAutocomplete.js b/ui/apps/platform/src/reducers/searchAutocomplete.js deleted file mode 100644 index 2f6196a4200eb..0000000000000 --- a/ui/apps/platform/src/reducers/searchAutocomplete.js +++ /dev/null @@ -1,57 +0,0 @@ -import { combineReducers } from 'redux'; -import isEqual from 'lodash/isEqual'; - -export const types = { - SEND_AUTOCOMPLETE_REQUEST: 'autocomplete/SEND_AUTOCOMPLETE_REQUEST', - RECORD_AUTOCOMPLETE_RESPONSE: 'autocomplete/RECORD_AUTOCOMPLETE_RESPONSE', - CLEAR_AUTOCOMPLETE: 'autocomplete/CLEAR_AUTOCOMPLETE', - SET_ALL_SEARCH_OPTIONS: 'search/SET_ALL_SEARCH_OPTIONS', -}; - -export const actions = { - sendAutoCompleteRequest: (request) => ({ - type: types.SEND_AUTOCOMPLETE_REQUEST, - ...request, - }), - recordAutoCompleteResponse: (autoCompleteResults) => ({ - type: types.RECORD_AUTOCOMPLETE_RESPONSE, - autoCompleteResults, - }), - clearAutoComplete: () => ({ type: types.CLEAR_AUTOCOMPLETE }), - setAllSearchOptions: (options) => ({ type: types.SET_ALL_SEARCH_OPTIONS, options }), -}; - -const autoCompleteResults = (state = [], action) => { - if (action.type === types.RECORD_AUTOCOMPLETE_RESPONSE) { - return action.autoCompleteResults; - } - if (action.type === types.CLEAR_AUTOCOMPLETE) { - return []; - } - return state; -}; - -const allSearchOptions = (state = [], action) => { - if (action.type === 'search/SET_ALL_SEARCH_OPTIONS') { - const { options } = action; - if (options.length % 2 === 0) { - return isEqual(options, state) ? state : options; - } - } - return state; -}; - -const reducer = combineReducers({ - autoCompleteResults, - allSearchOptions, -}); - -const getAutoCompleteResults = (state) => state.autoCompleteResults; -const getAllSearchOptions = (state) => state.allSearchOptions; - -export const selectors = { - getAutoCompleteResults, - getAllSearchOptions, -}; - -export default reducer; diff --git a/ui/apps/platform/src/sagas/index.js b/ui/apps/platform/src/sagas/index.js index 769f824e4a97c..96f5cfd2de5e9 100644 --- a/ui/apps/platform/src/sagas/index.js +++ b/ui/apps/platform/src/sagas/index.js @@ -2,10 +2,9 @@ import { all, fork } from 'redux-saga/effects'; import authProviders from './authSagas'; import roles from './roleSagas'; -import searchAutoComplete from './searchAutocompleteSagas'; import groups from './groupSagas'; export default function* root() { - yield all([fork(authProviders), fork(roles), fork(searchAutoComplete), fork(groups)]); + yield all([fork(authProviders), fork(roles), fork(groups)]); } diff --git a/ui/apps/platform/src/sagas/searchAutocompleteSagas.js b/ui/apps/platform/src/sagas/searchAutocompleteSagas.js deleted file mode 100644 index 6e1f507029d63..0000000000000 --- a/ui/apps/platform/src/sagas/searchAutocompleteSagas.js +++ /dev/null @@ -1,24 +0,0 @@ -import { call, fork, put, take } from 'redux-saga/effects'; - -import { fetchAutoCompleteResults as serviceFetchAutoCompleteResults } from 'services/SearchService'; -import { actions, types } from 'reducers/searchAutocomplete'; - -function* getAutoCompleteResults(request) { - try { - const result = yield call(serviceFetchAutoCompleteResults, request); - yield put(actions.recordAutoCompleteResponse(result)); - } catch { - yield put(actions.recordAutoCompleteResponse([])); - } -} - -function* watchFetchRequest() { - while (true) { - const request = yield take(types.SEND_AUTOCOMPLETE_REQUEST); - yield fork(getAutoCompleteResults, request); - } -} - -export default function* searchAutoComplete() { - yield fork(watchFetchRequest); -} From 19ae1838654af209015ca8e179746efedd16fefb Mon Sep 17 00:00:00 2001 From: Khushboo Sancheti <42253461+clickboo@users.noreply.github.com> Date: Thu, 1 Oct 2026 12:46:35 -0700 Subject: [PATCH 177/327] ROX-37330,ROX-37331: Fix incorrect init container protos,CR generation (#23135) Co-authored-by: Cursor --- central/graphql/resolvers/generated.go | 19 +++ .../customresource/custom_resource_test.go | 3 + central/policy/customresource/policy.go | 20 ++- .../testdata/custom_resource.yaml | 3 + central/policy/service/validator.go | 17 +-- central/policy/service/validator_test.go | 23 ++- .../api/v1alpha1/policy_types.go | 14 +- .../api/v1alpha1/policy_types_test.go | 6 +- .../api/v1alpha1/zz_generated.deepcopy.go | 2 +- .../config.stackrox.io_securitypolicies.yaml | 7 +- generated/api/v1/alert_service.swagger.json | 18 +-- .../api/v1/detection_service.swagger.json | 10 +- generated/api/v1/policy_service.swagger.json | 18 +-- generated/storage/policy.pb.go | 133 ++++++++++++------ generated/storage/policy_vtproto.pb.go | 22 +-- .../config.stackrox.io_securitypolicies.yaml | 7 +- .../config.stackrox.io_securitypolicies.yaml | 7 +- pkg/booleanpolicy/filter/compile_test.go | 19 +-- pkg/booleanpolicy/filter/container_type.go | 12 +- pkg/detection/compiled_policy_test.go | 100 +++++++++++++ proto/storage/policy.proto | 10 +- proto/storage/proto.lock | 13 +- tests/init_container_test.go | 90 ++++++++++-- tests/policy_as_code_test.go | 4 +- .../config-as-code-helper/main.go | 6 + .../Policies/Detail/PolicyDetailContent.tsx | 1 + .../Policies/Detail/PolicyFiltersSection.tsx | 22 +-- .../Table/PolicyEvaluationFilterLabels.tsx | 2 +- .../Wizard/StepFilters/PolicyFiltersForm.tsx | 40 +++--- .../Policies/policies.utils.test.ts | 14 ++ .../src/Containers/Policies/policies.utils.ts | 12 ++ ui/apps/platform/src/types/policy.proto.ts | 4 +- 32 files changed, 497 insertions(+), 181 deletions(-) diff --git a/central/graphql/resolvers/generated.go b/central/graphql/resolvers/generated.go index 38b997da3faf7..9098714ce5e52 100644 --- a/central/graphql/resolvers/generated.go +++ b/central/graphql/resolvers/generated.go @@ -1448,6 +1448,7 @@ func registerGeneratedTypes(builder generator.SchemaBuilder) { "clusterName: String!", "namespaceName: String!", })) + generator.RegisterProtoEnum(builder, reflect.TypeOf(storage.SkipContainerType(0))) utils.Must(builder.AddType("SlimUser", []string{ "id: ID!", "name: String!", @@ -15629,6 +15630,24 @@ func (resolver *simpleAccessScope_Rules_NamespaceResolver) NamespaceName(ctx con return value } +func toSkipContainerType(value *string) storage.SkipContainerType { + if value != nil { + return storage.SkipContainerType(storage.SkipContainerType_value[*value]) + } + return storage.SkipContainerType(0) +} + +func toSkipContainerTypes(values *[]string) []storage.SkipContainerType { + if values == nil { + return nil + } + output := make([]storage.SkipContainerType, len(*values)) + for i, v := range *values { + output[i] = toSkipContainerType(&v) + } + return output +} + type slimUserResolver struct { ctx context.Context root *Resolver diff --git a/central/policy/customresource/custom_resource_test.go b/central/policy/customresource/custom_resource_test.go index 94cf6c6f9e545..a648494d355fe 100644 --- a/central/policy/customresource/custom_resource_test.go +++ b/central/policy/customresource/custom_resource_test.go @@ -78,6 +78,9 @@ func getTestPolicy() *storage.Policy { ClusterLabel: &storage.Scope_Label{Key: "env", Value: "prod"}, NamespaceLabel: &storage.Scope_Label{Key: "team", Value: "platform"}, }) + p.EvaluationFilter = &storage.EvaluationFilter{ + SkipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, + } return p } diff --git a/central/policy/customresource/policy.go b/central/policy/customresource/policy.go index 233b500a5c66c..9033f734c2ba6 100644 --- a/central/policy/customresource/policy.go +++ b/central/policy/customresource/policy.go @@ -111,6 +111,22 @@ func convertPolicySection(p *storage.PolicySection) *PolicySection { } } +// EvaluationFilter represents storage.EvaluationFilter in the Custom Resource. +type EvaluationFilter struct { + SkipContainerTypes []string `yaml:"skipContainerTypes,omitempty"` +} + +// convertEvaluationFilter Converts storage.EvaluationFilter to *EvaluationFilter +func convertEvaluationFilter(p *storage.EvaluationFilter) *EvaluationFilter { + if p == nil { + return nil + } + + return &EvaluationFilter{ + SkipContainerTypes: sliceutils.StringSlice(p.SkipContainerTypes...), + } +} + // Policy represents storage.Policy in the Custom Resource. type Policy struct { Name string `yaml:"policyName"` @@ -131,7 +147,7 @@ type Policy struct { CriteriaLocked bool `yaml:"criteriaLocked"` MitreVectorsLocked bool `yaml:"mitreVectorsLocked"` IsDefault bool `yaml:"isDefault"` - EvaluationFilter *storage.EvaluationFilter `yaml:"evaluationFilter,omitempty"` + EvaluationFilter *EvaluationFilter `yaml:"evaluationFilter,omitempty"` } // convertPolicy Converts storage.Policy to *Policy @@ -159,7 +175,7 @@ func convertPolicy(p *storage.Policy) *Policy { CriteriaLocked: p.CriteriaLocked, MitreVectorsLocked: p.MitreVectorsLocked, IsDefault: p.IsDefault, - EvaluationFilter: p.EvaluationFilter, + EvaluationFilter: convertEvaluationFilter(p.EvaluationFilter), } } diff --git a/central/policy/customresource/testdata/custom_resource.yaml b/central/policy/customresource/testdata/custom_resource.yaml index 4de610ec37a80..b70c12c23ebb5 100644 --- a/central/policy/customresource/testdata/custom_resource.yaml +++ b/central/policy/customresource/testdata/custom_resource.yaml @@ -147,3 +147,6 @@ spec: criteriaLocked: false mitreVectorsLocked: false isDefault: false + evaluationFilter: + skipContainerTypes: + - SKIP_INIT diff --git a/central/policy/service/validator.go b/central/policy/service/validator.go index 90f6dc87ddc97..f9ee90b0afdb4 100644 --- a/central/policy/service/validator.go +++ b/central/policy/service/validator.go @@ -510,14 +510,15 @@ func (s *policyValidator) validateEvaluationFilter(policy *storage.Policy) error if len(policy.GetEvaluationFilter().GetSkipContainerTypes()) == 0 { return nil } - if policies.AppliesAtBuildTime(policy) && !policies.AppliesAtDeployTime(policy) && !policies.AppliesAtRunTime(policy) { - return errors.New("container type filters in the evaluation filter are not applicable to build-only policies") - } - if s.isAuditEventPolicy(policy) { - return errors.New("container type filters in the evaluation filter are not applicable to audit log event policies") - } - if s.isNodeEventPolicy(policy) { - return errors.New("container type filters in the evaluation filter are not applicable to node event policies") + if !containerTypeFilterApplicable(policy) { + return errors.New("container type filters apply only to deploy-time policies and runtime policies with a deployment event source") } return nil } + +func containerTypeFilterApplicable(policy *storage.Policy) bool { + if policies.AppliesAtDeployTime(policy) { + return true + } + return policies.AppliesAtRunTime(policy) && policy.GetEventSource() == storage.EventSource_DEPLOYMENT_EVENT +} diff --git a/central/policy/service/validator_test.go b/central/policy/service/validator_test.go index 1e317de9785e4..e842a42bec769 100644 --- a/central/policy/service/validator_test.go +++ b/central/policy/service/validator_test.go @@ -1379,48 +1379,45 @@ func (s *PolicyValidatorTestSuite) TestValidateEvaluationFilter() { tests := map[string]struct { lifecycleStages []storage.LifecycleStage eventSource storage.EventSource - skipContainerTypes []storage.ContainerType + skipContainerTypes []storage.SkipContainerType expectError bool }{ "build-only with skip init is rejected": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_BUILD}, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, expectError: true, }, "deploy with skip init is allowed": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_DEPLOY}, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, }, "build + deploy with skip init is allowed": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_BUILD, storage.LifecycleStage_DEPLOY}, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, - }, - "runtime with skip init is allowed": { - lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_RUNTIME}, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, }, "build-only with no filter is allowed": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_BUILD}, }, - "no lifecycle stages with skip init is allowed": { - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + "no lifecycle stages with skip init is rejected": { + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, + expectError: true, }, "audit log event with skip init is rejected": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_RUNTIME}, eventSource: storage.EventSource_AUDIT_LOG_EVENT, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, expectError: true, }, "node event with skip init is rejected": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_RUNTIME}, eventSource: storage.EventSource_NODE_EVENT, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, expectError: true, }, "deployment event with skip init is allowed": { lifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_RUNTIME}, eventSource: storage.EventSource_DEPLOYMENT_EVENT, - skipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, }, } diff --git a/config-controller/api/v1alpha1/policy_types.go b/config-controller/api/v1alpha1/policy_types.go index c21b47a620ea6..83694f97aedcc 100644 --- a/config-controller/api/v1alpha1/policy_types.go +++ b/config-controller/api/v1alpha1/policy_types.go @@ -152,11 +152,15 @@ type MitreAttackVectors struct { Techniques []string `json:"techniques,omitempty"` } -// +kubebuilder:validation:Enum=REGULAR;INIT -type ContainerType string +// SkipContainerType lists container kinds a policy may skip during evaluation. +// +kubebuilder:validation:Enum=SKIP_INIT +type SkipContainerType string +// EvaluationFilter pre-filters which entities a policy evaluates. type EvaluationFilter struct { - SkipContainerTypes []ContainerType `json:"skipContainerTypes,omitempty"` + // SkipContainerTypes lists container kinds to skip during evaluation. + // +optional + SkipContainerTypes []SkipContainerType `json:"skipContainerTypes,omitempty"` } type SecurityPolicyConditionType string @@ -433,9 +437,9 @@ func (p SecurityPolicySpec) ToProtobuf(caches map[CacheType]map[string]string) ( if p.EvaluationFilter != nil && len(p.EvaluationFilter.SkipContainerTypes) > 0 { protoFilter := &storage.EvaluationFilter{} for _, ct := range p.EvaluationFilter.SkipContainerTypes { - val, found := storage.ContainerType_value[string(ct)] + val, found := storage.SkipContainerType_value[string(ct)] if found { - protoFilter.SkipContainerTypes = append(protoFilter.SkipContainerTypes, storage.ContainerType(val)) + protoFilter.SkipContainerTypes = append(protoFilter.SkipContainerTypes, storage.SkipContainerType(val)) } } proto.EvaluationFilter = protoFilter diff --git a/config-controller/api/v1alpha1/policy_types_test.go b/config-controller/api/v1alpha1/policy_types_test.go index 2c69dabf34afd..31f5618cb145c 100644 --- a/config-controller/api/v1alpha1/policy_types_test.go +++ b/config-controller/api/v1alpha1/policy_types_test.go @@ -232,12 +232,12 @@ func TestConditionUpdates(t *testing.T) { func TestToProtobufEvaluationFilter(t *testing.T) { tests := map[string]struct { filter *EvaluationFilter - expectedTypes []storage.ContainerType + expectedTypes []storage.SkipContainerType expectNilProto bool }{ "skip init containers": { - filter: &EvaluationFilter{SkipContainerTypes: []ContainerType{"INIT"}}, - expectedTypes: []storage.ContainerType{storage.ContainerType_INIT}, + filter: &EvaluationFilter{SkipContainerTypes: []SkipContainerType{"SKIP_INIT"}}, + expectedTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, }, "nil filter": { filter: nil, diff --git a/config-controller/api/v1alpha1/zz_generated.deepcopy.go b/config-controller/api/v1alpha1/zz_generated.deepcopy.go index 89f899775ea59..dba0696cac6f8 100644 --- a/config-controller/api/v1alpha1/zz_generated.deepcopy.go +++ b/config-controller/api/v1alpha1/zz_generated.deepcopy.go @@ -45,7 +45,7 @@ func (in *EvaluationFilter) DeepCopyInto(out *EvaluationFilter) { *out = *in if in.SkipContainerTypes != nil { in, out := &in.SkipContainerTypes, &out.SkipContainerTypes - *out = make([]ContainerType, len(*in)) + *out = make([]SkipContainerType, len(*in)) copy(*out, *in) } } diff --git a/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml b/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml index 61a83b1baa76d..07dee8e82b5ab 100644 --- a/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml +++ b/config-controller/config/crd/bases/config.stackrox.io_securitypolicies.yaml @@ -82,10 +82,13 @@ spec: evaluates. properties: skipContainerTypes: + description: SkipContainerTypes lists container kinds to skip + during evaluation. items: + description: SkipContainerType lists container kinds a policy + may skip during evaluation. enum: - - REGULAR - - INIT + - SKIP_INIT type: string type: array type: object diff --git a/generated/api/v1/alert_service.swagger.json b/generated/api/v1/alert_service.swagger.json index 307efecd9bdcd..15fb7393232a1 100644 --- a/generated/api/v1/alert_service.swagger.json +++ b/generated/api/v1/alert_service.swagger.json @@ -1244,14 +1244,6 @@ }, "title": "Next tag: 13" }, - "storageContainerType": { - "type": "string", - "enum": [ - "REGULAR", - "INIT" - ], - "default": "REGULAR" - }, "storageEnforcementAction": { "type": "string", "enum": [ @@ -1273,7 +1265,7 @@ "skipContainerTypes": { "type": "array", "items": { - "$ref": "#/definitions/storageContainerType" + "$ref": "#/definitions/storageSkipContainerType" } } }, @@ -1871,6 +1863,14 @@ ], "default": "UNSET_SEVERITY" }, + "storageSkipContainerType": { + "type": "string", + "enum": [ + "SKIP_INIT" + ], + "default": "SKIP_INIT", + "description": "SkipContainerType lists container kinds a policy may skip during evaluation.\nThe set is independent of ContainerType and currently contains only init containers.\nAn empty skip_container_types list evaluates every container type." + }, "storageViolationState": { "type": "string", "enum": [ diff --git a/generated/api/v1/detection_service.swagger.json b/generated/api/v1/detection_service.swagger.json index 8be964b719432..a710052448a81 100644 --- a/generated/api/v1/detection_service.swagger.json +++ b/generated/api/v1/detection_service.swagger.json @@ -1071,7 +1071,7 @@ "skipContainerTypes": { "type": "array", "items": { - "$ref": "#/definitions/storageContainerType" + "$ref": "#/definitions/storageSkipContainerType" } } }, @@ -1694,6 +1694,14 @@ ], "default": "UNSET_SEVERITY" }, + "storageSkipContainerType": { + "type": "string", + "enum": [ + "SKIP_INIT" + ], + "default": "SKIP_INIT", + "description": "SkipContainerType lists container kinds a policy may skip during evaluation.\nThe set is independent of ContainerType and currently contains only init containers.\nAn empty skip_container_types list evaluates every container type." + }, "storageTaintEffect": { "type": "string", "enum": [ diff --git a/generated/api/v1/policy_service.swagger.json b/generated/api/v1/policy_service.swagger.json index e084db38a9d74..8221fab3a3c4f 100644 --- a/generated/api/v1/policy_service.swagger.json +++ b/generated/api/v1/policy_service.swagger.json @@ -847,14 +847,6 @@ ], "default": "OR" }, - "storageContainerType": { - "type": "string", - "enum": [ - "REGULAR", - "INIT" - ], - "default": "REGULAR" - }, "storageEnforcementAction": { "type": "string", "enum": [ @@ -876,7 +868,7 @@ "skipContainerTypes": { "type": "array", "items": { - "$ref": "#/definitions/storageContainerType" + "$ref": "#/definitions/storageSkipContainerType" } } }, @@ -1256,6 +1248,14 @@ ], "default": "UNSET_SEVERITY" }, + "storageSkipContainerType": { + "type": "string", + "enum": [ + "SKIP_INIT" + ], + "default": "SKIP_INIT", + "description": "SkipContainerType lists container kinds a policy may skip during evaluation.\nThe set is independent of ContainerType and currently contains only init containers.\nAn empty skip_container_types list evaluates every container type." + }, "v1AggregateBy": { "type": "object", "properties": { diff --git a/generated/storage/policy.pb.go b/generated/storage/policy.pb.go index 3f2a48f2c108c..446a7b4306160 100644 --- a/generated/storage/policy.pb.go +++ b/generated/storage/policy.pb.go @@ -392,6 +392,52 @@ func (Comparator) EnumDescriptor() ([]byte, []int) { return file_storage_policy_proto_rawDescGZIP(), []int{6} } +// SkipContainerType lists container kinds a policy may skip during evaluation. +// The set is independent of ContainerType and currently contains only init containers. +// An empty skip_container_types list evaluates every container type. +type SkipContainerType int32 + +const ( + SkipContainerType_SKIP_INIT SkipContainerType = 0 +) + +// Enum value maps for SkipContainerType. +var ( + SkipContainerType_name = map[int32]string{ + 0: "SKIP_INIT", + } + SkipContainerType_value = map[string]int32{ + "SKIP_INIT": 0, + } +) + +func (x SkipContainerType) Enum() *SkipContainerType { + p := new(SkipContainerType) + *p = x + return p +} + +func (x SkipContainerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SkipContainerType) Descriptor() protoreflect.EnumDescriptor { + return file_storage_policy_proto_enumTypes[7].Descriptor() +} + +func (SkipContainerType) Type() protoreflect.EnumType { + return &file_storage_policy_proto_enumTypes[7] +} + +func (x SkipContainerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SkipContainerType.Descriptor instead. +func (SkipContainerType) EnumDescriptor() ([]byte, []int) { + return file_storage_policy_proto_rawDescGZIP(), []int{7} +} + // Next tag: 29 type Policy struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1008,7 +1054,7 @@ func (x *ListPolicy) GetEvaluationFilter() *EvaluationFilter { // EvaluationFilter pre-filters which entities a policy evaluates. type EvaluationFilter struct { state protoimpl.MessageState `protogen:"open.v1"` - SkipContainerTypes []ContainerType `protobuf:"varint,1,rep,packed,name=skip_container_types,json=skipContainerTypes,proto3,enum=storage.ContainerType" json:"skip_container_types,omitempty"` + SkipContainerTypes []SkipContainerType `protobuf:"varint,1,rep,packed,name=skip_container_types,json=skipContainerTypes,proto3,enum=storage.SkipContainerType" json:"skip_container_types,omitempty" crYaml:"skipContainerTypes,omitempty,stringer"` // @gotags: crYaml:"skipContainerTypes,omitempty,stringer" unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1043,7 +1089,7 @@ func (*EvaluationFilter) Descriptor() ([]byte, []int) { return file_storage_policy_proto_rawDescGZIP(), []int{6} } -func (x *EvaluationFilter) GetSkipContainerTypes() []ContainerType { +func (x *EvaluationFilter) GetSkipContainerTypes() []SkipContainerType { if x != nil { return x.SkipContainerTypes } @@ -1360,7 +1406,7 @@ var File_storage_policy_proto protoreflect.FileDescriptor const file_storage_policy_proto_rawDesc = "" + "\n" + - "\x14storage/policy.proto\x12\astorage\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x18storage/deployment.proto\x1a\x13storage/image.proto\x1a\x13storage/scope.proto\"\xfc\t\n" + + "\x14storage/policy.proto\x12\astorage\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x13storage/image.proto\x1a\x13storage/scope.proto\"\xfc\t\n" + "\x06Policy\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12 \n" + @@ -1428,9 +1474,9 @@ const file_storage_policy_proto_rawDesc = "" + "is_default\x18\n" + " \x01(\bR\tisDefault\x12-\n" + "\x06source\x18\v \x01(\x0e2\x15.storage.PolicySourceR\x06source\x12F\n" + - "\x11evaluation_filter\x18\f \x01(\v2\x19.storage.EvaluationFilterR\x10evaluationFilter\"\\\n" + - "\x10EvaluationFilter\x12H\n" + - "\x14skip_container_types\x18\x01 \x03(\x0e2\x16.storage.ContainerTypeR\x12skipContainerTypes\"\xf5\x02\n" + + "\x11evaluation_filter\x18\f \x01(\v2\x19.storage.EvaluationFilterR\x10evaluationFilter\"`\n" + + "\x10EvaluationFilter\x12L\n" + + "\x14skip_container_types\x18\x01 \x03(\x0e2\x1a.storage.SkipContainerTypeR\x12skipContainerTypes\"\xf5\x02\n" + "\tExclusion\x12\x12\n" + "\x04name\x18\x01 \x01(\tR\x04name\x12=\n" + "\n" + @@ -1491,7 +1537,9 @@ const file_storage_policy_proto_rawDesc = "" + "\n" + "\x06EQUALS\x10\x02\x12\x1a\n" + "\x16GREATER_THAN_OR_EQUALS\x10\x03\x12\x10\n" + - "\fGREATER_THAN\x10\x04B.\n" + + "\fGREATER_THAN\x10\x04*\"\n" + + "\x11SkipContainerType\x12\r\n" + + "\tSKIP_INIT\x10\x00B.\n" + "\x19io.stackrox.proto.storageZ\x11./storage;storageb\x06proto3" var ( @@ -1506,7 +1554,7 @@ func file_storage_policy_proto_rawDescGZIP() []byte { return file_storage_policy_proto_rawDescData } -var file_storage_policy_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_storage_policy_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_storage_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_storage_policy_proto_goTypes = []any{ (PolicySource)(0), // 0: storage.PolicySource @@ -1516,53 +1564,53 @@ var file_storage_policy_proto_goTypes = []any{ (Severity)(0), // 4: storage.Severity (LifecycleStage)(0), // 5: storage.LifecycleStage (Comparator)(0), // 6: storage.Comparator - (*Policy)(nil), // 7: storage.Policy - (*PolicySection)(nil), // 8: storage.PolicySection - (*PolicyGroup)(nil), // 9: storage.PolicyGroup - (*PolicyValue)(nil), // 10: storage.PolicyValue - (*PolicyList)(nil), // 11: storage.PolicyList - (*ListPolicy)(nil), // 12: storage.ListPolicy - (*EvaluationFilter)(nil), // 13: storage.EvaluationFilter - (*Exclusion)(nil), // 14: storage.Exclusion - (*ExportPoliciesResponse)(nil), // 15: storage.ExportPoliciesResponse - (*Policy_MitreAttackVectors)(nil), // 16: storage.Policy.MitreAttackVectors - (*Exclusion_Container)(nil), // 17: storage.Exclusion.Container - (*Exclusion_Deployment)(nil), // 18: storage.Exclusion.Deployment - (*Exclusion_Image)(nil), // 19: storage.Exclusion.Image - (*Scope)(nil), // 20: storage.Scope - (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp - (ContainerType)(0), // 22: storage.ContainerType + (SkipContainerType)(0), // 7: storage.SkipContainerType + (*Policy)(nil), // 8: storage.Policy + (*PolicySection)(nil), // 9: storage.PolicySection + (*PolicyGroup)(nil), // 10: storage.PolicyGroup + (*PolicyValue)(nil), // 11: storage.PolicyValue + (*PolicyList)(nil), // 12: storage.PolicyList + (*ListPolicy)(nil), // 13: storage.ListPolicy + (*EvaluationFilter)(nil), // 14: storage.EvaluationFilter + (*Exclusion)(nil), // 15: storage.Exclusion + (*ExportPoliciesResponse)(nil), // 16: storage.ExportPoliciesResponse + (*Policy_MitreAttackVectors)(nil), // 17: storage.Policy.MitreAttackVectors + (*Exclusion_Container)(nil), // 18: storage.Exclusion.Container + (*Exclusion_Deployment)(nil), // 19: storage.Exclusion.Deployment + (*Exclusion_Image)(nil), // 20: storage.Exclusion.Image + (*Scope)(nil), // 21: storage.Scope + (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp (*ImageName)(nil), // 23: storage.ImageName } var file_storage_policy_proto_depIdxs = []int32{ 5, // 0: storage.Policy.lifecycle_stages:type_name -> storage.LifecycleStage 1, // 1: storage.Policy.event_source:type_name -> storage.EventSource - 14, // 2: storage.Policy.exclusions:type_name -> storage.Exclusion - 20, // 3: storage.Policy.scope:type_name -> storage.Scope + 15, // 2: storage.Policy.exclusions:type_name -> storage.Exclusion + 21, // 3: storage.Policy.scope:type_name -> storage.Scope 4, // 4: storage.Policy.severity:type_name -> storage.Severity 3, // 5: storage.Policy.enforcement_actions:type_name -> storage.EnforcementAction - 21, // 6: storage.Policy.last_updated:type_name -> google.protobuf.Timestamp - 8, // 7: storage.Policy.policy_sections:type_name -> storage.PolicySection - 16, // 8: storage.Policy.mitre_attack_vectors:type_name -> storage.Policy.MitreAttackVectors + 22, // 6: storage.Policy.last_updated:type_name -> google.protobuf.Timestamp + 9, // 7: storage.Policy.policy_sections:type_name -> storage.PolicySection + 17, // 8: storage.Policy.mitre_attack_vectors:type_name -> storage.Policy.MitreAttackVectors 0, // 9: storage.Policy.source:type_name -> storage.PolicySource - 13, // 10: storage.Policy.evaluation_filter:type_name -> storage.EvaluationFilter - 9, // 11: storage.PolicySection.policy_groups:type_name -> storage.PolicyGroup + 14, // 10: storage.Policy.evaluation_filter:type_name -> storage.EvaluationFilter + 10, // 11: storage.PolicySection.policy_groups:type_name -> storage.PolicyGroup 2, // 12: storage.PolicyGroup.boolean_operator:type_name -> storage.BooleanOperator - 10, // 13: storage.PolicyGroup.values:type_name -> storage.PolicyValue - 7, // 14: storage.PolicyList.policies:type_name -> storage.Policy + 11, // 13: storage.PolicyGroup.values:type_name -> storage.PolicyValue + 8, // 14: storage.PolicyList.policies:type_name -> storage.Policy 4, // 15: storage.ListPolicy.severity:type_name -> storage.Severity 5, // 16: storage.ListPolicy.lifecycle_stages:type_name -> storage.LifecycleStage - 21, // 17: storage.ListPolicy.last_updated:type_name -> google.protobuf.Timestamp + 22, // 17: storage.ListPolicy.last_updated:type_name -> google.protobuf.Timestamp 1, // 18: storage.ListPolicy.event_source:type_name -> storage.EventSource 0, // 19: storage.ListPolicy.source:type_name -> storage.PolicySource - 13, // 20: storage.ListPolicy.evaluation_filter:type_name -> storage.EvaluationFilter - 22, // 21: storage.EvaluationFilter.skip_container_types:type_name -> storage.ContainerType - 18, // 22: storage.Exclusion.deployment:type_name -> storage.Exclusion.Deployment - 19, // 23: storage.Exclusion.image:type_name -> storage.Exclusion.Image - 21, // 24: storage.Exclusion.expiration:type_name -> google.protobuf.Timestamp - 7, // 25: storage.ExportPoliciesResponse.policies:type_name -> storage.Policy + 14, // 20: storage.ListPolicy.evaluation_filter:type_name -> storage.EvaluationFilter + 7, // 21: storage.EvaluationFilter.skip_container_types:type_name -> storage.SkipContainerType + 19, // 22: storage.Exclusion.deployment:type_name -> storage.Exclusion.Deployment + 20, // 23: storage.Exclusion.image:type_name -> storage.Exclusion.Image + 22, // 24: storage.Exclusion.expiration:type_name -> google.protobuf.Timestamp + 8, // 25: storage.ExportPoliciesResponse.policies:type_name -> storage.Policy 23, // 26: storage.Exclusion.Container.image_name:type_name -> storage.ImageName - 20, // 27: storage.Exclusion.Deployment.scope:type_name -> storage.Scope + 21, // 27: storage.Exclusion.Deployment.scope:type_name -> storage.Scope 28, // [28:28] is the sub-list for method output_type 28, // [28:28] is the sub-list for method input_type 28, // [28:28] is the sub-list for extension type_name @@ -1575,7 +1623,6 @@ func file_storage_policy_proto_init() { if File_storage_policy_proto != nil { return } - file_storage_deployment_proto_init() file_storage_image_proto_init() file_storage_scope_proto_init() type x struct{} @@ -1583,7 +1630,7 @@ func file_storage_policy_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_storage_policy_proto_rawDesc), len(file_storage_policy_proto_rawDesc)), - NumEnums: 7, + NumEnums: 8, NumMessages: 13, NumExtensions: 0, NumServices: 0, diff --git a/generated/storage/policy_vtproto.pb.go b/generated/storage/policy_vtproto.pb.go index e24289130948a..58afbb4560ff4 100644 --- a/generated/storage/policy_vtproto.pb.go +++ b/generated/storage/policy_vtproto.pb.go @@ -258,7 +258,7 @@ func (m *EvaluationFilter) CloneVT() *EvaluationFilter { } r := new(EvaluationFilter) if rhs := m.SkipContainerTypes; rhs != nil { - tmpContainer := make([]ContainerType, len(rhs)) + tmpContainer := make([]SkipContainerType, len(rhs)) copy(tmpContainer, rhs) r.SkipContainerTypes = tmpContainer } @@ -4173,7 +4173,7 @@ func (m *EvaluationFilter) UnmarshalVT(dAtA []byte) error { switch fieldNum { case 1: if wireType == 0 { - var v ContainerType + var v SkipContainerType for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4183,7 +4183,7 @@ func (m *EvaluationFilter) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= ContainerType(b&0x7F) << shift + v |= SkipContainerType(b&0x7F) << shift if b < 0x80 { break } @@ -4217,10 +4217,10 @@ func (m *EvaluationFilter) UnmarshalVT(dAtA []byte) error { } var elementCount int if elementCount != 0 && len(m.SkipContainerTypes) == 0 { - m.SkipContainerTypes = make([]ContainerType, 0, elementCount) + m.SkipContainerTypes = make([]SkipContainerType, 0, elementCount) } for iNdEx < postIndex { - var v ContainerType + var v SkipContainerType for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -4230,7 +4230,7 @@ func (m *EvaluationFilter) UnmarshalVT(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= ContainerType(b&0x7F) << shift + v |= SkipContainerType(b&0x7F) << shift if b < 0x80 { break } @@ -6781,7 +6781,7 @@ func (m *EvaluationFilter) UnmarshalVTUnsafe(dAtA []byte) error { switch fieldNum { case 1: if wireType == 0 { - var v ContainerType + var v SkipContainerType for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6791,7 +6791,7 @@ func (m *EvaluationFilter) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= ContainerType(b&0x7F) << shift + v |= SkipContainerType(b&0x7F) << shift if b < 0x80 { break } @@ -6825,10 +6825,10 @@ func (m *EvaluationFilter) UnmarshalVTUnsafe(dAtA []byte) error { } var elementCount int if elementCount != 0 && len(m.SkipContainerTypes) == 0 { - m.SkipContainerTypes = make([]ContainerType, 0, elementCount) + m.SkipContainerTypes = make([]SkipContainerType, 0, elementCount) } for iNdEx < postIndex { - var v ContainerType + var v SkipContainerType for shift := uint(0); ; shift += 7 { if shift >= 64 { return protohelpers.ErrIntOverflow @@ -6838,7 +6838,7 @@ func (m *EvaluationFilter) UnmarshalVTUnsafe(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= ContainerType(b&0x7F) << shift + v |= SkipContainerType(b&0x7F) << shift if b < 0x80 { break } diff --git a/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml b/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml index 61a83b1baa76d..07dee8e82b5ab 100644 --- a/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml +++ b/image/templates/helm/stackrox-central/internal/config.stackrox.io_securitypolicies.yaml @@ -82,10 +82,13 @@ spec: evaluates. properties: skipContainerTypes: + description: SkipContainerTypes lists container kinds to skip + during evaluation. items: + description: SkipContainerType lists container kinds a policy + may skip during evaluation. enum: - - REGULAR - - INIT + - SKIP_INIT type: string type: array type: object diff --git a/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml b/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml index 3b94d5f785b32..1e876ef79ac8b 100644 --- a/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml +++ b/operator/bundle/manifests/config.stackrox.io_securitypolicies.yaml @@ -83,10 +83,13 @@ spec: evaluates. properties: skipContainerTypes: + description: SkipContainerTypes lists container kinds to skip + during evaluation. items: + description: SkipContainerType lists container kinds a policy + may skip during evaluation. enum: - - REGULAR - - INIT + - SKIP_INIT type: string type: array type: object diff --git a/pkg/booleanpolicy/filter/compile_test.go b/pkg/booleanpolicy/filter/compile_test.go index b4a6b5f55c64a..90d9fa1db3ad7 100644 --- a/pkg/booleanpolicy/filter/compile_test.go +++ b/pkg/booleanpolicy/filter/compile_test.go @@ -36,7 +36,7 @@ func TestCompileEvaluationFilter_NoSkipTypes_ReturnsNil(t *testing.T) { func TestCompileEvaluationFilter_ContainerTypeFilter(t *testing.T) { tests := map[string]struct { - skipTypes []storage.ContainerType + skipTypes []storage.SkipContainerType containers []*storage.Container images []*storage.Image expectedContainers []string @@ -44,7 +44,7 @@ func TestCompileEvaluationFilter_ContainerTypeFilter(t *testing.T) { expectSamePointer bool }{ "skip init containers": { - skipTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, containers: []*storage.Container{ {Name: "init-setup", Type: storage.ContainerType_INIT}, {Name: "app", Type: storage.ContainerType_REGULAR}, @@ -61,26 +61,13 @@ func TestCompileEvaluationFilter_ContainerTypeFilter(t *testing.T) { expectedImages: []string{"app-img", "sidecar-img"}, }, "skip init but none present returns original": { - skipTypes: []storage.ContainerType{storage.ContainerType_INIT}, + skipTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, containers: []*storage.Container{ {Name: "app", Type: storage.ContainerType_REGULAR}, }, images: []*storage.Image{{Id: "app-img"}}, expectSamePointer: true, }, - "skip regular containers": { - skipTypes: []storage.ContainerType{storage.ContainerType_REGULAR}, - containers: []*storage.Container{ - {Name: "init-setup", Type: storage.ContainerType_INIT}, - {Name: "app", Type: storage.ContainerType_REGULAR}, - }, - images: []*storage.Image{ - {Id: "init-img"}, - {Id: "app-img"}, - }, - expectedContainers: []string{"init-setup"}, - expectedImages: []string{"init-img"}, - }, } for name, tc := range tests { diff --git a/pkg/booleanpolicy/filter/container_type.go b/pkg/booleanpolicy/filter/container_type.go index 86da323e1c7ca..c10bbf6e06529 100644 --- a/pkg/booleanpolicy/filter/container_type.go +++ b/pkg/booleanpolicy/filter/container_type.go @@ -5,11 +5,17 @@ import ( "github.com/stackrox/rox/pkg/set" ) -func newContainerTypeFilter(skipTypes []storage.ContainerType) *EvaluationFilter { - if len(skipTypes) == 0 { +func newContainerTypeFilter(skipTypes []storage.SkipContainerType) *EvaluationFilter { + skip := set.NewSet[storage.ContainerType]() + for _, skipType := range skipTypes { + switch skipType { + case storage.SkipContainerType_SKIP_INIT: + skip.Add(storage.ContainerType_INIT) + } + } + if skip.IsEmpty() { return nil } - skip := set.NewSet(skipTypes...) return &EvaluationFilter{ isNonDefault: func() bool { return true }, apply: func(dep *storage.Deployment, imgs []*storage.Image) (*storage.Deployment, []*storage.Image) { diff --git a/pkg/detection/compiled_policy_test.go b/pkg/detection/compiled_policy_test.go index f50720961ee0a..db16cf30375cf 100644 --- a/pkg/detection/compiled_policy_test.go +++ b/pkg/detection/compiled_policy_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/booleanpolicy" "github.com/stackrox/rox/pkg/booleanpolicy/fieldnames" "github.com/stackrox/rox/pkg/booleanpolicy/policyversion" "github.com/stackrox/rox/pkg/features" @@ -276,3 +277,102 @@ func TestProcessAndFileAccessMatchers(t *testing.T) { }) } } + +func initAndRegularDeployment() (*storage.Deployment, []*storage.Image) { + dep := &storage.Deployment{ + Id: "dep", + Name: "dep", + Namespace: "ns", + Containers: []*storage.Container{ + { + Name: "init-setup", + Type: storage.ContainerType_INIT, + SecurityContext: &storage.SecurityContext{Privileged: true}, + Image: &storage.ContainerImage{Id: "init-img", Name: &storage.ImageName{FullName: "busybox:latest"}}, + }, + { + Name: "app", + Type: storage.ContainerType_REGULAR, + SecurityContext: &storage.SecurityContext{}, + Image: &storage.ContainerImage{Id: "app-img", Name: &storage.ImageName{FullName: "nginx:1.25"}}, + }, + }, + } + images := []*storage.Image{ + {Id: "init-img", Name: &storage.ImageName{FullName: "busybox:latest"}}, + {Id: "app-img", Name: &storage.ImageName{FullName: "nginx:1.25"}}, + } + return dep, images +} + +func TestEvaluationFilterSkipsInitContainers(t *testing.T) { + t.Setenv(features.EvaluationFilter.EnvVar(), "true") + + dep, images := initAndRegularDeployment() + ed := booleanpolicy.EnhancedDeployment{Deployment: dep, Images: images} + + skipInit := &storage.EvaluationFilter{ + SkipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, + } + privilegedPolicy := &storage.Policy{ + PolicyVersion: policyversion.CurrentVersion().String(), + Name: "privileged", + LifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_DEPLOY}, + PolicySections: []*storage.PolicySection{{ + PolicyGroups: []*storage.PolicyGroup{{ + FieldName: fieldnames.PrivilegedContainer, + Values: []*storage.PolicyValue{{Value: "true"}}, + }}, + }}, + EvaluationFilter: skipInit, + } + + compiled, err := CompilePolicy(privilegedPolicy, nil, nil) + require.NoError(t, err) + + violations, err := compiled.MatchAgainstDeployment(nil, ed) + require.NoError(t, err) + assert.Empty(t, violations.AlertViolations, "privileged init container is skipped") + + dep.Containers[0].SecurityContext.Privileged = false + dep.Containers[1].SecurityContext.Privileged = true + violations, err = compiled.MatchAgainstDeployment(nil, ed) + require.NoError(t, err) + require.Len(t, violations.AlertViolations, 1) + assert.Contains(t, violations.AlertViolations[0].GetMessage(), "app") + + unfiltered := privilegedPolicy.CloneVT() + unfiltered.EvaluationFilter = nil + dep.Containers[0].SecurityContext.Privileged = true + dep.Containers[1].SecurityContext.Privileged = false + compiled, err = CompilePolicy(unfiltered, nil, nil) + require.NoError(t, err) + violations, err = compiled.MatchAgainstDeployment(nil, ed) + require.NoError(t, err) + require.NotEmpty(t, violations.AlertViolations) + assert.Contains(t, violations.AlertViolations[0].GetMessage(), "init-setup") + + processPolicy := &storage.Policy{ + PolicyVersion: policyversion.CurrentVersion().String(), + Name: "process", + LifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_RUNTIME}, + EventSource: storage.EventSource_DEPLOYMENT_EVENT, + PolicySections: []*storage.PolicySection{{ + PolicyGroups: []*storage.PolicyGroup{{ + FieldName: fieldnames.ProcessName, + Values: []*storage.PolicyValue{{Value: "bash"}}, + }}, + }}, + EvaluationFilter: skipInit, + } + compiled, err = CompilePolicy(processPolicy, nil, nil) + require.NoError(t, err) + + appProcess := &storage.ProcessIndicator{ + ContainerName: "app", + Signal: &storage.ProcessSignal{Name: "bash", ExecFilePath: "/bin/bash"}, + } + violations, err = compiled.MatchAgainstDeploymentAndProcess(nil, ed, appProcess, true) + require.NoError(t, err) + assert.NotNil(t, violations.ProcessViolation) +} diff --git a/proto/storage/policy.proto b/proto/storage/policy.proto index c07c52d6152e2..a575374deeb92 100644 --- a/proto/storage/policy.proto +++ b/proto/storage/policy.proto @@ -3,7 +3,6 @@ syntax = "proto3"; package storage; import "google/protobuf/timestamp.proto"; -import "storage/deployment.proto"; import "storage/image.proto"; import "storage/scope.proto"; @@ -178,9 +177,16 @@ enum Comparator { GREATER_THAN = 4; } +// SkipContainerType lists container kinds a policy may skip during evaluation. +// The set is independent of ContainerType and currently contains only init containers. +// An empty skip_container_types list evaluates every container type. +enum SkipContainerType { + SKIP_INIT = 0; +} + // EvaluationFilter pre-filters which entities a policy evaluates. message EvaluationFilter { - repeated ContainerType skip_container_types = 1; + repeated SkipContainerType skip_container_types = 1; // @gotags: crYaml:"skipContainerTypes,omitempty,stringer" } message Exclusion { diff --git a/proto/storage/proto.lock b/proto/storage/proto.lock index ada9094986dcf..002dd08086cb7 100644 --- a/proto/storage/proto.lock +++ b/proto/storage/proto.lock @@ -14054,6 +14054,14 @@ "integer": 4 } ] + }, + { + "name": "SkipContainerType", + "enum_fields": [ + { + "name": "SKIP_INIT" + } + ] } ], "messages": [ @@ -14358,7 +14366,7 @@ { "id": 1, "name": "skip_container_types", - "type": "ContainerType", + "type": "SkipContainerType", "is_repeated": true } ] @@ -14444,9 +14452,6 @@ { "path": "google/protobuf/timestamp.proto" }, - { - "path": "storage/deployment.proto" - }, { "path": "storage/image.proto" }, diff --git a/tests/init_container_test.go b/tests/init_container_test.go index ebf7a61e4b431..5d096238fe7f3 100644 --- a/tests/init_container_test.go +++ b/tests/init_container_test.go @@ -180,12 +180,38 @@ func (s *InitContainerSuite) createPolicyWithCleanup(policy *storage.Policy) *st } func (s *InitContainerSuite) waitForViolationAlert(deploymentName, policyName string, expectedCount int) { + waitForAlert(s.T(), s.alertService, s.violationAlertRequest(deploymentName, policyName), expectedCount) +} + +// activeViolationText waits until one active alert exists and returns its violation messages. +func (s *InitContainerSuite) activeViolationText(deploymentName, policyName string) string { + s.waitForViolationAlert(deploymentName, policyName, 1) + + ctx, cancel := context.WithTimeout(context.Background(), time.Minute) + listResp, err := s.alertService.ListAlerts(ctx, s.violationAlertRequest(deploymentName, policyName)) + cancel() + s.Require().NoError(err) + s.Require().Len(listResp.GetAlerts(), 1) + + ctx, cancel = context.WithTimeout(context.Background(), time.Minute) + alert, err := s.alertService.GetAlert(ctx, &v1.ResourceByID{Id: listResp.GetAlerts()[0].GetId()}) + cancel() + s.Require().NoError(err) + s.Require().NotEmpty(alert.GetViolations()) + + messages := make([]string, 0, len(alert.GetViolations())) + for _, violation := range alert.GetViolations() { + messages = append(messages, violation.GetMessage()) + } + return strings.Join(messages, "\n") +} + +func (s *InitContainerSuite) violationAlertRequest(deploymentName, policyName string) *v1.ListAlertsRequest { query := search.NewQueryBuilder(). AddStrings(search.DeploymentName, deploymentName). AddStrings(search.PolicyName, policyName). AddStrings(search.ViolationState, storage.ViolationState_ACTIVE.String()) - - waitForAlert(s.T(), s.alertService, &v1.ListAlertsRequest{Query: query.Query()}, expectedCount) + return &v1.ListAlertsRequest{Query: query.Query()} } func (s *InitContainerSuite) TestInitContainerExtraction() { @@ -387,22 +413,62 @@ func (s *InitContainerSuite) TestEvaluationFilterSkipsInitContainers() { createNamespaceWithLabels(t, ns, nil) defer deleteNamespace(t, ns) - policy := s.newLatestTagPolicy( + unfiltered := s.createPolicyWithCleanup(s.newLatestTagPolicy( + fmt.Sprintf("Test - Evaluate Init %d", rand.IntN(10000)), ns, + )) + + filteredPolicy := s.newLatestTagPolicy( fmt.Sprintf("Test - Skip Init %d", rand.IntN(10000)), ns, ) - policy.EvaluationFilter = &storage.EvaluationFilter{ - SkipContainerTypes: []storage.ContainerType{storage.ContainerType_INIT}, + filteredPolicy.EvaluationFilter = &storage.EvaluationFilter{ + SkipContainerTypes: []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, } - createdPolicy := s.createPolicyWithCleanup(policy) + filtered := s.createPolicyWithCleanup(filteredPolicy) + + ctx, cancel := context.WithTimeout(context.Background(), time.Minute) + storedPolicy, err := s.policyService.GetPolicy(ctx, &v1.ResourceByID{Id: filtered.GetId()}) + cancel() + s.Require().NoError(err) + s.Require().Equal( + []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, + storedPolicy.GetEvaluationFilter().GetSkipContainerTypes(), + ) + s.Require().Empty(unfiltered.GetEvaluationFilter().GetSkipContainerTypes()) - // Init uses :latest (would violate), regular uses tagged image (no violation). - // With skip-init filter, the only violating container is skipped — expect 0 alerts. + // Both containers use :latest. The unfiltered policy must name both containers. + // The filtered policy must name the regular container and omit the init container. deployName := fmt.Sprintf("init-filter-skip-%d", rand.IntN(10000)) - s.createDeploymentWithInitContainers(deployName, ns, []string{busyboxLatest}, nginxTagged) + s.createDeploymentWithInitContainers(deployName, ns, []string{busyboxLatest}, nginxLatest) defer teardownDeploymentWithoutCheck(t, deployName, ns) - s.waitForDeploymentWithContainers(deployName, 2) + dep := s.waitForDeploymentWithContainers(deployName, 2) + var initContainer, regularContainer *storage.Container + for _, c := range dep.GetContainers() { + switch c.GetType() { + case storage.ContainerType_INIT: + initContainer = c + case storage.ContainerType_REGULAR: + regularContainer = c + } + } + s.Require().NotNil(initContainer, "expected an init container") + s.Require().NotNil(regularContainer, "expected a regular container") + s.Equal("init-0", initContainer.GetName()) + s.Equal(deployName, regularContainer.GetName()) + s.Contains(initContainer.GetImage().GetName().GetFullName(), "busybox") + s.Contains(regularContainer.GetImage().GetName().GetFullName(), "nginx") - s.waitForViolationAlert(deployName, createdPolicy.GetName(), 0) - t.Logf("Verified: policy with skip init filter produced no violations") + regularContainerRef := fmt.Sprintf("Container '%s'", deployName) + unfilteredText := s.activeViolationText(deployName, unfiltered.GetName()) + s.Require().Contains(unfilteredText, regularContainerRef) + s.Require().Contains(unfilteredText, "Container 'init-0'") + s.Require().Contains(unfilteredText, "tag 'latest'") + t.Logf("Verified unfiltered alert names both containers: %s", unfilteredText) + + filteredText := s.activeViolationText(deployName, filtered.GetName()) + s.Require().Contains(filteredText, regularContainerRef) + s.Require().Contains(filteredText, "tag 'latest'") + s.Require().NotContains(filteredText, "init-0") + s.Require().NotContains(filteredText, "busybox") + t.Logf("Verified skip-init alert names %q and omits the init container: %s", deployName, filteredText) } diff --git a/tests/policy_as_code_test.go b/tests/policy_as_code_test.go index 6f55908167678..f1ccd11d9ff8f 100644 --- a/tests/policy_as_code_test.go +++ b/tests/policy_as_code_test.go @@ -475,7 +475,7 @@ func (pc *PolicyAsCodeSuite) createCRAndObserveInCentral(policyCR *v1alpha1.Secu func (pc *PolicyAsCodeSuite) TestCRWithEvaluationFilter() { k8sPolicy := createBasePolicyStruct("test-eval-filter-cr") k8sPolicy.Spec.EvaluationFilter = &v1alpha1.EvaluationFilter{ - SkipContainerTypes: []v1alpha1.ContainerType{"INIT"}, + SkipContainerTypes: []v1alpha1.SkipContainerType{"SKIP_INIT"}, } id := pc.createCRAndObserveInCentral(k8sPolicy) @@ -487,7 +487,7 @@ func (pc *PolicyAsCodeSuite) TestCRWithEvaluationFilter() { pc.Require().NotNil(policy.GetEvaluationFilter()) pc.Require().Equal( - []storage.ContainerType{storage.ContainerType_INIT}, + []storage.SkipContainerType{storage.SkipContainerType_SKIP_INIT}, policy.GetEvaluationFilter().GetSkipContainerTypes(), ) } diff --git a/tools/generate-helpers/config-as-code-helper/main.go b/tools/generate-helpers/config-as-code-helper/main.go index cba3d849424c0..f5e73ad3665fa 100644 --- a/tools/generate-helpers/config-as-code-helper/main.go +++ b/tools/generate-helpers/config-as-code-helper/main.go @@ -96,6 +96,12 @@ func generateTemplateData(t reflect.Type, visited set.StringSet) []ConvertType { fieldType = utils.IfThenElse(isSlice, "[]string", "string") } + // A stringer or timestamp field is rewritten as a string. A message that + // contains only those fields still needs its own converted type, otherwise + // the parent embeds the proto and YAML uses the Go field name and wire value. + if isStringer || isTimeStamp { + needUpdate = true + } needConversion := !isStringer && !isTimeStamp && checkForConversion(field) if needConversion { if !visited.Contains(field.Name) { diff --git a/ui/apps/platform/src/Containers/Policies/Detail/PolicyDetailContent.tsx b/ui/apps/platform/src/Containers/Policies/Detail/PolicyDetailContent.tsx index f6ee0599c5979..3c5fd80a6c2bc 100644 --- a/ui/apps/platform/src/Containers/Policies/Detail/PolicyDetailContent.tsx +++ b/ui/apps/platform/src/Containers/Policies/Detail/PolicyDetailContent.tsx @@ -69,6 +69,7 @@ function PolicyDetailContent({ policy, isReview = false }: PolicyDetailContentPr Policy resources diff --git a/ui/apps/platform/src/Containers/Policies/Detail/PolicyFiltersSection.tsx b/ui/apps/platform/src/Containers/Policies/Detail/PolicyFiltersSection.tsx index d349ec2fc1534..eea99fe43e8dc 100644 --- a/ui/apps/platform/src/Containers/Policies/Detail/PolicyFiltersSection.tsx +++ b/ui/apps/platform/src/Containers/Policies/Detail/PolicyFiltersSection.tsx @@ -1,39 +1,43 @@ import { Card, CardBody, DescriptionList, Stack, Title } from '@patternfly/react-core'; import useFeatureFlags from 'hooks/useFeatureFlags'; -import type { EvaluationFilter, LifecycleStage } from 'types/policy.proto'; +import type { EvaluationFilter, LifecycleStage, PolicyEventSource } from 'types/policy.proto'; import DescriptionListItem from 'Components/DescriptionListItem'; +import { containerTypeFilterApplies } from '../policies.utils'; type PolicyFiltersSectionProps = { evaluationFilter: EvaluationFilter | null; lifecycleStages: LifecycleStage[]; + eventSource: PolicyEventSource; }; function getContainerTypeLabel( evaluationFilter: EvaluationFilter | null, - lifecycleStages: LifecycleStage[] + lifecycleStages: LifecycleStage[], + eventSource: PolicyEventSource ): string | null { - const hasDeployOrRuntime = - lifecycleStages.includes('DEPLOY') || lifecycleStages.includes('RUNTIME'); - - if (!hasDeployOrRuntime) { + if (!containerTypeFilterApplies(lifecycleStages, eventSource)) { return null; } const skipped = evaluationFilter?.skipContainerTypes ?? []; - if (skipped.includes('INIT')) { + if (skipped.includes('SKIP_INIT')) { return 'Skip init containers'; } return null; } -function PolicyFiltersSection({ evaluationFilter, lifecycleStages }: PolicyFiltersSectionProps) { +function PolicyFiltersSection({ + evaluationFilter, + lifecycleStages, + eventSource, +}: PolicyFiltersSectionProps) { const { isFeatureFlagEnabled } = useFeatureFlags(); const containerTypeLabel = isFeatureFlagEnabled('ROX_EVALUATION_FILTER') && isFeatureFlagEnabled('ROX_INIT_CONTAINER_SUPPORT') - ? getContainerTypeLabel(evaluationFilter, lifecycleStages) + ? getContainerTypeLabel(evaluationFilter, lifecycleStages, eventSource) : null; if (!containerTypeLabel) { diff --git a/ui/apps/platform/src/Containers/Policies/Table/PolicyEvaluationFilterLabels.tsx b/ui/apps/platform/src/Containers/Policies/Table/PolicyEvaluationFilterLabels.tsx index fa21a5cf7fa16..86f08820d161a 100644 --- a/ui/apps/platform/src/Containers/Policies/Table/PolicyEvaluationFilterLabels.tsx +++ b/ui/apps/platform/src/Containers/Policies/Table/PolicyEvaluationFilterLabels.tsx @@ -25,7 +25,7 @@ function PolicyEvaluationFilterLabels({ if ( isFeatureFlagEnabled('ROX_INIT_CONTAINER_SUPPORT') && - evaluationFilter.skipContainerTypes?.includes('INIT') + evaluationFilter.skipContainerTypes?.includes('SKIP_INIT') ) { labels.push({ text: 'Skips init', color: 'blue' }); } diff --git a/ui/apps/platform/src/Containers/Policies/Wizard/StepFilters/PolicyFiltersForm.tsx b/ui/apps/platform/src/Containers/Policies/Wizard/StepFilters/PolicyFiltersForm.tsx index a5dbb2146a812..57c88660a6b72 100644 --- a/ui/apps/platform/src/Containers/Policies/Wizard/StepFilters/PolicyFiltersForm.tsx +++ b/ui/apps/platform/src/Containers/Policies/Wizard/StepFilters/PolicyFiltersForm.tsx @@ -16,6 +16,10 @@ import { useFormikContext } from 'formik'; import type { ClientPolicy } from 'types/policy.proto'; import useFeatureFlags from 'hooks/useFeatureFlags'; import { toggleItemInArray } from 'utils/arrayUtils'; +import { containerTypeFilterApplies } from '../../policies.utils'; + +const containerTypeFilterMessage = + 'Container type filters apply to deploy-time policies and to runtime policies with a deployment event source.'; function PolicyFiltersForm() { const { values, setFieldValue } = useFormikContext(); @@ -27,10 +31,10 @@ function PolicyFiltersForm() { const skipContainerTypes = values.evaluationFilter?.skipContainerTypes ?? []; - const hasDeployOrRuntime = - values.lifecycleStages.includes('DEPLOY') || values.lifecycleStages.includes('RUNTIME'); - - const containerFilterDisabled = !hasDeployOrRuntime; + const containerFilterDisabled = !containerTypeFilterApplies( + values.lifecycleStages, + values.eventSource + ); useEffect(() => { if (containerFilterDisabled && skipContainerTypes.length > 0) { @@ -38,7 +42,7 @@ function PolicyFiltersForm() { } }, [containerFilterDisabled, skipContainerTypes.length, setFieldValue]); - const skipInit = skipContainerTypes.includes('INIT'); + const skipInit = skipContainerTypes.includes('SKIP_INIT'); const containerTypeDescription = skipInit ? 'Policy will skip init containers.' @@ -47,7 +51,7 @@ function PolicyFiltersForm() { function handleSkipInitChange() { setFieldValue( 'evaluationFilter.skipContainerTypes', - toggleItemInArray(skipContainerTypes, 'INIT') + toggleItemInArray(skipContainerTypes, 'SKIP_INIT') ); } @@ -57,7 +61,7 @@ function PolicyFiltersForm() { Filters - Control which parts of an image or workload this policy evaluates. + Control which parts of a workload this policy evaluates. @@ -74,7 +78,7 @@ function PolicyFiltersForm() { )} @@ -88,17 +92,15 @@ function PolicyFiltersForm() { isDisabled={containerFilterDisabled} onChange={handleSkipInitChange} /> - + {!containerFilterDisabled && ( + + )}
diff --git a/ui/apps/platform/src/Containers/Policies/policies.utils.test.ts b/ui/apps/platform/src/Containers/Policies/policies.utils.test.ts index 5486eb100dd70..b081f25c24a2f 100644 --- a/ui/apps/platform/src/Containers/Policies/policies.utils.test.ts +++ b/ui/apps/platform/src/Containers/Policies/policies.utils.test.ts @@ -1,5 +1,6 @@ import type { ClientPolicy, Policy } from 'types/policy.proto'; import { + containerTypeFilterApplies, getClientWizardPolicy, getLifeCyclesUpdates, getPolicyOriginLabel, @@ -885,4 +886,17 @@ describe('policies.utils', () => { }); }); }); + + describe('containerTypeFilterApplies', () => { + it('applies to deploy-time policies and runtime policies with a deployment event source', () => { + expect(containerTypeFilterApplies(['DEPLOY'], 'NOT_APPLICABLE')).toBe(true); + expect(containerTypeFilterApplies(['BUILD', 'DEPLOY'], 'NOT_APPLICABLE')).toBe(true); + expect(containerTypeFilterApplies(['RUNTIME'], 'DEPLOYMENT_EVENT')).toBe(true); + expect(containerTypeFilterApplies(['BUILD'], 'NOT_APPLICABLE')).toBe(false); + expect(containerTypeFilterApplies(['RUNTIME'], 'NOT_APPLICABLE')).toBe(false); + expect(containerTypeFilterApplies(['RUNTIME'], 'AUDIT_LOG_EVENT')).toBe(false); + expect(containerTypeFilterApplies(['RUNTIME'], 'NODE_EVENT')).toBe(false); + expect(containerTypeFilterApplies([], 'NOT_APPLICABLE')).toBe(false); + }); + }); }); diff --git a/ui/apps/platform/src/Containers/Policies/policies.utils.ts b/ui/apps/platform/src/Containers/Policies/policies.utils.ts index aa56679a45f5f..20564da4ed15e 100644 --- a/ui/apps/platform/src/Containers/Policies/policies.utils.ts +++ b/ui/apps/platform/src/Containers/Policies/policies.utils.ts @@ -82,6 +82,18 @@ export const initialPolicy: ClientPolicy = { }, }; +// Container type filters apply to deploy-time policies and to runtime policies +// whose event source is deployment events. +export function containerTypeFilterApplies( + lifecycleStages: LifecycleStage[], + eventSource: PolicyEventSource +): boolean { + return ( + lifecycleStages.includes('DEPLOY') || + (lifecycleStages.includes('RUNTIME') && eventSource === 'DEPLOYMENT_EVENT') + ); +} + export type PoliciesSearch = { pageAction?: ExtendedPageAction; searchFilter?: SearchFilter; diff --git a/ui/apps/platform/src/types/policy.proto.ts b/ui/apps/platform/src/types/policy.proto.ts index df7f4ea7f8dfe..e7e31df869c54 100644 --- a/ui/apps/platform/src/types/policy.proto.ts +++ b/ui/apps/platform/src/types/policy.proto.ts @@ -159,12 +159,12 @@ export type PolicyMitreAttackVector = { techniques: string[]; // technique ids }; -export type ContainerType = 'INIT'; +export type SkipContainerType = 'SKIP_INIT'; export type SkipImageLayers = 'SKIP_NONE' | 'SKIP_BASE' | 'SKIP_APP'; export type EvaluationFilter = { - skipContainerTypes: ContainerType[]; + skipContainerTypes: SkipContainerType[]; // TODO: reimplement once backend support is available - demo code was deleted at the same time this comment was added // skipImageLayers: SkipImageLayers; }; From b3a3d3cbb1317dee7f651d102ffc0def6a17654a Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Thu, 1 Oct 2026 17:16:52 -0400 Subject: [PATCH 178/327] ROX-37384: Add no-import-from-Containers-in-Components to linited (#23194) --- .../platform/eslint-plugins/pluginLimited.js | 32 +++++++++++++++++++ ui/apps/platform/eslint.config.js | 24 ++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/ui/apps/platform/eslint-plugins/pluginLimited.js b/ui/apps/platform/eslint-plugins/pluginLimited.js index f5697047dcc81..031212372b678 100644 --- a/ui/apps/platform/eslint-plugins/pluginLimited.js +++ b/ui/apps/platform/eslint-plugins/pluginLimited.js @@ -379,6 +379,38 @@ const rules = { }; }, }, + 'no-import-from-Containers-in-Components': { + // Prevent soft circular dependency: + // * A generic file in Components has import from a specific file in Containers. + // * Another specific file in Containers might have import of that generic file from Components. + // Although the rule cannot know for sure, Components exists for import into Containers. + meta: { + type: 'problem', + docs: { + description: + 'Fix soft circular dependency between specific Containers and generic Components', + }, + schema: [], + }, + create(context) { + return { + ImportDeclaration(node) { + const { filename } = context; + if ( + filename.includes('ui/apps/platform/src/Components/') && + typeof node.source?.value === 'string' && + node.source.value.startsWith('Containers/') + ) { + context.report({ + node, + message: + 'Fix soft circular dependency between specific Containers and generic Components', + }); + } + }, + }; + }, + }, 'no-logical-or-preceding-array-or-object': { // Consistently write more precise nullish coalescing operator. meta: { diff --git a/ui/apps/platform/eslint.config.js b/ui/apps/platform/eslint.config.js index a6f13c2547d36..0369af92346c0 100644 --- a/ui/apps/platform/eslint.config.js +++ b/ui/apps/platform/eslint.config.js @@ -839,6 +839,30 @@ module.exports = [ 'limited/no-relative-path-to-src-in-import': 'error', }, }, + { + files: ['src/*/**/*.{js,jsx,ts,tsx}'], + ignores: [ + 'src/Components/CompoundSearchFilter/attributes/imageCVE.ts', // refactor: originDisplayNames + 'src/Components/CompoundSearchFilter/attributes/imageComponent.ts', // refactor: sourceTypeLabels, sourceTypes + 'src/Components/CompoundSearchFilter/attributes/virtualMachine.ts', // refactor: sourceTypeLabels, sourceTypes + 'src/Components/EmailNotifier/EmailNotifierForm.tsx', // refactor + 'src/Components/EmailNotifier/EmailNotifierModal.tsx', // refactor + 'src/Components/RelatedEntity.jsx', // deprecated + 'src/Components/RelatedEntityListCount.jsx', // deprecated + 'src/Components/URLSearchInputWithAutocomplete.jsx', // deprecated + 'src/Components/workflow/EntitiesMenu/EntitiesMenu.jsx', // deprecated + ], + + // languageOptions from previous configuration object + + // Key of plugin is namespace of its rules. + plugins: { + limited: pluginLimited, + }, + rules: { + 'limited/no-import-from-Containers-in-Components': 'error', + }, + }, { files: ['src/*/**/*.{js,jsx,ts,tsx}'], ignores: [ From 4e53bd35006556e1458000f85d7ca9b79fd92bf7 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 03:47:26 +0000 Subject: [PATCH 179/327] chore(deps): update quay.io/rhacs-eng/konflux-tasks:latest docker digest to 3e1c9a2 (#23184) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/basic-component-pipeline.yaml | 6 +++--- .tekton/checks.yaml | 2 +- .tekton/create-custom-snapshot.yaml | 8 ++++---- .tekton/main-pipeline.yaml | 8 ++++---- .tekton/operator-bundle-pipeline.yaml | 8 ++++---- .tekton/operator-index-build.yaml | 8 ++++---- .tekton/retag-pipeline.yaml | 10 +++++----- .tekton/scanner-v4-pipeline.yaml | 8 ++++---- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/.tekton/basic-component-pipeline.yaml b/.tekton/basic-component-pipeline.yaml index 412e2460acc16..f8334178d093b 100644 --- a/.tekton/basic-component-pipeline.yaml +++ b/.tekton/basic-component-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/checks.yaml b/.tekton/checks.yaml index 0a32b36258dc3..41deea26e24a7 100644 --- a/.tekton/checks.yaml +++ b/.tekton/checks.yaml @@ -66,7 +66,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/create-custom-snapshot.yaml b/.tekton/create-custom-snapshot.yaml index 6fc004f6e642f..51e6e0203cbe9 100644 --- a/.tekton/create-custom-snapshot.yaml +++ b/.tekton/create-custom-snapshot.yaml @@ -75,7 +75,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -224,7 +224,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -242,7 +242,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -315,7 +315,7 @@ spec: - name: name value: create-snapshot-from-bundle - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/main-pipeline.yaml b/.tekton/main-pipeline.yaml index 787b6c7506c9e..ca11a38827478 100644 --- a/.tekton/main-pipeline.yaml +++ b/.tekton/main-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -212,7 +212,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -228,7 +228,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -248,7 +248,7 @@ spec: - name: name value: fetch-external-networks - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-bundle-pipeline.yaml b/.tekton/operator-bundle-pipeline.yaml index 08cf42b987678..5da508abb7e4a 100644 --- a/.tekton/operator-bundle-pipeline.yaml +++ b/.tekton/operator-bundle-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -272,7 +272,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -288,7 +288,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -329,7 +329,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/operator-index-build.yaml b/.tekton/operator-index-build.yaml index 55794f741a56c..e621f6a449efc 100644 --- a/.tekton/operator-index-build.yaml +++ b/.tekton/operator-index-build.yaml @@ -98,7 +98,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -214,7 +214,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -230,7 +230,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -276,7 +276,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/retag-pipeline.yaml b/.tekton/retag-pipeline.yaml index 63b3467b416a7..449d29713e6ea 100644 --- a/.tekton/retag-pipeline.yaml +++ b/.tekton/retag-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -136,7 +136,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -154,7 +154,7 @@ spec: - name: name value: determine-dependency-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -170,7 +170,7 @@ spec: - name: name value: wait-for-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -195,7 +195,7 @@ spec: - name: name value: retag-image - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles diff --git a/.tekton/scanner-v4-pipeline.yaml b/.tekton/scanner-v4-pipeline.yaml index bc8c0f64addec..845c9c76dcea7 100644 --- a/.tekton/scanner-v4-pipeline.yaml +++ b/.tekton/scanner-v4-pipeline.yaml @@ -35,7 +35,7 @@ spec: - name: name value: post-bigquery-metrics - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -211,7 +211,7 @@ spec: - name: name value: determine-image-expiration - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -227,7 +227,7 @@ spec: - name: name value: determine-image-tag - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles @@ -247,7 +247,7 @@ spec: - name: name value: fetch-scanner-v4-vuln-mappings - name: bundle - value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:a33d6eabbae15539dbaf5996110010cc4515bad7aac01969280496c76ab4b9e5 + value: quay.io/rhacs-eng/konflux-tasks:latest@sha256:3e1c9a2162a92a99e33ff414dcf07e87400b3ceff855bcb85bfaad4e846afbe3 - name: kind value: task resolver: bundles From 1db7e2415e6aa8924e5808ee4d0ecbe95f1f233c Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 06:59:24 +0000 Subject: [PATCH 180/327] chore(deps): refresh rpm lockfiles (#23201) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- rpms.lock.yaml | 88 +++++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/rpms.lock.yaml b/rpms.lock.yaml index e139cae85bea8..5f5d434ed7581 100644 --- a/rpms.lock.yaml +++ b/rpms.lock.yaml @@ -74,13 +74,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.aarch64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/k/kernel-headers-5.14.0-687.54.1.el9_8.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms - size: 2925601 - checksum: sha256:7e82c856a00206976aede9e7b3865d0a2363b1262c0f9e1949ba29c7b9c47281 + size: 2927565 + checksum: sha256:c950319c04fc9048501cd59da158858b9e4b2d173b98b3d8f56a97b56be89ca9 name: kernel-headers - evr: 5.14.0-687.53.1.el9_8 - sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm + evr: 5.14.0-687.54.1.el9_8 + sourcerpm: kernel-5.14.0-687.54.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/Packages/l/libasan-11.5.0-14.el9.aarch64.rpm repoid: rhel-9-for-aarch64-appstream-rpms size: 409047 @@ -1286,12 +1286,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.54.1.el9_8.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms - size: 152530420 - checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a + size: 152530566 + checksum: sha256:7ac2368f99e5e93164155197fa925061e352e80c3874c614b38e43317ae93881 name: kernel - evr: 5.14.0-687.53.1.el9_8 + evr: 5.14.0-687.54.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-aarch64-baseos-source-rpms size: 150790 @@ -1635,10 +1635,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/f310ddcbea4a32af8415a78c2ccf7b7eb34ebf5fe763be2bfe0ae728654c1449-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/aarch64/appstream/os/repodata/a6b607cc40e32eab035ab2c62096f0a17886a1b9f8e31f96caed2fcafd19f8e9-modules.yaml.gz repoid: rhel-9-for-aarch64-appstream-rpms size: 68974 - checksum: sha256:f310ddcbea4a32af8415a78c2ccf7b7eb34ebf5fe763be2bfe0ae728654c1449 + checksum: sha256:a6b607cc40e32eab035ab2c62096f0a17886a1b9f8e31f96caed2fcafd19f8e9 - arch: ppc64le packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/c/cpp-11.5.0-14.el9.ppc64le.rpm @@ -1711,13 +1711,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.ppc64le.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/k/kernel-headers-5.14.0-687.54.1.el9_8.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms - size: 2949645 - checksum: sha256:7318493a0814cea968050892155214dc61c91549fbea2f66aa4008be389ace7c + size: 2951357 + checksum: sha256:69203b9637bca61d1aafb9f54d9b8240b7a8f0df14a6d9c2df022ca25707b46f name: kernel-headers - evr: 5.14.0-687.53.1.el9_8 - sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm + evr: 5.14.0-687.54.1.el9_8 + sourcerpm: kernel-5.14.0-687.54.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/Packages/l/libasan-11.5.0-14.el9.ppc64le.rpm repoid: rhel-9-for-ppc64le-appstream-rpms size: 440756 @@ -2930,12 +2930,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.54.1.el9_8.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms - size: 152530420 - checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a + size: 152530566 + checksum: sha256:7ac2368f99e5e93164155197fa925061e352e80c3874c614b38e43317ae93881 name: kernel - evr: 5.14.0-687.53.1.el9_8 + evr: 5.14.0-687.54.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-ppc64le-baseos-source-rpms size: 150790 @@ -3285,10 +3285,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/a2ba371afa8702da112fc35262a64188c67b41c55df301eb20b44e2dff3a6b7d-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/ppc64le/appstream/os/repodata/bfbbbd6158a7cd8ec47b37ca511772061d503dad22c5dd04d0e3716b979383c3-modules.yaml.gz repoid: rhel-9-for-ppc64le-appstream-rpms size: 70407 - checksum: sha256:a2ba371afa8702da112fc35262a64188c67b41c55df301eb20b44e2dff3a6b7d + checksum: sha256:bfbbbd6158a7cd8ec47b37ca511772061d503dad22c5dd04d0e3716b979383c3 - arch: s390x packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/c/cpp-11.5.0-14.el9.s390x.rpm @@ -3361,13 +3361,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.s390x.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/k/kernel-headers-5.14.0-687.54.1.el9_8.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms - size: 2955557 - checksum: sha256:9b1a97d19e52dfb5387cae5fd1a7888ce3e1f794b17117ef4cc1eeb1daca8aeb + size: 2957557 + checksum: sha256:24326fc5b7ef83ff374467b4ee2b832c5318d5b1e4c20541f4c81d66879c8427 name: kernel-headers - evr: 5.14.0-687.53.1.el9_8 - sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm + evr: 5.14.0-687.54.1.el9_8 + sourcerpm: kernel-5.14.0-687.54.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/Packages/l/libasan-11.5.0-14.el9.s390x.rpm repoid: rhel-9-for-s390x-appstream-rpms size: 412888 @@ -4567,12 +4567,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.54.1.el9_8.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms - size: 152530420 - checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a + size: 152530566 + checksum: sha256:7ac2368f99e5e93164155197fa925061e352e80c3874c614b38e43317ae93881 name: kernel - evr: 5.14.0-687.53.1.el9_8 + evr: 5.14.0-687.54.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-s390x-baseos-source-rpms size: 150790 @@ -4916,10 +4916,10 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/532ca027fab74fd8ae42adae8ec472c1ddf8940c704f3ad3d36114c91c0d210b-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/s390x/appstream/os/repodata/8dd2dfa4a7b7937527363654d59eff376826c98b2cf2b7d1bf8f1013d80092f7-modules.yaml.gz repoid: rhel-9-for-s390x-appstream-rpms size: 65587 - checksum: sha256:532ca027fab74fd8ae42adae8ec472c1ddf8940c704f3ad3d36114c91c0d210b + checksum: sha256:8dd2dfa4a7b7937527363654d59eff376826c98b2cf2b7d1bf8f1013d80092f7 - arch: x86_64 packages: - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/c/cpp-11.5.0-14.el9.x86_64.rpm @@ -4999,13 +4999,13 @@ arches: name: golang-src evr: 1.26.7-2.el9_8 sourcerpm: golang-1.26.7-2.el9_8.src.rpm - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.53.1.el9_8.x86_64.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/k/kernel-headers-5.14.0-687.54.1.el9_8.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms - size: 2965145 - checksum: sha256:2473df2cf5b65c762af7941fe87324e98dc0e8b42d1e5745051a0405e200b7f5 + size: 2966865 + checksum: sha256:33789c61f2d74ef1d0fd5b6a43e802d28e1b38a605f200b156050d0a7934f232 name: kernel-headers - evr: 5.14.0-687.53.1.el9_8 - sourcerpm: kernel-5.14.0-687.53.1.el9_8.src.rpm + evr: 5.14.0-687.54.1.el9_8 + sourcerpm: kernel-5.14.0-687.54.1.el9_8.src.rpm - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/Packages/l/libmpc-1.2.1-4.el9.x86_64.rpm repoid: rhel-9-for-x86_64-appstream-rpms size: 66075 @@ -6190,12 +6190,12 @@ arches: checksum: sha256:c4c76ebfd66ba6d00edf672797d7f077b29d279b7866a04e05258a257a5bc306 name: json-c evr: 0.14-11.el9 - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.53.1.el9_8.src.rpm + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/kernel-5.14.0-687.54.1.el9_8.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms - size: 152530420 - checksum: sha256:28a39e99b31b7b924672b14e70b1a0608755a7898c20563f52f2c0b22c67a91a + size: 152530566 + checksum: sha256:7ac2368f99e5e93164155197fa925061e352e80c3874c614b38e43317ae93881 name: kernel - evr: 5.14.0-687.53.1.el9_8 + evr: 5.14.0-687.54.1.el9_8 - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/source/SRPMS/Packages/k/keyutils-1.6.3-1.el9.src.rpm repoid: rhel-9-for-x86_64-baseos-source-rpms size: 150790 @@ -6539,7 +6539,7 @@ arches: name: zstd evr: 1.5.5-1.el9 module_metadata: - - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/d4f5a831afd58619b36a4842a572502fc730e04eefb3e8acca4679a59be2eeff-modules.yaml.gz + - url: https://cdn.redhat.com/content/dist/rhel9/9/x86_64/appstream/os/repodata/4c5bb657ad15e7a103d42251cdbe830ab5c39145966be9e94ddf04653bdf62af-modules.yaml.gz repoid: rhel-9-for-x86_64-appstream-rpms size: 72271 - checksum: sha256:d4f5a831afd58619b36a4842a572502fc730e04eefb3e8acca4679a59be2eeff + checksum: sha256:4c5bb657ad15e7a103d42251cdbe830ab5c39145966be9e94ddf04653bdf62af From 7c966919090a94c114bcdcd9781c81dccf403d4b Mon Sep 17 00:00:00 2001 From: Piotr Rygielski <114479+vikin91@users.noreply.github.com> Date: Fri, 2 Oct 2026 09:16:35 +0200 Subject: [PATCH 181/327] ROX-37206, ROX-37208: delete pods before namespace cleanup (#23167) --- .../orchestratormanager/Kubernetes.groovy | 88 ++++++++++++++++++- .../groovy/AdmissionControllerTest.groovy | 36 ++++---- 2 files changed, 104 insertions(+), 20 deletions(-) diff --git a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy index 14a7f0f7fac89..7d44e2751784b 100644 --- a/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy +++ b/qa-tests-backend/src/main/groovy/orchestratormanager/Kubernetes.groovy @@ -2681,10 +2681,90 @@ class Kubernetes { client.namespaces().withName(ns).delete() } if (waitForDeletion && !waitForNamespaceDeletion(ns)) { - // Fail loudly: a namespace stuck Terminating leaks into later tests - // (e.g. NamespaceTest's ACS/orchestrator comparison) instead of being - // silently ignored. - throw new OrchestratorManagerException("Timed out waiting for namespace ${ns} to be deleted") + // A namespace that is still listed is a failed cleanup, not a soft warning. + throw new OrchestratorManagerException( + "Timed out waiting for namespace ${ns} to be deleted${namespaceDeletionDiagnostics(ns)}") + } + } + + // deleteManagedWorkloads removes deployments, replica sets, and pods so + // namespace deletion is not held by a pod's termination. A second delete + // with grace period 0 shortens a termination already in progress. + @CompileDynamic + void deleteManagedWorkloads(String ns) { + Timer t = new Timer(20, 1) + boolean sawNoPods = false + while (t.IsValid()) { + if (namespaceGone(ns)) { + return + } + deleteCollectionQuietly { client.apps().deployments().inNamespace(ns).delete() } + deleteCollectionQuietly { client.apps().replicaSets().inNamespace(ns).delete() } + deleteCollectionQuietly { client.pods().inNamespace(ns).withGracePeriod(0L).delete() } + if (listPodsQuietly(ns).isEmpty()) { + // A second empty read covers a replica set that creates one + // more pod after it is told to delete. + if (sawNoPods) { + return + } + sawNoPods = true + continue + } + sawNoPods = false + } + def stuck = listPodsQuietly(ns).collect { + "${it.metadata?.name} phase=${it.status?.phase} finalizers=${it.metadata?.finalizers}" + } + log.info "Workloads still present in ${ns} before namespace deletion: ${stuck}" + } + + @CompileDynamic + private boolean namespaceGone(String ns) { + try { + return client.namespaces().withName(ns).get() == null + } catch (KubernetesClientException e) { + return e.code == 404 + } + } + + @CompileDynamic + private void deleteCollectionQuietly(Closure deletion) { + try { + deletion.call() + } catch (KubernetesClientException e) { + if (e.code != 404) { + log.warn "Resource delete during namespace cleanup failed: ${e.message}" + } + } + } + + @CompileDynamic + private List listPodsQuietly(String ns) { + try { + return client.pods().inNamespace(ns).list()?.items ?: [] + } catch (KubernetesClientException e) { + if (e.code == 404) { + return [] + } + throw e + } + } + + @CompileDynamic + private String namespaceDeletionDiagnostics(String ns) { + try { + def remaining = client.namespaces().withName(ns).get() + if (remaining == null) { + return "" + } + def pods = listPodsQuietly(ns).collect { + "${it.metadata?.name}(phase=${it.status?.phase}, finalizers=${it.metadata?.finalizers})" + } + return " (phase=${remaining.status?.phase}," + + " deletionTimestamp=${remaining.metadata?.deletionTimestamp}," + + " finalizers=${remaining.metadata?.finalizers}, pods=${pods})" + } catch (Exception e) { + return " (failed to collect namespace diagnostics: ${e.message})" } } diff --git a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy index 766e3b4e3482a..5c674a7b3b03b 100644 --- a/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy +++ b/qa-tests-backend/src/test/groovy/AdmissionControllerTest.groovy @@ -10,6 +10,7 @@ import io.stackrox.proto.storage.ScopeOuterClass import objects.Deployment import services.ClusterService import services.ImageService +import services.NamespaceService import services.PolicyService import util.Timer @@ -132,6 +133,9 @@ class AdmissionControllerTest extends BaseSpecification { } def cleanupSpec() { + // A pod can still be listed after its deployment object is gone, and + // that holds this shared namespace in Terminating. + orchestrator.deleteManagedWorkloads(TEST_NAMESPACE) orchestrator.deleteNamespace(TEST_NAMESPACE) try { @@ -244,6 +248,20 @@ class AdmissionControllerTest extends BaseSpecification { true | true } + // cleanupLabelTestNamespace removes workloads before the namespace. A pod + // from an allowed deployment keeps the namespace past the delete wait, and + // Central can still list it after the API object is gone (ROX-36941). + private void cleanupLabelTestNamespace(String testNs) { + if (!testNs) { + return + } + orchestrator.deleteManagedWorkloads(testNs) + orchestrator.deleteNamespace(testNs) + withRetry(30, 1) { + assert NamespaceService.getNamespaces().every { it.metadata.name != testNs } + } + } + def deleteDeploymentWithCaution(Deployment deployment) { orchestrator.deleteDeployment(deployment) def timer = new Timer(30, 1) @@ -345,16 +363,9 @@ class AdmissionControllerTest extends BaseSpecification { assert created == !blocked cleanup: - // Delete policy first to avoid enforcement blocking cleanup, - // and to prevent leftover policy from impacting later tests. def policyDeletionFailure = deletePolicyWithCaution(policyId) - if (created) { - deleteDeploymentWithCaution(deployment) - } try { - // Wait for full namespace deletion; a namespace left in Terminating state - // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). - orchestrator.deleteNamespace(testNs) + cleanupLabelTestNamespace(testNs) } catch (Exception e) { log.warn "Namespace ${testNs} deletion failed or timed out: ${e.message}" throw e @@ -452,16 +463,9 @@ class AdmissionControllerTest extends BaseSpecification { assert created2 cleanup: - // Delete policy first to avoid enforcement blocking cleanup, - // and to prevent leftover policy from impacting later tests. def policyDeletionFailure = deletePolicyWithCaution(policyId) - if (created2) { - deleteDeploymentWithCaution(deployment2) - } try { - // Wait for full namespace deletion; a namespace left in Terminating state - // leaks into NamespaceTest and breaks its ACS/orchestrator count check (ROX-36941). - orchestrator.deleteNamespace(testNs) + cleanupLabelTestNamespace(testNs) } catch (Exception e) { log.warn "Namespace ${testNs} deletion failed or timed out: ${e.message}" throw e From e92a1d9fad2d3a451ed12ee82ff6c4f2e3be0c86 Mon Sep 17 00:00:00 2001 From: Mladen Todorovic Date: Fri, 2 Oct 2026 10:42:20 +0200 Subject: [PATCH 182/327] ROX-22443: Cleanup of obsolete PLOP pruning methods (#23156) --- .../datastore/datastore.go | 3 - .../datastore/datastore_impl.go | 126 ------- .../datastore/datastore_impl_test.go | 342 ------------------ .../datastore/mocks/datastore.go | 41 --- .../datastore/pruning.go | 22 -- central/pruning/pruning.go | 30 +- central/pruning/pruning_test.go | 25 -- 7 files changed, 8 insertions(+), 581 deletions(-) diff --git a/central/processlisteningonport/datastore/datastore.go b/central/processlisteningonport/datastore/datastore.go index d7744f88b2b32..f7308a5a418ed 100644 --- a/central/processlisteningonport/datastore/datastore.go +++ b/central/processlisteningonport/datastore/datastore.go @@ -29,12 +29,9 @@ type DataStore interface { deployment string, ) ([]*storage.ProcessListeningOnPort, error) WalkAll(ctx context.Context, fn WalkFn) error - RemoveProcessListeningOnPort(ctx context.Context, ids []string) error RemovePlopsByPod(ctx context.Context, id string) error PruneOrphanedPLOPs(ctx context.Context, orphanWindow time.Duration) int64 - PruneOrphanedPLOPsByProcessIndicators(ctx context.Context, orphanWindow time.Duration) RemovePLOPsWithoutProcessIndicatorOrProcessInfo(ctx context.Context) (int64, error) - RemovePLOPsWithoutPodUID(ctx context.Context) (int64, error) } // New creates a data store object to access the database. Since some diff --git a/central/processlisteningonport/datastore/datastore_impl.go b/central/processlisteningonport/datastore/datastore_impl.go index cd8219320a726..3783a97139f7b 100644 --- a/central/processlisteningonport/datastore/datastore_impl.go +++ b/central/processlisteningonport/datastore/datastore_impl.go @@ -306,25 +306,6 @@ func (ds *datastoreImpl) WalkAll(ctx context.Context, fn WalkFn) error { return ds.storage.Walk(ctx, fn) } -func (ds *datastoreImpl) RemoveProcessListeningOnPort(ctx context.Context, ids []string) error { - if ok, err := plopSAC.WriteAllowed(ctx); err != nil { - return err - } else if !ok { - return sac.ErrResourceAccessDenied - } - - return ds.removePLOP(ctx, ids) -} - -func (ds *datastoreImpl) removePLOP(ctx context.Context, ids []string) error { - - if len(ids) == 0 { - return nil - } - - return ds.storage.DeleteMany(ctx, ids) -} - func (ds *datastoreImpl) fetchExistingPLOPs( ctx context.Context, indicatorIds []string, @@ -596,27 +577,6 @@ func (ds *datastoreImpl) PruneOrphanedPLOPs(ctx context.Context, orphanWindow ti return commandTag.RowsAffected() } -// PruneOrphanedPLOPsByProcessIndicators prunes PLOPs that match process indicators without pods -func (ds *datastoreImpl) PruneOrphanedPLOPsByProcessIndicators(ctx context.Context, orphanWindow time.Duration) { - // TODO(ROX-22443): Once it is guaranteed that all listening endpoints have PodUIDs, remove this function - ds.mutex.Lock() - defer ds.mutex.Unlock() - - // Delete processes listening on ports orphaned because process indicators are orphaned due to - // missing deployments - query := fmt.Sprintf(deleteOrphanedPLOPDeploymentsAndPI, int(orphanWindow.Minutes())) - if _, err := ds.pool.Exec(ctx, query); err != nil { - log.Errorf("failed to prune process listening on ports by deployment: %v", err) - } - - // Delete processes listening on ports orphaned because process indicators are orphaned due to - // missing pods. - query = fmt.Sprintf(deleteOrphanedPLOPPods, int(orphanWindow.Minutes())) - if _, err := ds.pool.Exec(ctx, query); err != nil { - log.Errorf("failed to prune process listening on ports by pods: %v", err) - } -} - func (ds *datastoreImpl) readRowsToFindPLOPsWithNoProcessInformation(rows pgx.Rows) ([]string, error) { var ids []string @@ -672,89 +632,3 @@ func (ds *datastoreImpl) RemovePLOPsWithoutProcessIndicatorOrProcessInfo(ctx con return int64(len(plopsToDelete)), nil } - -// Removes PLOPs without poduids between a range of ids. -func (ds *datastoreImpl) removePLOPsWithoutPodUIDOnePage(ctx context.Context, prevId string, nextId string) (int64, error) { - ds.mutex.Lock() - defer ds.mutex.Unlock() - - query := fmt.Sprintf(deletePLOPsWithoutPoduidInPage, prevId, nextId) - commandTag, err := ds.pool.Exec(ctx, query) - - if err != nil { - return 0, err - } - - return commandTag.RowsAffected(), nil -} - -// Given a set of rows with ids, returns the id of the last row. This is useful for pagination. -func (ds *datastoreImpl) getLastIdFromRows(ctx context.Context, rows pgx.Rows) (string, error) { - id := "" - - for rows.Next() { - if err := rows.Scan(&id); err != nil { - return "", pgutils.ErrNilIfNoRows(err) - } - } - - return id, rows.Err() -} - -// Given an id and a limit, returns the id a limit number of rows after the given id. This is useful -// for efficient pagination. -func (ds *datastoreImpl) getNextPageId(ctx context.Context, prevId string, limit int) (string, error) { - ds.mutex.Lock() - defer ds.mutex.Unlock() - - query := fmt.Sprintf(getLastIdFromPage, prevId, limit) - rows, err := ds.pool.Query(ctx, query) - - if err != nil { - // Do not be alarmed if the error is simply NoRows - err = pgutils.ErrNilIfNoRows(err) - if err != nil { - log.Warnf("%s: %s", query, err) - } - return "", err - } - defer rows.Close() - - nextId, err := ds.getLastIdFromRows(ctx, rows) - - if err != nil { - return "", err - } - - return nextId, nil -} - -func (ds *datastoreImpl) retryableRemovePLOPsWithoutPodUID(ctx context.Context) (int64, error) { - limit := 10000 - totalRows := int64(0) - - prevId := "00000000-0000-0000-0000-000000000000" - for { - nextId, err := ds.getNextPageId(ctx, prevId, limit) - if err != nil { - return totalRows, err - } - if nextId == "" { - break - } - nrows, err := ds.removePLOPsWithoutPodUIDOnePage(ctx, prevId, nextId) - if err != nil { - return totalRows, err - } - totalRows += nrows - prevId = nextId - } - - return totalRows, nil -} - -func (ds *datastoreImpl) RemovePLOPsWithoutPodUID(ctx context.Context) (int64, error) { - return pgutils.Retry2(ctx, func() (int64, error) { - return ds.retryableRemovePLOPsWithoutPodUID(ctx) - }) -} diff --git a/central/processlisteningonport/datastore/datastore_impl_test.go b/central/processlisteningonport/datastore/datastore_impl_test.go index 6acfb31cf64af..66d5619a04dac 100644 --- a/central/processlisteningonport/datastore/datastore_impl_test.go +++ b/central/processlisteningonport/datastore/datastore_impl_test.go @@ -6,7 +6,6 @@ import ( "context" "fmt" "math/rand" - "slices" "testing" "time" @@ -2500,174 +2499,6 @@ func (suite *PLOPDataStoreTestSuite) TestRemoveOrphanedPLOPs() { } } -func newIndicatorWithDeployment(id string, age time.Duration, deploymentID string) *storage.ProcessIndicator { - return &storage.ProcessIndicator{ - Id: id, - DeploymentId: deploymentID, - ContainerName: "", - PodId: "", - Signal: &storage.ProcessSignal{ - Time: protoconv.NowMinus(age), - }, - } -} - -func newIndicatorWithDeploymentAndPod(id string, age time.Duration, deploymentID, podUID string) *storage.ProcessIndicator { - indicator := newIndicatorWithDeployment(id, age, deploymentID) - indicator.PodUid = podUID - return indicator -} - -func (suite *PLOPDataStoreTestSuite) TestRemoveOrphanedPLOPsByProcesses() { - orphanWindow := 30 * time.Minute - - cases := []struct { - name string - initialProcesses []*storage.ProcessIndicator - initialPlops []*storage.ProcessListeningOnPortStorage - deployments set.FrozenStringSet - pods set.FrozenStringSet - expectedPlopDeletions []string - }{ - { - name: "no deployments nor pods - remove all old indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 1*time.Hour, fixtureconsts.Deployment5, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 1*time.Hour, fixtureconsts.Deployment3, fixtureconsts.PodUID3), - }, - initialPlops: []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - fixtures.GetPlopStorage4(), - fixtures.GetPlopStorage5(), - fixtures.GetPlopStorage6(), - }, - deployments: set.NewFrozenStringSet(), - pods: set.NewFrozenStringSet(), - expectedPlopDeletions: []string{ - fixtureconsts.PlopUID1, - fixtureconsts.PlopUID2, - fixtureconsts.PlopUID3, - fixtureconsts.PlopUID4, - fixtureconsts.PlopUID5, - fixtureconsts.PlopUID6, - }, - }, - { - name: "no deployments nor pods - remove no new orphaned indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 20*time.Minute, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 20*time.Minute, fixtureconsts.Deployment5, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 20*time.Minute, fixtureconsts.Deployment3, fixtureconsts.PodUID3), - }, - initialPlops: []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - }, - deployments: set.NewFrozenStringSet(), - pods: set.NewFrozenStringSet(), - expectedPlopDeletions: nil, - }, - { - name: "all pods separate deployments - remove no indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 1*time.Hour, fixtureconsts.Deployment5, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 1*time.Hour, fixtureconsts.Deployment3, fixtureconsts.PodUID3), - }, - initialPlops: []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - }, - deployments: set.NewFrozenStringSet(fixtureconsts.Deployment6, fixtureconsts.Deployment5, fixtureconsts.Deployment3), - pods: set.NewFrozenStringSet(fixtureconsts.PodUID1, fixtureconsts.PodUID2, fixtureconsts.PodUID3), - expectedPlopDeletions: nil, - }, - { - name: "all pods same deployment - remove no indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID3), - }, - deployments: set.NewFrozenStringSet(fixtureconsts.Deployment6), - pods: set.NewFrozenStringSet(fixtureconsts.PodUID1, fixtureconsts.PodUID2, fixtureconsts.PodUID3), - expectedPlopDeletions: nil, - }, - { - name: "some pods separate deployments - remove some indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 20*time.Minute, fixtureconsts.Deployment5, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 1*time.Hour, fixtureconsts.Deployment3, fixtureconsts.PodUID3), - }, - initialPlops: []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - }, - deployments: set.NewFrozenStringSet(fixtureconsts.Deployment3), - pods: set.NewFrozenStringSet(fixtureconsts.PodUID3), - expectedPlopDeletions: []string{fixtureconsts.PlopUID1}, - }, - { - name: "some pods same deployment - remove some indicators", - initialProcesses: []*storage.ProcessIndicator{ - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID1, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID1), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID2, 20*time.Minute, fixtureconsts.Deployment6, fixtureconsts.PodUID2), - newIndicatorWithDeploymentAndPod(fixtureconsts.ProcessIndicatorID3, 1*time.Hour, fixtureconsts.Deployment6, fixtureconsts.PodUID3), - }, - initialPlops: []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - }, - deployments: set.NewFrozenStringSet(fixtureconsts.Deployment6), - pods: set.NewFrozenStringSet(fixtureconsts.PodUID3), - expectedPlopDeletions: []string{fixtureconsts.PlopUID1}, - }, - } - for _, c := range cases { - suite.T().Run(c.name, func(t *testing.T) { - suite.SetupTest() - // Add deployments if necessary - deploymentDS, err := deploymentStore.GetTestPostgresDataStore(suite.T(), suite.postgres.DB) - suite.Nil(err) - for deploymentID := range c.deployments.All() { - suite.NoError(deploymentDS.UpsertDeployment(suite.hasAllCtx, &storage.Deployment{Id: deploymentID, ClusterId: fixtureconsts.Cluster1})) - } - - for podID := range c.pods.All() { - insertPod := fmt.Sprintf("INSERT INTO pods (id, clusterid) VALUES ('%s', '%s')", podID, fixtureconsts.Cluster1) - _, err := suite.postgres.DB.Exec(suite.hasWriteCtx, insertPod) - suite.Nil(err) - } - - suite.NoError(suite.indicatorDataStore.AddProcessIndicators(suite.hasWriteCtx, c.initialProcesses...)) - countFromDB, err := suite.indicatorDataStore.Count(suite.hasAllCtx, nil) - suite.NoError(err) - suite.Equal(len(c.initialProcesses), countFromDB) - - err = suite.store.UpsertMany(suite.hasWriteCtx, c.initialPlops) - suite.NoError(err) - plopCount, err := suite.store.Count(suite.hasReadCtx, search.EmptyQuery()) - suite.NoError(err) - suite.Equal(len(c.initialPlops), plopCount) - - suite.datastore.PruneOrphanedPLOPsByProcessIndicators(suite.hasAllCtx, orphanWindow) - - plopCount, err = suite.store.Count(suite.hasReadCtx, search.EmptyQuery()) - suite.NoError(err) - suite.Equal(len(c.initialPlops)-len(c.expectedPlopDeletions), plopCount) - - }) - } -} - // RemovePLOPsWithoutProcessIndicatorOrProcessInfo Adds a PLOP with a matching process indicator. // The process indicator is then deleted. This means that the PLOP has no matching // process indicator and does not have any process information. A pruning function @@ -2702,176 +2533,3 @@ func (suite *PLOPDataStoreTestSuite) RemovePLOPsWithoutProcessIndicatorOrProcess newPlopsFromDB := suite.getPlopsFromDB() suite.Len(newPlopsFromDB, 0) } - -func (suite *PLOPDataStoreTestSuite) TestRemovePLOPsWithoutPodUID() { - initialPlops := []*storage.ProcessListeningOnPortStorage{ - fixtures.GetPlopStorage1(), - fixtures.GetPlopStorage2(), - fixtures.GetPlopStorage3(), - fixtures.GetPlopStorage4(), - fixtures.GetPlopStorage5(), - fixtures.GetPlopStorage6(), - } - expectedPlopDeletions := []string{fixtureconsts.PlopUID1, fixtureconsts.PlopUID2, fixtureconsts.PlopUID3} - - err := suite.store.UpsertMany(suite.hasWriteCtx, initialPlops) - suite.NoError(err) - plopCount, err := suite.store.Count(suite.hasReadCtx, search.EmptyQuery()) - suite.NoError(err) - suite.Equal(len(initialPlops), plopCount) - - prunedCount, err := suite.datastore.RemovePLOPsWithoutPodUID(suite.hasWriteCtx) - suite.NoError(err) - suite.Equal(int64(3), prunedCount) - - plopCount, err = suite.store.Count(suite.hasReadCtx, search.EmptyQuery()) - suite.NoError(err) - suite.Equal(len(initialPlops)-len(expectedPlopDeletions), plopCount) - - ids, err := suite.store.GetIDs(suite.hasReadCtx) - suite.NoError(err) - for id := range ids { - suite.NotContains(expectedPlopDeletions, id) - } -} - -func (suite *PLOPDataStoreTestSuite) addTooMany(plops []*storage.ProcessListeningOnPortFromSensor) error { - batchSize := 30000 - - for plopBatch := range slices.Chunk(plops, batchSize) { - // Per-batch deadline so ContextWithTimeoutIfNotExists skips the - // 60-second default without sharing one budget across all batches. - ctx, cancel := context.WithTimeout(suite.hasWriteCtx, 5*time.Minute) - err := suite.datastore.AddProcessListeningOnPort(ctx, fixtureconsts.Cluster1, plopBatch...) - cancel() - if err != nil { - return err - } - } - return nil -} - -func (suite *PLOPDataStoreTestSuite) RemovePLOPsWithoutPodUIDScale(nport int, nprocess int, npod int) { - plopObjects := makeRandomPlops(nport, nprocess, npod, fixtureconsts.Deployment1) - - plopsWithoutPodUids := 0 - for _, plop := range plopObjects { - p := rand.Float32() - if p < 0.5 { - plop.PodUid = "" - plopsWithoutPodUids++ - } - } - - // Add the PLOPs - suite.Require().NoError(suite.addTooMany(plopObjects)) - - plopCount, err := suite.store.Count(suite.hasReadCtx, search.EmptyQuery()) - suite.Equal(plopCount, 2*nport*nprocess*npod) - suite.NoError(err) - - start := time.Now() - prunedCount, err := suite.datastore.RemovePLOPsWithoutPodUID(suite.hasWriteCtx) - suite.Equal(int64(plopsWithoutPodUids), prunedCount) - duration := time.Since(start) - suite.NoError(err) - log.Infof("Pruning %d plops took %s", prunedCount, duration) - _, err = suite.datastore.RemovePLOPsWithoutPodUID(suite.hasWriteCtx) - suite.NoError(err) -} - -func (suite *PLOPDataStoreTestSuite) TestRemovePLOPsWithoutPodUIDScale27K() { - nport := 30 - nprocess := 30 - npod := 30 - - suite.RemovePLOPsWithoutPodUIDScale(nport, nprocess, npod) -} - -func (suite *PLOPDataStoreTestSuite) TestRemovePLOPsWithoutPodUIDScale125K() { - nport := 50 - nprocess := 50 - npod := 50 - - suite.RemovePLOPsWithoutPodUIDScale(nport, nprocess, npod) -} - -func (suite *PLOPDataStoreTestSuite) TestRemovePLOPsWithoutPodUIDScaleRaceCondition() { - var mutex sync.RWMutex - var wg sync.WaitGroup - wg.Add(1) - - running := true - plopsWithoutPodUids := 0 - go func() { - defer wg.Done() - iterations := 3 - for range iterations { - nport := 30 - nprocess := 30 - npod := 30 - plopObjects := makeRandomPlops(nport, nprocess, npod, fixtureconsts.Deployment1) - - for _, plop := range plopObjects { - p := rand.Float32() - if p < 0.5 { - plop.PodUid = "" - plopsWithoutPodUids += 1 - } else { - plop.PodUid = uuid.NewV4().String() - } - } - - // Add the open PLOPs - suite.NoError(suite.addTooMany(plopObjects)) - - // Close the PLOPs - // This is so that UpsertMany will trigger deletes - for _, plop := range plopObjects { - plop.CloseTimestamp = protoconv.ConvertTimeToTimestamp(time.Now()) - } - - // Add the closed PLOPs - suite.NoError(suite.addTooMany(plopObjects)) - } - }() - - totalPrunedCount := 0 - - var wgPrune sync.WaitGroup - wgPrune.Go(func() { - for { - mutex.Lock() - stop := !running - mutex.Unlock() - - if stop { - break - } - - prunedCount, err := suite.datastore.RemovePLOPsWithoutPodUID(suite.hasWriteCtx) - suite.NoError(err) - totalPrunedCount += int(prunedCount) - } - }) - - wg.Wait() - - mutex.Lock() - running = false - mutex.Unlock() - - wgPrune.Wait() - - prunedCount, err := suite.datastore.RemovePLOPsWithoutPodUID(suite.hasWriteCtx) - suite.NoError(err) - totalPrunedCount += int(prunedCount) - - // Each PLOP is opened and closed. If a PLOP is opened then pruned, then closed, - // and pruned again, then it will be pruned twice. If a PLOP is opened, then closed, - // and pruned, then it will be pruned once. Therefore the number of rows pruned will - // be between the number of PLOPs that don't have poduids that were added and twice - // that number. - suite.GreaterOrEqual(plopsWithoutPodUids, totalPrunedCount/2) - suite.LessOrEqual(plopsWithoutPodUids, totalPrunedCount) -} diff --git a/central/processlisteningonport/datastore/mocks/datastore.go b/central/processlisteningonport/datastore/mocks/datastore.go index bc71a23f3157e..053977e9f8ed7 100644 --- a/central/processlisteningonport/datastore/mocks/datastore.go +++ b/central/processlisteningonport/datastore/mocks/datastore.go @@ -91,33 +91,6 @@ func (mr *MockDataStoreMockRecorder) PruneOrphanedPLOPs(ctx, orphanWindow any) * return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PruneOrphanedPLOPs", reflect.TypeOf((*MockDataStore)(nil).PruneOrphanedPLOPs), ctx, orphanWindow) } -// PruneOrphanedPLOPsByProcessIndicators mocks base method. -func (m *MockDataStore) PruneOrphanedPLOPsByProcessIndicators(ctx context.Context, orphanWindow time.Duration) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "PruneOrphanedPLOPsByProcessIndicators", ctx, orphanWindow) -} - -// PruneOrphanedPLOPsByProcessIndicators indicates an expected call of PruneOrphanedPLOPsByProcessIndicators. -func (mr *MockDataStoreMockRecorder) PruneOrphanedPLOPsByProcessIndicators(ctx, orphanWindow any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PruneOrphanedPLOPsByProcessIndicators", reflect.TypeOf((*MockDataStore)(nil).PruneOrphanedPLOPsByProcessIndicators), ctx, orphanWindow) -} - -// RemovePLOPsWithoutPodUID mocks base method. -func (m *MockDataStore) RemovePLOPsWithoutPodUID(ctx context.Context) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemovePLOPsWithoutPodUID", ctx) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// RemovePLOPsWithoutPodUID indicates an expected call of RemovePLOPsWithoutPodUID. -func (mr *MockDataStoreMockRecorder) RemovePLOPsWithoutPodUID(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePLOPsWithoutPodUID", reflect.TypeOf((*MockDataStore)(nil).RemovePLOPsWithoutPodUID), ctx) -} - // RemovePLOPsWithoutProcessIndicatorOrProcessInfo mocks base method. func (m *MockDataStore) RemovePLOPsWithoutProcessIndicatorOrProcessInfo(ctx context.Context) (int64, error) { m.ctrl.T.Helper() @@ -147,20 +120,6 @@ func (mr *MockDataStoreMockRecorder) RemovePlopsByPod(ctx, id any) *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePlopsByPod", reflect.TypeOf((*MockDataStore)(nil).RemovePlopsByPod), ctx, id) } -// RemoveProcessListeningOnPort mocks base method. -func (m *MockDataStore) RemoveProcessListeningOnPort(ctx context.Context, ids []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RemoveProcessListeningOnPort", ctx, ids) - ret0, _ := ret[0].(error) - return ret0 -} - -// RemoveProcessListeningOnPort indicates an expected call of RemoveProcessListeningOnPort. -func (mr *MockDataStoreMockRecorder) RemoveProcessListeningOnPort(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemoveProcessListeningOnPort", reflect.TypeOf((*MockDataStore)(nil).RemoveProcessListeningOnPort), ctx, ids) -} - // WalkAll mocks base method. func (m *MockDataStore) WalkAll(ctx context.Context, fn datastore.WalkFn) error { m.ctrl.T.Helper() diff --git a/central/processlisteningonport/datastore/pruning.go b/central/processlisteningonport/datastore/pruning.go index 1d4da65fcbc26..0b9a484590e9e 100644 --- a/central/processlisteningonport/datastore/pruning.go +++ b/central/processlisteningonport/datastore/pruning.go @@ -1,15 +1,6 @@ package datastore const ( - // Explain Analyze indicated that 2 statements for PLOP is faster than one. - deleteOrphanedPLOPDeploymentsAndPI = `DELETE FROM listening_endpoints WHERE processindicatorid in (SELECT id from process_indicators pi WHERE NOT EXISTS - (SELECT 1 FROM deployments WHERE pi.deploymentid = deployments.Id) AND - (signal_time < now() at time zone 'utc' - INTERVAL '%d MINUTES' OR signal_time is NULL))` - - deleteOrphanedPLOPPods = `DELETE FROM listening_endpoints WHERE processindicatorid in (SELECT id from process_indicators pi WHERE NOT EXISTS - (SELECT 1 FROM pods WHERE pi.poduid = pods.Id) AND - (signal_time < now() at time zone 'utc' - INTERVAL '%d MINUTES' OR signal_time is NULL))` - // Unfortunately if a listening endpoint is marked as being open there is no indication of how old it is. // This leads to a possible race condition where a listening endpoint reaches the database before the deployment, // and the pruning job happens to run before the deployment information arrives in the database. @@ -31,17 +22,4 @@ const ( // if the serialized data has process information. PLOPs without process information are then deleted. getPotentiallyOrphanedPLOPs = `SELECT plop.serialized FROM listening_endpoints plop where NOT EXISTS (select 1 FROM process_indicators proc where plop.processindicatorid = proc.id)` - - // This is used to make pagination more efficient compared to using offset. The ids obtained using this query are used for deleting - // PLOPs without poduids in batches. See the query below this query. - getLastIdFromPage = `WITH tmp as ( - SELECT id FROM listening_endpoints WHERE id > '%s' ORDER BY id LIMIT %d - ) - SELECT id FROM tmp ORDER BY id DESC LIMIT 1` - - // Deletes PLOPs without poduids in batches according to id, which is more efficient than using offset. - // It is possible that new rows may be inserted between the starting and ending ids, after the two ids - // are obtained. Meaning that the number of rows in the page may be different than what is expected for - // the page. This should not cause a problem. - deletePLOPsWithoutPoduidInPage = "DELETE FROM listening_endpoints WHERE poduid is null AND id >= '%s' AND id <= '%s'" ) diff --git a/central/pruning/pruning.go b/central/pruning/pruning.go index dbae515c7df27..a1b82548091de 100644 --- a/central/pruning/pruning.go +++ b/central/pruning/pruning.go @@ -61,8 +61,7 @@ const ( logImbueGCFreq = 24 * time.Hour logImbueWindow = 24 * 7 * time.Hour - alertQueryTimeout = 10 * time.Minute - alertDeleteBatchSize = 5000 + alertQueryTimeout = 10 * time.Minute flowsSemaphoreWeight = 5 @@ -74,14 +73,13 @@ const ( ) var ( - log = logging.LoggerForModule() - pruningCtx = sac.WithAllAccess(context.Background()) - lastClusterPruneTime time.Time - lastLogImbuePruneTime time.Time - lastV1ImagePruneTime time.Time - lastPrunedV1ImageID string - pruningTimeout = env.PostgresDefaultPruningStatementTimeout.DurationSetting() - prunedPLOPsWithoutPodUIDs = false + log = logging.LoggerForModule() + pruningCtx = sac.WithAllAccess(context.Background()) + lastClusterPruneTime time.Time + lastLogImbuePruneTime time.Time + lastV1ImagePruneTime time.Time + lastPrunedV1ImageID string + pruningTimeout = env.PostgresDefaultPruningStatementTimeout.DurationSetting() pruneInterval = env.PruneInterval.DurationSetting() orphanWindow = env.PruneOrphanedWindow.DurationSetting() @@ -671,9 +669,6 @@ func clusterIDsToNegationQuery(clusterIDSet set.FrozenStringSet) *v1.Query { func (g *garbageCollectorImpl) removeOrphanedProcesses() { defer metrics.SetPruningDuration(time.Now(), "Processes") - g.plops.PruneOrphanedPLOPsByProcessIndicators(pruningCtx, orphanWindow) - - log.Info("[PLOP pruning by processes] Pruning of orphaned PLOPs by processes complete") // Prune processes in chunks. First get the ones orphaned by deployments and then go back and // do the same for those orphaned by pod @@ -790,15 +785,6 @@ func (g *garbageCollectorImpl) removeOrphanedPLOPs() { log.Errorf("error removing PLOPs with no matching process indicator or process information: %v", err) } log.Infof("[PLOP pruning] Pruning of %d orphaned PLOPs with no matching process indicator or process information complete", prunedCount) - - // Only run once since we don't expect any new PLOPs without poduids. - if !prunedPLOPsWithoutPodUIDs { - prunedCount, err = g.plops.RemovePLOPsWithoutPodUID(pruningCtx) - if err != nil { - log.Errorf("error removing PLOPs without poduid: %v", err) - } - log.Infof("[PLOP pruning] Prunned %d orphaned PLOPs with no poduid", prunedCount) - } } func (g *garbageCollectorImpl) removeExpiredAdministrationEvents(config *storage.PrivateConfig) { diff --git a/central/pruning/pruning_test.go b/central/pruning/pruning_test.go index a61060837fb1b..7810806dee076 100644 --- a/central/pruning/pruning_test.go +++ b/central/pruning/pruning_test.go @@ -1683,30 +1683,6 @@ func (s *PruningTestSuite) TestRemoveOrphanedPLOPs() { pods: set.NewFrozenStringSet(fixtureconsts.PodUID1), expectedDeletions: []string{}, }, - { - name: "Plop does not have a poduid so it is removed", - initialPlops: []*storage.ProcessListeningOnPortStorage{ - { - Id: plopID1, - Port: 1234, - Protocol: storage.L4Protocol_L4_PROTOCOL_TCP, - CloseTimestamp: nil, - ProcessIndicatorId: fixtureconsts.ProcessIndicatorID1, - Closed: false, - Process: &storage.ProcessIndicatorUniqueKey{ - PodId: fixtureconsts.PodUID1, - ContainerName: "test_container1", - ProcessName: "test_process1", - ProcessArgs: "test_arguments1", - ProcessExecFilePath: "test_path1", - }, - DeploymentId: fixtureconsts.Deployment1, - }, - }, - deployments: set.NewFrozenStringSet(fixtureconsts.Deployment1), - pods: set.NewFrozenStringSet(fixtureconsts.PodUID1), - expectedDeletions: []string{plopID1}, - }, } for _, c := range cases { @@ -1718,7 +1694,6 @@ func (s *PruningTestSuite) TestRemoveOrphanedPLOPs() { postgres: db, plops: plopDS, } - prunedPLOPsWithoutPodUIDs = false // Populate some actual data so the query returns what needs deleted deploymentDS, err := deploymentDatastore.GetTestPostgresDataStore(t, db.DB) From 04ad3ae45ee0ffa6966c315b07d14058c4387e12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:21:37 +0200 Subject: [PATCH 183/327] chore(deps): bump github.com/segmentio/analytics-go/v3 from 3.3.0 to 3.4.0 (#23206) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 +--- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 3dbb7f19cfbbd..8730a77a29fd6 100644 --- a/go.mod +++ b/go.mod @@ -117,7 +117,7 @@ require ( github.com/remind101/migrate v0.0.0-20170729031349-52c1edff7319 github.com/russellhaering/gosaml2 v0.12.0 github.com/russellhaering/goxmldsig v1.6.1 - github.com/segmentio/analytics-go/v3 v3.3.0 + github.com/segmentio/analytics-go/v3 v3.4.0 github.com/sergi/go-diff v1.4.0 github.com/sigstore/cosign/v3 v3.1.3 github.com/sigstore/rekor v1.5.4 @@ -232,7 +232,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.24.4 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect github.com/clipperhouse/displaywidth v0.10.0 // indirect @@ -404,7 +403,6 @@ require ( github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect github.com/sassoftware/relic/v8 v8.2.0 // indirect github.com/secure-systems-lab/go-securesystemslib v0.11.0 // indirect - github.com/segmentio/backo-go v1.0.1 // indirect github.com/shibumi/go-pathspec v1.3.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/sigstore/protobuf-specs v0.5.1 // indirect diff --git a/go.sum b/go.sum index 54bcba05a120b..a6307ca6fc894 100644 --- a/go.sum +++ b/go.sum @@ -275,8 +275,6 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmatcuk/doublestar/v4 v4.10.0 h1:zU9WiOla1YA122oLM6i4EXvGW62DvKZVxIe6TYWexEs= github.com/bmatcuk/doublestar/v4 v4.10.0/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bshuster-repo/logrus-logstash-hook v1.1.0 h1:o2FzZifLg+z/DN1OFmzTWzZZx/roaqt8IPZCIVco8r4= github.com/bshuster-repo/logrus-logstash-hook v1.1.0/go.mod h1:Q2aXOe7rNuPgbBtPCOzYyWDvKX7+FpxE5sRdvcPoui0= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= @@ -1217,10 +1215,8 @@ github.com/sassoftware/relic/v8 v8.2.0/go.mod h1:pZy7hLT9WCOKPonV8G/fplvtBLOZd6/ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/secure-systems-lab/go-securesystemslib v0.11.0 h1:iuCR9kcMFD4QurdKrGvPLoKZLv9YvwPYVr0473BdtFs= github.com/secure-systems-lab/go-securesystemslib v0.11.0/go.mod h1:+PMOTjUGwHj2vcZ+TFKlb1tXRbrdWE1LYDT5i9JC80Q= -github.com/segmentio/analytics-go/v3 v3.3.0 h1:8VOMaVGBW03pdBrj1CMFfY9o/rnjJC+1wyQHlVxjw5o= -github.com/segmentio/analytics-go/v3 v3.3.0/go.mod h1:p8owAF8X+5o27jmvUognuXxdtqvSGtD0ZrfY2kcS9bE= -github.com/segmentio/backo-go v1.0.1 h1:68RQccglxZeyURy93ASB/2kc9QudzgIDexJ927N++y4= -github.com/segmentio/backo-go v1.0.1/go.mod h1:9/Rh6yILuLysoQnZ2oNooD2g7aBnvM7r/fNVxRNWfBc= +github.com/segmentio/analytics-go/v3 v3.4.0 h1:8ACTF5ggK3W70b+kHId5SyxyWGYZ1sdgd/e8tb8jMRM= +github.com/segmentio/analytics-go/v3 v3.4.0/go.mod h1:l0qTADX69i/7AuXvN3tg0QMfcW4Oe6YN5VgsgqGaAPI= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= From 726a1bc1dd5a2b28e9338ca64b951d2036b70c32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 11:44:01 +0200 Subject: [PATCH 184/327] chore(deps): bump github.com/adhocore/gronx from 1.20.4 to 1.20.5 (#23204) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8730a77a29fd6..b27ae1cd889d1 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/RoaringBitmap/roaring/v2 v2.29.0 github.com/Shopify/toxiproxy/v2 v2.12.0 github.com/VividCortex/ewma v1.2.0 - github.com/adhocore/gronx v1.20.4 + github.com/adhocore/gronx v1.20.5 github.com/andygrunwald/go-jira v1.17.0 github.com/aws/aws-sdk-go-v2 v1.47.1 github.com/aws/aws-sdk-go-v2/config v1.33.6 diff --git a/go.sum b/go.sum index a6307ca6fc894..6e90f581aa861 100644 --- a/go.sum +++ b/go.sum @@ -182,8 +182,8 @@ github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpH github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= github.com/aclements/go-perfevent v0.0.0-20240301234650-f7843625020f h1:JjxwchlOepwsUWcQwD2mLUAGE9aCp0/ehy6yCHFBOvo= github.com/aclements/go-perfevent v0.0.0-20240301234650-f7843625020f/go.mod h1:tMDTce/yLLN/SK8gMOxQfnyeMeCg8KGzp0D1cbECEeo= -github.com/adhocore/gronx v1.20.4 h1:vE2UKHC3mRH4DF+tKiq/kOnENTuKaEois2aD0McyHiU= -github.com/adhocore/gronx v1.20.4/go.mod h1:7oUY1WAU8rEJWmAxXR2DN0JaO4gi9khSgKjiRypqteg= +github.com/adhocore/gronx v1.20.5 h1:UgXvkD97Hovm7yA1TTRTd309o9F1h7C8gX04rktaxnE= +github.com/adhocore/gronx v1.20.5/go.mod h1:7oUY1WAU8rEJWmAxXR2DN0JaO4gi9khSgKjiRypqteg= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= From 078b0591fa78f8ba5e4da93aa60cd2127139d3b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 12:20:00 +0200 Subject: [PATCH 185/327] chore(deps): bump github.com/prometheus/common from 0.71.0 to 0.72.0 (#23205) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b27ae1cd889d1..2598452d66714 100644 --- a/go.mod +++ b/go.mod @@ -110,7 +110,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 github.com/prometheus/client_golang v1.24.1 github.com/prometheus/client_model v0.6.3 - github.com/prometheus/common v0.71.0 + github.com/prometheus/common v0.72.0 github.com/quay/claircore v1.6.1-0.20260916195820-3902930ff815 github.com/quay/claircore/toolkit v1.7.0 github.com/quay/zlog/v2 v2.1.1 diff --git a/go.sum b/go.sum index 6e90f581aa861..1ef94600e1504 100644 --- a/go.sum +++ b/go.sum @@ -1156,8 +1156,8 @@ github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7q github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.71.0 h1:9KDAKb7Mj3HEVKyFCK6Dc/HIwlBzZIN2l7/lrHl3KK8= -github.com/prometheus/common v0.71.0/go.mod h1:CLJ5H8TEsGX8bl31BdMkfhIZ+QmZ9tBPPotUxUbfcmk= +github.com/prometheus/common v0.72.0 h1:tAYsE+sPJxIncDAobm4H5aQjmox9ZxEIIqPbiffa8G4= +github.com/prometheus/common v0.72.0/go.mod h1:77NWqAQ2tXT7BIK40qjJdw5Acrsrg1TlHAnsQi3i6mk= github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= From cf4ed53233d591c913ee13d7496f90f1f149ffa5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 14:30:08 +0200 Subject: [PATCH 186/327] chore(deps): bump cloud.google.com/go/compute/metadata from 0.9.1 to 0.10.0 (#23203) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2598452d66714..0b7f76c6842a3 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.26.7 require ( cloud.google.com/go/artifactregistry v1.27.0 - cloud.google.com/go/compute/metadata v0.9.1 + cloud.google.com/go/compute/metadata v0.10.0 cloud.google.com/go/containeranalysis v0.20.0 cloud.google.com/go/securitycenter v1.47.0 cloud.google.com/go/storage v1.68.0 diff --git a/go.sum b/go.sum index 1ef94600e1504..91941176411df 100644 --- a/go.sum +++ b/go.sum @@ -45,8 +45,8 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.9.1 h1:CTE1OWBQ0vnF5uHwdFAQJvMQ0Fi/KRcqqKTo9V0F8Ik= -cloud.google.com/go/compute/metadata v0.9.1/go.mod h1:NtnlvB6X3t4R6xSWyVX/ZWk493PCxGQlhI/iqxh4M8I= +cloud.google.com/go/compute/metadata v0.10.0 h1:pyKMUQSwchgkIBBJGdILqQbs/BNJXqwSA7Ej6LAvvtY= +cloud.google.com/go/compute/metadata v0.10.0/go.mod h1:rGFHRrIif570kSibjFTMbt6/4/tzgJWFGI/HVol4GIk= cloud.google.com/go/containeranalysis v0.20.0 h1:5tko84zYirVH+FEU6JPuT/xGBvSagsllYxH7m8ytjyI= cloud.google.com/go/containeranalysis v0.20.0/go.mod h1:cJzgbuNqFTWswsVcT0eemqdqtOEq4dJEFvAH3cgzkyc= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= From 65992843ad76547b0b365abd0a0dc745ef12b391 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2026 15:43:34 +0200 Subject: [PATCH 187/327] chore(deps): bump github.com/golangci/golangci-lint/v2 from 2.13.2 to 2.14.0 in /tools/linters (#22571) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yann Brillouet --- .../datastore/store/postgres/store_test.go | 6 +- .../migration_test.go | 12 +- tools/linters/go.mod | 46 ++++---- tools/linters/go.sum | 110 +++++++++--------- 4 files changed, 86 insertions(+), 88 deletions(-) diff --git a/central/node/datastore/store/postgres/store_test.go b/central/node/datastore/store/postgres/store_test.go index 07ff3e3018783..8c3ca0de4cc41 100644 --- a/central/node/datastore/store/postgres/store_test.go +++ b/central/node/datastore/store/postgres/store_test.go @@ -284,7 +284,7 @@ func (s *NodesStoreSuite) TestStore_OrphanedCVEs() { s.NoError(err) s.NotEmpty(orphanedCVEs) for _, cve := range orphanedCVEs { - s.NotNil(cve.OrphanedTime) + s.NotNil(cve.GetOrphanedTime()) s.True(vulnNames.Contains(cve.GetCveBaseInfo().GetCve())) } @@ -311,8 +311,8 @@ func (s *NodesStoreSuite) TestStore_OrphanedCVEs() { s.NoError(err) s.NotEmpty(nodeCVEs) for _, cve := range nodeCVEs { - s.False(cve.Orphaned) - s.Nil(cve.OrphanedTime) + s.False(cve.GetOrphaned()) + s.Nil(cve.GetOrphanedTime()) val, ok := orphanedCveIDToCve[cve.GetId()] s.True(ok) s.Equal(val.GetCveBaseInfo().GetCreatedAt(), cve.GetCveBaseInfo().GetCreatedAt()) diff --git a/migrator/migrations/m_211_to_m_212_admission_control_config/migration_test.go b/migrator/migrations/m_211_to_m_212_admission_control_config/migration_test.go index 1f3d1e59d47de..7bfbd94cdfe51 100644 --- a/migrator/migrations/m_211_to_m_212_admission_control_config/migration_test.go +++ b/migrator/migrations/m_211_to_m_212_admission_control_config/migration_test.go @@ -63,17 +63,17 @@ func (s *migrationTestSuite) TestMigration() { search.NewQueryBuilder().AddExactMatches(search.Cluster, clusters[0].GetName()).ProtoQuery()) assert.NoError(s.T(), err) - assert.EqualValues(s.T(), result[0].HelmConfig.GetDynamicConfig().GetAdmissionControllerConfig().GetScanInline(), false) - assert.EqualValues(s.T(), result[0].HelmConfig.GetDynamicConfig().GetAdmissionControllerConfig().GetEnabled(), true) - assert.EqualValues(s.T(), result[0].HelmConfig.GetDynamicConfig().GetAdmissionControllerConfig().GetEnforceOnUpdates(), false) + assert.EqualValues(s.T(), result[0].GetHelmConfig().GetDynamicConfig().GetAdmissionControllerConfig().GetScanInline(), false) + assert.EqualValues(s.T(), result[0].GetHelmConfig().GetDynamicConfig().GetAdmissionControllerConfig().GetEnabled(), true) + assert.EqualValues(s.T(), result[0].GetHelmConfig().GetDynamicConfig().GetAdmissionControllerConfig().GetEnforceOnUpdates(), false) result, err = store.GetByQuery(s.ctx, search.NewQueryBuilder().AddExactMatches(search.Cluster, clusters[1].GetName()).ProtoQuery()) assert.NoError(s.T(), err) - assert.EqualValues(s.T(), result[0].DynamicConfig.GetAdmissionControllerConfig().GetScanInline(), true) - assert.EqualValues(s.T(), result[0].DynamicConfig.GetAdmissionControllerConfig().GetEnabled(), true) - assert.EqualValues(s.T(), result[0].DynamicConfig.GetAdmissionControllerConfig().GetEnforceOnUpdates(), true) + assert.EqualValues(s.T(), result[0].GetDynamicConfig().GetAdmissionControllerConfig().GetScanInline(), true) + assert.EqualValues(s.T(), result[0].GetDynamicConfig().GetAdmissionControllerConfig().GetEnabled(), true) + assert.EqualValues(s.T(), result[0].GetDynamicConfig().GetAdmissionControllerConfig().GetEnforceOnUpdates(), true) } diff --git a/tools/linters/go.mod b/tools/linters/go.mod index 4d3dd838c74ef..83ba756a9d4ee 100644 --- a/tools/linters/go.mod +++ b/tools/linters/go.mod @@ -4,7 +4,7 @@ go 1.26.7 require ( actionlint.kjanat.dev v1.17.0 - github.com/golangci/golangci-lint/v2 v2.13.2 + github.com/golangci/golangci-lint/v2 v2.14.0 github.com/nilslice/protolock v0.17.0 github.com/sethvargo/ratchet v0.12.0 golang.org/x/vuln v1.8.0 @@ -14,12 +14,12 @@ require ( 4d63.com/gocheckcompilerdirectives v1.4.0 // indirect 4d63.com/gochecknoglobals v0.2.2 // indirect charm.land/lipgloss/v2 v2.0.6 // indirect - codeberg.org/chavacava/garif v0.2.0 // indirect + codeberg.org/chavacava/garif v0.2.1 // indirect codeberg.org/polyfloyd/go-errorlint v1.9.0 // indirect dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect - dev.gaijin.team/go/exhaustruct/v5 v5.0.3 // indirect + dev.gaijin.team/go/exhaustruct/v5 v5.2.0 // indirect dev.gaijin.team/go/golib v0.8.1 // indirect - github.com/4meepo/tagalign v1.4.3 // indirect + github.com/4meepo/tagalign v1.4.4 // indirect github.com/Abirdcfly/dupword v0.1.8 // indirect github.com/AdminBenni/iota-mixing v1.0.0 // indirect github.com/AlwxSin/noinlineerr v1.0.6 // indirect @@ -33,7 +33,7 @@ require ( github.com/MirrexOne/unqueryvet v1.5.4 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect github.com/alecthomas/chroma/v2 v2.27.0 // indirect - github.com/alecthomas/go-check-sumtype v0.3.1 // indirect + github.com/alecthomas/go-check-sumtype v0.5.1-0.20260828200218-ae6904d28606 // indirect github.com/alexkohler/nakedret/v2 v2.0.6 // indirect github.com/alexkohler/prealloc v1.1.0 // indirect github.com/alfatraining/structtag v1.0.0 // indirect @@ -79,8 +79,8 @@ require ( github.com/firefart/nonamedreturns v1.0.8 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/ghostiam/protogetter v0.3.21 // indirect - github.com/go-critic/go-critic v0.14.4 // indirect + github.com/ghostiam/protogetter v1.0.1 // indirect + github.com/go-critic/go-critic v0.15.0 // indirect github.com/go-toolsmith/astcast v1.1.0 // indirect github.com/go-toolsmith/astcopy v1.1.0 // indirect github.com/go-toolsmith/astequal v1.2.0 // indirect @@ -91,8 +91,8 @@ require ( github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/godoc-lint/godoc-lint v0.11.2 // indirect - github.com/gofrs/flock v0.13.0 // indirect + github.com/godoc-lint/godoc-lint v0.11.4 // indirect + github.com/gofrs/flock v0.13.1 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golangci/asciicheck v0.5.0 // indirect github.com/golangci/canonicalheader v0.0.0-20260827115959-a25c71c521f6 // indirect @@ -131,10 +131,10 @@ require ( github.com/kulti/thelper v0.7.1 // indirect github.com/kunwardeep/paralleltest v1.0.15 // indirect github.com/ldez/exptostd v0.4.5 // indirect - github.com/ldez/gomoddirectives v0.9.0 // indirect + github.com/ldez/gomoddirectives v0.10.0 // indirect github.com/ldez/grignotin v0.10.1 // indirect github.com/ldez/structtags v0.6.1 // indirect - github.com/ldez/tagliatelle v0.7.2 // indirect + github.com/ldez/tagliatelle v0.8.0 // indirect github.com/ldez/usetesting v0.5.0 // indirect github.com/leonklingele/grouper v1.1.2 // indirect github.com/lucasb-eyer/go-colorful v1.4.1 // indirect @@ -150,13 +150,13 @@ require ( github.com/mattn/go-runewidth v0.0.28 // indirect github.com/mattn/go-shellwords v1.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect - github.com/mgechev/revive v1.15.0 // indirect + github.com/mgechev/revive v1.17.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/moricho/tparallel v0.3.2 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/nakabonne/nestif v0.3.1 // indirect - github.com/nishanths/exhaustive v0.12.0 // indirect + github.com/nishanths/exhaustive v0.13.0 // indirect github.com/nishanths/predeclared v0.2.2 // indirect github.com/nunnatsa/ginkgolinter v0.24.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect @@ -172,7 +172,7 @@ require ( github.com/quasilyte/gogrep v0.5.0 // indirect github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect - github.com/raeperd/recvcheck v0.3.0 // indirect + github.com/raeperd/recvcheck v0.3.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/rogpeppe/go-internal v1.16.0 // indirect @@ -183,11 +183,11 @@ require ( github.com/santhosh-tekuri/jsonschema/v6 v6.0.3 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect - github.com/securego/gosec/v2 v2.28.0 // indirect - github.com/sirupsen/logrus v1.10.1 // indirect + github.com/securego/gosec/v2 v2.29.0 // indirect + github.com/sirupsen/logrus v1.10.2 // indirect github.com/sivchari/containedctx v1.0.3 // indirect github.com/sonatard/noctx v0.5.1 // indirect - github.com/sourcegraph/go-diff v0.8.0 // indirect + github.com/sourcegraph/go-diff v0.9.0 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cobra v1.10.2 // indirect @@ -200,8 +200,8 @@ require ( github.com/stretchr/testify v1.12.1 // indirect github.com/subosito/gotenv v1.4.1 // indirect github.com/tetafro/godot v1.5.6 // indirect - github.com/timakin/bodyclose v0.0.0-20260129054331-73d1f95b84b4 // indirect - github.com/timonwong/loggercheck v0.11.0 // indirect + github.com/timakin/bodyclose v0.0.0-20260723120731-857993a2939c // indirect + github.com/timonwong/loggercheck v0.12.0 // indirect github.com/tomarrell/wrapcheck/v2 v2.12.0 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/ultraware/funlen v0.2.0 // indirect @@ -209,7 +209,7 @@ require ( github.com/uudashr/gocognit v1.2.1 // indirect github.com/uudashr/iface v1.5.1 // indirect github.com/xen0n/gosmopolitan v1.3.0 // indirect - github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect + github.com/xo/terminfo v1.0.0 // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.3.0 // indirect github.com/ykadowak/zerologlint v0.1.5 // indirect @@ -217,7 +217,7 @@ require ( go-simpler.org/musttag v0.14.0 // indirect go-simpler.org/sloglint v0.12.0 // indirect go.augendre.info/arangolint v0.4.0 // indirect - go.augendre.info/fatcontext v0.10.0 // indirect + go.augendre.info/fatcontext v0.10.1 // indirect go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.27.0 // indirect go.yaml.in/yaml/v3 v3.0.5 // indirect @@ -230,11 +230,11 @@ require ( golang.org/x/telemetry v0.0.0-20260908163034-4bcc4b2ee518 // indirect golang.org/x/text v0.41.0 // indirect golang.org/x/tools v0.50.0 // indirect - google.golang.org/protobuf v1.36.11 // indirect + google.golang.org/protobuf v1.36.12 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.8.1 // indirect - mvdan.cc/gofumpt v0.11.0 // indirect + mvdan.cc/gofumpt v0.12.0 // indirect mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8 // indirect ) diff --git a/tools/linters/go.sum b/tools/linters/go.sum index 3b5529ba3af82..9e857582744b5 100644 --- a/tools/linters/go.sum +++ b/tools/linters/go.sum @@ -38,19 +38,19 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= -codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= +codeberg.org/chavacava/garif v0.2.1 h1:K9oYxSlvlXrHXyW26Z4q61bTpJDo1wbvXcYKar/F/LM= +codeberg.org/chavacava/garif v0.2.1/go.mod h1:oHnDSmc0f9K1MeE+MQD/yjkiIB5Xsn5y3S9Dg96Xk84= codeberg.org/polyfloyd/go-errorlint v1.9.0 h1:VkdEEmA1VBpH6ecQoMR4LdphVI3fA4RrCh2an7YmodI= codeberg.org/polyfloyd/go-errorlint v1.9.0/go.mod h1:GPRRu2LzVijNn4YkrZYJfatQIdS+TrcK8rL5Xs24qw8= dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= -dev.gaijin.team/go/exhaustruct/v5 v5.0.3 h1:yOeA7DNjlT8y4yfmN6nWWYYggA13N523YAj9/TXbuTM= -dev.gaijin.team/go/exhaustruct/v5 v5.0.3/go.mod h1:KwtBsX8nHHH1YxhxkpiBq6bfsmw5WnazWpNvJPHgY9Y= +dev.gaijin.team/go/exhaustruct/v5 v5.2.0 h1:HZB49Fshn8qHJCi9VzYtrcnR1jbLteRHXfnQz8Adams= +dev.gaijin.team/go/exhaustruct/v5 v5.2.0/go.mod h1:5IshpqhgGdKIrF8lBmi3M6YKmI7T3hMzAL9nrflko88= dev.gaijin.team/go/golib v0.8.1 h1:JYju4x9BSo+QD/AYeHULVDcvEhiFg8wOi6pT0IaZF5E= dev.gaijin.team/go/golib v0.8.1/go.mod h1:c5fu7t1RSGMxSQgcUYO1sODbzsYnOCXJLmHeNG1Eb+0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8= -github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= +github.com/4meepo/tagalign v1.4.4 h1:052JDGj2pBORc6NkD30dDXpsUpoYszDeUwr9/5YZuVA= +github.com/4meepo/tagalign v1.4.4/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= github.com/Abirdcfly/dupword v0.1.8 h1:SrhcUuGsROBuChFxHALRYzyyPODWn9zwghmzPvD9Cd8= github.com/Abirdcfly/dupword v0.1.8/go.mod h1:XZrhVnI7YGpsTiWZANSQaBJ4QpL/Tq5vIEdKJJAs9WI= github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo= @@ -81,8 +81,8 @@ github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8v github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/chroma/v2 v2.27.0 h1:FodwmyOBgJULFYmDqibcp9pvfDLWdtPRh9v/r5BXYZs= github.com/alecthomas/chroma/v2 v2.27.0/go.mod h1:NjJ3ciIgrqBNeIkWZ4e46nseoLDslxU1LmfCoL+wcY8= -github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU= -github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E= +github.com/alecthomas/go-check-sumtype v0.5.1-0.20260828200218-ae6904d28606 h1:dXPJ+uOJLWb8rjlAuLX7JPiRJtZKw/53Ol+WxdDJ1Eo= +github.com/alecthomas/go-check-sumtype v0.5.1-0.20260828200218-ae6904d28606/go.mod h1:ZH31IJyNpxpStxP2ayCcPQz+3T2G/OnxIQqe4LWvSDw= github.com/alecthomas/repr v0.5.2 h1:SU73FTI9D1P5UNtvseffFSGmdNci/O6RsqzeXJtP0Qs= github.com/alecthomas/repr v0.5.2/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -172,9 +172,8 @@ github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEy github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo= github.com/dave/jennifer v1.7.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc= 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/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/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8= @@ -205,10 +204,10 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghostiam/protogetter v0.3.21 h1:EeWTGvL/Eyosp653hiWb6Byx4b69iJC4/E+za7vQHoI= -github.com/ghostiam/protogetter v0.3.21/go.mod h1:iAKSpyoHwYzay+OpjoWgwzRtPFthEfuUvmlomTThck0= -github.com/go-critic/go-critic v0.14.4 h1:dSX4C3pWSeuMVxvQh6yG8U0ReSf3YOmKi4nwX5q7n/8= -github.com/go-critic/go-critic v0.14.4/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= +github.com/ghostiam/protogetter v1.0.1 h1:q4LLTx2KJHJpxrfO3BniUDWoFkoqWD/UlHhClBlUlLM= +github.com/ghostiam/protogetter v1.0.1/go.mod h1:50Fh5yZfs6SFGrd1FlmT04NcguyEOxyjNK5zGD6/EvM= +github.com/go-critic/go-critic v0.15.0 h1:MDUZIQKytIl+vPEc0Igw51m4uLTdi1ZGz2jatEqNs1g= +github.com/go-critic/go-critic v0.15.0/go.mod h1:3BPrw8nHATGm3o2n37cssOmJzpySGKCdY8JWkCzxgKQ= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -218,8 +217,8 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.4 h1:tG4xh9yMsRCAiodLVTxyrkzSZ9+o0L1Kg/+cPVcbP/8= +github.com/go-logr/logr v1.4.4/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-quicktest/qt v1.102.0 h1:HSQxCeh5YZH3EL3W39ixjtyaEhcWSXQHtHnMBzSs474= github.com/go-quicktest/qt v1.102.0/go.mod h1:p4lGIVX+8Wa6ZPNDvqcxq36XpUDLh42FLetFU7odllI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -250,10 +249,10 @@ github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUW github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/godoc-lint/godoc-lint v0.11.2 h1:Bp0FkJWoSdNsBikdNgIcgtaoo+xz6I/Y9s5WSBQUeeM= -github.com/godoc-lint/godoc-lint v0.11.2/go.mod h1:iVpGdL1JCikNH2gGeAn3Hh+AgN5Gx/I/cxV+91L41jo= -github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= -github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/godoc-lint/godoc-lint v0.11.4 h1:N9zUYVJ/OkznBbrBsU/zODvua64EUplMBLQWStO3+1M= +github.com/godoc-lint/godoc-lint v0.11.4/go.mod h1:7usTXoxS0QYIi5usTSCPwR0w/6xLjcz450shXjLn3t4= +github.com/gofrs/flock v0.13.1 h1:jjREztyBeSKBZYAC+mgc1laB+xsgy4kYMf3FbKF2UBo= +github.com/gofrs/flock v0.13.1/go.mod h1:sf4BFiHwnvgxa25DlQoDqXQnwRMEOwqxRq37P6MzzmE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -294,8 +293,8 @@ github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarog github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss= github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792 h1:WL8YKrt3UbOBqSRU7GpP5BTtQTMWtVtj+mfPijgZeIg= github.com/golangci/gofmt v0.0.0-20260820135601-e84e05053792/go.mod h1:te5hX0dW4C5r6YbXs+6ysNr8Q5UTmdIqGbb+mlFiYmA= -github.com/golangci/golangci-lint/v2 v2.13.2 h1:bCyq3E4vo9qwzifjpzJqYndEt7Ncva80qkk8G2B4TXU= -github.com/golangci/golangci-lint/v2 v2.13.2/go.mod h1:5xaMd1kAxV7GSBPEyngw8gnnjoRocqW9UVKdBR6627w= +github.com/golangci/golangci-lint/v2 v2.14.0 h1:ot8QffRa4LzAAEgtvNYrVs9esxQ7xoTwoAv6uhp4ngA= +github.com/golangci/golangci-lint/v2 v2.14.0/go.mod h1:amHimCzNDP1GfVno3hIiNssjvqXmuW+CPZAHOdR4cIc= github.com/golangci/golines v0.15.0 h1:Qnph25g8Y1c5fdo1X7GaRDGgnMHgnxh4Gk4VfPTtRx0= github.com/golangci/golines v0.15.0/go.mod h1:AZjXd23tbHMpowhtnGlj9KCNsysj72aeZVVHnVcZx10= github.com/golangci/misspell v0.8.0 h1:qvxQhiE2/5z+BVRo1kwYA8yGz+lOlu5Jfvtx2b04Jbg= @@ -344,8 +343,8 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20260709232956-b9395ee17fa0 h1:du0WGc8xSKq/++e0cglxhS/mXVqsR7+c7jLEi5Vqduw= -github.com/google/pprof v0.0.0-20260709232956-b9395ee17fa0/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= +github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3 h1:LMLX+LgTNWpfvCBdFebv6EsYotImrt/Ppc5cXIriCSo= +github.com/google/pprof v0.0.0-20260802141513-ef3492d7dac3/go.mod h1:jl5iWTm0/hd5PjEYEOuwAJ57L/CibdZfrqZ5XA5GrCk= github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -422,14 +421,14 @@ github.com/kunwardeep/paralleltest v1.0.15 h1:ZMk4Qt306tHIgKISHWFJAO1IDQJLc6uDyJ github.com/kunwardeep/paralleltest v1.0.15/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= -github.com/ldez/gomoddirectives v0.9.0 h1:2YV/EX7nVlWL4jySusYTzBKHuE3D2fgcRsQuMa3yIoo= -github.com/ldez/gomoddirectives v0.9.0/go.mod h1:DdZzfm9MdXCjn2/UGYXCFfo+tzrp2Ib4iD2Q0kIJkwE= +github.com/ldez/gomoddirectives v0.10.0 h1:Zb23rfMMkG21B6pZ9OfESzemByP5Qr7YvWcXQZE/S3Q= +github.com/ldez/gomoddirectives v0.10.0/go.mod h1:W9uh0721Vc7aaVoiMXTpKIveLmtHC9uaOSiHM4OK5a8= github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= github.com/ldez/structtags v0.6.1 h1:bUooFLbXx41tW8SvkfwfFkkjPYvFFs59AAMgVg6DUBk= github.com/ldez/structtags v0.6.1/go.mod h1:YDxVSgDy/MON6ariaxLF2X09bh19qL7MtGBN5MrvbdY= -github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= -github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= +github.com/ldez/tagliatelle v0.8.0 h1:QczqVPa22JdT40p3m5JTTVmPMv5wDORqdomJn6/Pnn0= +github.com/ldez/tagliatelle v0.8.0/go.mod h1:K9n83Wv0wyVq3JYF9WI28BX8xXhDBVP3thHJ0ENuiEs= github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= @@ -462,8 +461,8 @@ github.com/mattn/go-shellwords v1.0.14 h1:yUKzIgsCnosndOASY6/enly1EAuaXeFSQ7cdyA github.com/mattn/go-shellwords v1.0.14/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mgechev/revive v1.15.0 h1:vJ0HzSBzfNyPbHKolgiFjHxLek9KUijhqh42yGoqZ8Q= -github.com/mgechev/revive v1.15.0/go.mod h1:LlAKO3QQe9OJ0pVZzI2GPa8CbXGZ/9lNpCGvK4T/a8A= +github.com/mgechev/revive v1.17.0 h1:hwTTVC3svSv9X2FA2hiYT17Uws+lfxDWhPxzBZZCREg= +github.com/mgechev/revive v1.17.0/go.mod h1:uiVNUF8ruVh4WHm/aPs7kKEeuo+m6oO3tuOfniyzP/g= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= @@ -483,14 +482,14 @@ github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81 github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nilslice/protolock v0.17.0 h1:sYvcukABl62tZX77H6NuV+jtlwTIfQbn0ln0ixTqr4A= github.com/nilslice/protolock v0.17.0/go.mod h1:DYFqop7QlHjmBCaJKfcVO1Mw5b8JejJZgMvmFng/N9Y= -github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg= -github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= +github.com/nishanths/exhaustive v0.13.0 h1:Rof0axOSNQaaPaPmLK5RxcRrJV2Vcv+vfUmuRy+2EAM= +github.com/nishanths/exhaustive v0.13.0/go.mod h1:3/adQjJgvD/UFHHSYBjpK9Wbz8DOvf0FBtzx+zI0Rlo= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= github.com/nunnatsa/ginkgolinter v0.24.0 h1:Mp0EagluLFP98JatP6nqp/gGEoljNG97uf9AcxcBVy8= github.com/nunnatsa/ginkgolinter v0.24.0/go.mod h1:2ZMRuzX6+3XXyY6UZOwb6n+MCocVGbkIsDBC4vuWz5c= -github.com/onsi/ginkgo/v2 v2.32.0 h1:Hw7s2pVrQo/8Yz5N77qdnpHaoc+c6cC9WIV1Jce+J6E= -github.com/onsi/ginkgo/v2 v2.32.0/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= +github.com/onsi/ginkgo/v2 v2.32.1 h1:6tlvcDm/3sE8lGJbZ4+d4mO3RLy24/tQWOFzVSQNIfw= +github.com/onsi/ginkgo/v2 v2.32.1/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44= github.com/onsi/gomega v1.42.1 h1:iN1rCUX+44NZ1Dc97MPoeFYbFR0vh8zxoxMFwKdyZ6I= github.com/onsi/gomega v1.42.1/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -544,8 +543,8 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= -github.com/raeperd/recvcheck v0.3.0 h1:PM+XYvyxIj3bo+kobJfFTdTuU3Lmfu96mKDbyHDbRt8= -github.com/raeperd/recvcheck v0.3.0/go.mod h1:PZNwG+HztFYMH2ZPq0Hu3QgkV2yiA6VrtNz9c1fXWJo= +github.com/raeperd/recvcheck v0.3.1 h1:p7nZMxiCWkdUtY2i3o+pv1h4fJCR5gpvqAXr9326hEY= +github.com/raeperd/recvcheck v0.3.1/go.mod h1:CbE7iRocQ4uc71JwpW/CPSh4BShnkre4A9Gb508RypU= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= @@ -568,8 +567,8 @@ github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tM github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ= github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8= -github.com/securego/gosec/v2 v2.28.0 h1:ZsSdiDb0AtTpLFVol5z91gbMei9ZiLEPG/pZjZujp7c= -github.com/securego/gosec/v2 v2.28.0/go.mod h1:lb4/9AHe+lJy/kjWmWRWWsEipvbwGKuxf+tY1Pmjdnk= +github.com/securego/gosec/v2 v2.29.0 h1:pF2HSLcnY5voqpxQumEe0O5YAAbvF4Syu4qeIewpLyc= +github.com/securego/gosec/v2 v2.29.0/go.mod h1:47C7ej+L2bC1NOxteU2aCGnCi4cZaoKzRt5y9plIvuY= 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/sethvargo/ratchet v0.12.0 h1:UY1sEevYHi28ryw9c8eHOLonc6oePZDUXHbzx0ESQqw= @@ -577,14 +576,14 @@ github.com/sethvargo/ratchet v0.12.0/go.mod h1:Unu+6zOcsnJj5x/hKgiaRKbGKPZkysoYk github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.10.1 h1:xi4336Zh11WpU14fXR6I67V3yaTPQYwRx2WEtHbRg4Q= -github.com/sirupsen/logrus v1.10.1/go.mod h1:vsQHnG7xzNsxk3NrwboUiWPnIC3dmbjcGPykD7+tiHk= +github.com/sirupsen/logrus v1.10.2 h1:G2SED73/qrAu6YwbdxOD6peLkCBI3z7L+ykJFTXJBBo= +github.com/sirupsen/logrus v1.10.2/go.mod h1:SLEg8TqYulVKKfIGHldVp2K2aYz2DKSVBq4g/H5bR7Q= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= github.com/sonatard/noctx v0.5.1 h1:wklWg9c9ZYugOAk7qG4yP4PBrlQsmSLPTvW1K4PRQMs= github.com/sonatard/noctx v0.5.1/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas= -github.com/sourcegraph/go-diff v0.8.0 h1:ipIyu4cTsLbIrln4l0qtHA3r0a7gyK4ntKjtQytHhvY= -github.com/sourcegraph/go-diff v0.8.0/go.mod h1:hWlcO7Al+UZStZAP8rBumHpCK5ZHQ5BXsMls8p4+F5E= +github.com/sourcegraph/go-diff v0.9.0 h1:7xcVsayWHhvxZGrqt1o89vvBApCa4nyCgO7tNxDHJ+Q= +github.com/sourcegraph/go-diff v0.9.0/go.mod h1:hWlcO7Al+UZStZAP8rBumHpCK5ZHQ5BXsMls8p4+F5E= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= @@ -620,10 +619,10 @@ github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpR github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= github.com/tetafro/godot v1.5.6 h1:IEkrFCwXaYHlOn4mGzGS3F3dkP6m9t0jpwqBFPIkKiA= github.com/tetafro/godot v1.5.6/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU= -github.com/timakin/bodyclose v0.0.0-20260129054331-73d1f95b84b4 h1:SiHe5XLTn9sFWJ5pBwJ5FN/4j34q9ZlOAD//kMoMYp0= -github.com/timakin/bodyclose v0.0.0-20260129054331-73d1f95b84b4/go.mod h1:sDHLK7rb/59v/ZxZ7KtymgcoxuUMxjXq8gtu9VMOK8M= -github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M= -github.com/timonwong/loggercheck v0.11.0/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= +github.com/timakin/bodyclose v0.0.0-20260723120731-857993a2939c h1:d/FUP8GD4QiY/rdFzZmBu3KqL9eBNVzMu7W/5pGkaMM= +github.com/timakin/bodyclose v0.0.0-20260723120731-857993a2939c/go.mod h1:sDHLK7rb/59v/ZxZ7KtymgcoxuUMxjXq8gtu9VMOK8M= +github.com/timonwong/loggercheck v0.12.0 h1:7Cb9XGLJZSWYNjgL459DIhpSiEHupD+MLQ6vaN2Pl3g= +github.com/timonwong/loggercheck v0.12.0/go.mod h1:Wa6Y+SJHQR01mViZlLLY5GAZVOWOLNMbkXddMjFWQCs= github.com/tomarrell/wrapcheck/v2 v2.12.0 h1:H/qQ1aNWz/eeIhxKAFvkfIA+N7YDvq6TWVFL27Of9is= github.com/tomarrell/wrapcheck/v2 v2.12.0/go.mod h1:AQhQuZd0p7b6rfW+vUwHm5OMCGgp63moQ9Qr/0BpIWo= github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= @@ -638,8 +637,8 @@ github.com/uudashr/iface v1.5.1 h1:BS3yrgaT55s3dAtJoxuTnsZNbsejq/mVuzp49YDyfBA= github.com/uudashr/iface v1.5.1/go.mod h1:5UWoT6SvTdTww/KToRj6clO+n4Kg3/NrAQvgOB+5Ggw= github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM= github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4= -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/xo/terminfo v1.0.0 h1:2ZpYzqWzyyytjk3TP6aJVDhkMAkc99/1xKQdA3TDTBY= +github.com/xo/terminfo v1.0.0/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= github.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs= @@ -662,8 +661,8 @@ go-simpler.org/sloglint v0.12.0 h1:UzWDlLWNE5FLqsvyq3tWYHuQMbqrervOhT8qPl4Mmw4= go-simpler.org/sloglint v0.12.0/go.mod h1:jBjjC2bm8rYrs88oTRlFX497kWjJsyZWYoNaXkGRI6I= go.augendre.info/arangolint v0.4.0 h1:xSCZjRoS93nXazBSg5d0OGCi9APPLNMmmLrC995tR50= go.augendre.info/arangolint v0.4.0/go.mod h1:l+f/b4plABuFISuKnTGD4RioXiCCgghv2xqst/xOvAA= -go.augendre.info/fatcontext v0.10.0 h1:HhFopmivh8U1+AU7f0kuwUeg2eiIns7YsGQOMHwSJ90= -go.augendre.info/fatcontext v0.10.0/go.mod h1:pqpGvA9GlrXy+aXkp8L2dKz12Zp4g2FhzcAtwToU+2w= +go.augendre.info/fatcontext v0.10.1 h1:HCS/+eob32cM0mEtmZM6NiXdqvS5KiZmsR+fCubTpbc= +go.augendre.info/fatcontext v0.10.1/go.mod h1:pqpGvA9GlrXy+aXkp8L2dKz12Zp4g2FhzcAtwToU+2w= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -985,14 +984,13 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= -google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= +google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= 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 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= 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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -1016,8 +1014,8 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.8.1 h1:+JKf3xJ1ni4CwrhVg4/pqsfPGP6vNAXcKbMXJodYx3w= honnef.co/go/tools v0.8.1/go.mod h1:XA+OnlRA9EDh/ukGvXMNSZNKGwFQJ+5dER0ioUkOxks= -mvdan.cc/gofumpt v0.11.0 h1:0H01XB95PnN2QgCSR9ELdZyTlJqNZ7181B0BTMh5VZc= -mvdan.cc/gofumpt v0.11.0/go.mod h1:BeT5wCsOJt6J9zT2MZIOGszjUHzFkn1/l9g6xAzqsXo= +mvdan.cc/gofumpt v0.12.0 h1:1Lbudkz2kpM9Cjz2pL4M19u7q+GaEhCTNf7N9mfpcho= +mvdan.cc/gofumpt v0.12.0/go.mod h1:SmBHHrljiZu/uoypeKup3rFzP6eoC9UwCp2iH5E3jZA= mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8 h1:Re1NRyLpiAt9kB+ImaaoapwWiQXrKwER4tY8fLOkDew= mvdan.cc/unparam v0.0.0-20260823230713-2fa3d841b0c8/go.mod h1:MrS/+zJ1M2xvGXhKktiHbNQeQPyg3Qel+KkzT+f7/i4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= From 21230a6b546de186dbde0fc7292668a97af3c25a Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Fri, 2 Oct 2026 07:28:18 -0700 Subject: [PATCH 188/327] ROX-37321: Use workflow-provided tag for Konflux E2E tests (#23136) Signed-off-by: Saif Chaudhry --- qa-tests-backend/scripts/run-part-1.sh | 3 --- tests/e2e/lib.sh | 31 -------------------------- 2 files changed, 34 deletions(-) diff --git a/qa-tests-backend/scripts/run-part-1.sh b/qa-tests-backend/scripts/run-part-1.sh index 90a8bf9d3ec3e..d05a0f7a3cd16 100755 --- a/qa-tests-backend/scripts/run-part-1.sh +++ b/qa-tests-backend/scripts/run-part-1.sh @@ -76,9 +76,6 @@ EOF if [[ "${USE_KONFLUX_IMAGES:-false}" == "true" ]]; then info "Environment contains USE_KONFLUX_IMAGES=true, will be using Konflux-built images for deploying StackRox" patch_yaml "$config_file" ".roxie.konfluxImages = true" - elif pr_has_label test-konflux-images; then - info "PR label 'test-konflux-images' detected, will be using Konflux-built images for deploying StackRox" - patch_yaml "$config_file" ".roxie.konfluxImages = true" fi deploy_stackrox_with_roxie_compat "$config_file" setup_client_TLS_certs "$ROOT/$DEPLOY_DIR/client_TLS_certs" diff --git a/tests/e2e/lib.sh b/tests/e2e/lib.sh index a3e31a2da973b..8f3f484b202e8 100755 --- a/tests/e2e/lib.sh +++ b/tests/e2e/lib.sh @@ -157,8 +157,6 @@ deploy_stackrox_with_roxie() { ROX_ADMIN_PASSWORD="$(gen_admin_password)" export ROX_ADMIN_PASSWORD # Let roxie pick it up automatically. - prepare_for_konflux "$config_file" - workaround_label_length_limitation "$config_file" # Print out the config file in use for transparency. @@ -212,35 +210,6 @@ deploy_stackrox_with_roxie() { info "╚═════════════════════╝" } -prepare_for_konflux() { - local config_file="$1" - local use_konflux - use_konflux=$(yq eval ".roxie.konfluxImages" "$config_file") - local main_image_tag - main_image_tag=$(yq eval ".roxie.version" "$config_file") - if [[ "$use_konflux" == "true" ]]; then - # We need to be able to pull operator bundle images. - registry_ro_login "quay.io/rhacs-eng" - - info "Checking if ACS main image tag needs to be patched for Konflux usage: current tag is ${main_image_tag}" - if is_CI; then - # get_branch_name() may only be called in CI context. - local branch_name - branch_name="$(get_branch_name)" - if [[ "$branch_name" =~ ^release- ]]; then - info "On release branch (${branch_name}), skipping main image tag patching for Konflux usage" - return - fi - fi - info "Patching main image tag for Konflux usage: using ${main_image_tag}" - if [[ "$main_image_tag" != *-fast ]]; then - main_image_tag="${main_image_tag}-fast" - patch_yaml "$config_file" ".roxie.version = \"${main_image_tag}\"" - info "Main image tag patched for Konflux usage: ${main_image_tag}" - fi - fi -} - # When deploying Konflux-built images, we might get an additional "-fast" suffix on the main image version, # which can easily cause the Helm chart labels to exceed the 63 character limit. To work around this, we # use shorter labels for the the roxie-deployed resources. From 7fdaba163cc0cb24f009a70ba8ff0bd7d90cb56a Mon Sep 17 00:00:00 2001 From: Saif Chaudhry Date: Fri, 2 Oct 2026 09:24:59 -0700 Subject: [PATCH 189/327] ROX-37315: Keep deploy checks with image exclusions (#23107) Signed-off-by: Saif Chaudhry --- CHANGELOG.md | 1 + central/policy/matcher/cluster.go | 4 + central/policy/matcher/deployment.go | 4 + central/policy/matcher/matcher.go | 7 + central/policy/matcher/matcher_test.go | 38 +++++ central/policy/matcher/namespace.go | 2 +- pkg/detection/compiled_policy.go | 11 +- pkg/detection/compiled_policy_test.go | 11 ++ .../deploytime/detector_impl_test.go | 138 ++++++++++++++++++ pkg/detection/exclusion_test.go | 22 +++ 10 files changed, 235 insertions(+), 3 deletions(-) create mode 100644 central/policy/matcher/matcher_test.go create mode 100644 pkg/detection/deploytime/detector_impl_test.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d2a12a8afb7e..b67d569ffd14c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ Changes should still be described appropriately in JIRA/doc input pages, for inc - ROX-36534: roxctl binaries in the Central image are now stored as `.tar.gz` archives. Central extracts and streams the binary on download, so the user-facing download behavior is unchanged. - ROX-35137: Central now prunes deployments whose cluster no longer exists in the database. - ROX-37048: Central writes its version in `Rh-Central-Version` gRPC response header to authenticated clients. `roxctl` compares this version with its own version and reports a warning to stderr if the version skew is outside of a supported range. +- ROX-37315: Image exclusions no longer turn off deploy-time checks. Previously, an image exclusion on a policy with Build and Deploy stages stopped that policy from raising deploy-time violations or blocking any deployment. Image exclusions now apply only at Build, so after upgrading, affected policies raise deploy-time violations again and block deployments if enforcement is on. To skip apps at deploy time, use deployment exclusions. ## [5.0.0] diff --git a/central/policy/matcher/cluster.go b/central/policy/matcher/cluster.go index b1b57f1bf151a..623a74c2b7a5c 100644 --- a/central/policy/matcher/cluster.go +++ b/central/policy/matcher/cluster.go @@ -48,6 +48,10 @@ func (m *clusterMatcher) anyExclusionMatches(exclusions []*storage.Exclusion) bo } func (m *clusterMatcher) exclusionMatches(exclusion *storage.Exclusion) bool { + if !appliesToDeployments(exclusion) { + return false + } + cs, err := scopecomp.CompileScope(exclusion.GetDeployment().GetScope(), nil, nil) if err != nil { utils.Should(errors.Wrap(err, "could not compile excluded scopes")) diff --git a/central/policy/matcher/deployment.go b/central/policy/matcher/deployment.go index 6058438bc79e8..2098b4090e8ce 100644 --- a/central/policy/matcher/deployment.go +++ b/central/policy/matcher/deployment.go @@ -56,6 +56,10 @@ func (m *deploymentMatcher) anyExclusionMatches(ctx context.Context, exclusions } func (m *deploymentMatcher) exclusionMatches(ctx context.Context, exclusion *storage.Exclusion) bool { + if !appliesToDeployments(exclusion) { + return false + } + // If excluded scope does not match the deployment then no need to check for deployment name if !m.scopeMatches(ctx, exclusion.GetDeployment().GetScope()) { return false diff --git a/central/policy/matcher/matcher.go b/central/policy/matcher/matcher.go index a80cd6c64ad54..4ecf17b5645f1 100644 --- a/central/policy/matcher/matcher.go +++ b/central/policy/matcher/matcher.go @@ -11,3 +11,10 @@ type Matcher interface { FilterApplicablePolicies(ctx context.Context, policies []*storage.Policy) (applicable []*storage.Policy, notApplicable []*storage.Policy) IsPolicyApplicable(ctx context.Context, policy *storage.Policy) bool } + +// appliesToDeployments reports whether the exclusion has a deployment part. Image-only exclusions +// are applied to images, so they must not exclude deployments, namespaces, or clusters. Without this +// check, the nil deployment scope matches everything and the policy looks inapplicable everywhere. +func appliesToDeployments(exclusion *storage.Exclusion) bool { + return exclusion.GetDeployment() != nil +} diff --git a/central/policy/matcher/matcher_test.go b/central/policy/matcher/matcher_test.go new file mode 100644 index 0000000000000..f142435bbbc00 --- /dev/null +++ b/central/policy/matcher/matcher_test.go @@ -0,0 +1,38 @@ +package matcher + +import ( + "context" + "testing" + + "github.com/stackrox/rox/generated/storage" + "github.com/stretchr/testify/assert" +) + +// TestImageOnlyExclusionDoesNotExcludeEntities checks that an image-only exclusion leaves the policy +// applicable to every deployment, namespace, and cluster, while a deployment exclusion still excludes. +func TestImageOnlyExclusionDoesNotExcludeEntities(t *testing.T) { + ctx := context.Background() + deployment := &storage.Deployment{Name: "payments", ClusterId: "cluster1", Namespace: "shop"} + namespace := &storage.NamespaceMetadata{Name: "shop", ClusterId: "cluster1"} + cluster := &storage.Cluster{Id: "cluster1"} + + matchers := map[string]Matcher{ + "deployment": NewDeploymentMatcher(deployment, nil, nil), + "namespace": NewNamespaceMatcher(namespace), + "cluster": NewClusterMatcher(cluster, []*storage.NamespaceMetadata{namespace}), + } + + imageOnly := &storage.Policy{Exclusions: []*storage.Exclusion{ + {Image: &storage.Exclusion_Image{Name: "docker.io/library/nginx"}}, + }} + clusterExclusion := &storage.Policy{Exclusions: []*storage.Exclusion{ + {Deployment: &storage.Exclusion_Deployment{Scope: &storage.Scope{Cluster: "cluster1"}}}, + }} + + for name, m := range matchers { + t.Run(name, func(t *testing.T) { + assert.True(t, m.IsPolicyApplicable(ctx, imageOnly), "image-only exclusion should not exclude") + assert.False(t, m.IsPolicyApplicable(ctx, clusterExclusion), "cluster-scoped exclusion should exclude") + }) + } +} diff --git a/central/policy/matcher/namespace.go b/central/policy/matcher/namespace.go index 1cf53532e9f72..4d4f182056dde 100644 --- a/central/policy/matcher/namespace.go +++ b/central/policy/matcher/namespace.go @@ -46,7 +46,7 @@ func (m *namespaceMatcher) anyExclusionMatches(exclusions []*storage.Exclusion) } func (m *namespaceMatcher) exclusionMatches(exclusion *storage.Exclusion) bool { - return m.scopeMatches(exclusion.GetDeployment().GetScope()) + return appliesToDeployments(exclusion) && m.scopeMatches(exclusion.GetDeployment().GetScope()) } func (m *namespaceMatcher) anyScopeMatches(scopes []*storage.Scope) bool { diff --git a/pkg/detection/compiled_policy.go b/pkg/detection/compiled_policy.go index 9fedc810495f5..5f64900b4f543 100644 --- a/pkg/detection/compiled_policy.go +++ b/pkg/detection/compiled_policy.go @@ -514,8 +514,15 @@ func newCompiledExclusion(exclusion *storage.Exclusion) (*compiledExclusion, err return cx, nil } +// appliesToDeployments reports whether the exclusion has a deployment part. Image-only exclusions are +// applied to images, so they must not match deployments or audit events. Without this check, the nil +// deployment scope matches everything and the exclusion turns the policy off for every deployment. +func (cw *compiledExclusion) appliesToDeployments() bool { + return cw.exclusion.GetDeployment() != nil +} + func (cw *compiledExclusion) MatchesDeployment(ctx context.Context, deployment *storage.Deployment) bool { - if exclusionIsExpired(cw.exclusion) { + if !cw.appliesToDeployments() || exclusionIsExpired(cw.exclusion) { return false } @@ -527,7 +534,7 @@ func (cw *compiledExclusion) MatchesDeployment(ctx context.Context, deployment * } func (cw *compiledExclusion) MatchesAuditEvent(ctx context.Context, auditEvent *storage.KubernetesEvent) bool { - if exclusionIsExpired(cw.exclusion) { + if !cw.appliesToDeployments() || exclusionIsExpired(cw.exclusion) { return false } if !cw.cs.MatchesAuditEvent(ctx, auditEvent) { diff --git a/pkg/detection/compiled_policy_test.go b/pkg/detection/compiled_policy_test.go index db16cf30375cf..8b61fc306e9b6 100644 --- a/pkg/detection/compiled_policy_test.go +++ b/pkg/detection/compiled_policy_test.go @@ -68,6 +68,17 @@ func TestCompiledPolicyScopesAndExclusions(t *testing.T) { exclusions: []*storage.Exclusion{{Deployment: &storage.Exclusion_Deployment{Scope: appStackRoxScope}}}, shouldApplyTo: []*storage.Deployment{stackRoxNSDep}, }, + { + desc: "image-only exclusion does not exclude any deployment", + exclusions: []*storage.Exclusion{{Image: &storage.Exclusion_Image{Name: "docker.io/library/unrelated"}}}, + shouldApplyTo: []*storage.Deployment{stackRoxNSDep, defaultNSDep, appStackRoxDep}, + }, + { + desc: "only stackrox ns, with an image-only exclusion", + scopes: []*storage.Scope{stackRoxNSScope}, + exclusions: []*storage.Exclusion{{Image: &storage.Exclusion_Image{Name: "docker.io/library/unrelated"}}}, + shouldApplyTo: []*storage.Deployment{stackRoxNSDep, appStackRoxDep}, + }, { desc: "only default ns", scopes: []*storage.Scope{defaultNSScope}, diff --git a/pkg/detection/deploytime/detector_impl_test.go b/pkg/detection/deploytime/detector_impl_test.go new file mode 100644 index 0000000000000..4a8d896e7c550 --- /dev/null +++ b/pkg/detection/deploytime/detector_impl_test.go @@ -0,0 +1,138 @@ +package deploytime + +import ( + "context" + "testing" + "time" + + "github.com/stackrox/rox/generated/storage" + "github.com/stackrox/rox/pkg/booleanpolicy" + "github.com/stackrox/rox/pkg/booleanpolicy/fieldnames" + "github.com/stackrox/rox/pkg/booleanpolicy/policyversion" + "github.com/stackrox/rox/pkg/detection" + "github.com/stackrox/rox/pkg/protocompat" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const ( + excludedImage = "registry.example.com/team/legacy-app:1.0" + vulnerableImage = "registry.example.com/team/payments:2.3" +) + +// oldCriticalCVEPolicy mirrors a "Block Critical CVE older than 180 days" policy that runs at +// both the build and deploy stages and excludes a single image. +func oldCriticalCVEPolicy(exclusions ...*storage.Exclusion) *storage.Policy { + return &storage.Policy{ + Id: "old-critical-cve", + Name: "Block Critical CVE older than 180 days", + PolicyVersion: policyversion.CurrentVersion().String(), + Severity: storage.Severity_CRITICAL_SEVERITY, + LifecycleStages: []storage.LifecycleStage{storage.LifecycleStage_BUILD, storage.LifecycleStage_DEPLOY}, + Exclusions: exclusions, + PolicySections: []*storage.PolicySection{{ + PolicyGroups: []*storage.PolicyGroup{ + {FieldName: fieldnames.Severity, Values: []*storage.PolicyValue{{Value: "CRITICAL"}}}, + {FieldName: fieldnames.DaysSinceImageFirstDiscovered, Values: []*storage.PolicyValue{{Value: "180"}}}, + }, + }}, + } +} + +func imageExclusion(fullName string) *storage.Exclusion { + return &storage.Exclusion{Image: &storage.Exclusion_Image{Name: fullName}} +} + +func imageWithOldCriticalCVE(t *testing.T, fullName string) *storage.Image { + firstSeen, err := protocompat.ConvertTimeToTimestampOrError(time.Now().AddDate(0, 0, -365)) + require.NoError(t, err) + return &storage.Image{ + Id: fullName + "-sha", + Name: &storage.ImageName{FullName: fullName}, + Scan: &storage.ImageScan{ + Components: []*storage.EmbeddedImageScanComponent{{ + Name: "openssl", + Version: "1.0.1", + Vulns: []*storage.EmbeddedVulnerability{{ + Cve: "CVE-2014-0160", + Severity: storage.VulnerabilitySeverity_CRITICAL_VULNERABILITY_SEVERITY, + FirstImageOccurrence: firstSeen, + }}, + }}, + }, + } +} + +func deploymentRunning(name string, image *storage.Image) booleanpolicy.EnhancedDeployment { + return booleanpolicy.EnhancedDeployment{ + Deployment: &storage.Deployment{ + Id: name + "-id", + Name: name, + Namespace: "shop", + ClusterId: "cluster-1", + Containers: []*storage.Container{{ + Name: name, + Image: &storage.ContainerImage{Id: image.GetId(), Name: image.GetName()}, + }}, + }, + Images: []*storage.Image{image}, + } +} + +func detectorFor(t *testing.T, policy *storage.Policy) Detector { + policySet := detection.NewPolicySet(nil, nil) + require.NoError(t, policySet.UpsertPolicy(policy)) + return NewDetector(policySet) +} + +// TestImageExclusionDoesNotDisableDeployTimeDetection reproduces the customer report: adding an +// image exclusion to a build and deploy policy stopped the policy from alerting on every deployment, +// including deployments that do not run the excluded image. +func TestImageExclusionDoesNotDisableDeployTimeDetection(t *testing.T) { + ctx := context.Background() + payments := deploymentRunning("payments", imageWithOldCriticalCVE(t, vulnerableImage)) + + t.Run("without an exclusion, the vulnerable deployment alerts", func(t *testing.T) { + alerts, err := detectorFor(t, oldCriticalCVEPolicy()).Detect(ctx, payments) + require.NoError(t, err) + assert.Len(t, alerts, 1) + }) + + t.Run("with an image exclusion, a deployment that does not run the excluded image still alerts", func(t *testing.T) { + policy := oldCriticalCVEPolicy(imageExclusion(excludedImage)) + alerts, err := detectorFor(t, policy).Detect(ctx, payments) + require.NoError(t, err) + require.Len(t, alerts, 1) + assert.Equal(t, "payments", alerts[0].GetDeployment().GetName()) + }) + + t.Run("with an image exclusion, a deployment running the excluded image still alerts", func(t *testing.T) { + // Image exclusions only apply at build time, so a deployment running the excluded image is + // still evaluated at deploy time. + legacy := deploymentRunning("legacy-app", imageWithOldCriticalCVE(t, excludedImage)) + policy := oldCriticalCVEPolicy(imageExclusion(excludedImage)) + alerts, err := detectorFor(t, policy).Detect(ctx, legacy) + require.NoError(t, err) + require.Len(t, alerts, 1) + assert.Equal(t, "legacy-app", alerts[0].GetDeployment().GetName()) + }) + + t.Run("a deployment exclusion still skips the named deployment", func(t *testing.T) { + policy := oldCriticalCVEPolicy(&storage.Exclusion{Deployment: &storage.Exclusion_Deployment{Name: "payments"}}) + alerts, err := detectorFor(t, policy).Detect(ctx, payments) + require.NoError(t, err) + assert.Empty(t, alerts) + }) +} + +// TestImageExclusionStillAppliesAtBuildTime checks that the fix does not change build-time +// behavior: the excluded image is skipped, other images are still checked. +func TestImageExclusionStillAppliesAtBuildTime(t *testing.T) { + ctx := context.Background() + policy := oldCriticalCVEPolicy(imageExclusion(excludedImage)) + compiled, err := detection.CompilePolicy(policy, nil, nil) + require.NoError(t, err) + + assert.False(t, compiled.AppliesTo(ctx, imageWithOldCriticalCVE(t, excludedImage))) + assert.True(t, compiled.AppliesTo(ctx, imageWithOldCriticalCVE(t, vulnerableImage))) +} diff --git a/pkg/detection/exclusion_test.go b/pkg/detection/exclusion_test.go index f075901acf537..0844f5e17f527 100644 --- a/pkg/detection/exclusion_test.go +++ b/pkg/detection/exclusion_test.go @@ -125,6 +125,18 @@ func TestMatchesDeploymentExclusion(t *testing.T) { }, shouldMatch: false, }, + { + name: "Image-only exclusion does not match deployments", + deployment: fixtures.GetDeployment(), + policy: &storage.Policy{ + Exclusions: []*storage.Exclusion{ + { + Image: &storage.Exclusion_Image{Name: "docker.io/library/nginx"}, + }, + }, + }, + shouldMatch: false, + }, { name: "Scoped excluded scope, but different name", deployment: fixtures.GetDeployment(), @@ -248,3 +260,13 @@ func TestMatchesImageExclusion(t *testing.T) { }) } } + +func TestImageOnlyExclusionDoesNotMatchAuditEvent(t *testing.T) { + cx, err := newCompiledExclusion(&storage.Exclusion{Image: &storage.Exclusion_Image{Name: "docker.io/library/nginx"}}) + require.NoError(t, err) + + auditEvent := &storage.KubernetesEvent{ + Object: &storage.KubernetesEvent_Object{Name: "my-secret", Namespace: "default", ClusterId: "cluster-1"}, + } + assert.False(t, auditEventMatchesExclusions(context.Background(), auditEvent, []*compiledExclusion{cx})) +} From 21188e6c80c28ea13b7c7c4f31b1b1517ebbd9e3 Mon Sep 17 00:00:00 2001 From: Mladen Todorovic Date: Fri, 2 Oct 2026 19:54:39 +0200 Subject: [PATCH 190/327] ROX-37361: Fix test race between Never and main test (#23209) --- central/cluster/lifecycle/gate_test.go | 29 ++++++++++++++++---------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/central/cluster/lifecycle/gate_test.go b/central/cluster/lifecycle/gate_test.go index 7cd8e67424006..c1b00b69e7069 100644 --- a/central/cluster/lifecycle/gate_test.go +++ b/central/cluster/lifecycle/gate_test.go @@ -1,6 +1,7 @@ package lifecycle import ( + "runtime" "testing" "time" @@ -8,12 +9,14 @@ import ( ) func TestGateBlocksDeletionUntilActiveWriteCompletes(t *testing.T) { + clusterID := "cluster-id" + gate := New() writeStarted := make(chan struct{}) releaseWrite := make(chan struct{}) writeFinished := make(chan struct{}) go func() { - active, release := gate.Enter("cluster-id") + active, release := gate.Enter(clusterID) if !active { t.Error("active write was rejected") return @@ -25,23 +28,27 @@ func TestGateBlocksDeletionUntilActiveWriteCompletes(t *testing.T) { }() <-writeStarted - deletionStarted := make(chan func()) - go func() { deletionStarted <- gate.BeginDeletion("cluster-id") }() - require.Never(t, func() bool { - select { - case <-deletionStarted: - return true - default: - return false + deletionStarted := make(chan func(), 1) + go func() { deletionStarted <- gate.BeginDeletion(clusterID) }() + require.Eventually(t, func() bool { + active, release := gate.Enter(clusterID) + if release != nil { + release() } - }, 20*time.Millisecond, time.Millisecond) + + return !active + }, time.Second, 5*time.Millisecond) + + // yield -> to give additional cycles to BeginDeletion. + runtime.Gosched() + require.Empty(t, deletionStarted) close(releaseWrite) <-writeFinished releaseDeletion := <-deletionStarted releaseDeletion() - active, release := gate.Enter("cluster-id") + active, release := gate.Enter(clusterID) require.True(t, active) release() } From 7de5427c0982b6bdf524ced63584faeb7c820c3c Mon Sep 17 00:00:00 2001 From: Mark Pedrotti Date: Fri, 2 Oct 2026 21:44:56 -0400 Subject: [PATCH 191/327] ROX-37354: Remove unique style from compliance scan schedule view (#23217) --- .../Schedules/CreateScanConfigPage.tsx | 20 +- .../Schedules/EditScanConfigDetail.tsx | 69 ++-- .../Schedules/Wizard/ProfileSelection.tsx | 234 -------------- .../Schedules/Wizard/ReportConfiguration.tsx | 48 --- ...lection.tsx => ScanConfigClustersStep.tsx} | 93 +++--- .../Wizard/ScanConfigDeliveryStep.tsx | 34 ++ .../Schedules/Wizard/ScanConfigOptions.tsx | 304 ++++++++---------- .../Wizard/ScanConfigProfilesStep.tsx | 235 ++++++++++++++ ...iewConfig.tsx => ScanConfigReviewStep.tsx} | 48 ++- ...rm.tsx => ScanConfigWizardPageSection.tsx} | 65 ++-- 10 files changed, 538 insertions(+), 612 deletions(-) delete mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ProfileSelection.tsx delete mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx rename ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/{ClusterSelection.tsx => ScanConfigClustersStep.tsx} (69%) create mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigDeliveryStep.tsx create mode 100644 ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigProfilesStep.tsx rename ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/{ReviewConfig.tsx => ScanConfigReviewStep.tsx} (65%) rename ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/{ScanConfigWizardForm.tsx => ScanConfigWizardPageSection.tsx} (87%) diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx index 851ac85b7e708..1f5894bb706e6 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/CreateScanConfigPage.tsx @@ -1,18 +1,18 @@ import type { ReactElement } from 'react'; -import { Breadcrumb, BreadcrumbItem, Divider, PageSection, Title } from '@patternfly/react-core'; +import { Breadcrumb, BreadcrumbItem, PageSection, Title } from '@patternfly/react-core'; import { complianceEnhancedSchedulesPath } from 'routePaths'; import BreadcrumbItemLink from 'Components/BreadcrumbItemLink'; import PageTitle from 'Components/PageTitle'; -import ScanConfigWizardForm from './Wizard/ScanConfigWizardForm'; +import ScanConfigWizardPageSection from './Wizard/ScanConfigWizardPageSection'; function CreateScanConfigPage(): ReactElement { return ( <> - - + + Scan schedules @@ -20,16 +20,10 @@ function CreateScanConfigPage(): ReactElement { Create scan schedule - - - - Create scan schedule - - - - - + + Create scan schedule + ); } diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx index 361fb2e4ae78c..44b54dafe5190 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/EditScanConfigDetail.tsx @@ -4,9 +4,6 @@ import { Breadcrumb, BreadcrumbItem, Bullseye, - Divider, - Flex, - FlexItem, PageSection, Spinner, Title, @@ -17,7 +14,7 @@ import PageTitle from 'Components/PageTitle'; import BreadcrumbItemLink from 'Components/BreadcrumbItemLink'; import type { ComplianceScanConfigurationStatus } from 'services/ComplianceScanConfigurationService'; import { getAxiosErrorMessage } from 'utils/responseErrorUtils'; -import ScanConfigWizardForm from './Wizard/ScanConfigWizardForm'; +import ScanConfigWizardPageSection from './Wizard/ScanConfigWizardPageSection'; import { defaultScanConfigFormValues } from './Wizard/useFormikScanConfig'; import { convertScanConfigToFormik } from './compliance.scanConfigs.utils'; @@ -38,56 +35,50 @@ function EditScanConfigDetail({ return ( <> - + Scan schedules - {!isLoading && !error && scanConfig && ( + {scanConfig && ( Edit {scanConfig.scanName} )} - - {!isLoading && !error && scanConfig && ( - - - Edit {scanConfig.scanName} - - - )} - - - - {isLoading ? ( + {isLoading ? ( + - ) : ( - error && ( - - {getAxiosErrorMessage(error)} - - ) - )} - {!isLoading && scanConfig && ( - - + ) : ( + <> + {scanConfig && ( + + Edit {scanConfig.scanName} + + )} + {error && ( + + + {getAxiosErrorMessage(error)} + + + )} + {scanConfig && ( + - - )} - + )} + + )} ); } diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ProfileSelection.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ProfileSelection.tsx deleted file mode 100644 index 2de996d4ed04a..0000000000000 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ProfileSelection.tsx +++ /dev/null @@ -1,234 +0,0 @@ -import { useCallback, useState } from 'react'; -import type { FormEvent, ReactElement, RefObject } from 'react'; -import { useFormikContext } from 'formik'; -import type { FormikContextType } from 'formik'; -import { - Alert, - Content, - Divider, - Flex, - FlexItem, - Form, - PageSection, - Title, - Toolbar, - ToolbarContent, - ToolbarGroup, -} from '@patternfly/react-core'; -import { ExpandableRowContent, Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; - -import CompoundSearchFilter from 'Components/CompoundSearchFilter/components/CompoundSearchFilter'; -import CompoundSearchFilterLabels from 'Components/CompoundSearchFilter/components/CompoundSearchFilterLabels'; -import type { OnSearchCallback } from 'Components/CompoundSearchFilter/types'; -import { updateSearchFilter } from 'Components/CompoundSearchFilter/utils/utils'; -import TBodyUnified from 'Components/TableStateTemplates/TbodyUnified'; -import useRestQuery from 'hooks/useRestQuery'; -import useTableSelection from 'hooks/useTableSelection'; -import type { ComplianceProfileSummary } from 'services/ComplianceCommon'; -import { listProfileSummaries } from 'services/ComplianceProfileService'; -import type { SearchFilter } from 'types/search'; -import { getTableUIState } from 'utils/getTableUIState'; - -import { complianceProfileOperatorKindLabels } from '../../compliance.constants'; -import { profileSearchFilterConfig } from '../../searchFilterConfig'; -import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; - -const searchFilterConfig = [profileSearchFilterConfig]; - -export type ProfileSelectionProps = { - alertRef: RefObject; - clusterIds: string[]; -}; - -function ProfileSelection({ alertRef, clusterIds }: ProfileSelectionProps): ReactElement { - const { - setFieldValue, - values: formikValues, - touched: formikTouched, - }: FormikContextType = useFormikContext(); - - const [searchFilter, setSearchFilter] = useState({}); - const [expandedProfileNames, setExpandedProfileNames] = useState([]); - const setProfileExpanded = (name: string, isExpanding = true) => - setExpandedProfileNames((prevExpanded) => { - const otherExpandedProfileNames = prevExpanded.filter( - (profileName) => profileName !== name - ); - return isExpanding ? [...otherExpandedProfileNames, name] : otherExpandedProfileNames; - }); - - const onSearch: OnSearchCallback = (payload) => { - setSearchFilter((prevSearchFilter) => updateSearchFilter(prevSearchFilter, payload)); - }; - - const listProfilesQuery = useCallback(() => { - if (clusterIds.length > 0) { - return listProfileSummaries(clusterIds, searchFilter); - } - return Promise.resolve([]); - }, [clusterIds, searchFilter]); - const { - data: profiles, - isLoading: isFetchingProfiles, - error: profilesFetchError, - } = useRestQuery(listProfilesQuery); - - const profileList = profiles ?? []; - - const profileIsPreSelected = useCallback( - (row) => formikValues.profiles.includes(row.name), - [formikValues.profiles] - ); - - const { selected, onSelect } = useTableSelection(profileList, profileIsPreSelected, 'name'); - - const handleSelect = ( - event: FormEvent, - isSelected: boolean, - rowId: number - ) => { - onSelect(event, isSelected, rowId); - - const visibleSelectedNames = profileList - .filter((_, index) => { - return index === rowId ? isSelected : selected[index]; - }) - .map((profile) => profile.name); - - const hiddenSelectedNames = formikValues.profiles.filter( - (name) => !profileList.some((p) => p.name === name) - ); - - setFieldValue('profiles', [...hiddenSelectedNames, ...visibleSelectedNames]); - }; - - const isProfileExpanded = (name: string) => expandedProfileNames.includes(name); - const totalColumns = 7; - - const tableState = getTableUIState({ - isLoading: isFetchingProfiles, - data: profiles, - error: profilesFetchError, - searchFilter, - }); - - return ( - <> - - - - Profiles - - Select profiles to be included in the scan - - - -
- {formikTouched.profiles && formikValues.profiles.length === 0 && ( - - )} - - - - - - - - - - - - - - - - - - - - tableState={tableState} - colSpan={totalColumns} - filteredEmptyProps={{ onClearFilters: () => setSearchFilter({}) }} - renderer={({ data }) => - data.map( - ( - { - description, - name, - productType, - ruleCount, - title, - profileVersion, - operatorKind, - }, - rowIndex - ) => ( - - - - - - - - - - - - - ) - ) - } - /> -
- - ProfileTypeRule setApplicabilityVersion
- handleSelect(event, isSelected, rowIndex), - isSelected: selected[rowIndex], - }} - /> - - setProfileExpanded( - name, - !isProfileExpanded(name) - ), - }} - /> - {name} - {(operatorKind && - complianceProfileOperatorKindLabels[ - operatorKind - ]) ?? - '—'} - {ruleCount}{productType}{profileVersion || '-'}
- - {title} - {description} - -
- - - ); -} - -export default ProfileSelection; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx deleted file mode 100644 index 13ef9885a0edd..0000000000000 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ReportConfiguration.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import type { ReactElement } from 'react'; -import { useFormikContext } from 'formik'; -import type { FormikContextType } from 'formik'; -import { Divider, Flex, FlexItem, Form, PageSection, Title } from '@patternfly/react-core'; - -import NotifierConfigurationForm from 'Components/NotifierConfiguration/NotifierConfigurationForm'; -import usePermissions from 'hooks/usePermissions'; - -// import { getBodyDefault, getSubjectDefault } from '../compliance.scanConfigs.utils'; -import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; - -function ReportConfiguration(): ReactElement { - const formik: FormikContextType = useFormikContext(); - const { hasReadWriteAccess } = usePermissions(); - const hasWriteAccessForIntegration = hasReadWriteAccess('Integration'); - - return ( - <> - - - - Delivery - - - Optionally configure e-mail delivery destinations for reports - - - - -
- - - - ); -} - -export default ReportConfiguration; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ClusterSelection.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigClustersStep.tsx similarity index 69% rename from ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ClusterSelection.tsx rename to ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigClustersStep.tsx index 9b0131e9e9afa..6a01dddfec7ae 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ClusterSelection.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigClustersStep.tsx @@ -7,7 +7,6 @@ import { Alert, Bullseye, Button, - Divider, Flex, FlexItem, Form, @@ -27,7 +26,7 @@ import type { ComplianceIntegration } from 'services/ComplianceIntegrationServic import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; import ComplianceClusterStatus from '../components/ComplianceClusterStatus'; -export type ClusterSelectionProps = { +export type ScanConfigClustersStepProps = { alertRef: RefObject; clusters: ComplianceIntegration[]; isFetchingClusters: boolean; @@ -41,11 +40,11 @@ function InstallClustersButton() { ); } -function ClusterSelection({ +function ScanConfigClustersStep({ alertRef, clusters, isFetchingClusters, -}: ClusterSelectionProps): ReactElement { +}: ScanConfigClustersStepProps): ReactElement { const isRouteEnabled = useIsRouteEnabled(); const isRouteEnabledForClusters = isRouteEnabled('clusters'); const { @@ -151,55 +150,49 @@ function ClusterSelection({ } return ( - <> - - - - Clusters - - Select clusters to be included in the scan - - - -
- -

- Tip: The most common reason a cluster is marked Unhealthy is that the - Compliance Operator is either not installed or is below version 1.6. -

-
- {formikTouched.clusters && formikValues.clusters.length === 0 && ( + + + Clusters + - )} - - - - - - - - - {renderTableBodyContent()} -
- NameOperator statusOperator version
- - + > +

+ Tip: The most common reason a cluster is marked Unhealthy is that the + Compliance Operator is either not installed or is below version 1.6. +

+
+ {formikTouched.clusters && formikValues.clusters.length === 0 && ( + + )} + + + + + + + + + {renderTableBodyContent()} +
+ NameOperator statusOperator version
+ +
+
); } -export default ClusterSelection; +export default ScanConfigClustersStep; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigDeliveryStep.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigDeliveryStep.tsx new file mode 100644 index 0000000000000..85f938cba0e56 --- /dev/null +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigDeliveryStep.tsx @@ -0,0 +1,34 @@ +import type { ReactElement } from 'react'; +import { useFormikContext } from 'formik'; +import type { FormikContextType } from 'formik'; +import { Flex, Form, PageSection, Title } from '@patternfly/react-core'; + +import NotifierConfigurationForm from 'Components/NotifierConfiguration/NotifierConfigurationForm'; +import usePermissions from 'hooks/usePermissions'; + +import type { ScanConfigFormValues } from '../compliance.scanConfigs.utils'; + +function ScanConfigDeliveryStep(): ReactElement { + const formik: FormikContextType = useFormikContext(); + const { hasReadWriteAccess } = usePermissions(); + const hasWriteAccessForIntegration = hasReadWriteAccess('Integration'); + + return ( + + + Delivery +
+ + +
+
+ ); +} + +export default ScanConfigDeliveryStep; diff --git a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx index ea400c613ecde..4406d7374c661 100644 --- a/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx +++ b/ui/apps/platform/src/Containers/ComplianceEnhanced/Schedules/Wizard/ScanConfigOptions.tsx @@ -2,13 +2,11 @@ import type { FormEvent, ReactElement } from 'react'; import { useFormikContext } from 'formik'; import type { FormikContextType } from 'formik'; import { - Divider, Flex, FlexItem, Form, + FormSection, PageSection, - Stack, - StackItem, TextArea, TextInput, TimePicker, @@ -46,184 +44,146 @@ function ScanConfigOptions(): ReactElement { } return ( - <> - - - - Parameters - - Set name and schedule to scan on a recurring basis - - - -
- - - - - - + + Parameters + + + formik.handleChange(event)} + onBlur={formik.handleBlur} + /> + + +