Skip to content

[installer] Refactor configuration of addresses, metric and debug ports #11591

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions components/common-go/baseserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,8 @@ const (
BuiltinDebugPort = 6060
BuiltinMetricsPort = 9500
BuiltinHealthPort = 9501

BuiltinMetricsPortName = "metrics"
)

type builtinServices struct {
Expand Down
13 changes: 11 additions & 2 deletions install/installer/pkg/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ func KubeRBACProxyContainerWithConfig(ctx *RenderContext) *corev1.Container {
fmt.Sprintf("--upstream=http://127.0.0.1:%d/", baseserver.BuiltinMetricsPort),
},
Ports: []corev1.ContainerPort{
{Name: "metrics", ContainerPort: baseserver.BuiltinMetricsPort},
{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},
},
Env: []corev1.EnvVar{
{
Expand Down Expand Up @@ -450,7 +450,7 @@ var (
Ports: []networkingv1.NetworkPolicyPort{
{
Protocol: TCPProtocol,
Port: &intstr.IntOrString{IntVal: 9500},
Port: &intstr.IntOrString{IntVal: baseserver.BuiltinMetricsPort},
},
},
From: []networkingv1.NetworkPolicyPeer{
Expand Down Expand Up @@ -604,3 +604,12 @@ func ThirdPartyContainerRepo(configRegistry string, thirdPartyRegistry string) s
func ToJSONString(input interface{}) ([]byte, error) {
return json.MarshalIndent(input, "", " ")
}

func NodeNameEnv(context *RenderContext) []corev1.EnvVar {
return []corev1.EnvVar{{
Name: "NODENAME",
ValueFrom: &corev1.EnvVarSource{
FieldRef: &corev1.ObjectFieldSelector{FieldPath: "spec.nodeName"},
},
}}
}
19 changes: 10 additions & 9 deletions install/installer/pkg/common/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ import (
"fmt"
"testing"

"github.com/stretchr/testify/require"
corev1 "k8s.io/api/core/v1"

"github.com/gitpod-io/gitpod/common-go/baseserver"
"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"
)

func TestKubeRBACProxyContainer_DefaultPorts(t *testing.T) {
Expand All @@ -21,26 +23,25 @@ func TestKubeRBACProxyContainer_DefaultPorts(t *testing.T) {
container := common.KubeRBACProxyContainer(ctx)
require.Equal(t, []string{
"--logtostderr",
"--insecure-listen-address=[$(IP)]:9500",
"--upstream=http://127.0.0.1:9500/",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%v", baseserver.BuiltinMetricsPort),
fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),
}, container.Args)
require.Equal(t, []corev1.ContainerPort{
{Name: "metrics", ContainerPort: 9500},
{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},
}, container.Ports)
}

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

listenPort := int32(9500)
container := common.KubeRBACProxyContainerWithConfig(ctx)
require.Equal(t, []string{
"--logtostderr",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", listenPort),
"--upstream=http://127.0.0.1:9500/",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", baseserver.BuiltinMetricsPort),
fmt.Sprintf("--upstream=http://%v/", common.LocalhostPrometheusAddr()),
}, container.Args)
require.Equal(t, []corev1.ContainerPort{
{Name: "metrics", ContainerPort: listenPort},
{Name: baseserver.BuiltinMetricsPortName, ContainerPort: baseserver.BuiltinMetricsPort},
}, container.Ports)
}
1 change: 0 additions & 1 deletion install/installer/pkg/common/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ const (
WSProxyComponent = "ws-proxy"
ImageBuilderComponent = "image-builder-mk3"
ImageBuilderRPCPort = 8080
DebugPort = 6060
DebugNodePort = 9229

AnnotationConfigChecksum = "gitpod.io/checksum_config"
Expand Down
27 changes: 27 additions & 0 deletions install/installer/pkg/common/net.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// 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 common

import (
"fmt"

"github.com/gitpod-io/gitpod/common-go/baseserver"
)

const (
localhost = "127.0.0.1"
)

func LocalhostAddressFromPort(port int) string {
return fmt.Sprintf("%v:%v", localhost, port)
}

func LocalhostPrometheusAddr() string {
return LocalhostAddressFromPort(baseserver.BuiltinMetricsPort)
}

func LocalhostPprofAddr() string {
return LocalhostAddressFromPort(baseserver.BuiltinDebugPort)
}
5 changes: 3 additions & 2 deletions install/installer/pkg/components/agent-smith/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"fmt"

"github.com/gitpod-io/gitpod/agent-smith/pkg/config"
"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/common"
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"

Expand All @@ -18,8 +19,8 @@ import (

func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
ascfg := config.ServiceConfig{
PProfAddr: fmt.Sprintf("localhost:%d", PProfPort),
PrometheusAddr: fmt.Sprintf("localhost:%d", PrometheusPort),
PProfAddr: common.LocalhostAddressFromPort(baseserver.BuiltinDebugPort),
PrometheusAddr: common.LocalhostPrometheusAddr(),
Namespace: ctx.Namespace,
Config: config.Config{
Kubernetes: config.Kubernetes{Enabled: true},
Expand Down
4 changes: 1 addition & 3 deletions install/installer/pkg/components/agent-smith/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,5 @@
package agentsmith

const (
Component = "agent-smith"
PrometheusPort = 9500
PProfPort = 6060
Component = "agent-smith"
)
7 changes: 1 addition & 6 deletions install/installer/pkg/components/agent-smith/daemonset.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,7 @@ func daemonset(ctx *common.RenderContext) ([]runtime.Object, error) {
Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv(
common.DefaultEnv(&ctx.Config),
common.WorkspaceTracingEnv(ctx),
[]corev1.EnvVar{{
Name: "NODENAME",
ValueFrom: &corev1.EnvVarSource{
FieldRef: &corev1.ObjectFieldSelector{FieldPath: "spec.nodeName"},
},
}},
common.NodeNameEnv(ctx),
)),
SecurityContext: &corev1.SecurityContext{
Privileged: pointer.Bool(true),
Expand Down
5 changes: 3 additions & 2 deletions install/installer/pkg/components/blobserve/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (

"github.com/gitpod-io/gitpod/blobserve/pkg/blobserve"
"github.com/gitpod-io/gitpod/blobserve/pkg/config"
"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/common-go/util"
"github.com/gitpod-io/gitpod/installer/pkg/common"
"github.com/gitpod-io/gitpod/installer/pkg/components/workspace"
Expand Down Expand Up @@ -99,8 +100,8 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
},
},
AuthCfg: "/mnt/pull-secret.json",
PProfAddr: ":6060",
PrometheusAddr: "127.0.0.1:9500",
PProfAddr: common.LocalhostAddressFromPort(baseserver.BuiltinDebugPort),
PrometheusAddr: common.LocalhostPrometheusAddr(),
ReadinessProbeAddr: fmt.Sprintf(":%v", ReadinessPort),
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,8 @@

package content_service

import "github.com/gitpod-io/gitpod/common-go/baseserver"

const (
Component = "content-service"
RPCPort = 8080
RPCServiceName = "rpc"
PrometheusPort = baseserver.BuiltinMetricsPort
PrometheusName = "metrics"
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package content_service

import (
"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/cluster"
"github.com/gitpod-io/gitpod/installer/pkg/common"

Expand Down Expand Up @@ -58,8 +59,8 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) {
Name: RPCServiceName,
ContainerPort: RPCPort,
}, {
ContainerPort: PrometheusPort,
Name: PrometheusName,
ContainerPort: baseserver.BuiltinMetricsPort,
Name: baseserver.BuiltinMetricsPortName,
}},
SecurityContext: &corev1.SecurityContext{
Privileged: pointer.Bool(false),
Expand Down
11 changes: 7 additions & 4 deletions install/installer/pkg/components/content-service/objects.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package content_service

import "github.com/gitpod-io/gitpod/installer/pkg/common"
import (
"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/common"
)

var Objects = common.CompositeRenderFunc(
configmap,
Expand All @@ -18,9 +21,9 @@ var Objects = common.CompositeRenderFunc(
ServicePort: RPCPort,
},
{
Name: PrometheusName,
ContainerPort: PrometheusPort,
ServicePort: PrometheusPort,
Name: baseserver.BuiltinMetricsPortName,
ContainerPort: baseserver.BuiltinMetricsPort,
ServicePort: baseserver.BuiltinMetricsPort,
},
}),
common.DefaultServiceAccount(Component),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
Addr: fmt.Sprintf(":%d", RPCPort),
},
Prometheus: config.Service{
Addr: fmt.Sprintf("127.0.0.1:%d", PrometheusPort),
Addr: common.LocalhostPrometheusAddr(),
},
PProf: config.PProf{
Addr: fmt.Sprintf(":%d", PProfPort),
Addr: common.LocalhostPprofAddr(),
},
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,4 @@ const (
Component = common.ImageBuilderComponent
RPCPort = common.ImageBuilderRPCPort
RPCPortName = "service"
PProfPort = 6060
PrometheusPort = 9500
)
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {
URLLocal: fmt.Sprintf("https://open-vsx.%s", ctx.Config.Domain),
MaxIdleConns: 1000,
MaxIdleConnsPerHost: 1000,
PrometheusAddr: fmt.Sprintf(":%d", PrometheusPort),
PrometheusAddr: common.LocalhostPrometheusAddr(),
RedisAddr: "localhost:6379",
}

Expand Down
10 changes: 4 additions & 6 deletions install/installer/pkg/components/openvsx-proxy/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,8 @@
package openvsx_proxy

const (
Component = "openvsx-proxy"
ContainerPort = 8080
ServicePort = 8080
PortName = "http"
PrometheusPort = 9500
PrometheusPortName = "metrics"
Component = "openvsx-proxy"
ContainerPort = 8080
ServicePort = 8080
PortName = "http"
)
7 changes: 4 additions & 3 deletions install/installer/pkg/components/openvsx-proxy/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package openvsx_proxy

import (
"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/common"
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"

Expand All @@ -28,9 +29,9 @@ func service(ctx *common.RenderContext) ([]runtime.Object, error) {
ServicePort: ServicePort,
},
{
Name: PrometheusPortName,
ContainerPort: PrometheusPort,
ServicePort: PrometheusPort,
Name: baseserver.BuiltinMetricsPortName,
ContainerPort: baseserver.BuiltinMetricsPort,
ServicePort: baseserver.BuiltinMetricsPort,
},
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/utils/pointer"

"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/cluster"
"github.com/gitpod-io/gitpod/installer/pkg/common"
)
Expand Down Expand Up @@ -93,8 +94,8 @@ func statefulset(ctx *common.RenderContext) ([]runtime.Object, error) {
Name: PortName,
ContainerPort: ContainerPort,
}, {
Name: PrometheusPortName,
ContainerPort: PrometheusPort,
Name: baseserver.BuiltinMetricsPortName,
ContainerPort: baseserver.BuiltinMetricsPort,
}},
VolumeMounts: []v1.VolumeMount{{
Name: "config",
Expand Down
2 changes: 0 additions & 2 deletions install/installer/pkg/components/proxy/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@ const (
ContainerHTTPSName = common.ProxyContainerHTTPSName
ContainerSSHPort = 22
ContainerSSHName = "ssh"
PrometheusPort = 9500
InitContainerImage = "library/alpine"
InitContainerTag = "3.15"
KubeRBACProxyRepo = common.KubeRBACProxyRepo
KubeRBACProxyImage = common.KubeRBACProxyImage
KubeRBACProxyTag = common.KubeRBACProxyTag
MetricsContainerName = "metrics"
ReadinessPort = 8003
RegistryAuthSecret = common.RegistryAuthSecret
RegistryTLSCertSecret = common.RegistryTLSCertSecret
Expand Down
12 changes: 6 additions & 6 deletions install/installer/pkg/components/proxy/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ package proxy
import (
"fmt"

"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/cluster"
"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"

Expand All @@ -32,8 +33,8 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) {
}

prometheusPort := corev1.ContainerPort{
ContainerPort: PrometheusPort,
Name: MetricsContainerName,
ContainerPort: baseserver.BuiltinMetricsPort,
Name: baseserver.BuiltinMetricsPortName,
}

volumes := []corev1.Volume{{
Expand Down Expand Up @@ -176,9 +177,8 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) {
Image: ctx.ImageName(common.ThirdPartyContainerRepo(ctx.Config.Repository, KubeRBACProxyRepo), KubeRBACProxyImage, KubeRBACProxyTag),
ImagePullPolicy: corev1.PullIfNotPresent,
Args: []string{
"--v=10",
"--logtostderr",
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", PrometheusPort),
fmt.Sprintf("--insecure-listen-address=[$(IP)]:%d", baseserver.BuiltinMetricsPort),
"--upstream=http://127.0.0.1:9545/",
},
Env: []corev1.EnvVar{{
Expand All @@ -191,8 +191,8 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) {
},
}},
Ports: []corev1.ContainerPort{{
ContainerPort: PrometheusPort,
Name: MetricsContainerName,
ContainerPort: baseserver.BuiltinMetricsPort,
Name: baseserver.BuiltinMetricsPortName,
Protocol: *common.TCPProtocol,
}},
Resources: common.ResourceRequirements(ctx, Component, kubeRbacProxyContainerName, corev1.ResourceRequirements{
Expand Down
3 changes: 2 additions & 1 deletion install/installer/pkg/components/proxy/networkpolicy.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ package proxy
import (
"fmt"

"github.com/gitpod-io/gitpod/common-go/baseserver"
"github.com/gitpod-io/gitpod/installer/pkg/common"

networkingv1 "k8s.io/api/networking/v1"
Expand Down Expand Up @@ -42,7 +43,7 @@ func networkpolicy(ctx *common.RenderContext) ([]runtime.Object, error) {
}, {
Ports: []networkingv1.NetworkPolicyPort{{
Protocol: common.TCPProtocol,
Port: &intstr.IntOrString{IntVal: PrometheusPort},
Port: &intstr.IntOrString{IntVal: baseserver.BuiltinMetricsPort},
}},
From: []networkingv1.NetworkPolicyPeer{{
NamespaceSelector: &metav1.LabelSelector{MatchLabels: map[string]string{
Expand Down
Loading