Path: blob/main/install/installer/pkg/components/public-api-server/deployment_test.go
2501 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 public_api_server56import (7"testing"89corev1 "k8s.io/api/core/v1"10"k8s.io/utils/pointer"1112"github.com/stretchr/testify/require"13appsv1 "k8s.io/api/apps/v1"14)1516func TestDeployment(t *testing.T) {17ctx := renderContextWithPublicAPI(t)1819objects, err := deployment(ctx)20require.NoError(t, err)2122require.Len(t, objects, 1, "must render only one object")2324dpl := objects[0].(*appsv1.Deployment)25require.Len(t, dpl.Spec.Template.Spec.Containers, 2, "must render 2 containers")26}2728func TestDeployment_ServerArguments(t *testing.T) {29ctx := renderContextWithPublicAPI(t)3031objects, err := deployment(ctx)32require.NoError(t, err)3334require.Len(t, objects, 1, "must render only one object")3536dpl := objects[0].(*appsv1.Deployment)37containers := dpl.Spec.Template.Spec.Containers38require.Equal(t, Component, containers[0].Name)3940apiContainer := containers[0]41require.EqualValues(t, []string{42"run",43"--config=/config.json",44`--json-log=true`,45}, apiContainer.Args)4647require.Equal(t, []corev1.Volume{48{49Name: configmapVolume,50VolumeSource: corev1.VolumeSource{51ConfigMap: &corev1.ConfigMapVolumeSource{52LocalObjectReference: corev1.LocalObjectReference{53Name: Component,54},55},56},57},58{59Name: "database-config",60VolumeSource: corev1.VolumeSource{61Secret: &corev1.SecretVolumeSource{62SecretName: "gcp-db-creds-service-account-name",63},64},65},66{67Name: "ca-certificates",68VolumeSource: corev1.VolumeSource{69ConfigMap: &corev1.ConfigMapVolumeSource{70LocalObjectReference: corev1.LocalObjectReference{71Name: "gitpod-ca-bundle",72},73},74},75},76{77Name: "stripe-secret",78VolumeSource: corev1.VolumeSource{79Secret: &corev1.SecretVolumeSource{80SecretName: "stripe-webhook-secret",81Optional: pointer.Bool(true),82},83},84},85{86Name: "personal-access-token-signing-key",87VolumeSource: corev1.VolumeSource{88Secret: &corev1.SecretVolumeSource{89SecretName: "personal-access-token-signing-key",90Optional: pointer.Bool(true),91},92},93},94{95Name: "auth-pki-signing",96VolumeSource: corev1.VolumeSource{97Secret: &corev1.SecretVolumeSource{98SecretName: "auth-pki",99},100},101},102}, dpl.Spec.Template.Spec.Volumes, "must bind volumes")103}104105106