Skip to content
You are viewing the documentation for Solo Enterprise for Istio, formerly known as Gloo Mesh (OSS APIs).

Solo UI relay

Page as Markdown

Review Helm values for the Solo UI relay Helm chart.

Version: 0.4.4


Review Helm values for the Solo UI relay Helm chart.

Overview

The relay chart deploys lightweight agent components for workload clusters in a multicluster Solo UI setup for Solo Enterprise for Istio, including:

  • OpenTelemetry collector for telemetry collection and forwarding
  • Tunnel client for secure communication with the management cluster

For more information, see the installation guide.

Required Values

The following values must be configured for the relay chart to function:

ParameterDescriptionWhy Required
clusterName of the workload cluster where this chart is deployedChart deployment will fail without cluster identification
telemetry.fqdnManagement cluster telemetry endpointCannot forward telemetry data without management cluster endpoint
tunnel.fqdnManagement cluster tunnel endpointCannot establish secure tunnel without management cluster endpoint

Values

KeyTypeDescriptionDefault
clusterstringName of the workload cluster where this chart is deployed. The cluster name must only contain letters, digits, hyphens (-), and dots (.). It must start and end with a letter or digit and be between 1 and 253 characters.""
global.image.registrystringFallback registry for all solo-owned images. Excludes third party images. Per-image registry takes precedence when set."us-docker.pkg.dev/solo-public"
global.image.repositorystringFallback repository for all solo-owned images. Excludes third party images. Per-image repository takes precedence when set."solo-enterprise"
global.image.tagstringFallback tag for all solo-owned images. Excludes third party images. Per-image tag takes precedence when set; falls back to chart version if both are unset.""
global.imagePullPolicystringConfigure image pull policy for all images in this chart"IfNotPresent"
istioobjectIstio ambient mode integration. When enabled (the default), relay pods are labeled with istio.io/dataplane-mode=ambient, so the workload cluster’s collectors can reach the management cluster’s global Services (tunnel server, telemetry gateway) over ambient multi-cluster mesh without any post-install labeling. Disable when installing into a cluster that is not running ambient mode.{"ambient":{"enabled":true}}
istio.ambient.enabledboolApply the ambient dataplane-mode label to relay pods automatically on install.true
kubernetes.watchNamespaceslistList of namespaces the relay k8sobjects collector should watch. When empty (default) the collector watches all namespaces (cluster-wide). When set, only the listed namespaces (plus the release namespace) are watched, and cluster-scoped resources (namespaces, nodes, customresourcedefinitions, gatewayclasses) are excluded. This setting scopes collection only; it does not change the chart’s RBAC. Installing the relay still requires cluster-wide permissions because the ClusterRole retains a wildcard rule required for control-plane lease operations.[]
podSecurityContextobjectDefault pod-level security context applied to all pods (can be overridden per-component){"runAsNonRoot":true}
securityContextobjectDefault container-level security context applied to all containers (can be overridden per-container){"readOnlyRootFilesystem":true}
telemetry.collector.affinityobjectAffinity for the telemetry collector pods{}
telemetry.collector.livenessProbeobjectLiveness probe configuration{"failureThreshold":3,"initialDelaySeconds":10,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
telemetry.collector.nodeSelectorobjectNode selector for the telemetry collector pods{}
telemetry.collector.podSecurityContextobjectPod-level security context for the telemetry collector workload{}
telemetry.collector.readinessProbeobjectReadiness probe configuration{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
telemetry.collector.replicaCountintNumber of replicas. When telemetry.metrics.enabled=true, a single replica scrapes all Prometheus targets cluster-wide. Increase replicaCount and enable sharding to distribute scrape load across multiple replicas.1
telemetry.collector.resourcesobjectResources for the telemetry collector{"limits":{"cpu":"500m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"300Mi"}}
telemetry.collector.securityContextobjectContainer security context for telemetry collector(uses global securityContext)
telemetry.collector.shardingobjectSharding configuration for distributing Prometheus scrape targets across replicas. Sharding uses hashmod relabeling to ensure each target is scraped by exactly one collector. Requires metrics.enabled=true and replicaCount > 1.{"enabled":false,"label":"__address__"}
telemetry.collector.sharding.enabledboolEnable sharding of collector targetsfalse
telemetry.collector.sharding.labelstringLabel to hash for shard assignment. Common values: “address” (default), “pod”, “instance”"__address__"
telemetry.collector.tolerationslistTolerations for the telemetry collector pods[]
telemetry.fqdnstring""
telemetry.imageobjectShared image configuration for all telemetry collectors{"name":"opentelemetry-collector-contrib","pullPolicy":"","registry":"docker.io","repository":"otel","tag":"0.150.1"}
telemetry.image.namestringImage name"opentelemetry-collector-contrib"
telemetry.image.pullPolicystringImage pull policy""
telemetry.image.registrystringImage registry"docker.io"
telemetry.image.repositorystringImage repository"otel"
telemetry.image.tagstringOpenTelemetry collector image tag"0.150.1"
telemetry.k8sobjects.affinityobjectAffinity for the relay deployment pods{}
telemetry.k8sobjects.enabledboolEnable the k8sobjects collector (singleton)true
telemetry.k8sobjects.livenessProbeobjectLiveness probe configuration{"failureThreshold":3,"initialDelaySeconds":10,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
telemetry.k8sobjects.nodeSelectorobjectNode selector for the relay deployment pods{}
telemetry.k8sobjects.podSecurityContextobjectPod-level security context for the relay deployment (k8sobjects + tunnel-client){}
telemetry.k8sobjects.readinessProbeobjectReadiness probe configuration{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
telemetry.k8sobjects.resourcesobjectResources for the k8sobjects collector{"limits":{"cpu":"200m","memory":"512Mi"},"requests":{"cpu":"50m","memory":"256Mi"}}
telemetry.k8sobjects.securityContextobjectContainer security context for k8sobjects collector(uses global securityContext)
telemetry.k8sobjects.tolerationslistTolerations for the relay deployment pods[]
telemetry.metrics.enabledboolEnable Prometheus metrics scrapingtrue
telemetry.portintManagement cluster telemetry port4316
telemetry.selfMonitoring.enabledboolEnable relay self-monitoring metrics export to management clusterfalse
telemetry.traces.enabledboolEnable OTLP trace ingestiontrue
traces.verboseboolEnable verbose tracesfalse
tunnel.fqdnstring""
tunnel.image.namestringImage name"solo-enterprise-tunnel-client"
tunnel.image.pullPolicystringImage pull policy""
tunnel.image.registrystringRegistry for the tunnel client image. Overrides global.registry when set.""
tunnel.image.repositorystringRepository for the tunnel client image. Overrides global.repository when set.""
tunnel.image.tagstringTag for the tunnel client image. Overrides global.tag when set; falls back to chart version if both are unset.""
tunnel.livenessProbeobjectLiveness probe for the tunnel{"failureThreshold":3,"initialDelaySeconds":10,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
tunnel.livenessProbe.failureThresholdintFailure threshold for liveness probe3
tunnel.livenessProbe.initialDelaySecondsintInitial delay seconds for liveness probe10
tunnel.livenessProbe.periodSecondsintPeriod seconds for liveness probe10
tunnel.livenessProbe.successThresholdintSuccess threshold for liveness probe1
tunnel.livenessProbe.timeoutSecondsintTimeout seconds for liveness probe5
tunnel.portintManagement cluster tunnel port9000
tunnel.readinessProbeobjectReadiness probe for the tunnel{"failureThreshold":3,"initialDelaySeconds":5,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":5}
tunnel.readinessProbe.failureThresholdintFailure threshold for readiness probe3
tunnel.readinessProbe.initialDelaySecondsintInitial delay seconds for readiness probe5
tunnel.readinessProbe.periodSecondsintPeriod seconds for readiness probe10
tunnel.readinessProbe.successThresholdintSuccess threshold for readiness probe1
tunnel.readinessProbe.timeoutSecondsintTimeout seconds for readiness probe5
tunnel.resourcesobjectResources for the tunnel client. If this is set by the user, it will override all defaults from values.yaml{"limits":{"cpu":"500m","memory":"1024Mi"},"requests":{"cpu":"100m","memory":"300Mi"}}
tunnel.resources.limitsobjectResources for the tunnel client. If this is set by the user, it will override all defaults from values.yaml. If this is set to null, it will not render the limits block.{"cpu":"500m","memory":"1024Mi"}
tunnel.resources.limits.cpustringCPU limits for the tunnel client"500m"
tunnel.resources.limits.memorystringMemory limits for the tunnel client"1024Mi"
tunnel.resources.requestsobjectResources for the tunnel client. If this is set by the user, it will override all defaults from values.yaml. If this is set to null, it will not render the requests block.{"cpu":"100m","memory":"300Mi"}
tunnel.resources.requests.cpustringCPU requests for the tunnel client"100m"
tunnel.resources.requests.memorystringMemory requests for the tunnel client"300Mi"
tunnel.securityContextobjectContainer security context for the tunnel client(uses global securityContext)