Skip to content

Commit

Permalink
fix?
Browse files Browse the repository at this point in the history
  • Loading branch information
easyCZ committed Apr 27, 2022
1 parent f2aff78 commit dc9b7e7
Show file tree
Hide file tree
Showing 9 changed files with 87 additions and 18 deletions.
4 changes: 2 additions & 2 deletions components/common-go/baseserver/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ func defaultConfig() *config {
return &config{
logger: log.New(),
hostname: "localhost",
httpPort: 9500,
grpcPort: 9501,
httpPort: 9000,
grpcPort: 9001,
closeTimeout: 5 * time.Second,
healthHandler: healthcheck.NewHandler(),
}
Expand Down
5 changes: 0 additions & 5 deletions components/common-go/baseserver/options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,6 @@ func TestOptions(t *testing.T) {
}, cfg)
}

func TestDefaultOptions_Ports(t *testing.T) {
require.Equal(t, 9500, defaultConfig().httpPort)
require.Equal(t, 9501, defaultConfig().grpcPort)
}

func TestWithTTPPort(t *testing.T) {
t.Run("negative", func(t *testing.T) {
_, err := evaluateOptions(defaultConfig(), WithHTTPPort(-1))
Expand Down
4 changes: 2 additions & 2 deletions components/public-api-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ func main() {
logger := log.New()
srv, err := baseserver.New("public_api_server",
baseserver.WithLogger(logger),
baseserver.WithHTTPPort(9500),
baseserver.WithGRPCPort(9501),
baseserver.WithHTTPPort(9000),
baseserver.WithGRPCPort(9001),
)
if err != nil {
logger.WithError(err).Fatal("Failed to initialize public api server.")
Expand Down
10 changes: 7 additions & 3 deletions install/installer/pkg/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,17 +280,21 @@ func MessageBusWaiterContainer(ctx *RenderContext) *corev1.Container {
}

func KubeRBACProxyContainer(ctx *RenderContext) *corev1.Container {
return KubeRBACProxyContainerWithConfig(ctx, 9500, "http://127.0.0.1:9500/")
}

func KubeRBACProxyContainerWithConfig(ctx *RenderContext, listenPort int32, upstream string) *corev1.Container {
return &corev1.Container{
Name: "kube-rbac-proxy",
Image: ctx.ImageName(ThirdPartyContainerRepo(ctx.Config.Repository, KubeRBACProxyRepo), KubeRBACProxyImage, KubeRBACProxyTag),
Args: []string{
"--v=5",
"--logtostderr",
"--insecure-listen-address=[$(IP)]:9500",
"--upstream=http://127.0.0.1:9500/",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", listenPort),
fmt.Sprintf("--upstream=%s", upstream),
},
Ports: []corev1.ContainerPort{
{Name: "metrics", ContainerPort: 9500},
{Name: "metrics", ContainerPort: listenPort},
},
Env: []corev1.EnvVar{
{
Expand Down
44 changes: 44 additions & 0 deletions install/installer/pkg/common/common_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package common_test

import (
"fmt"
"github.com/gitpod-io/gitpod/installer/pkg/common"
"github.com/gitpod-io/gitpod/installer/pkg/config/v1"
"github.com/gitpod-io/gitpod/installer/pkg/config/versions"
"github.com/stretchr/testify/require"
corev1 "k8s.io/api/core/v1"
"testing"
)

func TestKubeRBACProxyContainer_DefaultPorts(t *testing.T) {
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
require.NoError(t, err)

container := common.KubeRBACProxyContainer(ctx)
require.Equal(t, []string{
"--v=5",
"--logtostderr",
"--insecure-listen-address=[$(IP)]:9500",
"--upstream=http://127.0.0.1:9500/",
}, container.Args)
require.Equal(t, []corev1.ContainerPort{
{Name: "metrics", ContainerPort: 9500},
}, container.Ports)
}

func TestKubeRBACProxyContainerWithConfig(t *testing.T) {
ctx, err := common.NewRenderContext(config.Config{}, versions.Manifest{}, "test_namespace")
require.NoError(t, err)

listenPort := int32(9000)
container := common.KubeRBACProxyContainerWithConfig(ctx, listenPort, "http://127.0.0.1:9500/metrics")
require.Equal(t, []string{
"--v=5",
"--logtostderr",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", listenPort),
"--upstream=http://127.0.0.1:9500/metrics",
}, container.Args)
require.Equal(t, []corev1.ContainerPort{
{Name: "metrics", ContainerPort: listenPort},
}, container.Ports)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ const (
Component = "public-api-server"

HTTPPortName = "http"
HTTPContainerPort = 9500
HTTPContainerPort = 9000
HTTPServicePort = 9000

GRPCPortName = "grpc"
GRPCContainerPort = 9501
GRPCContainerPort = 9001
GRPCServicePort = 9001
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package public_api_server

import (
"fmt"
"github.com/gitpod-io/gitpod/installer/pkg/cluster"
"github.com/gitpod-io/gitpod/installer/pkg/common"
appsv1 "k8s.io/api/apps/v1"
Expand Down Expand Up @@ -93,7 +94,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) {
TimeoutSeconds: 1,
},
},
*common.KubeRBACProxyContainer(ctx),
*common.KubeRBACProxyContainerWithConfig(ctx, 9500, fmt.Sprintf("http://127.0.0.1:%d/", HTTPContainerPort)),
},
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package public_api_server

import (
"github.com/stretchr/testify/require"
appsv1 "k8s.io/api/apps/v1"
"testing"
)

func TestDeployment(t *testing.T) {
ctx := renderContextWithPublicAPIEnabled(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")
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ func TestObjects_NotRenderedDefault(t *testing.T) {
}

func TestObjects_RenderedWhenExperimentalConfigSet(t *testing.T) {
ctx := renderContextWithPublicAPIEnabled(t)

objects, err := Objects(ctx)
require.NoError(t, err)
require.NotEmpty(t, objects, "must render objects because experimental config is specified")
}

func renderContextWithPublicAPIEnabled(t *testing.T) *common.RenderContext {
ctx, err := common.NewRenderContext(config.Config{
Experimental: &experimental.Config{
WebApp: &experimental.WebAppConfig{
Expand All @@ -37,7 +45,5 @@ func TestObjects_RenderedWhenExperimentalConfigSet(t *testing.T) {
}, "test-namespace")
require.NoError(t, err)

objects, err := Objects(ctx)
require.NoError(t, err)
require.NotEmpty(t, objects, "must render objects because experimental config is specified")
return ctx
}

0 comments on commit dc9b7e7

Please sign in to comment.