Skip to content

For the complete documentation index, see llms.txt.

Manual Helm reference

This page describes the current worker chart, version 0.3.0. Helm values become environment variables in the worker. Start with Manually manage the analyzer for a complete values file.

Unless noted, Helm keys in this table are under instructionHub. Environment-variable suffixes have the prefix INSTRUCTION_HUB_.

Helm keyEnvironment-variable suffixMeaning
runtimeBaseUrlRUNTIME_BASE_URLPromptless endpoint supplied during registration.
deploymentNameDEPLOYMENT_NAMEHuman-readable deployment name; use acme-production in the Acme example.
deploymentInstanceIdDEPLOYMENT_INSTANCE_IDStable registered deployment identifier from Promptless.
configHashCONFIG_HASHRegistered configuration hash from Promptless. Coordinate configuration changes with the team.
storageBackendSTORAGE_BACKENDpostgres_s3, postgres_azure_blob, or postgres_gcs.
traceObjectS3BucketTRACE_OBJECT_S3_BUCKETS3 bucket for raw ranges and canonical trace objects. Required for postgres_s3.
traceObjectS3PrefixTRACE_OBJECT_S3_PREFIXObject prefix; defaults to trace-objects. Acme uses acme/traces.
maxTraceBatchBytesMAX_TRACE_BATCH_BYTESMaximum decoded trace-batch size, in bytes. Default 268435456 (256 MiB); must be positive.
logLevelLOG_LEVELDEBUG, INFO, WARNING, ERROR, or CRITICAL. Default INFO.

The install token and PostgreSQL DSN are also required. They come from Secret references, described below. Keep the database, bucket, and prefix stable across restarts and upgrades. Changing a storage location does not migrate existing data.

The service listens on port 8080 by default. Use that value for service.workerPort and ingress routing in the current chart. The analysis repository mirror uses an ephemeral emptyDir; it can be rebuilt after a restart and does not require a persistent volume. Trace data and analysis state live in your object store and PostgreSQL.

Select one backend. Keep the relevant values under instructionHub:

instructionHub:
storageBackend: postgres_s3
traceObjectS3Bucket: acme-pig-traces
traceObjectS3Prefix: acme/traces

Grant the analyzer’s AWS identity access to the bucket and trace prefix. For EKS IRSA, annotate the existing ServiceAccount with eks.amazonaws.com/role-arn and bind its namespace and name in the role’s trust policy.

The SDK for the selected backend discovers credentials through workload identity. The chart does not accept storage access keys or arbitrary env and envFrom values.

Helm keyEnvironment-variable suffix
traceObjectAzureAccountUrlTRACE_OBJECT_AZURE_ACCOUNT_URL
traceObjectAzureContainerTRACE_OBJECT_AZURE_CONTAINER
traceObjectGcsBucketTRACE_OBJECT_GCS_BUCKET
traceObjectPrefixTRACE_OBJECT_PREFIX

These suffixes use the INSTRUCTION_HUB_ prefix. traceObjectPrefix defaults to trace-objects and applies to Azure and GCS. S3 uses traceObjectS3Prefix.

Create the workload identity ServiceAccount before installing the chart, then use it for both workloads:

serviceAccount:
create: false
name: pig-analyzer
migrationJob:
serviceAccountName: pig-analyzer
instructionHub:
postgresCaConfigMapName: postgres-ca
postgresCaConfigMapKey: ca.pem

The pre-install migration hook runs before Helm creates ordinary resources. Its ServiceAccount, credential Secret, and CA ConfigMap must already exist in the release namespace. The migration Job otherwise defaults to the namespace’s default ServiceAccount.

Create postgres-ca with the trusted database CA bundle under ca.pem, or change the two ConfigMap values above. Both workloads mount the selected key at /etc/pig/postgres-ca/ca.pem and set PGSSLROOTCERT to that path. Use sslmode=verify-full in the DSN. See PostgreSQL requirements for TLS and schema permissions.

The published chart pins the worker image through image.repository and image.digest. A source checkout requires a verified image.digest in the form sha256:<64 lowercase hex characters>. Use the digest from the matching release; do not replace it with a mutable tag.

All Helm keys below are under instructionHub.analysis. The environment-variable suffixes have the prefix INSTRUCTION_HUB_ANALYSIS_.

Helm keyEnvironment-variable suffixMeaning
activationAtACTIVATION_ATTimezone-aware ISO timestamp for enabling analysis. Empty leaves trace analysis inactive.
quietWindowHoursQUIET_WINDOW_HOURSPositive quiet period before a session is eligible; default 0.5 hours.
repository.urlREPOSITORY_URLCanonical credential-free GitHub HTTPS URL, such as https://github.com/acme/acme-instruction-hub.git.
repository.idREPOSITORY_IDPositive numeric GitHub repository ID.
repository.fullNameREPOSITORY_FULL_NAMEMatching owner and repository, such as acme/acme-instruction-hub.
repository.tokenSecretEnabledControls REPOSITORY_TOKEN injectionSet true for a private repository and supply the token Secret key.
repository.mirrorRootMIRROR_ROOTDefault /var/lib/instruction-hub/analysis-mirrors. Keep the default to use the chart’s mounted mirror storage.

