|
|
@ -16,9 +16,9 @@ limitations under the License.
|
|
|
|
package action
|
|
|
|
package action
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
|
|
|
|
"bytes"
|
|
|
|
"flag"
|
|
|
|
"flag"
|
|
|
|
"io/ioutil"
|
|
|
|
"io/ioutil"
|
|
|
|
"runtime"
|
|
|
|
|
|
|
|
"testing"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
@ -27,7 +27,6 @@ import (
|
|
|
|
"helm.sh/helm/v3/pkg/chart"
|
|
|
|
"helm.sh/helm/v3/pkg/chart"
|
|
|
|
"helm.sh/helm/v3/pkg/chartutil"
|
|
|
|
"helm.sh/helm/v3/pkg/chartutil"
|
|
|
|
kubefake "helm.sh/helm/v3/pkg/kube/fake"
|
|
|
|
kubefake "helm.sh/helm/v3/pkg/kube/fake"
|
|
|
|
"helm.sh/helm/v3/pkg/postrender"
|
|
|
|
|
|
|
|
"helm.sh/helm/v3/pkg/registry"
|
|
|
|
"helm.sh/helm/v3/pkg/registry"
|
|
|
|
"helm.sh/helm/v3/pkg/release"
|
|
|
|
"helm.sh/helm/v3/pkg/release"
|
|
|
|
"helm.sh/helm/v3/pkg/storage"
|
|
|
|
"helm.sh/helm/v3/pkg/storage"
|
|
|
@ -285,17 +284,33 @@ func TestGetVersionSet(t *testing.T) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestPostRenderHookManifests(t *testing.T) {
|
|
|
|
type PostRendererMock struct {
|
|
|
|
if runtime.GOOS == "windows" {
|
|
|
|
}
|
|
|
|
// the actual Run test uses a basic sed example, so skip this test on windows
|
|
|
|
|
|
|
|
t.Skip("skipping on windows")
|
|
|
|
func (p *PostRendererMock) Run(renderedManifests *bytes.Buffer) (*bytes.Buffer, error) {
|
|
|
|
|
|
|
|
var output = &bytes.Buffer{}
|
|
|
|
|
|
|
|
for {
|
|
|
|
|
|
|
|
line, err := renderedManifests.ReadBytes('\n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if len(line) > 0 {
|
|
|
|
|
|
|
|
output.Write(bytes.ReplaceAll(line, []byte("fake-image"), []byte("local-image")))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// ReadBytes returns err != nil if and only if the returned data does not end in delim.
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return output, nil
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func TestPostRenderHookManifests(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
|
|
hs := []*release.Hook{
|
|
|
|
hs := []*release.Hook{
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Name: "finding-nemo",
|
|
|
|
Name: "test-postrender-hook",
|
|
|
|
Kind: "Pod",
|
|
|
|
Kind: "Pod",
|
|
|
|
Path: "finding-nemo",
|
|
|
|
Path: "test-postrender-hook",
|
|
|
|
Manifest: manifestWithTestHook,
|
|
|
|
Manifest: manifestWithTestHook,
|
|
|
|
Events: []release.HookEvent{
|
|
|
|
Events: []release.HookEvent{
|
|
|
|
release.HookTest,
|
|
|
|
release.HookTest,
|
|
|
@ -303,10 +318,7 @@ func TestPostRenderHookManifests(t *testing.T) {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pr, err := postrender.NewExec("sed", "s/fake-image/local-image/")
|
|
|
|
pr := &PostRendererMock{}
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
t.Error(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if err := postRenderHookManifests(hs, pr); err != nil {
|
|
|
|
if err := postRenderHookManifests(hs, pr); err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
t.Error(err)
|
|
|
|