Set a special proxy environment just for the "pinniped login oidc" command in the E2E test.

Signed-off-by: Matt Moyer <moyerm@vmware.com>
This commit is contained in:
Matt Moyer 2021-03-04 12:35:29 -06:00
parent ddd1d29e5d
commit 9a0f75980d
No known key found for this signature in database
GPG Key ID: EAE88AD172C5AE2D
1 changed files with 12 additions and 0 deletions

View File

@ -26,6 +26,7 @@ import (
authorizationv1 "k8s.io/api/authorization/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
authv1alpha "go.pinniped.dev/generated/latest/apis/concierge/authentication/v1alpha1"
configv1alpha1 "go.pinniped.dev/generated/latest/apis/supervisor/config/v1alpha1"
@ -162,6 +163,17 @@ func TestE2EFullIntegration(t *testing.T) {
restConfig := library.NewRestConfigFromKubeconfig(t, kubeconfigYAML)
require.NotNil(t, restConfig.ExecProvider)
require.Equal(t, []string{"login", "oidc"}, restConfig.ExecProvider.Args[:2])
// If there is a proxy, we always want the "pinniped login oidc" command to use it, even if the
// parent kubectl process is connecting to an external load balancer and not using the proxy.
if env.Proxy != "" {
restConfig.ExecProvider.Env = append(restConfig.ExecProvider.Env,
clientcmdapi.ExecEnvVar{Name: "http_proxy", Value: env.Proxy},
clientcmdapi.ExecEnvVar{Name: "https_proxy", Value: env.Proxy},
clientcmdapi.ExecEnvVar{Name: "no_proxy", Value: "127.0.0.1"},
)
}
kubeconfigPath := filepath.Join(tempDir, "kubeconfig.yaml")
require.NoError(t, ioutil.WriteFile(kubeconfigPath, []byte(kubeconfigYAML), 0600))