Skip to main content

Deploy CAIPE on EKS

This guide shows how to deploy the ai-platform-engineering helm chart to your EKS cluster using ArgoCD.

Prerequisites: Ensure you have completed the previous sections:

  • ArgoCD is deployed on your cluster
  • Agent secrets are configured

Step 1: Create ArgoCD Application

Copy the ArgoCD application template:

cp deploy/eks/argocd-application.yaml.example argocd-application.yaml

Step 2: Configure Your Deployment

Create a new branch to customize your deployment configuration. You can see an example at example-argocd-deploy-values branch.

Enable Desired Agents

Edit helm/values.yaml to enable the agents you want to deploy:

# Agent configurations
agent-argocd:
- enabled: false
+ enabled: true
nameOverride: "agent-argocd"
image:
repository: "ghcr.io/cnoe-io/agent-argocd"

agent-pagerduty:
- enabled: false
+ enabled: true
nameOverride: "agent-pagerduty"
image:
repository: "ghcr.io/cnoe-io/agent-pagerduty"

agent-github:
enabled: false # Only enable what you need

# ... configure other agents as needed

Configure Agent Communication Transport

note

This section is optional and the chart is configured to use peer-to-peer communication by default. Skip if you do not want to use SLIM.

Choose between peer-to-peer (default) or centralized communication via AGNTCY Secure Low-Latency Interactive Messaging (SLIM). This configuration affects how agents communicate with each other during multi-agent workflows.

Option 1: Peer-to-Peer Communication (Default)

Direct agent-to-agent communication using the a2a (agent-to-agent) protocol:

# Default configuration in helm/values.yaml
global:
slim:
enabled: false # Peer-to-peer is default

ai-platform-engineering:
multiAgentConfig:
protocol: "a2a"

Characteristics:

  • Latency: Lower latency for direct agent interactions
  • Architecture: Distributed, no central coordination point
  • Network: Requires mesh connectivity between agents

Option 2: Centralized Communication via Agntcy Slim

Centralized communication through the agntcy slim transport layer:

# Enable slim transport in helm/values.yaml
global:
slim:
enabled: true
endpoint: "http://ai-platform-engineering-slim:46357"
transport: "slim"

ai-platform-engineering:
multiAgentConfig:
protocol: "a2a" # Still uses a2a but routes through slim

Characteristics:

  • Coordination: Centralized message routing and coordination
  • Network: Simplified network topology (hub-and-spoke)
  • Overhead: Additional hop introduces minimal latency

Step 3: Configure Secret Management

Choose one of the following approaches based on how you've set up your secrets in the Configure Agent Secrets section.

Option A: Using Manual Secrets

If you created secrets manually in the previous step, edit helm/values-existing-secrets.yaml to reference your secret names:

# Secret for your global LLM provider
global:
secrets:
- secretName: ""
+ secretName: "llm-secret"

# Agent specific secrets
agent-argocd:
secrets:
- secretName: ""
+ secretName: "argocd-secret"

agent-pagerduty:
secrets:
- secretName: ""
+ secretName: "pagerduty-secret"

# ... configure other agent secrets as needed

Option B: Using External Secrets

If you're using external secret management (e.g., AWS Secrets Manager, HashiCorp Vault):

cp helm/values-external-secrets.yaml.example helm/values-external-secrets.yaml

Then edit the file to configure your external secret management solution with the appropriate providers and secret references.

Step 3: Update ArgoCD Application

Edit your argocd-application.yaml file:

Set Target Branch

    - repoURL: https://github.com/cnoe-io/ai-platform-engineering.git
targetRevision: <YOUR BRANCH NAME> # Replace with your branch name
ref: values

Set Chart Version

Find the current chart version in helm/Chart.yaml and update:

  sources:
# Main chart from GHCR
- chart: ai-platform-engineering
repoURL: ghcr.io/cnoe-io/helm-charts
targetRevision: <CHART VERSION> # Replace with your chart version

Step 4: Commit and Push Changes

git add .
git commit -m "Configure ai-platform-engineering deployment"
git push origin your-branch-name

Step 5: Deploy with ArgoCD

Apply the ArgoCD application:

kubectl apply -f argocd-application.yaml

Step 6: Verify Deployment

Check the ArgoCD UI or use kubectl to verify your deployment:

# Check ArgoCD applications
kubectl get applications -n argocd

# Check deployed pods
kubectl get pods -n ai-platform-engineering

# Check application sync status
kubectl describe application ai-platform-engineering -n argocd

Troubleshooting

  • Application not syncing: Check that your branch name and chart version are correct in the ArgoCD application
  • Pods not starting: Verify that all required secrets are created and contain valid values
  • Agent connection issues: Check the logs of individual agent pods for authentication or configuration errors