Move pkg/release to pkg/release/v1 to support v3 charts

This is part of HIP 20 which provides a means to have v3 charts
that live alongside v2 charts while having breaking changes.

The plan is to have a different release object for v3 chart
instances for at least a couple reasons:
1. So that the chart object on the release can be fundamentally
   different.
2. So that Helm v3 does not detect or try to work with instances
   of charts whose apiVersion it does not know about.

Note: it is expected that Helm v3 usage will be used long after
the Helm project no longer supports it. 5 years after Helm v2
had reached end-of-life there was still usage of it.

Note: The release util package is separate from the versioned
elements as it is planned to use generics to handle multiple
release object versions.

Signed-off-by: Matt Farina <matt.farina@suse.com>
This commit is contained in:
Matt Farina 2025-02-26 09:04:32 -05:00
parent c95d8cefcd
commit e711488970
No known key found for this signature in database
GPG Key ID: 92C44A3D421FF7F9
69 changed files with 69 additions and 69 deletions

View File

@ -22,7 +22,7 @@ import (
"testing"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// Check if file completion should be performed according to parameter 'shouldBePerformed'

View File

@ -24,7 +24,7 @@ import (
"helm.sh/helm/v4/pkg/action"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetCmd(t *testing.T) {

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetHooks(t *testing.T) {

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetManifest(t *testing.T) {

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetMetadataCmd(t *testing.T) {

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetNotesCmd(t *testing.T) {

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestGetValuesCmd(t *testing.T) {

View File

@ -34,7 +34,7 @@ import (
"helm.sh/helm/v4/pkg/cli"
"helm.sh/helm/v4/pkg/kube"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
)

View File

@ -33,7 +33,7 @@ import (
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/cli"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage"
"helm.sh/helm/v4/pkg/storage/driver"
"helm.sh/helm/v4/pkg/time"

View File

@ -29,8 +29,8 @@ import (
"helm.sh/helm/v4/pkg/action"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/cli/output"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -20,7 +20,7 @@ import (
"fmt"
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestHistoryCmd(t *testing.T) {

View File

@ -38,7 +38,7 @@ import (
"helm.sh/helm/v4/pkg/cli/values"
"helm.sh/helm/v4/pkg/downloader"
"helm.sh/helm/v4/pkg/getter"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
const installDesc = `

View File

@ -28,7 +28,7 @@ import (
"helm.sh/helm/v4/cmd/helm/require"
"helm.sh/helm/v4/pkg/action"
"helm.sh/helm/v4/pkg/cli/output"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
var listHelp = `

View File

@ -20,7 +20,7 @@ import (
"testing"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/time"
)

View File

@ -26,7 +26,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestManuallyProcessArgs(t *testing.T) {

View File

@ -22,7 +22,7 @@ import (
"testing"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestRollbackCmd(t *testing.T) {

View File

@ -32,7 +32,7 @@ import (
"helm.sh/helm/v4/pkg/action"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/cli/output"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// NOTE: Keep the list of statuses up-to-date with pkg/release/status.go.

View File

@ -21,7 +21,7 @@ import (
"time"
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -28,7 +28,7 @@ import (
"sort"
"strings"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"github.com/spf13/cobra"

View File

@ -19,7 +19,7 @@ package main
import (
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestUninstall(t *testing.T) {

View File

@ -36,7 +36,7 @@ import (
"helm.sh/helm/v4/pkg/cli/values"
"helm.sh/helm/v4/pkg/downloader"
"helm.sh/helm/v4/pkg/getter"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
)

View File

@ -27,7 +27,7 @@ import (
chart "helm.sh/helm/v4/pkg/chart/v2"
"helm.sh/helm/v4/pkg/chart/v2/loader"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestUpgradeCmd(t *testing.T) {

View File

@ -39,8 +39,8 @@ import (
"helm.sh/helm/v4/pkg/kube"
"helm.sh/helm/v4/pkg/postrender"
"helm.sh/helm/v4/pkg/registry"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage"
"helm.sh/helm/v4/pkg/storage/driver"
"helm.sh/helm/v4/pkg/time"

View File

@ -28,7 +28,7 @@ import (
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/registry"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage"
"helm.sh/helm/v4/pkg/storage/driver"
"helm.sh/helm/v4/pkg/time"

View File

@ -17,7 +17,7 @@ limitations under the License.
package action
import (
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// Get is the action for checking a given release's information.

View File

@ -20,7 +20,7 @@ import (
"github.com/pkg/errors"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// History is the action for checking the release's ledger.

View File

@ -30,7 +30,7 @@ import (
"github.com/pkg/errors"
"gopkg.in/yaml.v3"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -26,7 +26,7 @@ import (
chart "helm.sh/helm/v4/pkg/chart/v2"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func podManifestWithOutputLogs(hookDefinitions []release.HookOutputLogPolicy) string {

View File

@ -48,8 +48,8 @@ import (
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/postrender"
"helm.sh/helm/v4/pkg/registry"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/repo"
"helm.sh/helm/v4/pkg/storage"
"helm.sh/helm/v4/pkg/storage/driver"

View File

@ -36,7 +36,7 @@ import (
chart "helm.sh/helm/v4/pkg/chart/v2"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -22,8 +22,8 @@ import (
"k8s.io/apimachinery/pkg/labels"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
)
// ListStates represents zero or more status codes that a list item may have set

View File

@ -21,7 +21,7 @@ import (
"github.com/stretchr/testify/assert"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage"
)

View File

@ -28,7 +28,7 @@ import (
v1 "k8s.io/api/core/v1"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
const (

View File

@ -25,7 +25,7 @@ import (
"github.com/pkg/errors"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -21,7 +21,7 @@ import (
"errors"
"helm.sh/helm/v4/pkg/kube"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// Status is the action for checking the deployment status of releases.

View File

@ -26,8 +26,8 @@ import (
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/kube"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -23,7 +23,7 @@ import (
"github.com/stretchr/testify/assert"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func uninstallAction(t *testing.T) *Uninstall {

View File

@ -33,8 +33,8 @@ import (
"helm.sh/helm/v4/pkg/kube"
"helm.sh/helm/v4/pkg/postrender"
"helm.sh/helm/v4/pkg/registry"
"helm.sh/helm/v4/pkg/release"
releaseutil "helm.sh/helm/v4/pkg/release/util"
release "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
)

View File

@ -30,7 +30,7 @@ import (
"github.com/stretchr/testify/require"
kubefake "helm.sh/helm/v4/pkg/kube/fake"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -16,7 +16,7 @@ limitations under the License.
package util // import "helm.sh/helm/v4/pkg/release/util"
import rspb "helm.sh/helm/v4/pkg/release"
import rspb "helm.sh/helm/v4/pkg/release/v1"
// FilterFunc returns true if the release object satisfies
// the predicate of the underlying filter func.

View File

@ -19,7 +19,7 @@ package util // import "helm.sh/helm/v4/pkg/release/util"
import (
"testing"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestFilterAny(t *testing.T) {

View File

@ -19,7 +19,7 @@ package util
import (
"sort"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// KindSortOrder is an ordering of Kinds.

View File

@ -20,7 +20,7 @@ import (
"bytes"
"testing"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestKindSorter(t *testing.T) {

View File

@ -27,7 +27,7 @@ import (
"sigs.k8s.io/yaml"
chartutil "helm.sh/helm/v4/pkg/chart/v2/util"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
// Manifest represents a manifest file, which has a name and some content.

View File

@ -22,7 +22,7 @@ import (
"sigs.k8s.io/yaml"
"helm.sh/helm/v4/pkg/release"
release "helm.sh/helm/v4/pkg/release/v1"
)
func TestSortManifests(t *testing.T) {

View File

@ -19,7 +19,7 @@ package util // import "helm.sh/helm/v4/pkg/release/util"
import (
"sort"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
type list []*rspb.Release

View File

@ -20,7 +20,7 @@ import (
"testing"
"time"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
helmtime "helm.sh/helm/v4/pkg/time"
)

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
import (
"helm.sh/helm/v4/pkg/time"

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
import (
"k8s.io/apimachinery/pkg/runtime"

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
import (
"fmt"

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
import (
chart "helm.sh/helm/v4/pkg/chart/v2"

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
// UninstallReleaseResponse represents a successful response to an uninstall request.
type UninstallReleaseResponse struct {

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package release
package v1
// Status is the status of a release
type Status string

View File

@ -31,7 +31,7 @@ import (
"k8s.io/apimachinery/pkg/util/validation"
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var _ Driver = (*ConfigMaps)(nil)

View File

@ -21,7 +21,7 @@ import (
v1 "k8s.io/api/core/v1"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestConfigMapName(t *testing.T) {

View File

@ -21,7 +21,7 @@ import (
"github.com/pkg/errors"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var (

View File

@ -21,7 +21,7 @@ import (
"strings"
"sync"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var _ Driver = (*Memory)(nil)

View File

@ -21,7 +21,7 @@ import (
"reflect"
"testing"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestMemoryName(t *testing.T) {

View File

@ -31,7 +31,7 @@ import (
kblabels "k8s.io/apimachinery/pkg/labels"
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func releaseStub(name string, vers int, namespace string, status rspb.Status) *rspb.Release {

View File

@ -20,7 +20,7 @@ import (
"sort"
"strconv"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
// records holds a list of in-memory release records

View File

@ -20,7 +20,7 @@ import (
"reflect"
"testing"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestRecordsAdd(t *testing.T) {

View File

@ -31,7 +31,7 @@ import (
"k8s.io/apimachinery/pkg/util/validation"
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var _ Driver = (*Secrets)(nil)

View File

@ -21,7 +21,7 @@ import (
v1 "k8s.io/api/core/v1"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestSecretName(t *testing.T) {

View File

@ -30,7 +30,7 @@ import (
// Import pq for postgres dialect
_ "github.com/lib/pq"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var _ Driver = (*SQL)(nil)

View File

@ -23,7 +23,7 @@ import (
sqlmock "github.com/DATA-DOG/go-sqlmock"
migrate "github.com/rubenv/sql-migrate"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
func TestSQLName(t *testing.T) {

View File

@ -23,7 +23,7 @@ import (
"encoding/json"
"io"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
)
var b64 = base64.StdEncoding

View File

@ -22,8 +22,8 @@ import (
"github.com/pkg/errors"
rspb "helm.sh/helm/v4/pkg/release"
relutil "helm.sh/helm/v4/pkg/release/util"
rspb "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
)

View File

@ -23,7 +23,7 @@ import (
"github.com/pkg/errors"
rspb "helm.sh/helm/v4/pkg/release"
rspb "helm.sh/helm/v4/pkg/release/v1"
"helm.sh/helm/v4/pkg/storage/driver"
)