When activationAt or repository.url is nonempty, configure the complete repository identity and all model fields below. A configured repository can support remediation without activating trace analysis. The worker validates those settings together and refuses partial analysis configuration. Changing the quiet window does not enable analysis by itself.

The repository URL and fullName must describe the same GitHub repository. The current analyzer validates github.com URLs; GitLab publishing support in the hub toolchain does not imply GitLab analyzer or remediation support. See Supported agents and platforms for the separate compatibility boundaries.

These Helm keys are under instructionHub.analysis.modelApi:

Helm keyWorker environment variableMeaning
providerINSTRUCTION_HUB_ANALYSIS_MODEL_PROVIDERopenai, azure_openai, or aws_bedrock.
authenticationINSTRUCTION_HUB_ANALYSIS_MODEL_AUTHENTICATIONapi_key, or aws_sigv4 for Bedrock only.
baseUrlINSTRUCTION_HUB_ANALYSIS_MODEL_BASE_URLSupported HTTPS Responses API endpoint.
modelINSTRUCTION_HUB_ANALYSIS_MODEL_NAMEModel or deployment name available through that endpoint. Select it explicitly for your account.
ProviderAccepted endpoint shapeAuthentication
openaihttps://api.openai.com/v1API key.
azure_openaihttps://RESOURCE.openai.azure.com/openai/v1 or https://RESOURCE.services.ai.azure.com/openai/v1API key.
aws_bedrockhttps://bedrock-mantle.REGION.api.aws/v1 or the same host with /openai/v1API key or AWS SigV4.

Replace RESOURCE and REGION. URLs must not contain embedded credentials, an explicit port, query parameters, or a fragment. Ordinary Bedrock Runtime URLs and arbitrary OpenAI-compatible endpoints do not pass the current provider validation. GKE deployments can use one of the supported providers; there is no Vertex AI provider option.

For api_key, supply analysis-model-api-key in the worker Secret. For aws_sigv4, select aws_bedrock, omit the model API key, and grant the worker’s AWS identity access to the selected model. S3 and model authorization are separate permissions even when they use one identity.

The analyzer sends session content and relevant instruction context to this provider. Choose its region and data-handling terms accordingly; see Trust and data model.

Use secrets.existingSecretName to reference a Secret in the worker namespace. The chart defaults to these keys:

Helm mappingDefault Secret keyWorker environment variable
secrets.installTokenKeyinstall-tokenINSTRUCTION_HUB_INSTALL_TOKEN
secrets.customerPostgresDsnKeycustomer-postgres-dsnINSTRUCTION_HUB_CUSTOMER_POSTGRES_DSN
secrets.analysisModelApiKeyKeyanalysis-model-api-keyINSTRUCTION_HUB_ANALYSIS_MODEL_API_KEY
secrets.analysisRepositoryTokenKeyanalysis-repository-tokenINSTRUCTION_HUB_ANALYSIS_REPOSITORY_TOKEN

The model key is referenced when an activation time or repository URL is configured with api_key. The repository key is referenced under the same condition when repository.tokenSecretEnabled: true.

The chart also supports creating a Secret from values, but an existing Secret keeps credential values out of your GitOps configuration. Use your secret-management system to rotate credentials. Restart the worker after updating environment-backed Secret values so the process receives them.

Sentry uses a separate Secret reference. See Enable Sentry for the exact values.

Render the chart with your values and review the generated references and endpoints. Apply through the deployment’s owner: your Helm workflow or its GitOps controller. Do not let a supervisor manage the same worker resources.

After rollout, repeat the complete-session verification. Configuration validation and a healthy pod do not prove that credentials can access the database, bucket, repository, or model.

If your cluster already runs a Datadog Agent that accepts APM traffic, add these Helm values:

observability-values.yaml
observability:
environment: production
datadog:
enabled: true
env: production
service: acme-pig-worker
agentUrl: http://datadog-agent.datadog:8126
site: datadoghq.com

Replace the Agent URL and site for your installation. The chart sets DD_TRACE_ENABLED, DD_ENV, DD_SERVICE, DD_VERSION, DD_TRACE_AGENT_URL, and DD_SITE, and adds a log-discovery annotation. Configure the Agent’s container-log collection and network access separately.

The chart exposes the listed settings; it does not pass arbitrary DD_* environment variables from values. Analysis tracing can include LLM observability data. Review your telemetry collection and retention settings before enabling it for sensitive sessions.

Create a Secret named acme-pig-sentry with a SENTRY_DSN key using your secret-management system, then add:

sentry-values.yaml
observability:
environment: production
sentry:
enabled: true
existingSecretName: acme-pig-sentry
dsnKey: SENTRY_DSN

The chart supplies SENTRY_DSN, SENTRY_ENVIRONMENT, and SENTRY_RELEASE to the worker and migration Job. Error reporting is enabled by the DSN; Sentry performance tracing is disabled in the worker’s current setup.