Running Axiom on Kubernetes
To get Axiom running on Kubernetes use our Helm chart.
The following documentation assumes some knowledge of working with Kubernetes and Helm charts.
If you would like further help or installation in a different environment, please contact support.
Add the Axiom Helm Repository
$ helm repo add axiom https://axiomhq.github.io/axiom-helm-charts$ helm repo update
Create values.yaml
The latest version of values.yaml
can be found in the github repository.
# Values file for axiom.# This is a YAML-formatted file.# License token (as provided by Axiom support)licenseToken: "" # if not supplied, you'll end up with the free plan# [required] Postgres endpoint, should be in the following format:# "postgresql://host:port/dbname?user=[username]&password=[pwd]&sslmode=require"# the postgres user provided must be able to create new tables in the DBpostgresUrl: ""# Redis URL, should be in the following format:# "redis://:<password (optional)>@<address>/<db (optional)>"# Examples:# redis://redis.example.org:6379# redis://:qwerty@localhost:6379/1redisUrl: ""# If you want, you can set a different Redis instance as cache registry.# If you leave this unset, it will use the above redisUrl as cache registry.cacheRegistryUrl: ""# Lambda query runner URL, you can set to the query fn ALB URL# Its usage overrides axiomdb-query-fn deploymentlambdaUrl: ""# [required] URL specifying how to send emails:# "sendgrid://apikey?from=noreply@domain.org&fromName=name"# "smtp://username:password@address:port?from=origin-email&fromName=Axiom&insecure=true"emailUrl: ""# URL of this instance, email notifications will use this to link back# "https://my-axiom.company.org"externalUrl: ""# Definition of storagestorage:primary:# [required] Set to a URI based on the cloud you're using, we support azure / aws / do / gcp# Azure: "blob://container"# AWS: "s3://bucketName"# DigitalOcean: "spaces://bucketName"# GCP: "gcs://bucketName"# The URI can optionally be suffixed by a path prefix (for example "s3://bucketName/path/prefix")#uri: "s3://axiom"# AWS-specific properties#awsRegion: 'us-east-1'#awsAccessKeyID: ''#awsSecretAccessKey: ''# Azure-specific properties#azureStorageAccount: ''#azureStorageAccessKey: ''# DigitalOcean-specific properties#spacesRegion: 'nyc3'#spacesKey: ''#spacesSecret: ''# GCP-specific properties#googleApplicationCredentials: '{# "type": "service_account",# "project_id": "...",#}'fallback:# Fallback storage is used when primary is not reachable# use the same format as primary storage including credentialsuri: ""ingress:enabled: falseannotations:{}# kubernetes.io/ingress.class: nginx# kubernetes.io/tls-acme: "true"hosts:- host: my-axiom.localpaths: ["/*"]tls: []# - secretName: my-axiom-tls# hosts:# - my-axiom.local# Settings for axiom-corecore:replicas: 3resources:requests:cpu: 250mmemory: 256Mi# limits:# cpu: 500m# memory: 1GipodAnnotations: {}nodeSelector: {}tolerations: []affinity: {}extraEnvs: [] # [{ name: AXIOM_XYZ, value: "xyz" }, ... ]# Settings for axiom-dbdb:replicas: 3resources:requests:cpu: 750mmemory: 2Gi# limits:# cpu: 2000m# memory: 4GipodAnnotations: {}nodeSelector: {}tolerations: []affinity: {}extraEnvs: [] # [{ name: AXIOM_XYZ, value: "xyz" }, ... ]# Settings for axiomdb-query-fnqueryFn:replicas: 4resources:requests:cpu: 500mmemory: 256Mi# limits:# cpu: 2000m# memory: 1GipodAnnotations: {}nodeSelector: {}tolerations: []affinity: {}extraEnvs: [] # [{ name: AXIOM_XYZ, value: "xyz" }, ... ]
Configuring Queries on AWS
- If you are deploying Axiom on AWS, we recommend running queries on Lambda, check out our guide on how to configure and run Queries on AWS Lambda
Install Axiom Using Helm
Once your values.yaml
has been filled out, you can finally install Axiom in your Kubernetes cluster using the following commands:
helm upgrade -i -f values.yaml my-axiom axiom/axiom
Support
If you are having trouble runnnig Axiom, please get in touch via the Slack community or email, and we'll help you get going as fast as possible!