Skip to content

LogicFlowRuntime Controller #5

Description

@ricardozanini

Goal

Implement controller to manage Quarkus Flow Runner deployments

Phase: 1 (Months 1-2)

Scope

1. Core Reconciliation

  • Watch LogicFlowRuntime resources
  • Create/update Deployment (Quarkus Flow Runner pods)
  • Create/update Service (HTTP API endpoint)
  • Create/update ConfigMap (workflow YAML definitions)
  • Handle owner references and garbage collection

2. Durable Workflow Support

  • Create Kubernetes Leases (one per replica)
  • Create ServiceAccount + Role + RoleBinding for lease management
  • Inject lease pool configuration into pods
  • Set deployment strategy based on replicas (replicas=1 → Recreate, replicas>1 → RollingUpdate)

3. Status Management

  • Update status with deployment readiness
  • Track managed LogicFlowDefinitions
  • Report lease status
  • Set conditions (Ready, DeploymentReady, LeasesReady)

4. Auto-Creation Logic

  • Support auto-creation from LogicFlowService
  • Apply platform defaults from LogicPlatform

Deliverables

  • LogicFlowRuntime controller implementation
  • Deployment generation logic
  • Service generation logic
  • ConfigMap generation logic
  • Lease creation logic
  • RBAC resource generation
  • Status reconciliation
  • Unit tests for controller
  • Integration tests (envtest)

Success Criteria

  • Create LogicFlowRuntime → Deployment + Service + ConfigMap created
  • Leases created for durable coordination
  • Status reflects deployment readiness
  • Delete LogicFlowRuntime → All resources cleaned up

Dependencies: EPIC 1 (API types defined)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions