Gero Posmyk-Leinemann 7a27ea0839
[installer] Mount custom CA certs into all relevant places (#20469)
* [installer] Add custom CA cert to papi-server

* [installer] Add custom CA cert to proxy
2024-12-19 11:22:05 -05:00

105 lines
2.4 KiB
Go

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
/// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
package public_api_server
import (
"testing"
corev1 "k8s.io/api/core/v1"
"k8s.io/utils/pointer"
"github.com/stretchr/testify/require"
appsv1 "k8s.io/api/apps/v1"
)
func TestDeployment(t *testing.T) {
ctx := renderContextWithPublicAPI(t)
objects, err := deployment(ctx)
require.NoError(t, err)
require.Len(t, objects, 1, "must render only one object")
dpl := objects[0].(*appsv1.Deployment)
require.Len(t, dpl.Spec.Template.Spec.Containers, 2, "must render 2 containers")
}
func TestDeployment_ServerArguments(t *testing.T) {
ctx := renderContextWithPublicAPI(t)
objects, err := deployment(ctx)
require.NoError(t, err)
require.Len(t, objects, 1, "must render only one object")
dpl := objects[0].(*appsv1.Deployment)
containers := dpl.Spec.Template.Spec.Containers
require.Equal(t, Component, containers[0].Name)
apiContainer := containers[0]
require.EqualValues(t, []string{
"run",
"--config=/config.json",
`--json-log=true`,
}, apiContainer.Args)
require.Equal(t, []corev1.Volume{
{
Name: configmapVolume,
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: Component,
},
},
},
},
{
Name: "database-config",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "gcp-db-creds-service-account-name",
},
},
},
{
Name: "ca-certificates",
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: "gitpod-ca-bundle",
},
},
},
},
{
Name: "stripe-secret",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "stripe-webhook-secret",
Optional: pointer.Bool(true),
},
},
},
{
Name: "personal-access-token-signing-key",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "personal-access-token-signing-key",
Optional: pointer.Bool(true),
},
},
},
{
Name: "auth-pki-signing",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "auth-pki",
},
},
},
}, dpl.Spec.Template.Spec.Volumes, "must bind volumes")
}