diff --git a/install/installer/pkg/common/common.go b/install/installer/pkg/common/common.go index fd50ed84968b0a..403877a85c6516 100644 --- a/install/installer/pkg/common/common.go +++ b/install/installer/pkg/common/common.go @@ -112,7 +112,7 @@ func DefaultEnv(cfg *config.Config) []corev1.EnvVar { ) } -func WorkspaceTracingEnv(context *RenderContext) (res []corev1.EnvVar) { +func WorkspaceTracingEnv(context *RenderContext, component string) (res []corev1.EnvVar) { var tracing *experimental.Tracing _ = context.WithExperimental(func(cfg *experimental.Config) error { @@ -122,10 +122,10 @@ func WorkspaceTracingEnv(context *RenderContext) (res []corev1.EnvVar) { return nil }) - return tracingEnv(context, tracing) + return tracingEnv(context, component, tracing) } -func WebappTracingEnv(context *RenderContext) (res []corev1.EnvVar) { +func WebappTracingEnv(context *RenderContext, component string) (res []corev1.EnvVar) { var tracing *experimental.Tracing _ = context.WithExperimental(func(cfg *experimental.Config) error { @@ -135,10 +135,10 @@ func WebappTracingEnv(context *RenderContext) (res []corev1.EnvVar) { return nil }) - return tracingEnv(context, tracing) + return tracingEnv(context, component, tracing) } -func tracingEnv(context *RenderContext, tracing *experimental.Tracing) (res []corev1.EnvVar) { +func tracingEnv(context *RenderContext, component string, tracing *experimental.Tracing) (res []corev1.EnvVar) { if context.Config.Observability.Tracing == nil { res = append(res, corev1.EnvVar{Name: "JAEGER_DISABLED", Value: "true"}) return @@ -154,6 +154,41 @@ func tracingEnv(context *RenderContext, tracing *experimental.Tracing) (res []co // but would make env var composition more cumbersome. } + if context.Config.Observability.Tracing.SecretName != nil { + res = append(res, corev1.EnvVar{ + Name: "JAEGER_USER", + ValueFrom: &corev1.EnvVarSource{SecretKeyRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: *context.Config.Observability.Tracing.SecretName}, + Key: "JAEGER_USER", + }}, + }) + + res = append(res, corev1.EnvVar{ + Name: "JAEGER_PASSWORD", + ValueFrom: &corev1.EnvVarSource{SecretKeyRef: &corev1.SecretKeySelector{ + LocalObjectReference: corev1.LocalObjectReference{Name: *context.Config.Observability.Tracing.SecretName}, + Key: "JAEGER_PASSWORD", + }}, + }) + } + + res = append(res, corev1.EnvVar{Name: "JAEGER_SERVICE_NAME", Value: component}) + + jaegerTags := []string{} + if context.Config.Metadata.InstallationShortname != "" { + jaegerTags = append(jaegerTags, fmt.Sprintf("cluster=%v", context.Config.Metadata.InstallationShortname)) + } + + if context.Config.Metadata.Region != "" { + jaegerTags = append(jaegerTags, fmt.Sprintf("region=%v", context.Config.Metadata.Region)) + } + + if len(jaegerTags) > 0 { + res = append(res, + corev1.EnvVar{Name: "JAEGER_TAGS", Value: strings.Join(jaegerTags, ",")}, + ) + } + samplerType := experimental.TracingSampleTypeConst samplerParam := "1" diff --git a/install/installer/pkg/components/agent-smith/daemonset.go b/install/installer/pkg/components/agent-smith/daemonset.go index 2ef94f6e5b9370..8f3c04333f5f7c 100644 --- a/install/installer/pkg/components/agent-smith/daemonset.go +++ b/install/installer/pkg/components/agent-smith/daemonset.go @@ -69,7 +69,7 @@ func daemonset(ctx *common.RenderContext) ([]runtime.Object, error) { }}, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), common.NodeNameEnv(ctx), )), SecurityContext: &corev1.SecurityContext{ diff --git a/install/installer/pkg/components/blobserve/deployment.go b/install/installer/pkg/components/blobserve/deployment.go index 6c84926d886cc6..3ccd9c9fe000a0 100644 --- a/install/installer/pkg/components/blobserve/deployment.go +++ b/install/installer/pkg/components/blobserve/deployment.go @@ -115,7 +115,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), )), VolumeMounts: []corev1.VolumeMount{{ Name: "config", diff --git a/install/installer/pkg/components/content-service/deployment.go b/install/installer/pkg/components/content-service/deployment.go index 58aa8321da9887..ccfe7eab06e984 100644 --- a/install/installer/pkg/components/content-service/deployment.go +++ b/install/installer/pkg/components/content-service/deployment.go @@ -68,7 +68,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), []corev1.EnvVar{{ Name: "GRPC_GO_RETRY", Value: "on", diff --git a/install/installer/pkg/components/image-builder-mk3/deployment.go b/install/installer/pkg/components/image-builder-mk3/deployment.go index fcf3b7341f8c4c..5d39c77fb23914 100644 --- a/install/installer/pkg/components/image-builder-mk3/deployment.go +++ b/install/installer/pkg/components/image-builder-mk3/deployment.go @@ -154,7 +154,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), )), Resources: common.ResourceRequirements(ctx, Component, Component, corev1.ResourceRequirements{ Requests: corev1.ResourceList{ diff --git a/install/installer/pkg/components/registry-facade/daemonset.go b/install/installer/pkg/components/registry-facade/daemonset.go index 80e83dfb21e03b..936524abb3563e 100644 --- a/install/installer/pkg/components/registry-facade/daemonset.go +++ b/install/installer/pkg/components/registry-facade/daemonset.go @@ -235,7 +235,7 @@ func daemonset(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), []corev1.EnvVar{ { Name: "GRPC_GO_RETRY", diff --git a/install/installer/pkg/components/server/deployment.go b/install/installer/pkg/components/server/deployment.go index d818cb65d70166..dd0698e02d96d5 100644 --- a/install/installer/pkg/components/server/deployment.go +++ b/install/installer/pkg/components/server/deployment.go @@ -79,7 +79,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { env := common.MergeEnv( common.DefaultEnv(&ctx.Config), common.DatabaseEnv(&ctx.Config), - common.WebappTracingEnv(ctx), + common.WebappTracingEnv(ctx, Component), common.AnalyticsEnv(&ctx.Config), common.MessageBusEnv(&ctx.Config), common.ConfigcatEnv(ctx), diff --git a/install/installer/pkg/components/ws-daemon/daemonset.go b/install/installer/pkg/components/ws-daemon/daemonset.go index b77c5df6113fde..de56a1bead2d77 100644 --- a/install/installer/pkg/components/ws-daemon/daemonset.go +++ b/install/installer/pkg/components/ws-daemon/daemonset.go @@ -196,7 +196,7 @@ fi }}, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&cfg), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), common.NodeNameEnv(ctx), )), Resources: common.ResourceRequirements(ctx, Component, Component, corev1.ResourceRequirements{Requests: corev1.ResourceList{ diff --git a/install/installer/pkg/components/ws-manager-bridge/deployment.go b/install/installer/pkg/components/ws-manager-bridge/deployment.go index a324f3bab4da78..9dc2f5b213eb97 100644 --- a/install/installer/pkg/components/ws-manager-bridge/deployment.go +++ b/install/installer/pkg/components/ws-manager-bridge/deployment.go @@ -127,7 +127,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), common.AnalyticsEnv(&ctx.Config), common.MessageBusEnv(&ctx.Config), common.DatabaseEnv(&ctx.Config), diff --git a/install/installer/pkg/components/ws-manager/deployment.go b/install/installer/pkg/components/ws-manager/deployment.go index a67e0f48b969e0..ac8a741a1a6de1 100644 --- a/install/installer/pkg/components/ws-manager/deployment.go +++ b/install/installer/pkg/components/ws-manager/deployment.go @@ -54,7 +54,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), []corev1.EnvVar{{Name: "GRPC_GO_RETRY", Value: "on"}}, )), VolumeMounts: []corev1.VolumeMount{ diff --git a/install/installer/pkg/components/ws-proxy/deployment.go b/install/installer/pkg/components/ws-proxy/deployment.go index 4c43ca8e4c9ec4..2b9dcfeb51f6a2 100644 --- a/install/installer/pkg/components/ws-proxy/deployment.go +++ b/install/installer/pkg/components/ws-proxy/deployment.go @@ -118,7 +118,7 @@ func deployment(ctx *common.RenderContext) ([]runtime.Object, error) { }, Env: common.CustomizeEnvvar(ctx, Component, common.MergeEnv( common.DefaultEnv(&ctx.Config), - common.WorkspaceTracingEnv(ctx), + common.WorkspaceTracingEnv(ctx, Component), common.AnalyticsEnv(&ctx.Config), )), ReadinessProbe: &corev1.Probe{ diff --git a/install/installer/pkg/config/v1/config.go b/install/installer/pkg/config/v1/config.go index 7fa0fa55432258..a124be059252a1 100644 --- a/install/installer/pkg/config/v1/config.go +++ b/install/installer/pkg/config/v1/config.go @@ -220,6 +220,9 @@ type Analytics struct { type Tracing struct { Endpoint *string `json:"endpoint,omitempty"` AgentHost *string `json:"agentHost,omitempty"` + // Name of the kubernetes secret to use for Jaeger authentication + // The secret should contains two definitions: JAEGER_USER and JAEGER_PASSWORD + SecretName *string `json:"secretName,omitempty"` } type Database struct {