Skip to main content

Deployment

API Group: environments.blanketops.dev

Version: v1alpha1

Scope: Namespaced


Description

Deployment defines the governed runtime projection of one or more ServiceUnits.

It binds resolved workload contracts to a runtime substrate and reconciliation strategy.

  • Deployment does not build artifacts.
  • Deployment does not expose traffic.
  • Deployment governs runtime state projection.

Spec

spec

FieldTypeRequiredDescription
contractobjectYesRuntime projection contract

spec.contract

FieldTypeRequiredDescription
serviceUnitsstring[]YesNames of ServiceUnit resources to deploy
runtimestringYesRuntime substrate identifier
imageAutomationbooleanNoWhether image updates are automatically reconciled
reconciliationStrategystringYes, if manifestsRepo is setStrategy used to reconcile manifests: kustomize or helm. Must be absent if manifestsRepo is not set — defaults to imperative reconciliation
manifestsRepoobjectNoGit repository containing runtime manifests

spec.contract.manifestsRepo

FieldTypeRequiredDescription
urlstringYesGit repository URL containing manifests
refstringNoGit branch, tag, or commit reference
cloneSecretstringNoSecret used for Git authentication
strategystringYesReconciliation strategy (e.g. kustomization)
pathstringYesPath within repository to manifests

Status

FieldTypeDescription
phasestringCurrent lifecycle phase
messagestringHuman-readable status detail
runtimestringRuntime substrate this Deployment was projected onto
strategystringRollout strategy actually used: Rolling, BlueGreen, or Canary
serviceUnitStatuses[]ServiceUnitDeploymentStatusPer-ServiceUnit deployment status
lastUpdatedAtstringTimestamp when status was last updated

status.serviceUnitStatuses[]

FieldTypeDescription
namestringName of the ServiceUnit
phasestringDeployment phase for this ServiceUnit
imagestringImage reference currently deployed
runtimestringRuntime substrate this ServiceUnit was projected onto
messagestringHuman-readable status detail
errorstringError detail, if this ServiceUnit failed to deploy

status.phase Values

ValueMeaning
PendingWaiting for service units or GitOps sources to be ready
DeployingWorkloads are being rolled out
ReadyAll service units are deployed and healthy
FailedOne or more service units failed to deploy

Example

apiVersion: environments.blanketops.dev/v1alpha1
kind: Deployment
metadata:
name: for-kaniko-app
namespace: dev
spec:
contract:
serviceUnits:
- for-kaniko-app-api
runtime: kubernetes.io/container-runtime
imageAutomation: false
reconciliationStrategy: kustomize
manifestsRepo:
url: git@github.com:example-org/for-kaniko-app-deployment.git
cloneSecret: git-ssh-credentials
strategy: kustomization
path: ./bases/kustomization.yaml

Invariants

  • All referenced ServiceUnits must exist.
  • runtime must be supported by the controller.
  • manifestsRepo.url must be reachable.
  • path must resolve to valid manifests.
  • imageAutomation must not override ServiceUnit contract constraints.
  • Deployment does not modify Build resources.