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
namestringYesCanonical package identity
versionstringYesLogical version identifier
descriptionstringNoHuman-readable description
maintainers[]objectNoList of maintainers
repositoryobjectYesSource repository for package configuration
diffEnabledbooleanNoEnables structured diff behavior
stateRepositoryobjectNoEnvironment state repository definition

spec.contract.maintainers[]​

FieldTypeRequiredDescription
namestringYesMaintainer name
emailstringYesMaintainer email

spec.contract.repository​

FieldTypeRequiredDescription
urlstringYesGit repository URL
credentialsSecretstringNoSecret for repository authentication
refstringYesGit branch, tag, or commit reference
pathstringNoPath within repository to apply

spec.contract.stateRepository​

FieldTypeRequiredDescription
urlstringYesGit repository URL for state projection
refstringNoGit branch, tag, or commit reference
cloneSecretstringNoSecret for repository authentication
strategystringNokustomization or plain (default plain)
pathstringNoPath 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
FailedReconciliation failure

Example​

apiVersion: environments.blanketops.dev/v1alpha1
kind: Package
metadata:
name: for-kaniko-app
namespace: dev
spec:
contract:
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
ref: origin/main
path: manifests
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.
  • repository.ref must exist in the repository.
  • stateRepository.url must be reachable.
  • stateRepository.path must resolve to valid manifests.
  • A Package that exists is reconciled; there is no switch to disable it.
  • Package does not modify Build or Deployment resources directly.