Skip to main content

Package

API Group: environments.blanketops.dev

Version: v1alpha1

Scope: Namespaced


Description

Package defines a versioned, distributable configuration unit for a delivery workload.

It encapsulates metadata, ownership, repository source, and environment state projection rules.

Package governs configuration distribution, not artifact creation.


Spec

spec

FieldTypeRequiredDescription
contractobjectYesPackage definition contract

spec.contract

FieldTypeRequiredDescription
enabledbooleanYesWhether the package is active
namestringYesCanonical package identity
versionstringYesLogical version identifier
descriptionstringNoHuman-readable description
maintainers[]objectNoList of maintainers
repositoryobjectYesSource repository for package configuration
diffEnabledbooleanNoEnables structured diff behavior
stateRepositoryobjectYesEnvironment state repository definition

spec.contract.maintainers[]

FieldTypeRequiredDescription
namestringYesMaintainer name
emailstringYesMaintainer email

spec.contract.repository

FieldTypeRequiredDescription
urlstringYesGit repository URL
credentialsSecretstringNoSecret for repository authentication

spec.contract.stateRepository

FieldTypeRequiredDescription
urlstringYesGit repository URL for state projection
refstringYesGit branch, tag, or commit reference
cloneSecretstringNoSecret for repository authentication
strategystringYesReconciliation strategy (e.g. kustomization)
pathstringYesPath within repository for state projection

Status

FieldTypeDescription
phasestringCurrent lifecycle phase
observedVersionstringVersion currently reconciled
lastAppliedRevisionstringGit revision currently applied
conditions[]ConditionStandard Kubernetes condition array

status.phase Values

ValueMeaning
PendingPackage registered but not reconciled
ReconcilingSynchronizing configuration
ReadyPackage state aligned with contract
DisabledPackage disabled by contract
FailedReconciliation failure

Example

apiVersion: environments.blanketops.dev/v1alpha1
kind: Package
metadata:
name: for-kaniko-app
namespace: dev
spec:
contract:
enabled: true
name: for-kaniko-app
version: v1.2.3
description: >
This package contains the API deployment manifests and runtime configuration.
maintainers:
- name: Jane Doe
email: jane@example.com
repository:
url: git@github.com:example-org/for-kaniko-app-packages.git
credentialsSecret: git-ssh-credentials-packages
diffEnabled: true
stateRepository:
url: git@github.com:example-org/for-kaniko-app-state.git
ref: master
cloneSecret: git-ssh-credentials-state
strategy: kustomization
path: ./clusters/dev

Invariants

  • name and version must remain consistent for a given package lifecycle.
  • repository.url must be reachable.
  • stateRepository.url must be reachable.
  • stateRepository.path must resolve to valid manifests.
  • Disabled packages must not reconcile state.
  • Package does not modify Build or Deployment resources directly.