Skip to content

Commit 1bf8aac

Browse files
authored
Migrate from helm/v3 to helm/v4 (#620)
Many changes just required an import statement change (/v3 to /v4). In some cases, the import path changed due to subversion changes in the helm packages (e.g. the "chart" package becomes "chart/v2" to allow room for a future "chart/v3" in Helm's API). Some minor logic changes were made with an explicit goal of keeping behavior identical to helm/v3. Behavior can change at a later date, if needed. Finally, this migration adds a slog adapter for local logging functions to preserve behavior. In the future, we will likely adopt the slog package for Chart Verifier logging. Signed-off-by: Jose R. Gonzalez <komish@flutes.dev>
1 parent 43a0e1c commit 1bf8aac

27 files changed

Lines changed: 461 additions & 312 deletions

cmd/report_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99

1010
"github.com/spf13/viper"
1111
"github.com/stretchr/testify/require"
12-
helmchart "helm.sh/helm/v3/pkg/chart"
12+
helmchart "helm.sh/helm/v4/pkg/chart/v2"
1313

1414
"github.com/redhat-certification/chart-verifier/internal/chartverifier/profiles"
1515
"github.com/redhat-certification/chart-verifier/internal/chartverifier/utils"

cmd/verify.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ import (
3232
apiverifier "github.com/redhat-certification/chart-verifier/pkg/chartverifier/verifier"
3333
apiversion "github.com/redhat-certification/chart-verifier/pkg/chartverifier/version"
3434

35-
"helm.sh/helm/v3/pkg/cli"
36-
"helm.sh/helm/v3/pkg/cli/values"
37-
38-
//"helm.sh/helm/v3/pkg/getter"
35+
"helm.sh/helm/v4/pkg/cli"
36+
"helm.sh/helm/v4/pkg/cli/values"
3937

4038
"github.com/spf13/cobra"
4139
"github.com/spf13/viper"

go.mod

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ require (
1616
github.com/stretchr/testify v1.11.1
1717
golang.org/x/mod v0.36.0
1818
gopkg.in/yaml.v3 v3.0.1
19-
helm.sh/helm/v3 v3.20.2
19+
helm.sh/helm/v4 v4.1.4
2020
k8s.io/api v0.35.1
2121
k8s.io/apimachinery v0.35.1
2222
k8s.io/client-go v0.35.1
@@ -32,30 +32,31 @@ require (
3232
github.com/Masterminds/semver/v3 v3.4.0 // indirect
3333
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
3434
github.com/Masterminds/squirrel v1.5.4 // indirect
35+
github.com/ProtonMail/go-crypto v1.3.0 // indirect
3536
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
3637
github.com/blang/semver/v4 v4.0.0 // indirect
3738
github.com/chai2010/gettext-go v1.0.2 // indirect
38-
github.com/containerd/containerd v1.7.32 // indirect
39-
github.com/containerd/errdefs v1.0.0 // indirect
40-
github.com/containerd/log v0.1.0 // indirect
41-
github.com/containerd/platforms v1.0.0-rc.4 // indirect
39+
github.com/cloudflare/circl v1.6.3 // indirect
4240
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
4341
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
44-
github.com/docker/go-events v0.0.0-20260522192827-649f5caa5440 // indirect
42+
github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a // indirect
4543
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
46-
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
44+
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
4745
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
48-
github.com/fatih/color v1.16.0 // indirect
46+
github.com/extism/go-sdk v1.7.1 // indirect
47+
github.com/fatih/color v1.18.0 // indirect
48+
github.com/fluxcd/cli-utils v0.37.2-flux.1 // indirect
4949
github.com/fsnotify/fsnotify v1.9.0 // indirect
5050
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
51-
github.com/go-errors/errors v1.4.2 // indirect
51+
github.com/go-errors/errors v1.5.1 // indirect
5252
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
5353
github.com/go-logr/logr v1.4.3 // indirect
54-
github.com/go-openapi/jsonpointer v0.21.0 // indirect
55-
github.com/go-openapi/jsonreference v0.20.2 // indirect
56-
github.com/go-openapi/swag v0.23.0 // indirect
54+
github.com/go-openapi/jsonpointer v0.21.1 // indirect
55+
github.com/go-openapi/jsonreference v0.21.0 // indirect
56+
github.com/go-openapi/swag v0.23.1 // indirect
5757
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
5858
github.com/gobwas/glob v0.2.3 // indirect
59+
github.com/gofrs/flock v0.13.0 // indirect
5960
github.com/google/btree v1.1.3 // indirect
6061
github.com/google/gnostic-models v0.7.0 // indirect
6162
github.com/gosuri/uitable v0.0.4 // indirect
@@ -65,16 +66,16 @@ require (
6566
github.com/hashicorp/go-multierror v1.1.1 // indirect
6667
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
6768
github.com/huandu/xstrings v1.5.0 // indirect
69+
github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect
6870
github.com/inconshreveable/mousetrap v1.1.0 // indirect
6971
github.com/jmoiron/sqlx v1.4.0 // indirect
7072
github.com/josharian/intern v1.0.0 // indirect
7173
github.com/json-iterator/go v1.1.12 // indirect
72-
github.com/klauspost/compress v1.18.6 // indirect
7374
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
7475
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
7576
github.com/lib/pq v1.10.9 // indirect
7677
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
77-
github.com/mailru/easyjson v0.7.7 // indirect
78+
github.com/mailru/easyjson v0.9.0 // indirect
7879
github.com/mattn/go-colorable v0.1.13 // indirect
7980
github.com/mattn/go-isatty v0.0.20 // indirect
8081
github.com/mattn/go-runewidth v0.0.9 // indirect
@@ -91,35 +92,33 @@ require (
9192
github.com/opencontainers/image-spec v1.1.1 // indirect
9293
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
9394
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
94-
github.com/pkg/errors v0.9.1 // indirect
9595
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
9696
github.com/rubenv/sql-migrate v1.8.1 // indirect
9797
github.com/russross/blackfriday/v2 v2.1.0 // indirect
9898
github.com/sagikazarmark/locafero v0.11.0 // indirect
9999
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
100100
github.com/shopspring/decimal v1.4.0 // indirect
101-
github.com/sirupsen/logrus v1.9.4 // indirect
102101
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect
103102
github.com/spf13/afero v1.15.0 // indirect
104103
github.com/spf13/cast v1.10.0 // indirect
105104
github.com/spf13/pflag v1.0.10 // indirect
106105
github.com/subosito/gotenv v1.6.0 // indirect
106+
github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect
107+
github.com/tetratelabs/wazero v1.11.0 // indirect
107108
github.com/x448/float16 v0.8.4 // indirect
108109
github.com/xlab/treeprint v1.2.0 // indirect
109-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect
110+
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
110111
go.yaml.in/yaml/v2 v2.4.3 // indirect
111112
go.yaml.in/yaml/v3 v3.0.4 // indirect
112-
golang.org/x/crypto v0.51.0 // indirect
113-
golang.org/x/net v0.55.0 // indirect
114-
golang.org/x/oauth2 v0.36.0 // indirect
115-
golang.org/x/sync v0.20.0 // indirect
116-
golang.org/x/sys v0.45.0 // indirect
117-
golang.org/x/term v0.43.0 // indirect
118-
golang.org/x/text v0.37.0 // indirect
113+
golang.org/x/crypto v0.47.0 // indirect
114+
golang.org/x/net v0.49.0 // indirect
115+
golang.org/x/oauth2 v0.34.0 // indirect
116+
golang.org/x/sync v0.19.0 // indirect
117+
golang.org/x/sys v0.40.0 // indirect
118+
golang.org/x/term v0.39.0 // indirect
119+
golang.org/x/text v0.33.0 // indirect
119120
golang.org/x/time v0.12.0 // indirect
120-
google.golang.org/genproto/googleapis/api v0.0.0-20260523011958-0a33c5d7ca68 // indirect
121-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect
122-
google.golang.org/grpc v1.81.1 // indirect
121+
google.golang.org/grpc v1.79.3 // indirect
123122
google.golang.org/protobuf v1.36.11 // indirect
124123
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
125124
gopkg.in/inf.v0 v0.9.1 // indirect
@@ -132,10 +131,11 @@ require (
132131
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
133132
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
134133
oras.land/oras-go/v2 v2.6.0 // indirect
134+
sigs.k8s.io/controller-runtime v0.23.1 // indirect
135135
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
136-
sigs.k8s.io/kustomize/api v0.20.1 // indirect
137-
sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect
136+
sigs.k8s.io/kustomize/api v0.21.1 // indirect
137+
sigs.k8s.io/kustomize/kyaml v0.21.1 // indirect
138138
sigs.k8s.io/randfill v1.0.0 // indirect
139-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
139+
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
140140
sigs.k8s.io/yaml v1.6.0 // indirect
141141
)

0 commit comments

Comments
 (0)