Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/install/installer/pkg/common/common_test.go
2500 views
1
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
2
/// Licensed under the GNU Affero General Public License (AGPL).
3
// See License.AGPL.txt in the project root for license information.
4
5
package common_test
6
7
import (
8
"fmt"
9
"testing"
10
11
"github.com/gitpod-io/gitpod/common-go/baseserver"
12
"github.com/gitpod-io/gitpod/installer/pkg/common"
13
config "github.com/gitpod-io/gitpod/installer/pkg/config/v1"
14
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"
15
"github.com/gitpod-io/gitpod/installer/pkg/config/versions"
16
"github.com/stretchr/testify/require"
17
corev1 "k8s.io/api/core/v1"
18
v1 "k8s.io/api/core/v1"
19
)
20
21
func TestKubeRBACProxyContainer_DefaultPorts(t *testing.T) {
22
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
23
require.NoError(t, err)
24
25
container := common.KubeRBACProxyContainer(ctx)
26
require.Equal(t, []string{
27
"--logtostderr",
28
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%v", baseserver.BuiltinMetricsPort),
29
fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),
30
"--http2-disable",
31
}, container.Args)
32
require.Equal(t, []corev1.ContainerPort{
33
{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},
34
}, container.Ports)
35
}
36
37
func TestKubeRBACProxyContainerWithConfig(t *testing.T) {
38
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
39
require.NoError(t, err)
40
41
container := common.KubeRBACProxyContainerWithConfig(ctx)
42
require.Equal(t, []string{
43
"--logtostderr",
44
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", baseserver.BuiltinMetricsPort),
45
fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),
46
"--http2-disable",
47
}, container.Args)
48
require.Equal(t, []corev1.ContainerPort{
49
{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},
50
}, container.Ports)
51
}
52
53
func TestPublicApiServerComponentWaiterContainer(t *testing.T) {
54
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
55
require.NoError(t, err)
56
57
ctx.Config.Repository = "eu.gcr.io/gitpod-core-dev/testing/installer"
58
ctx.VersionManifest.Components.ServiceWaiter.Version = "test"
59
ctx.VersionManifest.Components.PublicAPIServer.Version = "happy_path_papi_image"
60
container := common.PublicApiServerComponentWaiterContainer(ctx)
61
labels := common.DefaultLabelSelector(common.PublicApiComponent)
62
require.Equal(t, labels, "app=gitpod,component=public-api-server")
63
require.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)
64
}
65
66
func TestServerComponentWaiterContainer(t *testing.T) {
67
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
68
require.NoError(t, err)
69
70
ctx.Config.Repository = "eu.gcr.io/gitpod-core-dev/testing/installer"
71
ctx.VersionManifest.Components.ServiceWaiter.Version = "test"
72
ctx.VersionManifest.Components.Server.Version = "happy_path_server_image"
73
container := common.ServerComponentWaiterContainer(ctx)
74
labels := common.DefaultLabelSelector(common.ServerComponent)
75
require.Equal(t, labels, "app=gitpod,component=server")
76
require.Equal(t, []string{"-v", "component", "--namespace", "test_namespace", "--component", common.ServerComponent, "--labels", labels, "--image", ctx.Config.Repository + "/server:" + "happy_path_server_image"}, container.Args)
77
}
78
79
func TestConfigcatEnvOutOfCluster(t *testing.T) {
80
ctx, err := common.NewRenderContext(config.Config{
81
Domain: "gitpod.io",
82
Experimental: &experimental.Config{
83
WebApp: &experimental.WebAppConfig{
84
ConfigcatKey: "foo",
85
},
86
},
87
}, versions.Manifest{}, "test_namespace")
88
require.NoError(t, err)
89
90
envVars := common.ConfigcatEnvOutOfCluster(ctx)
91
require.Equal(t, len(envVars), 2)
92
require.Equal(t, envVars, []v1.EnvVar([]v1.EnvVar{{Name: "CONFIGCAT_SDK_KEY", Value: "gitpod"}, {Name: "CONFIGCAT_BASE_URL", Value: "https://gitpod.io/configcat"}}))
93
}
94
95