2025-12-22 11:41:59 +00:00
2025-12-19 11:51:56 +00:00
2025-12-19 11:51:56 +00:00
2025-12-19 07:26:52 +00:00

Flow Helm Chart

A Helm chart for deploying the Flow workflow automation platform to Kubernetes.

Overview

Flow is a distributed workflow automation platform consisting of:

  • Core Services: Workflow Engine, Activity Registry, Definition Store, Workflow Logging, Connection Store, Tenant Registry
  • Frontend: Blazor WebAssembly web application
  • Activity Services: 23+ activity implementations for various integrations (HTTP, SQL, Azure, AWS, etc.)
  • Infrastructure: RabbitMQ for messaging, PostgreSQL for persistence, Redis for caching (optional)

Prerequisites

  • Kubernetes 1.25+
  • Helm 3.8+
  • PV provisioner (if using built-in PostgreSQL/RabbitMQ)

Quick Start

Add the Helm Repository

# Add the Entit Helm repository
helm repo add entit https://git.kn.entit.eu/EntitAB/Helm-Charts/raw/branch/main

# Update repository cache
helm repo update

# Search for available versions
helm search repo entit/flow --versions

Install the Chart

# Install with default values
helm install flow entit/flow \
  --namespace flow \
  --create-namespace

# Install with custom values file
helm install flow entit/flow \
  --namespace flow \
  --create-namespace \
  -f values.yaml

Using Example Values Files

Example values files are available in the examples/ directory:

# Download example values for production
curl -O https://git.kn.entit.eu/EntitAB/Helm-Charts/raw/branch/main/examples/values-prod.yaml

# Download example values for development
curl -O https://git.kn.entit.eu/EntitAB/Helm-Charts/raw/branch/main/examples/values-dev.yaml

# Install with production values
helm install flow entit/flow \
  --namespace flow \
  --create-namespace \
  -f values-prod.yaml \
  --set global.azureAd.tenantId=YOUR_TENANT_ID \
  --set global.azureAd.clientId=YOUR_CLIENT_ID

Configuration

Global Configuration

Parameter Description Default
global.imageRegistry Container registry for all images cr.kn.entit.eu
global.imagePullSecrets Image pull secrets []
global.azureAd.enabled Enable Azure AD authentication true
global.azureAd.tenantId Azure AD tenant ID ""
global.azureAd.clientId Azure AD application client ID ""
global.database.provider Database provider (Postgres/SqlServer) Postgres

Service URLs

All internal services communicate using full Kubernetes FQDN format:

http://<service-name>.<namespace>.svc.cluster.local:<port>

This ensures reliable cross-namespace communication when services run in separate pods.

Core Services

Each core service supports the following configuration:

Parameter Description Default
<service>.enabled Enable the service true
<service>.replicaCount Number of replicas 1
<service>.image.repository Image repository varies
<service>.image.tag Image tag "" (uses appVersion)
<service>.resources CPU/Memory resources varies
<service>.autoscaling.enabled Enable HPA false
<service>.ingress.enabled Enable ingress false

Activity Services

Activity services can be enabled/disabled individually:

httpRequestActivity:
  enabled: true
  replicaCount: 2

sqlActivity:
  enabled: true

# Disable activities not needed
awsS3Activity:
  enabled: false

External Managed Services

For production deployments, use external managed services instead of the built-in infrastructure.

External PostgreSQL

Supports Azure Database for PostgreSQL, AWS RDS, Google Cloud SQL, and other managed PostgreSQL services.

global:
  database:
    provider: "Postgres"
    postgres:
      external: true
      host: "myserver.postgres.database.azure.com"
      port: 5432
      database: "flow_prod"
      username: "flow@myserver"  # Azure format: user@server
      existingSecret: "flow-db-secret"
      existingSecretKey: "postgres-password"
      sslMode: "require"
      pooling:
        minSize: 10
        maxSize: 200

postgresql:
  enabled: false  # Disable built-in PostgreSQL

External RabbitMQ

Supports CloudAMQP, Amazon MQ, and self-hosted clusters.

global:
  rabbitmq:
    external: true
    host: "xyz.rmq.cloudamqp.com"
    port: 5672
    username: "flow"
    existingSecret: "flow-rabbitmq-secret"
    existingSecretKey: "rabbitmq-password"
    vhost: "/"
    tls:
      enabled: true

rabbitmq:
  enabled: false  # Disable built-in RabbitMQ

External Redis

Supports Azure Cache for Redis, Amazon ElastiCache, Redis Cloud, and self-hosted Redis.

Standalone Mode

global:
  redis:
    enabled: true
    external: true
    mode: "standalone"
    host: "myredis.redis.cache.windows.net"
    port: 6380
    existingSecret: "flow-redis-secret"
    existingSecretKey: "redis-password"
    tls:
      enabled: true

redis:
  enabled: false  # Disable built-in Redis
Description
public helm chart repo from Entit AB
Readme MIT 1.7 MiB