Skip to main content

Helm Chart

The Cartesian Outpost can be deployed on Kubernetes using our official Helm chart. This method is recommended for Kubernetes environments and provides advanced deployment options, including autoscaling and custom resource management.

Chart Repository

The Helm chart is available on Amazon's Elastic Container Registry:

public.ecr.aws/cartesian/outpost

You can browse available versions at the AWS ECR Gallery.

Prerequisites

  • Kubernetes 1.32+ (might work on earlier versions)
  • Helm 3.x
  • A Redis or Valkey cache instance (required for multi-instance deployments)

Installing the Chart

  1. Add the Cartesian Helm repository:
helm repo add cartesian public.ecr.aws/cartesian/outpost
helm repo update
  1. Install the chart:
helm install my-outpost cartesian/outpost \
--set config.outpostProjectId=your-project-id \
--set config.outpostAccessKey.value=your-access-key

Configuration

The following table lists the configurable parameters of the Outpost chart and their default values.

Core Configuration

ParameterDescriptionDefault
replicaCountNumber of Outpost replicas1
image.repositoryOutpost container imagepublic.ecr.aws/cartesian/outpost-backend
image.pullPolicyImage pull policyIfNotPresent
image.tagImage tagThe current chart appVersion

Outpost Configuration

ParameterDescriptionDefault
config.outpostProjectIdProject ID (provided by Cartesian)N/A
config.outpostAccessKey.valueOutpost access keyN/A
config.outpostAccessKey.createSecretCreate a Kubernetes secret for the access keyfalse
config.outpostAccessKey.secretNameName of existing secret for access keyN/A
config.enableErrorMonitoringEnable error monitoring telemetry to be sent to Cartesianfalse
config.enableTelemetryEnable telemetry metrics to be sent to Cartesianfalse

Cache Configuration

ParameterDescriptionDefault
config.cache.enabledEnable Redis/Valkey cachefalse
config.cache.hostCache hostN/A
config.cache.portCache portN/A
config.cache.password.valueCache passwordN/A
config.cache.password.createSecretCreate a Kubernetes secret for cache passwordfalse
config.cache.password.secretNameName of existing secret for cache passwordN/A

AWS Bedrock Configuration

ParameterDescriptionDefault
config.bedrock.awsRegionAWS Regionus-east-1
config.bedrock.credentials.createSecretCreate secrets for the credentialsfalse
config.bedrock.credentials.values.awsAccessKeyIdAWS Access Key IDN/A
config.bedrock.credentials.values.awsSecretAccessKeyAWS Secret Access KeyN/A

Networking

ParameterDescriptionDefault
service.typeKubernetes service typeClusterIP
service.portService port3001
ingress.enabledEnable ingressfalse
ingress.classNameIngress class nameN/A

Scaling and Resources

ParameterDescriptionDefault
autoscaling.enabledEnable autoscalingfalse
autoscaling.minReplicasMinimum replicas1
autoscaling.maxReplicasMaximum replicas100
autoscaling.targetCPUUtilizationPercentageTarget CPU utilization80

Example Configurations

Basic Installation

# values.yaml
config:
outpostProjectId: 'your-project-id'
outpostAccessKey:
value: 'your-access-key'

Production Setup with Cache

# values.yaml
replicaCount: 2

config:
outpostProjectId: 'your-project-id'
outpostAccessKey:
createSecret: true
value: 'your-access-key'
cache:
enabled: true
host: 'redis.default.svc.cluster.local'
port: '6379'
password:
createSecret: true
value: 'your-redis-password'

autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 5
targetCPUUtilizationPercentage: 80

ingress:
enabled: true
className: nginx
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
hosts:
- host: outpost.your-domain.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: outpost-tls
hosts:
- outpost.your-domain.com

Health Monitoring

The chart includes pre-configured liveness and readiness probes that check the /health endpoint. The default configuration is:

livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5

readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5

Upgrading

To upgrade an existing installation:

helm repo update
helm upgrade my-outpost cartesian/outpost -f values.yaml

Uninstalling

To uninstall/delete the deployment:

helm uninstall my-outpost

Notes

  1. For production deployments:

    • Enable autoscaling for high availability
    • Configure appropriate resource requests and limits
    • Use secrets for sensitive information
    • Enable and configure ingress with TLS
    • Set up proper monitoring and alerting
  2. Security considerations:

    • Store sensitive values in Kubernetes secrets
    • Use TLS for ingress
    • Configure network policies to restrict access
    • Regular updates and security patches