Skip to main content

teleport-access-graph Chart Reference

Report an Issue

The teleport-access-graph Helm chart deploys the Access Graph service.

See Teleport Identity Security with Access Graph on Self-Hosted Clusters with Helm for more details.

Version Compatibility

The chart is versioned with the Access Graph service. No compatibility guarantees are ensured if the service and chart versions differ. It is strongly recommended to always align the chart and service versions by using the --version Helm flag.

postgres​

postgres Database connection settings

postgres.connectionString​

TypeDefault
string""

postgres.connectionString is the connection string to the PostgreSQL database. Use this only when not using a Kubernetes secret and not using AWS or Azure IAM authentication.

postgres.secretName​

TypeDefault
string""

postgres.secretName is the name of an existing Kubernetes secret containing the connection string to the PostgreSQL database.

postgres.secretKey​

TypeDefault
string"uri"

postgres.secretKey is the name of the secret key for the provided Kubernetes secret containing the connection string to the PostgreSQL database.

postgres.aws​

postgres.aws contains optional AWS connection settings for using AWS IAM authentication. This is only required if you are using an AWS RDS or Aurora PostgreSQL database with IAM authentication.

postgres.aws.enabled​

TypeDefault
boolfalse

postgres.aws.enabled enables IAM authentication for the PostgreSQL database.

postgres.aws.region​

TypeDefault
string""

postgres.aws.region is the optional AWS region where the PostgreSQL database is located. If not set, the region will be inferred from the AWS_REGION environment variable.

postgres.azure​

TypeDefault
object{"enabled":false}

postgres.azure contains optional settings for using Microsoft Entra ID authentication with Azure Database for PostgreSQL. This is only required if you are using an Azure Database for PostgreSQL.

postgres.azure.enabled​

TypeDefault
boolfalse

postgres.azure.enabled enables Microsoft Entra ID authentication for the PostgreSQL database.

postgres.azure.tenantId​

TypeDefault
string""

postgres.azure.tenantId is the Microsoft Entra ID tenant ID to use for authentication. If not set, the default tenant ID will be used.

postgres.connection_parameters​

TypeDefault
objectnull

postgres.connection_parameters contains optional connection parameters configuration values for connecting to the database.

postgres.replica​

postgres.replica contains the database replica connection settings.

postgres.replica.connectionString​

TypeDefault
string""

postgres.replica.connectionString is the connection string to the PostgreSQL database. Use this only when not using a Kubernetes secret and not using AWS or Azure IAM authentication.

postgres.replica.secretName​

TypeDefault
string""

postgres.replica.secretName is the name of an existing Kubernetes secret containing the connection string to the replica PostgreSQL database.

postgres.replica.secretKey​

TypeDefault
string"uri"

postgres.replica.secretKey is the name of the secret key for the provided Kubernetes secret containing the connection string to the replica PostgreSQL database.

postgres.replica.connection_parameters​

TypeDefault
objectnull

postgres.replica.connection_parameters contains optional connection parameters configuration values for connecting to the replica database.

tls​

tls TLS settings for the main gRPC listener.

tls.existingSecretName​

TypeDefault
string""

tls.existingSecretName is the name of an existing Kubernetes secret containing the certificate and its private key to use for the gRPC listener. The secret must be of type kubernetes.io/tls, see the Kubernetes documentation for more details.

Setting this is required, as Teleport Access Graph always operates via TLS-protected connections.

clusterHostCAs​

TypeDefault
array[]

clusterHostCAs is a list of strings containing PEM-encoded Host CA certificates of Teleport clusters that are allowed to use this instance of TAG. Setting this to a non-empty array is required.

identityActivityCenter​

TypeDefault
object{"database":"","enabled":false,"maxmindGeoipCityDbPath":"","parquetBuffer":{"enabled":false,"existingVolume":"","medium":"","mountPath":"/var/lib/teleport-access-graph/parquet-buffer","sizeLimit":"2Gi"},"region":"","s3":"","s3LargeFiles":"","s3Results":"","sqsQueueUrl":"","table":"","workgroup":""}

