Skip to main content
logoTetrate Service BridgeVersion: 1.13.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

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

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"]
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.