Skip to main content
logoTetrate Service BridgeVersion: 1.14.x

Configuring the Tetrate Agent

Configure the Agent's installation and operations to fine-tune its behavior

Prerequisites​

Before installing the Tetrate Hosted Agent, ensure you have:

  • Kubernetes cluster with TSB installed
  • ControlPlane object in istio-system namespace
  • Valid cluster-service-account secret with organization information
  • Tenant default within TSB Hierarchy (or customize via configuration)

Installation​

Add the Tetrate Helm Repository​

# Add the Tetrate Helm repository
helm repo add tetrate-tsb-helm 'https://charts.dl.tetrate.io/public/helm/charts/'

# Update Helm repositories
helm repo update

Install Using Helm​

With a TSB cluster already onboarded, install the Hosted Agent into the namespace where your TSB Control plane is running, typically istio-system:

# Install the Tetrate Hosted Agent
helm upgrade --install tetrate-hosted-agent tetrate-tsb-helm/tetrate-hosted-agent \
--namespace istio-system

Install with Custom Values​

# Install with custom configuration
helm upgrade --install tetrate-hosted-agent tetrate-tsb-helm/tetrate-hosted-agent \
--namespace istio-system \
--create-namespace \
--set agent.logLevel=debug \
--set agent.reconciliationInterval=300s \
--set agent.tsb.auth.tenant=my-tenant

Install with Values File​

# Create custom values file
cat > my-values.yaml <<EOF
agent:
logLevel: "debug"
reconciliationInterval: "300s"
tsb:
auth:
tenant: "my-tenant"
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "1Gi"
cpu: "1000m"
EOF

# Install with values file
helm upgrade --install tetrate-hosted-agent tetrate-tsb-helm/tetrate-hosted-agent \
--namespace istio-system \
--create-namespace \
-f my-values.yaml

Helm Configuration Reference​

Agent Configuration​

ParameterDescriptionDefault
agent.image.registryImage registrycontainers.dl.tetrate.io
agent.image.repositoryImage repository"" (empty)
agent.image.tagImage tag1.2.9
agent.image.pullPolicyImage pull policyAlways
agent.replicaCountNumber of replicas1
agent.logLevelLog level (debug/info/warn/error)info
agent.metricsPortMetrics server port8080
agent.reconciliationIntervalDrift detection interval180s

TSB Authentication​

ParameterDescriptionDefault
agent.tsb.auth.controlPlaneNameControlPlane object namecontrolplane
agent.tsb.auth.controlPlaneNamespaceControlPlane namespaceistio-system
agent.tsb.auth.organizationTSB organization (auto-discovered if empty)""
agent.tsb.auth.tenantTSB tenant namedefault
agent.tsb.insecureSkipVerifySkip TLS verification (testing only)false

Kubernetes Configuration​

ParameterDescriptionDefault
agent.kubernetes.triggerLabelsLabels that trigger workspace creation["tetrate.io/rev", "istio.io/rev", "istio-injection=enabled"]
agent.kubernetes.namespaceFilterOptional namespace filter""

Resource Limits​

ParameterDescriptionDefault
agent.resources.requests.memoryMemory request128Mi
agent.resources.requests.cpuCPU request100m
agent.resources.limits.memoryMemory limit512Mi
agent.resources.limits.cpuCPU limit500m

Advanced Configuration​

ParameterDescriptionDefault
agent.nodeSelectorNode selector for pod schedulingkubernetes.io/arch: amd64
agent.tolerationsPod tolerations[]
agent.affinityPod affinity rules{}
agent.extraEnvsAdditional environment variables[]
agent.extraVolumesAdditional volumes[]
agent.extraVolumeMountsAdditional volume mounts[]

Service Configuration​

ParameterDescriptionDefault
service.typeService typeClusterIP
service.portService port8080
metricsService.enabledEnable metrics servicetrue
metricsService.annotationsPrometheus scrape annotationsSee values.yaml

Security Configuration​

ParameterDescriptionDefault
serviceAccount.createCreate service accounttrue
rbac.createCreate RBAC resourcestrue
agent.podSecurityContext.runAsNonRootRun as non-roottrue
agent.podSecurityContext.runAsUserRun as user ID65534

High Availability​

ParameterDescriptionDefault
autoscaling.enabledEnable HPAfalse
autoscaling.minReplicasMinimum replicas1
autoscaling.maxReplicasMaximum replicas10
autoscaling.targetCPUUtilizationPercentageTarget CPU utilization80
podDisruptionBudget.enabledEnable PDBfalse
podDisruptionBudget.minAvailableMinimum available pods1

Environment Variables​

The agent can also be configured directly via environment variables:

Environment VariableDescriptionDefault
CONTROLPLANE_NAMEControlPlane object namecontrolplane
CONTROLPLANE_NAMESPACEControlPlane object namespaceistio-system
TSB_ORGANIZATIONTSB organization (auto-discovered)-
TSB_TENANTTSB tenant namedefault
RECONCILIATION_INTERVALDrift detection interval180s
LOG_LEVELLog level (debug/info/warn/error)info
METRICS_PORTMetrics server port8080
TRIGGER_LABELSComma-separated trigger labelstetrate.io/rev,istio.io/rev,istio-injection=enabled

Monitoring Agent Health​

Health Endpoints​

The agent exposes several endpoints for monitoring:

EndpointDescription
GET /healthAgent health status
GET /readyAgent readiness status
GET /metricsPrometheus metrics

Debug Endpoints​

For troubleshooting, additional debug endpoints are available:

EndpointDescription
GET /debug/gatewaysGateway infrastructure status
GET /debug/annotation-gatewaysDetailed gateway routing information
GET /debug/tsb-api-objectsRaw TSB API payloads
GET /debug/workspacesWorkspace management status
GET /debug/servicesService management status

Checking Agent Status​

# Port-forward to the agent
kubectl port-forward -n istio-system deployment/tetrate-hosted-agent 8080:8080

# Basic health check
curl http://localhost:8080/health

# Readiness check
curl http://localhost:8080/ready

# Prometheus metrics
curl http://localhost:8080/metrics

# Check gateway status
curl http://localhost:8080/debug/annotation-gateways | jq '.serviceStatuses'

# View TSB API payloads
curl http://localhost:8080/debug/tsb-api-objects | jq '.gateways[]'

Prometheus Integration​

The metrics service is configured for automatic Prometheus scraping:

metricsService:
enabled: true
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8080"
prometheus.io/path: "/metrics"

Upgrading​

To upgrade an existing installation:

# Update Helm repositories first
helm repo update

# Upgrade with new values
helm upgrade tetrate-hosted-agent tetrate-tsb-helm/tetrate-hosted-agent \
--namespace istio-system \
-f my-values.yaml

# Or upgrade with inline values
helm upgrade tetrate-hosted-agent tetrate-tsb-helm/tetrate-hosted-agent \
--namespace istio-system \
--set agent.image.tag=1.3.0

Uninstalling​

To remove the agent:

helm uninstall tetrate-hosted-agent --namespace istio-system
note

Uninstalling the agent will not remove TSB resources (workspaces, gateways) that were created by the agent. These must be cleaned up separately if needed.