identityActivityCenter contains options for the Identity Activity Center feature. This feature allows Access Graph to store security events in a central location and to query them using Athena, providing a way to analyze and correlate security events across multiple Teleport clusters.

identityActivityCenter.enabled​

TypeDefault
boolfalse

identityActivityCenter.enabled enables the Identity Activity Center feature.

identityActivityCenter.region​

TypeDefault
string""

identityActivityCenter.region the AWS region where the SQS queue, Athena database and S3 bucket are located.

identityActivityCenter.database​

TypeDefault
string""

identityActivityCenter.database the name of the Athena database to use for storing security events.

identityActivityCenter.table​

TypeDefault
string""

identityActivityCenter.table the name of the Athena table to use for storing security events.

identityActivityCenter.workgroup​

TypeDefault
string""

identityActivityCenter.workgroup the name of the Athena workgroup to use for executing queries.

identityActivityCenter.s3​

TypeDefault
string""

identityActivityCenter.s3 the S3 bucket to use for storing security events. Example: s3://bucket-events/data/

identityActivityCenter.s3Results​

TypeDefault
string""

identityActivityCenter.s3Results the S3 bucket to use for storing results of Athena queries. Example: s3://bucket-events/results/

identityActivityCenter.s3LargeFiles​

TypeDefault
string""

identityActivityCenter.s3LargeFiles the S3 bucket to use for storing large files that cannot be stored in the Athena database. This is used to store large files that cannot be shared via SQS, such as large JSON files. Example: s3://bucket-events/s3_large_files

identityActivityCenter.sqsQueueUrl​

TypeDefault
string""

identityActivityCenter.sqsQueueUrl the URL of the SQS queue to use for processing security events.

identityActivityCenter.maxmindGeoipCityDbPath​

TypeDefault
string""

identityActivityCenter.maxmindGeoipCityDbPath the path to the MaxMind GeoIP City database file. This is used to enrich security events with geolocation information. Use this together with the volumeMounts and volumes options to mount the database file into the TAG pod.

Example:

kubectl create secret generic maxmind-geoip-city-db --from-file=GeoLite2-City.mmdb

Then, add the following to your TAG deployment:

volumes:
- name: maxmind-geoip-city-db
  secret:
    secretName: maxmind-geoip-city-db
    optional: false
volumeMounts:
- name: maxmind-geoip-city-db
  mountPath: "/etc/maxmindGeoIP/"
  readOnly: true

identityActivityCenter:
  ... # other options
  maxmindGeoipCityDbPath: "/etc/maxmindGeoIP/GeoLite2-City.mmdb"

If you do not want to use the MaxMind GeoIP City database, set this to an empty string.

identityActivityCenter.parquetBuffer​

TypeDefault
object{"enabled":false,"existingVolume":"","medium":"","mountPath":"/var/lib/teleport-access-graph/parquet-buffer","sizeLimit":"2Gi"}

identityActivityCenter.parquetBuffer spill parquet column pages to a scratch volume instead of holding them in memory while building the files uploaded to S3. Only useful when the consumer is memory constrained and batches span many Teleport clusters or days, since one parquet writer is held open per cluster and day.

identityActivityCenter.parquetBuffer.enabled​

TypeDefault
boolfalse

identityActivityCenter.parquetBuffer.enabled spill parquet page buffers to disk.

identityActivityCenter.parquetBuffer.mountPath​

TypeDefault
string"/var/lib/teleport-access-graph/parquet-buffer"

identityActivityCenter.parquetBuffer.mountPath where the scratch volume is mounted.

identityActivityCenter.parquetBuffer.sizeLimit​

TypeDefault
string"2Gi"

identityActivityCenter.parquetBuffer.sizeLimit the size limit of the emptyDir volume created for the scratch space. Ignored when existingVolume is set. Budget roughly 32MB per (Teleport cluster x day) in a batch; the pod is evicted if the volume overflows, so set a matching ephemeral-storage request under resources.

identityActivityCenter.parquetBuffer.medium​

TypeDefault
string""

