Asya🎭 provides Helm charts for deploying framework components.

Available Charts#

asya-gateway#

Deploys MCP HTTP gateway.

Location: deploy/helm-charts/asya-gateway/

Installation:

helm install asya-gateway deploy/helm-charts/asya-gateway/ -f values.yaml

Key values:

config:
  sqsRegion: <your-aws-region>
  postgresHost: postgres.default.svc.cluster.local
  postgresDatabase: asya_gateway
  postgresUsername: postgres
  postgresPasswordSecretRef:
    name: postgres-secret
    key: password

routes:
  tools:
  - name: text-processor
    description: Process text
    parameters:
      text:
        type: string
        required: true
    route: [preprocess, infer, postprocess]

serviceAccount:
  create: true
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/gateway-role

service:
  type: LoadBalancer
  port: 80

asya-crew#

Deploys crew actors (x-sink, x-sump) as AsyncActor CRDs.

Location: deploy/helm-charts/asya-crew/

Installation:

helm install asya-crew deploy/helm-charts/asya-crew/ --namespace asya-e2e -f values.yaml

Key values:

x-sink:
  enabled: true
  scaling:
    enabled: true
    minReplicaCount: 1
    maxReplicaCount: 10
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

x-sump:
  enabled: true
  scaling:
    enabled: true
    minReplicaCount: 1
    maxReplicaCount: 10
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

asya-crossplane#

Deploys Crossplane XRDs and Compositions for AsyncActor management.

Location: deploy/helm-charts/asya-crossplane/

Installation:

helm install asya-crossplane deploy/helm-charts/asya-crossplane/ -n crossplane-system

Key values:

providers:
  aws:
    sqsVersion: "v1.19.0"
  kubernetes:
    version: "v0.17.0"

awsProviderConfig:
  name: default
  credentialsSource: Secret
  secretRef:
    namespace: crossplane-system
    name: aws-creds
    key: credentials

awsRegion: <your-aws-region>
actorNamespace: asya

Minimal example:

apiVersion: asya.sh/v1alpha1
kind: AsyncActor
metadata:
  name: my-actor
spec:
  actor: my-actor
  image: my-handler:latest
  handler: my_module.process

Common Patterns#

AWS with SQS + S3#

Crossplane (crossplane-values.yaml):

awsRegion: <your-aws-region>
awsProviderConfig:
  name: default
  credentialsSource: Secret
  secretRef:
    namespace: crossplane-system
    name: aws-creds
    key: credentials

Crew (crew-values.yaml):

x-sink:
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

x-sump:
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

Actors:

apiVersion: asya.sh/v1alpha1
kind: AsyncActor
spec:
  actor: my-actor
  image: my-actor:v1
  handler: handler.process

Local with RabbitMQ + MinIO#

Crossplane (crossplane-values.yaml):

awsRegion: <your-aws-region>
actorNamespace: asya
# Use LocalStack or RabbitMQ for local development

Crew (crew-values.yaml):

x-sink:
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

x-sump:
  env:
    ASYA_PERSISTENCE_MOUNT: /state/checkpoints

Actors:

apiVersion: asya.sh/v1alpha1
kind: AsyncActor
spec:
  actor: my-actor
  image: my-actor:v1
  handler: handler.process

Upgrading Charts#

# Upgrade crossplane
helm upgrade asya-crossplane deploy/helm-charts/asya-crossplane/ -n crossplane-system -f values.yaml

# Upgrade gateway
helm upgrade asya-gateway deploy/helm-charts/asya-gateway/ -f values.yaml

# Upgrade crew
helm upgrade asya-crew deploy/helm-charts/asya-crew/ -f values.yaml

Uninstalling#

# Uninstall components
helm uninstall asya-gateway
helm uninstall asya-crew
helm uninstall asya-crossplane -n crossplane-system

# Remove XRDs (will delete all AsyncActors)
kubectl delete xrd asyncactors.asya.sh