Path: blob/main/install/installer/pkg/common/common_test.go
2500 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1/// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package common_test56import (7"fmt"8"testing"910"github.com/gitpod-io/gitpod/common-go/baseserver"11"github.com/gitpod-io/gitpod/installer/pkg/common"12config "github.com/gitpod-io/gitpod/installer/pkg/config/v1"13"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"14"github.com/gitpod-io/gitpod/installer/pkg/config/versions"15"github.com/stretchr/testify/require"16corev1 "k8s.io/api/core/v1"17v1 "k8s.io/api/core/v1"18)1920func TestKubeRBACProxyContainer_DefaultPorts(t *testing.T) {21ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")22require.NoError(t, err)2324container := common.KubeRBACProxyContainer(ctx)25require.Equal(t, []string{26"--logtostderr",27fmt.Sprintf("--insecure-listen-address=[$(IP)]:%v", baseserver.BuiltinMetricsPort),28fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),29"--http2-disable",30}, container.Args)31require.Equal(t, []corev1.ContainerPort{32{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},33}, container.Ports)34}3536func TestKubeRBACProxyContainerWithConfig(t *testing.T) {37ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")38require.NoError(t, err)3940container := common.KubeRBACProxyContainerWithConfig(ctx)41require.Equal(t, []string{42"--logtostderr",43fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", baseserver.BuiltinMetricsPort),44fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),45"--http2-disable",46}, container.Args)47require.Equal(t, []corev1.ContainerPort{48{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},49}, container.Ports)50}5152func TestPublicApiServerComponentWaiterContainer(t *testing.T) {53ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")54require.NoError(t, err)5556ctx.Config.Repository = "eu.gcr.io/gitpod-core-dev/testing/installer"57ctx.VersionManifest.Components.ServiceWaiter.Version = "test"58ctx.VersionManifest.Components.PublicAPIServer.Version = "happy_path_papi_image"59container := common.PublicApiServerComponentWaiterContainer(ctx)60labels := common.DefaultLabelSelector(common.PublicApiComponent)61require.Equal(t, labels, "app=gitpod,component=public-api-server")62require.Equal(t, []string{"-v", "component", "--namespace", "test_namespace", "--component", common.PublicApiComponent, "--labels", labels, "--image", ctx.Config.Repository + "/public-api-server:" + "happy_path_papi_image"}, container.Args)63}6465func TestServerComponentWaiterContainer(t *testing.T) {66ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")67require.NoError(t, err)6869ctx.Config.Repository = "eu.gcr.io/gitpod-core-dev/testing/installer"70ctx.VersionManifest.Components.ServiceWaiter.Version = "test"71ctx.VersionManifest.Components.Server.Version = "happy_path_server_image"72container := common.ServerComponentWaiterContainer(ctx)73labels := common.DefaultLabelSelector(common.ServerComponent)74require.Equal(t, labels, "app=gitpod,component=server")75require.Equal(t, []string{"-v", "component", "--namespace", "test_namespace", "--component", common.ServerComponent, "--labels", labels, "--image", ctx.Config.Repository + "/server:" + "happy_path_server_image"}, container.Args)76}7778func TestConfigcatEnvOutOfCluster(t *testing.T) {79ctx, err := common.NewRenderContext(config.Config{80Domain: "gitpod.io",81Experimental: &experimental.Config{82WebApp: &experimental.WebAppConfig{83ConfigcatKey: "foo",84},85},86}, versions.Manifest{}, "test_namespace")87require.NoError(t, err)8889envVars := common.ConfigcatEnvOutOfCluster(ctx)90require.Equal(t, len(envVars), 2)91require.Equal(t, envVars, []v1.EnvVar([]v1.EnvVar{{Name: "CONFIGCAT_SDK_KEY", Value: "gitpod"}, {Name: "CONFIGCAT_BASE_URL", Value: "https://gitpod.io/configcat"}}))92}939495