From 82fea403bc24183b2b76efb1cc017e39a6b14f72 Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Wed, 13 Sep 2023 10:24:24 +0200 Subject: [PATCH 1/5] chore(deps): update deps Update some outdated deps Signed-off-by: Flavio Castelli --- Makefile | 2 +- go.mod | 16 ++++++++-------- go.sum | 33 +++++++++++++++++++-------------- 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/Makefile b/Makefile index 981d1d39..934f6399 100644 --- a/Makefile +++ b/Makefile @@ -111,7 +111,7 @@ unit-tests: manifests generate fmt vet setup-envtest ## Run unit tests. .PHONY: setup-envtest integration-tests integration-tests: manifests generate fmt vet setup-envtest ## Run integration tests. - ACK_GINKGO_DEPRECATIONS=2.9.2 KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test ./pkg/... ./controllers/... -ginkgo.v -ginkgo.progress -test.v -coverprofile cover.out + ACK_GINKGO_DEPRECATIONS=2.12.0 KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test ./pkg/... ./controllers/... -ginkgo.v -ginkgo.progress -test.v -coverprofile cover.out .PHONY: generate-crds generate-crds: $(KUSTOMIZE) manifests kustomize ## generate final crds with kustomize. Normally shipped in Helm charts. diff --git a/go.mod b/go.mod index 8a5eb24f..da1482c4 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,13 @@ module github.com/kubewarden/kubewarden-controller -go 1.20 +go 1.21 require ( github.com/ereslibre/kube-webhook-wrapper v0.0.2 github.com/go-logr/logr v1.2.4 github.com/google/go-cmp v0.5.9 - github.com/onsi/ginkgo/v2 v2.9.2 - github.com/onsi/gomega v1.27.4 + github.com/onsi/ginkgo/v2 v2.12.0 + github.com/onsi/gomega v1.27.10 github.com/pkg/errors v0.9.1 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.37.0 @@ -64,13 +64,13 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.24.0 // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/net v0.14.0 // indirect golang.org/x/oauth2 v0.5.0 // indirect - golang.org/x/sys v0.7.0 // indirect - golang.org/x/term v0.7.0 // indirect - golang.org/x/text v0.9.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.7.0 // indirect + golang.org/x/tools v0.12.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect diff --git a/go.sum b/go.sum index 408647bb..be063bb1 100644 --- a/go.sum +++ b/go.sum @@ -377,14 +377,14 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= -github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= +github.com/onsi/ginkgo/v2 v2.12.0 h1:UIVDowFPwpg6yMUpPjGkYvf06K3RAiJXUhCxEwQVHRI= +github.com/onsi/ginkgo/v2 v2.12.0/go.mod h1:ZNEzXISYlqpb8S36iN71ifqLi3vVD1rVJGvWRCJOUpQ= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= -github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -465,6 +465,7 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -527,6 +528,7 @@ go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= @@ -577,6 +579,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -620,8 +624,8 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= 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= @@ -700,14 +704,14 @@ golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/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-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= -golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= 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= @@ -716,8 +720,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/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.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 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= @@ -776,8 +780,8 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= +golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= 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= @@ -886,6 +890,7 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/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/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= From d82aab4ee704ab3a7cfec949a11a82b2840edceb Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Wed, 13 Sep 2023 10:26:58 +0200 Subject: [PATCH 2/5] chore(deps): update Go version Ensure Go 1.21 is used everywhere: GitHub Actions and container image building too Signed-off-by: Flavio Castelli --- .github/workflows/ci.yml | 6 +++--- .github/workflows/release.yml | 2 +- Dockerfile | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 542145f2..b3de1976 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: - go-version: "1.19" + go-version: "1.21" - run: make unit-tests integration_tests: @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: - go-version: "1.19" + go-version: "1.21" - run: make integration-tests golangci: @@ -36,7 +36,7 @@ jobs: - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 - uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: - go-version: "1.19" + go-version: "1.21" - name: golangci-lint uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dd71dbbc..701702db 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: - name: Install Golang uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: - go-version: "1.19" + go-version: "1.21" - name: Checkout code uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 diff --git a/Dockerfile b/Dockerfile index 8844e70b..2872b72e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM golang:1.19 as builder +FROM golang:1.21 as builder WORKDIR /workspace # Copy the Go Modules manifests From c141873c37fbd5a2af339e5f1f7da9aa0beba88c Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Wed, 13 Sep 2023 14:15:41 +0200 Subject: [PATCH 3/5] test: update to latest release of golangci Use latest version of golanci. Also, provide a configuration for the depguard linter Signed-off-by: Flavio Castelli --- .github/workflows/ci.yml | 2 +- .golangci.yml | 32 ++++++++++++++++++++++++++++++++ Makefile | 2 +- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3de1976..806001ad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 with: - version: v1.49.0 + version: v1.54.2 shellcheck: name: Shellcheck diff --git a/.golangci.yml b/.golangci.yml index e4abada0..457f954e 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -64,3 +64,35 @@ linters-settings: max-complexity: 13 nestif: min-complexity: 8 + depguard: + # Rules to apply. + # + # Variables: + # - File Variables + # you can still use and exclamation mark ! in front of a variable to say not to use it. + # Example !$test will match any file that is not a go test file. + # + # `$all` - matches all go files + # `$test` - matches all go test files + # + # - Package Variables + # + # `$gostd` - matches all of go's standard library (Pulled from `GOROOT`) + # + # Default: Only allow $gostd in all files. + rules: + # Name of a rule. + main: + # List of file globs that will match this list of settings to compare against. + # Default: $all + files: + - "!$test" + # List of allowed packages. + allow: + - $gostd + # Packages that are not allowed where the value is a suggestion. + deny: + - pkg: "github.com/sirupsen/logrus" + desc: not allowed + - pkg: "github.com/pkg/errors" + desc: Should be replaced by standard lib errors package diff --git a/Makefile b/Makefile index 934f6399..1fb79240 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ SETUP_ENVTEST_VER := v0.0.0-20211110210527-619e6b92dab9 SETUP_ENVTEST_BIN := setup-envtest SETUP_ENVTEST := $(abspath $(BIN_DIR)/$(SETUP_ENVTEST_BIN)) -GOLANGCI_LINT_VER := v1.52.2 +GOLANGCI_LINT_VER := v1.54.2 GOLANGCI_LINT_BIN := golangci-lint GOLANGCI_LINT := $(BIN_DIR)/$(GOLANGCI_LINT_BIN) From 5c1b038dac6e1799584a832159ea098ceb0e6384 Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Wed, 13 Sep 2023 14:22:28 +0200 Subject: [PATCH 4/5] chore(deps): remove `github.com/pkg/errors` dep Replace the `github.com/pkg/errors` dependency with the `errors` module part of the Go std library Signed-off-by: Flavio Castelli --- .golangci.yml | 2 +- controllers/admissionpolicy_controller.go | 7 +++++-- controllers/clusteradmissionpolicy_controller.go | 7 +++++-- controllers/policy_utils.go | 16 ++++++++-------- controllers/policyserver_controller.go | 11 +++++++---- controllers/policystatus_utils.go | 4 ++-- controllers/utils_test.go | 9 +++++---- go.mod | 2 +- 8 files changed, 34 insertions(+), 24 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 457f954e..1961946b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -86,7 +86,7 @@ linters-settings: # List of file globs that will match this list of settings to compare against. # Default: $all files: - - "!$test" + - "$all" # List of allowed packages. allow: - $gostd diff --git a/controllers/admissionpolicy_controller.go b/controllers/admissionpolicy_controller.go index 0e197ca5..44991e01 100644 --- a/controllers/admissionpolicy_controller.go +++ b/controllers/admissionpolicy_controller.go @@ -18,6 +18,7 @@ package controllers import ( "context" + "errors" "fmt" "github.com/go-logr/logr" @@ -25,7 +26,6 @@ import ( "github.com/kubewarden/kubewarden-controller/internal/pkg/constants" "github.com/kubewarden/kubewarden-controller/internal/pkg/naming" policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" - "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -91,7 +91,10 @@ func (r *AdmissionPolicyReconciler) SetupWithManager(mgr ctrl.Manager) error { ). Complete(r) - return errors.Wrap(err, "failed enrolling controller with manager") + if err != nil { + return errors.Join(errors.New("failed enrolling controller with manager"), err) + } + return nil } func (r *AdmissionPolicyReconciler) findAdmissionPoliciesForConfigMap(object client.Object) []reconcile.Request { diff --git a/controllers/clusteradmissionpolicy_controller.go b/controllers/clusteradmissionpolicy_controller.go index 0b98a9e1..f7febed0 100644 --- a/controllers/clusteradmissionpolicy_controller.go +++ b/controllers/clusteradmissionpolicy_controller.go @@ -18,6 +18,7 @@ package controllers import ( "context" + "errors" "fmt" "github.com/go-logr/logr" @@ -25,7 +26,6 @@ import ( "github.com/kubewarden/kubewarden-controller/internal/pkg/constants" "github.com/kubewarden/kubewarden-controller/internal/pkg/naming" policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" - "github.com/pkg/errors" corev1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -91,7 +91,10 @@ func (r *ClusterAdmissionPolicyReconciler) SetupWithManager(mgr ctrl.Manager) er ). Complete(r) - return errors.Wrap(err, "failed enrolling controller with manager") + if err != nil { + return errors.Join(errors.New("failed enrolling controller with manager"), err) + } + return nil } func (r *ClusterAdmissionPolicyReconciler) findClusterAdmissionPoliciesForConfigMap(object client.Object) []reconcile.Request { diff --git a/controllers/policy_utils.go b/controllers/policy_utils.go index 6403ae40..6caaa079 100644 --- a/controllers/policy_utils.go +++ b/controllers/policy_utils.go @@ -18,6 +18,7 @@ package controllers import ( "context" + "errors" "fmt" "time" @@ -26,7 +27,6 @@ import ( "github.com/kubewarden/kubewarden-controller/internal/pkg/metrics" "github.com/kubewarden/kubewarden-controller/internal/pkg/naming" policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" - "github.com/pkg/errors" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -42,12 +42,12 @@ import ( func setPolicyStatus(ctx context.Context, deploymentsNamespace string, apiReader client.Reader, policy policiesv1.Policy) error { policyServerDeployment := appsv1.Deployment{} if err := apiReader.Get(ctx, types.NamespacedName{Namespace: deploymentsNamespace, Name: naming.PolicyServerDeploymentNameForPolicyServerName(policy.GetPolicyServer())}, &policyServerDeployment); err != nil { - return errors.Wrap(err, "could not get policy server deployment") + return errors.Join(errors.New("could not get policy server deployment"), err) } policyServerConfigMap := corev1.ConfigMap{} if err := apiReader.Get(ctx, types.NamespacedName{Namespace: deploymentsNamespace, Name: naming.PolicyServerDeploymentNameForPolicyServerName(policy.GetPolicyServer())}, &policyServerConfigMap); err != nil { - return errors.Wrap(err, "could not get configmap") + return errors.Join(errors.New("could not get configmap"), err) } policyMap, err := getPolicyMapFromConfigMap(&policyServerConfigMap) @@ -117,7 +117,7 @@ func reconcilePolicy(ctx context.Context, client client.Client, reconciler admis if apierrors.IsNotFound(err) { return ctrl.Result{Requeue: true}, nil } - return ctrl.Result{}, errors.Wrap(err, "could not read policy server Deployment") + return ctrl.Result{}, errors.Join(errors.New("could not read policy server Deployment"), err) } if !isPolicyUniquelyReachable(ctx, client, &policyServerDeployment, policy.GetUniqueName()) { @@ -145,16 +145,16 @@ func reconcilePolicy(ctx context.Context, client client.Client, reconciler admis secret := corev1.Secret{} if err := client.Get(ctx, types.NamespacedName{Namespace: reconciler.DeploymentsNamespace, Name: constants.PolicyServerCARootSecretName}, &secret); err != nil { - return ctrl.Result{}, errors.Wrap(err, "cannot find policy server secret") + return ctrl.Result{}, errors.Join(errors.New("cannot find policy server secret"), err) } if policy.IsMutating() { if err := reconciler.ReconcileMutatingWebhookConfiguration(ctx, policy, &secret, policyServer.NameWithPrefix()); err != nil { - return ctrl.Result{}, errors.Wrap(err, "error reconciling mutating webhook") + return ctrl.Result{}, errors.Join(errors.New("error reconciling mutating webhook"), err) } } else { if err := reconciler.ReconcileValidatingWebhookConfiguration(ctx, policy, &secret, policyServer.NameWithPrefix()); err != nil { - return ctrl.Result{}, errors.Wrap(err, "error reconciling validating webhook") + return ctrl.Result{}, errors.Join(errors.New("error reconciling validating webhook"), err) } } setPolicyAsActive(policy) @@ -178,7 +178,7 @@ func setPolicyAsActive(policy policiesv1.Policy) { func getPolicyServer(ctx context.Context, client client.Client, policy policiesv1.Policy) (*policiesv1.PolicyServer, error) { policyServer := policiesv1.PolicyServer{} if err := client.Get(ctx, types.NamespacedName{Name: policy.GetPolicyServer()}, &policyServer); err != nil { - return nil, errors.Wrap(err, "could not get policy server") + return nil, errors.Join(errors.New("could not get policy server"), err) } return &policyServer, nil } diff --git a/controllers/policyserver_controller.go b/controllers/policyserver_controller.go index 047848a2..926d63c1 100644 --- a/controllers/policyserver_controller.go +++ b/controllers/policyserver_controller.go @@ -18,6 +18,7 @@ package controllers import ( "context" + "errors" "fmt" "time" @@ -25,7 +26,6 @@ import ( "github.com/kubewarden/kubewarden-controller/internal/pkg/admission" "github.com/kubewarden/kubewarden-controller/internal/pkg/constants" policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" - "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" ctrl "sigs.k8s.io/controller-runtime" @@ -70,7 +70,7 @@ func (r *PolicyServerReconciler) Reconcile(ctx context.Context, req ctrl.Request policies, err := r.Reconciler.GetPolicies(ctx, &policyServer, admission.SkipDeleted) if err != nil { - return ctrl.Result{}, errors.Wrap(err, "could not get policies") + return ctrl.Result{}, errors.Join(errors.New("could not get policies"), err) } if policyServer.ObjectMeta.DeletionTimestamp != nil { @@ -112,7 +112,7 @@ func (r *PolicyServerReconciler) reconcileDeletion(ctx context.Context, policySe } if len(policies) == 0 { if err := r.Reconciler.ReconcileDeletion(ctx, policyServer); err != nil { - return ctrl.Result{}, errors.Wrap(err, "could not reconcile policy server deletion") + return ctrl.Result{}, errors.Join(errors.New("could not reconcile policy server deletion"), err) } controllerutil.RemoveFinalizer(policyServer, constants.KubewardenFinalizer) if err := r.Update(ctx, policyServer); err != nil { @@ -193,5 +193,8 @@ func (r *PolicyServerReconciler) SetupWithManager(mgr ctrl.Manager) error { })). Complete(r) - return errors.Wrap(err, "failed enrolling controller with manager") + if err != nil { + return errors.Join(errors.New("failed enrolling controller with manager"), err) + } + return nil } diff --git a/controllers/policystatus_utils.go b/controllers/policystatus_utils.go index 9831dde3..4ca9f2b8 100644 --- a/controllers/policystatus_utils.go +++ b/controllers/policystatus_utils.go @@ -19,12 +19,12 @@ package controllers import ( "context" "encoding/json" + "errors" "fmt" "github.com/kubewarden/kubewarden-controller/internal/pkg/admission" "github.com/kubewarden/kubewarden-controller/internal/pkg/constants" policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" - "github.com/pkg/errors" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" apimeta "k8s.io/apimachinery/pkg/api/meta" @@ -36,7 +36,7 @@ func getPolicyMapFromConfigMap(configMap *corev1.ConfigMap) (admission.PolicyCon policyMap := admission.PolicyConfigEntryMap{} if policies, ok := configMap.Data[constants.PolicyServerConfigPoliciesEntry]; ok { if err := json.Unmarshal([]byte(policies), &policyMap); err != nil { - return policyMap, errors.Wrap(err, "failed to unmarshal policy mapping") + return policyMap, errors.Join(errors.New("failed to unmarshal policy mapping"), err) } } else { return policyMap, nil diff --git a/controllers/utils_test.go b/controllers/utils_test.go index efee947f..806cda9b 100644 --- a/controllers/utils_test.go +++ b/controllers/utils_test.go @@ -17,9 +17,10 @@ limitations under the License. package controllers import ( + "errors" + policiesv1 "github.com/kubewarden/kubewarden-controller/pkg/apis/policies/v1" "github.com/onsi/gomega/types" - "github.com/pkg/errors" . "github.com/onsi/gomega" @@ -104,7 +105,7 @@ func admissionPolicyWithPolicyServerName(name, policyServerName string) *policie func getFreshAdmissionPolicy(namespace, name string) (*policiesv1.AdmissionPolicy, error) { newAdmissionPolicy := policiesv1.AdmissionPolicy{} if err := reconciler.APIReader.Get(ctx, client.ObjectKey{Namespace: namespace, Name: name}, &newAdmissionPolicy); err != nil { - return nil, errors.Wrap(err, "could not find admission policy") + return nil, errors.Join(errors.New("could not find admission policy"), err) } return &newAdmissionPolicy, nil } @@ -123,7 +124,7 @@ func clusterAdmissionPolicyWithPolicyServerName(name, policyServerName string) * func getFreshClusterAdmissionPolicy(name string) (*policiesv1.ClusterAdmissionPolicy, error) { newClusterAdmissionPolicy := policiesv1.ClusterAdmissionPolicy{} if err := reconciler.APIReader.Get(ctx, client.ObjectKey{Name: name}, &newClusterAdmissionPolicy); err != nil { - return nil, errors.Wrap(err, "could not find cluster admission policy") + return nil, errors.Join(errors.New("could not find cluster admission policy"), err) } return &newClusterAdmissionPolicy, nil } @@ -131,7 +132,7 @@ func getFreshClusterAdmissionPolicy(name string) (*policiesv1.ClusterAdmissionPo func getFreshPolicyServer(name string) (*policiesv1.PolicyServer, error) { newPolicyServer := policiesv1.PolicyServer{} if err := reconciler.APIReader.Get(ctx, client.ObjectKey{Name: name}, &newPolicyServer); err != nil { - return nil, errors.Wrap(err, "could not find policy server") + return nil, errors.Join(errors.New("could not find policy server"), err) } return &newPolicyServer, nil } diff --git a/go.mod b/go.mod index da1482c4..4468e32c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( github.com/google/go-cmp v0.5.9 github.com/onsi/ginkgo/v2 v2.12.0 github.com/onsi/gomega v1.27.10 - github.com/pkg/errors v0.9.1 go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.37.0 go.opentelemetry.io/otel/metric v0.37.0 @@ -51,6 +50,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect From 451fffbd77380deeb7dc03bf61c4a86fd6bd20e6 Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Wed, 13 Sep 2023 15:19:26 +0200 Subject: [PATCH 5/5] test: fix depguard config Allow all packages, just have a deny list Signed-off-by: Flavio Castelli --- .golangci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 1961946b..6b9f9a7b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -86,11 +86,8 @@ linters-settings: # List of file globs that will match this list of settings to compare against. # Default: $all files: - - "$all" - # List of allowed packages. - allow: - - $gostd - # Packages that are not allowed where the value is a suggestion. + - $all + - "!$test" deny: - pkg: "github.com/sirupsen/logrus" desc: not allowed