identityActivityCenter.parquetBuffer.medium the emptyDir medium. Leave empty to use node disk; Memory would keep the pages in RAM and defeat the purpose.

identityActivityCenter.parquetBuffer.existingVolume​

TypeDefault
string""

identityActivityCenter.parquetBuffer.existingVolume the name of a volume declared in volumes to mount at mountPath instead of the chart creating an emptyDir.

service​

TypeDefault
object{"grpcPort":443,"metricsPort":3000,"type":"ClusterIP"}

service contains options for the TAG Kubernetes service that the Chart exposes.

service.type​

TypeDefault
string"ClusterIP"

service.type the type of Kubernetes service to create. The LoadBalancer type is only supported when using a Layer 4 (TCP) or lower load balancer. TAG expects to terminate its own TLS, as it uses mTLS to authenticate its clients.

service.grpcPort​

TypeDefault
int443

service.grpcPort the port that the gRPC service is exposed on. This is the port that Teleport Auth Service and Proxy Service will need to connect to TAG on.

service.metricsPort​

TypeDefault
int3000

service.metricsPort the port that the metrics service is exposed on. Requires metrics.enabled to be true.

replicaCount​

TypeDefault
int2

replicaCount the number of TAG pods that should be deployed.

metrics​

TypeDefault
object{"enabled":false,"pprof":false}

metrics contains options for the TAG metrics service.

metrics.enabled​

TypeDefault
boolfalse

metrics.enabled enables the metrics service.

metrics.pprof​

TypeDefault
boolfalse

metrics.pprof Enables pprof metrics endpoints

log​

log contains logging settings for TAG.

log.level​

TypeDefault
string"INFO"

log.level the minimum severity of log messages to output. Supported values are DEBUG, INFO, WARN and ERROR.

image​

TypeDefault
object{"pullPolicy":"IfNotPresent","repository":"public.ecr.aws/gravitational/access-graph","tag":""}

image.tag​

TypeDefault
string""

image.tag sets the version of the Teleport Access Graph image used. By default, this is the same as the Helm Chart version, i.e. TAG will be upgraded when you upgrade the Helm chart.

podAnnotations​

TypeDefault
object{}

podAnnotations contains the Kubernetes annotations put on the Pod resources created by the chart.

podLabels​

TypeDefault
object{}

podLabels contains the Kubernetes labels put on the Pod resources created by the chart.

podSecurityContext​

TypeDefault
object{"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532}

podSecurityContext sets the pod security context for any pods created by the chart. See the Kubernetes documentation for more details.

The default value supports running under the restricted Pod Security Standard.

securityContext​

TypeDefault
object{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"seccompProfile":{"type":"RuntimeDefault"}}

securityContext sets the container security context for any pods created by the chart. See the Kubernetes documentation for more details.

The default value supports running under the restricted Pod Security Standard.

extraEnv​

TypeDefault
list[]

extraEnv allows specifying additional environment variables.

extraEnvFrom​

TypeDefault
list[]

extraEnvFrom allows bulk-loading environment variables from Kubernetes Secrets or ConfigMaps using the envFrom field. Each entry is passed through as-is, so secretRef, configMapRef, and optional prefix fields are all supported.

Example: extraEnvFrom:

  • secretRef: name: my-app-secrets
  • configMapRef: name: my-app-config optional: true

volumes​

TypeDefault
array[]

volumes allows you to define additional volumes on the output Deployment definition.

volumeMounts​

TypeDefault
array[]

volumeMounts allows you to define additional volumeMounts on the output Deployment definition.

nodeSelector​

TypeDefault
object{}

nodeSelector sets the node selector for any pods created by the chart. See the Kubernetes documentation for more details.

tolerations​

TypeDefault
list[]

tolerations sets the tolerations for any pods created by the chart. See the Kubernetes documentation for more details.

affinity​

TypeDefault
object{}

affinity sets the affinities for any pods created by the chart. See the Kubernetes documentation for more details.

labels​

TypeDefault
object{}

labels contains additional labels to add to the Pod Disruption Budget.