Skip to content

Provisioning and reconciliation

Target

This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.

The former catalog split provisioning across IaCProvisioningService, GitOpsSyncService, DeploymentManifestService, RuntimeEnvironmentService, DeploymentService and RuntimeDriftDetectionService. The ownership map assigns all of them to one owner (BC-25): desired deployment specification → plan/apply receipts → observed state → drift.

Responsibilities

Concern Target behaviour
Desired state Environment and deployment specifications declared in Git; the Factory records the specification version it acted on
Plan and apply IaC program runs (Pulumi, per ADR-0004) produce receipts: inputs, program version, outputs, duration, result; applies against production are approval-gated
Observed state Inventory of what runs where (runtime service inventory), configuration and secret bindings by reference
Drift Detection between desired and observed; reconciliation proposals are reviewable changes, not automatic writes
Scope Factory environments and generated-product environments are separate ownerships; a generated product's runtime is operated by its owner (Generated SaaS pack)

Evidence for ADR-0004 (verified 2026-10-09)

  • Zero .bicep files were found across the ConnectSoft repositories (depth 4). Thirteen Pulumi.yaml files exist.
  • Template InfrastructureModel projects reference Pulumi.AzureNative (BaseTemplate, AgentTemplate, ApiGatewayTemplate inspected).
  • DerechHaLev's AuthServer and Identity services carry InfrastructureModel Pulumi programs with Pulumi.yaml, Pulumi.dev.yaml and Pulumi.aws-dev.yaml stacks.
  • Template Deployment/ folders contain docker-compose and kubernetes manifests, not IaC programs.

Conclusion: ADR-0004 is retained; the Factory home page and the Execution plane may cite Pulumi as the verified IaC of the template estate. CompanyDocumentation's "Bicep" wording is drift for its owner (see the drift register).

Current implementation

No Factory provisioning service, receipts or drift detection exist. Infrastructure is provisioned by each repository's own Pulumi program through its pipeline.