diff --git a/internal/action/verify.go b/internal/action/verify.go index 49b043a..83070c8 100644 --- a/internal/action/verify.go +++ b/internal/action/verify.go @@ -38,7 +38,7 @@ var ( ErrReleaseNotObserved = errors.New("release not observed to be made for object") ErrReleaseDigest = errors.New("release digest verification error") ErrChartChanged = errors.New("release chart changed") - ErrConfigDigest = errors.New("release config digest verification error") + ErrConfigDigest = errors.New("release config values changed") ) // ReleaseTargetChanged returns true if the given release and/or chart @@ -157,10 +157,8 @@ func VerifyRelease(rls *helmrelease.Release, snapshot *v2.Snapshot, chrt *helmch return ErrReleaseNotFound } - if chrt != nil { - if _, eq := chartutil.DiffMeta(*rls.Chart.Metadata, *chrt); !eq { - return ErrChartChanged - } + if chrt != nil && (rls.Chart.Metadata.Name != chrt.Name || rls.Chart.Metadata.Version != chrt.Version) { + return ErrChartChanged } if snapshot == nil || !chartutil.VerifyValues(digest.Digest(snapshot.ConfigDigest), vals) { diff --git a/internal/chartutil/diff.go b/internal/chartutil/diff.go deleted file mode 100644 index fc385d9..0000000 --- a/internal/chartutil/diff.go +++ /dev/null @@ -1,30 +0,0 @@ -/* -Copyright 2022 The Flux authors - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package chartutil - -import ( - "github.com/google/go-cmp/cmp" - "helm.sh/helm/v3/pkg/chart" -) - -// DiffMeta returns if the two chart.Metadata differ. -func DiffMeta(x, y chart.Metadata) (diff string, eq bool) { - if diff := cmp.Diff(x, y); diff != "" { - return diff, false - } - return "", true -}