Skip to main content

Manual Kubernetes Deployment

Manual deployment installs each AI/Run CodeMie component individually using Helm charts. All three cloud providers are supported: AWS (EKS), GCP (GKE), and Azure (AKS).

When to Use Manual Deployment

Use manual deployment when you need fine-grained control over individual component configuration, want to selectively deploy certain components, or are troubleshooting specific services.

For automated installation, see Automated Deployment instead.

Component Installation Order​

Components must be installed in the following order to satisfy dependencies:

StepComponentPurpose
1Kubernetes ComponentsStorage Class + Nginx Ingress Controller
2Data LayerElasticsearch + PostgreSQL connection
3Security and IdentityKeycloak Operator, Keycloak, OAuth2 Proxy
4Plugin EngineNATS, NATS Auth Callout
5Core ComponentsCodeMie API, UI, MCP Connect, Mermaid
6ObservabilityFluent Bit, Kibana, Kibana Dashboards
Respect Installation Order

Installing components out of order will cause deployment failures. Always follow the numbered sequence to ensure dependencies are satisfied.

Prerequisites​

Verification Checklist​

  • Infrastructure Deployed: Completed Infrastructure Deployment phase
  • Cluster Access: kubectl configured for EKS cluster (see Cluster Access)
  • Container Registry: gcp-artifact-registry pull secret exists (see Container Registry Access)
  • Helm Installed: Helm 3.16.0+
  • Repository Cloned: codemie-helm-charts available locally
  • Deployment Outputs: Have deployment_outputs.env from infrastructure deployment
  • Tools: kubectl, helm, gcloud CLI, aws CLI

Getting Started​

Step 1: Clone Repository​

git clone git@gitbud.epam.com:epm-cdme/codemie-helm-charts.git
cd codemie-helm-charts

Step 2: Configure Cloud-Specific Values​

source deployment_outputs.env

sed -i "s/%%DOMAIN%%/${CODEMIE_DOMAIN_NAME}/g" codemie-api/values-aws.yaml
sed -i "s/%%AWS_DEFAULT_REGION%%/${AWS_DEFAULT_REGION}/g" codemie-api/values-aws.yaml
sed -i "s|%%EKS_AWS_ROLE_ARN%%|${EKS_AWS_ROLE_ARN}|g" codemie-api/values-aws.yaml
sed -i "s/%%AWS_KMS_KEY_ID%%/${AWS_KMS_KEY_ID}/g" codemie-api/values-aws.yaml
sed -i "s/%%AWS_S3_BUCKET_NAME%%/${AWS_S3_BUCKET_NAME}/g" codemie-api/values-aws.yaml
sed -i "s/%%AWS_S3_REGION%%/${AWS_S3_REGION}/g" codemie-api/values-aws.yaml

CODEMIE_DOMAIN_NAME="airun.example.com"
find . -name "values-aws.yaml" -exec sed -i "s/%%DOMAIN%%/${CODEMIE_DOMAIN_NAME}/g" {} \;

Step 3: Authenticate to Container Registry​

export GOOGLE_APPLICATION_CREDENTIALS=key.json

gcloud auth application-default print-access-token | \
helm registry login -u oauth2accesstoken --password-stdin europe-west3-docker.pkg.dev

Step 4: Get CodeMie Version​

bash get-codemie-latest-release-version.sh -c key.json
# Note the version (e.g., 2.26.0) — you will use it in each helm install command

Begin Installation​

Start the installation process with Kubernetes Components and follow each guide in numbered order.