Fix stomping os env in kubectl e2e tests

This commit is contained in:
Jordan Liggitt 2023-04-19 01:32:20 +02:00
parent d97ea0f705
commit 0c54d9af6f
No known key found for this signature in database
2 changed files with 11 additions and 7 deletions

View File

@ -22,6 +22,7 @@ import (
"io" "io"
"net" "net"
"net/url" "net/url"
"os"
"os/exec" "os/exec"
"strings" "strings"
"syscall" "syscall"
@ -48,9 +49,12 @@ func NewKubectlCommand(namespace string, args ...string) *KubectlBuilder {
return b return b
} }
// WithEnv sets the given environment and returns itself. // WithEnv appends the given environment and returns itself.
func (b *KubectlBuilder) WithEnv(env []string) *KubectlBuilder { func (b *KubectlBuilder) AppendEnv(env []string) *KubectlBuilder {
b.cmd.Env = env if b.cmd.Env == nil {
b.cmd.Env = os.Environ()
}
b.cmd.Env = append(b.cmd.Env, env...)
return b return b
} }

View File

@ -487,7 +487,7 @@ var _ = SIGDescribe("Kubectl client", func() {
proxyLogs.Reset() proxyLogs.Reset()
ginkgo.By("Running kubectl via an HTTP proxy using " + proxyVar) ginkgo.By("Running kubectl via an HTTP proxy using " + proxyVar)
output := e2ekubectl.NewKubectlCommand(ns, "exec", podRunningTimeoutArg, simplePodName, "--", "echo", "running", "in", "container"). output := e2ekubectl.NewKubectlCommand(ns, "exec", podRunningTimeoutArg, simplePodName, "--", "echo", "running", "in", "container").
WithEnv(append(os.Environ(), fmt.Sprintf("%s=%s", proxyVar, proxyAddr))). AppendEnv(append(os.Environ(), fmt.Sprintf("%s=%s", proxyVar, proxyAddr))).
ExecOrDie(ns) ExecOrDie(ns)
// Verify we got the normal output captured by the exec server // Verify we got the normal output captured by the exec server
@ -868,7 +868,7 @@ metadata:
manifest1 = strings.ReplaceAll(manifest1, "{{ns}}", ns) manifest1 = strings.ReplaceAll(manifest1, "{{ns}}", ns)
args := []string{"apply", "--prune", "--applyset=applyset1", "-f", "-"} args := []string{"apply", "--prune", "--applyset=applyset1", "-f", "-"}
e2ekubectl.NewKubectlCommand(ns, args...).WithEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest1).ExecOrDie(ns) e2ekubectl.NewKubectlCommand(ns, args...).AppendEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest1).ExecOrDie(ns)
framework.Logf("checking which objects exist") framework.Logf("checking which objects exist")
objects := mustListObjectsInNamespace(ctx, c, ns) objects := mustListObjectsInNamespace(ctx, c, ns)
@ -887,7 +887,7 @@ metadata:
` `
manifest2 = strings.ReplaceAll(manifest2, "{{ns}}", ns) manifest2 = strings.ReplaceAll(manifest2, "{{ns}}", ns)
e2ekubectl.NewKubectlCommand(ns, args...).WithEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest2).ExecOrDie(ns) e2ekubectl.NewKubectlCommand(ns, args...).AppendEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest2).ExecOrDie(ns)
framework.Logf("checking which objects exist") framework.Logf("checking which objects exist")
objects = mustListObjectsInNamespace(ctx, c, ns) objects = mustListObjectsInNamespace(ctx, c, ns)
@ -897,7 +897,7 @@ metadata:
} }
framework.Logf("applying manifest2 (again)") framework.Logf("applying manifest2 (again)")
e2ekubectl.NewKubectlCommand(ns, args...).WithEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest2).ExecOrDie(ns) e2ekubectl.NewKubectlCommand(ns, args...).AppendEnv([]string{"KUBECTL_APPLYSET=true"}).WithStdinData(manifest2).ExecOrDie(ns)
framework.Logf("checking which objects exist") framework.Logf("checking which objects exist")
objects = mustListObjectsInNamespace(ctx, c, ns) objects = mustListObjectsInNamespace(ctx, c, ns)