Skip to content

Commit cbf07f0

Browse files
authored
updates for helm v4 (#648)
Signed-off-by: Adam Martin <adam.martin@ranchergovernment.com>
1 parent 32c30ac commit cbf07f0

11 files changed

Lines changed: 181 additions & 54 deletions

File tree

cmd/hauler/cli/store.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55

66
"github.com/spf13/cobra"
7-
"helm.sh/helm/v3/pkg/action"
7+
"helm.sh/helm/v4/pkg/action"
88

99
"hauler.dev/go/hauler/v2/cmd/hauler/cli/store"
1010
"hauler.dev/go/hauler/v2/internal/flags"

cmd/hauler/cli/store/add.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ import (
1111

1212
"github.com/google/go-containerregistry/pkg/name"
1313
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
14-
helmchart "helm.sh/helm/v3/pkg/chart"
15-
"helm.sh/helm/v3/pkg/chartutil"
16-
"helm.sh/helm/v3/pkg/engine"
14+
"helm.sh/helm/v4/pkg/chart/common"
15+
commonutil "helm.sh/helm/v4/pkg/chart/common/util"
16+
helmchart "helm.sh/helm/v4/pkg/chart/v2"
17+
"helm.sh/helm/v4/pkg/chart/v2/util"
18+
"helm.sh/helm/v4/pkg/engine"
1719
"k8s.io/apimachinery/pkg/util/yaml"
1820

1921
"hauler.dev/go/hauler/v2/internal/flags"
@@ -462,9 +464,13 @@ func storeChart(ctx context.Context, s *store.Layout, cfg v1.Chart, opts *flags.
462464
defer os.RemoveAll(tempDir)
463465

464466
chartPath := chrt.Path()
465-
if strings.HasSuffix(chartPath, ".tgz") {
467+
chartPathInfo, err := os.Stat(chartPath)
468+
if err != nil {
469+
return fmt.Errorf("failed to stat chart path '%s': %w", chartPath, err)
470+
}
471+
if !chartPathInfo.IsDir() {
466472
l.Debugf("%sextracting chart archive [%s]", prefix, filepath.Base(chartPath))
467-
if err := chartutil.ExpandFile(tempDir, chartPath); err != nil {
473+
if err := util.ExpandFile(tempDir, chartPath); err != nil {
468474
return fmt.Errorf("failed to extract chart: %w", err)
469475
}
470476

@@ -478,28 +484,28 @@ func storeChart(ctx context.Context, s *store.Layout, cfg v1.Chart, opts *flags.
478484

479485
// add-images
480486
if opts.AddImages {
481-
userValues := chartutil.Values{}
487+
userValues := common.Values{}
482488
if opts.HelmValues != "" {
483-
userValues, err = chartutil.ReadValuesFile(opts.HelmValues)
489+
userValues, err = common.ReadValuesFile(opts.HelmValues)
484490
if err != nil {
485491
return fmt.Errorf("failed to read helm values file [%s]: %w", opts.HelmValues, err)
486492
}
487493
}
488494

489495
// set helm default capabilities
490-
caps := chartutil.DefaultCapabilities.Copy()
496+
caps := common.DefaultCapabilities.Copy()
491497

492498
// only parse and override if provided kube version
493499
if opts.KubeVersion != "" {
494-
kubeVersion, err := chartutil.ParseKubeVersion(opts.KubeVersion)
500+
kubeVersion, err := common.ParseKubeVersion(opts.KubeVersion)
495501
if err != nil {
496502
l.Warnf("%sinvalid kube-version [%s], using default kubernetes version", prefix, opts.KubeVersion)
497503
} else {
498504
caps.KubeVersion = *kubeVersion
499505
}
500506
}
501507

502-
values, err := chartutil.ToRenderValues(c, userValues, chartutil.ReleaseOptions{Namespace: "hauler"}, caps)
508+
values, err := commonutil.ToRenderValues(c, userValues, common.ReleaseOptions{Namespace: "hauler"}, caps)
503509
if err != nil {
504510
return err
505511
}

cmd/hauler/cli/store/add_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import (
1313
"github.com/google/go-containerregistry/pkg/registry"
1414
"github.com/google/go-containerregistry/pkg/v1/remote"
1515
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
16-
helmchart "helm.sh/helm/v3/pkg/chart"
17-
"helm.sh/helm/v3/pkg/chartutil"
16+
helmchart "helm.sh/helm/v4/pkg/chart/v2"
17+
"helm.sh/helm/v4/pkg/chart/v2/util"
1818

1919
"hauler.dev/go/hauler/v2/internal/flags"
2020
v1 "hauler.dev/go/hauler/v2/pkg/apis/hauler.cattle.io/v1"
@@ -767,9 +767,9 @@ func seedChartWithImages(t *testing.T, dir string, images []string) string {
767767
},
768768
}
769769

770-
saved, err := chartutil.Save(c, dir)
770+
saved, err := util.Save(c, dir)
771771
if err != nil {
772-
t.Fatalf("seedChartWithImages: chartutil.Save: %v", err)
772+
t.Fatalf("seedChartWithImages: util.Save: %v", err)
773773
}
774774
return saved
775775
}

cmd/hauler/cli/store/sync.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
"github.com/google/go-containerregistry/pkg/v1/remote"
1717
"github.com/mitchellh/go-homedir"
1818
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
19-
"helm.sh/helm/v3/pkg/action"
19+
"helm.sh/helm/v4/pkg/action"
2020
"k8s.io/apimachinery/pkg/util/yaml"
2121

2222
"hauler.dev/go/hauler/v2/internal/flags"

cmd/hauler/cli/store/testhelpers_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
digest "github.com/opencontainers/go-digest"
2626
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
2727
"github.com/rs/zerolog"
28-
"helm.sh/helm/v3/pkg/action"
28+
"helm.sh/helm/v4/pkg/action"
2929

3030
"hauler.dev/go/hauler/v2/internal/flags"
3131
"hauler.dev/go/hauler/v2/pkg/consts"

go.mod

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ require (
2424
github.com/spf13/cobra v1.10.2
2525
golang.org/x/sync v0.21.0
2626
gopkg.in/yaml.v3 v3.0.1
27-
helm.sh/helm/v3 v3.21.2
27+
helm.sh/helm/v4 v4.2.2
2828
k8s.io/apimachinery v0.36.2
2929
)
3030

@@ -56,6 +56,7 @@ require (
5656
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
5757
github.com/Masterminds/squirrel v1.5.4 // indirect
5858
github.com/Microsoft/go-winio v0.6.2 // indirect
59+
github.com/ProtonMail/go-crypto v1.4.1 // indirect
5960
github.com/STARRY-S/zip v0.2.3 // indirect
6061
github.com/ThalesIgnite/crypto11 v1.2.5 // indirect
6162
github.com/agnivade/levenshtein v1.2.1 // indirect
@@ -107,6 +108,7 @@ require (
107108
github.com/clbanning/mxj/v2 v2.7.0 // indirect
108109
github.com/clipperhouse/displaywidth v0.10.0 // indirect
109110
github.com/clipperhouse/uax29/v2 v2.6.0 // indirect
111+
github.com/cloudflare/circl v1.6.3 // indirect
110112
github.com/cockroachdb/apd/v3 v3.2.1 // indirect
111113
github.com/containerd/errdefs/pkg v0.3.0 // indirect
112114
github.com/containerd/log v0.1.0 // indirect
@@ -129,16 +131,19 @@ require (
129131
github.com/docker/go-units v0.5.0 // indirect
130132
github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // indirect
131133
github.com/dustin/go-humanize v1.0.1 // indirect
134+
github.com/dylibso/observe-sdk/go v0.0.0-20240819160327-2d926c5d788a // indirect
132135
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
133136
github.com/emicklei/proto v1.14.3 // indirect
134-
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
137+
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
135138
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
136-
github.com/fatih/color v1.18.0 // indirect
139+
github.com/extism/go-sdk v1.7.1 // indirect
140+
github.com/fatih/color v1.19.0 // indirect
137141
github.com/felixge/httpsnoop v1.0.4 // indirect
142+
github.com/fluxcd/cli-utils v1.2.1 // indirect
138143
github.com/fsnotify/fsnotify v1.10.1 // indirect
139144
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
140145
github.com/go-chi/chi/v5 v5.3.0 // indirect
141-
github.com/go-errors/errors v1.4.2 // indirect
146+
github.com/go-errors/errors v1.5.1 // indirect
142147
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
143148
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
144149
github.com/go-logr/logr v1.4.3 // indirect
@@ -169,6 +174,7 @@ require (
169174
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
170175
github.com/gobwas/glob v0.2.3 // indirect
171176
github.com/goccy/go-json v0.10.6 // indirect
177+
github.com/gofrs/flock v0.13.0 // indirect
172178
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
173179
github.com/golang/snappy v0.0.4 // indirect
174180
github.com/google/btree v1.1.3 // indirect
@@ -183,13 +189,12 @@ require (
183189
github.com/googleapis/gax-go/v2 v2.22.0 // indirect
184190
github.com/gosuri/uitable v0.0.4 // indirect
185191
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
186-
github.com/hashicorp/errwrap v1.1.0 // indirect
187192
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
188-
github.com/hashicorp/go-multierror v1.1.1 // indirect
189193
github.com/hashicorp/go-retryablehttp v0.7.8 // indirect
190194
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect
191195
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
192196
github.com/huandu/xstrings v1.5.0 // indirect
197+
github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca // indirect
193198
github.com/in-toto/attestation v1.2.0 // indirect
194199
github.com/in-toto/in-toto-golang v0.11.0 // indirect
195200
github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -279,6 +284,8 @@ require (
279284
github.com/subosito/gotenv v1.6.0 // indirect
280285
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
281286
github.com/tchap/go-patricia/v2 v2.3.3 // indirect
287+
github.com/tetratelabs/wabin v0.0.0-20230304001439-f6f874872834 // indirect
288+
github.com/tetratelabs/wazero v1.12.0 // indirect
282289
github.com/thales-e-security/pool v0.0.2 // indirect
283290
github.com/theupdateframework/go-tuf v0.7.0 // indirect
284291
github.com/theupdateframework/go-tuf/v2 v2.4.2 // indirect
@@ -353,6 +360,7 @@ require (
353360
k8s.io/kubectl v0.36.2 // indirect
354361
k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect
355362
oras.land/oras-go/v2 v2.6.1 // indirect
363+
sigs.k8s.io/controller-runtime v0.24.1 // indirect
356364
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
357365
sigs.k8s.io/kustomize/api v0.21.1 // indirect
358366
sigs.k8s.io/kustomize/kyaml v0.21.1 // indirect

0 commit comments

Comments
 (0)