pull/11534/merge
Cyril Jouve 10 months ago committed by GitHub
commit 8a1857d795
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1 @@
{"name":"funny-bunny","info":{"first_deployed":"1977-09-02T22:04:05Z","last_deployed":"1977-09-02T22:04:05Z","deleted":"","description":"Upgrade complete","status":"deployed"},"chart":{"metadata":{"name":"test-upgrade-chart","version":"0.1.3","description":"A Helm chart for Kubernetes","apiVersion":"v1"},"lock":null,"templates":null,"values":null,"schema":null,"files":null},"config":{"name":"value"},"version":7,"namespace":"default"}

@ -0,0 +1 @@
{"name":"funny-bunny","info":{"first_deployed":"1977-09-02T22:04:05Z","last_deployed":"1977-09-02T22:04:05Z","deleted":"","description":"Upgrade complete","status":"deployed"},"chart":{"metadata":{"name":"test-upgrade-chart","version":"0.1.7","description":"A Helm chart for Kubernetes","apiVersion":"v1"},"lock":null,"templates":[{"name":"templates/configmap.yaml","data":"YXBpVmVyc2lvbjogdjEKa2luZDogQ29uZmlnTWFwCm1ldGFkYXRhOgogIG5hbWU6ICJ7eyAuUmVsZWFzZS5OYW1lIH19LWNvbmZpZ21hcCIKZGF0YToKICBteXZhbHVlOiAiSGVsbG8gV29ybGQiCiAgZHJpbms6IHt7IC5WYWx1ZXMuZmF2b3JpdGVEcmluayB9fQ=="}],"values":{"favoriteDrink":"beer"},"schema":null,"files":null},"config":{"name":"value"},"manifest":"---\n# Source: test-upgrade-chart/templates/configmap.yaml\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: \"funny-bunny-configmap\"\ndata:\n myvalue: \"Hello World\"\n drink: beer\n","version":8,"namespace":"default"}

@ -28,6 +28,7 @@ import (
"helm.sh/helm/v3/pkg/chart/loader"
"helm.sh/helm/v3/pkg/chartutil"
"helm.sh/helm/v3/pkg/release"
"helm.sh/helm/v3/pkg/repo/repotest"
)
func TestUpgradeCmd(t *testing.T) {
@ -36,7 +37,7 @@ func TestUpgradeCmd(t *testing.T) {
cfile := &chart.Chart{
Metadata: &chart.Metadata{
APIVersion: chart.APIVersionV1,
Name: "testUpgradeChart",
Name: "test-upgrade-chart",
Description: "A Helm chart for Kubernetes",
Version: "0.1.0",
},
@ -89,6 +90,23 @@ func TestUpgradeCmd(t *testing.T) {
return release.Mock(&release.MockReleaseOptions{Name: n, Version: v, Chart: ch})
}
srv, err := repotest.NewTempServerWithCleanup(t, "testdata/testcharts/*.tgz")
if err != nil {
t.Fatal(err)
}
defer srv.Stop()
outdir := srv.Root()
ociSrv, err := repotest.NewOCIServer(t, srv.Root())
if err != nil {
t.Fatal(err)
}
ociSrv.Run(t)
if err := srv.LinkIndices(); err != nil {
t.Fatal(err)
}
tests := []cmdTestCase{
{
name: "upgrade a release",
@ -114,6 +132,18 @@ func TestUpgradeCmd(t *testing.T) {
golden: "output/upgrade-with-reset-values2.txt",
rels: []*release.Release{relMock("funny-bunny", 5, ch2)},
},
{
name: "upgrade a release with json output",
cmd: fmt.Sprintf("upgrade --output json funny-bunny '%s'", chartPath),
golden: "output/upgrade-json.txt",
rels: []*release.Release{relMock("funny-bunny", 6, ch)},
},
{
name: "upgrade a oci release with json output",
cmd: fmt.Sprintf("upgrade --output json funny-bunny 'oci://%s/u/ocitestuser/test-upgrade-chart' --version 0.1.7 --registry-config %s", ociSrv.RegistryURL, filepath.Join(outdir, "config.json")),
golden: "output/upgrade-oci-json.txt",
rels: []*release.Release{relMock("funny-bunny", 7, ch)},
},
{
name: "install a release with 'upgrade --install'",
cmd: fmt.Sprintf("upgrade zany-bunny -i '%s'", chartPath),

@ -209,6 +209,22 @@ func (srv *OCIServer) Run(t *testing.T, opts ...OCIServerOpt) {
result.Config.Digest, result.Config.Size,
result.Chart.Digest, result.Chart.Size)
upgradeRef := fmt.Sprintf("%s/u/ocitestuser/test-upgrade-chart:0.1.7", srv.RegistryURL)
contentBytes, err = os.ReadFile(filepath.Join(srv.Dir, "test-upgrade-chart-0.1.7.tgz"))
if err != nil {
t.Fatal("could not load chart into memory")
}
result, err = registryClient.Push(contentBytes, upgradeRef)
if err != nil {
t.Fatalf("error pushing chart: %s", err)
}
t.Logf("Manifest.Digest: %s, Manifest.Size: %d, "+
"Config.Digest: %s, Config.Size: %d, "+
"Chart.Digest: %s, Chart.Size: %d",
result.Manifest.Digest, result.Manifest.Size,
result.Config.Digest, result.Config.Size,
result.Chart.Digest, result.Chart.Size)
srv.Client = registryClient
c := cfg.DependingChart
if c == nil {

Loading…
Cancel
Save