Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt

Use this file to discover all available pages before exploring further.

em-service Chart

em-service is the base Helm chart for deploying any containerised CRAFT service to a Kubernetes cluster. Every CRAFT solution chart wraps it as a subchart — one instance per component, differentiated by alias.

Features

  • Deployment with configurable replicas, update strategy and pod annotations
  • Three-layer environment variable model with deduplication (see below)
  • Secret injection via envFrom or individual envVars entries with valueFrom
  • Ingress with flexible routing (standard Kubernetes Ingress and Gateway API)
  • Horizontal Pod Autoscaler
  • Liveness, readiness and startup probes
  • PersistentVolumeClaim support
  • Init containers and sidecars
  • RuntimeClass for specialised runtimes

Installation

helm install my-service oci://ghcr.io/emergenceai/em-charts/em-service \
  --version 0.0.16 \
  --namespace my-namespace \
  --set image.repository=ghcr.io/emergenceai/my-service \
  --set image.tag=v1.0.0

Environment variable model

Three layers, applied in order, with deduplication:
LayerFormatPurpose
envmap[string]stringPlain-text variables. Always wins over envVars/extraEnvVars with the same name
envVarsKubernetes env object listFull env spec — use valueFrom for secrets, ConfigMaps, field refs
extraEnvVarsKubernetes env object listAdditional variables appended after envVars
Deduplication rule: if a key in env matches the name of an envVars or extraEnvVars entry, the list entry is suppressed. This allows parent charts to define secret-backed defaults while letting operators override with plain values without creating duplicate env entries.
# Typical pattern: secret default, plain override possible
env:
  LOG_LEVEL: "INFO"          # plain override

envVars:
  - name: DATABASE_URL
    valueFrom:
      secretKeyRef:
        name: my-service-secrets
        key: database-url
  - name: LOG_LEVEL          # suppressed — 'env' wins
    valueFrom:
      secretKeyRef:
        name: my-service-secrets
        key: log-level

Key values

ValueDefaultDescription
replicaCount1Number of replicas
image.repository""Container image repository
image.tag""Image tag
image.pullPolicyIfNotPresentPull policy
imagePullSecrets[]Image pull secret names
env{}Plain-text environment variables
envVars[]Kubernetes env object list (supports valueFrom)
service.typeClusterIPKubernetes service type
service.port8000Service port
ingress.enabledfalseEnable Kubernetes Ingress
resources{}CPU/memory requests and limits
autoscaling.enabledfalseEnable HPA
The full values reference is in charts/em-service/values.yaml in the em-charts repository.

Using as a subchart

For the how-to flavour (multi-component packaging, env overlays, build-and-publish, GitOps), see Solution Developer Guide › Package and Deploy. This page is the values reference; that page is the workflow.
Service charts declare em-service as a subchart dependency in Chart.yaml:
# charts/my-service/Chart.yaml
apiVersion: v2
name: my-service
version: 1.0.0
dependencies:
  - name: em-service
    alias: api
    version: 0.0.16
    repository: oci://ghcr.io/emergenceai/em-charts
  - name: em-service      # second component
    alias: worker
    version: 0.0.16
    repository: oci://ghcr.io/emergenceai/em-charts
Configure each instance under its alias in values.yaml:
api:
  image:
    repository: ghcr.io/emergenceai/my-service-api
    tag: v1.0.0
  env:
    PORT: "8080"

worker:
  image:
    repository: ghcr.io/emergenceai/my-service-worker
    tag: v1.0.0

em-core Chart

Core platform chart using em-service for platform components.

em-data-insights Chart

Data insights solution chart extending em-core.

Helm Configuration

em-runtime chart configuration and deployment modes.