Skip to content

v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Oct 09:58

0.4.0 (2026-10-16)

⚠ BREAKING CHANGES

  • okdp.info.yaml, what an instance publishes
  • no named output of a contract with a naming convention
  • no okdp.dependencies.yaml, the dependencies printed on stderr
  • chart defaults out of the compiled values, the chart cache for checks only
  • no empty okdp.instance.yaml, okdp.dependencies.yaml or keys
  • okdp.instance.yaml replaces the descriptor ConfigMap
  • OKDP's objects in the umbrella, no okdp chart
  • every dependency is rendered unless the values leave it out
  • Chart.yaml, okdp.yaml and values.cel.yaml replace service.yaml
  • an instance's connections are a context layer of its level
  • a missing config.schema.json is an empty schema
  • context levels replace --platform and --project
  • $else beside $if and $value
  • --project values that add to the platform's, examples/03_full
  • name the upstream chart in each .values.yaml
  • rename charts..base to defaults, .defaults.yaml by convention
  • mark generated files with a DO NOT EDIT line
  • replace okdp.charts.yaml with install.sh (--mkinstall)
  • write okdp.dependencies.yaml only with --mkdag
  • let a require entry of service.yaml take a condition, $if, evaluated on the mapping's context
  • take global from the platform's values layers only (--platform, Inputs.Platform)
  • customizable indent
  • compiler: add the okdp chart to every compile and take the platform's charts from global.okdp.charts
  • compiler: name each upstream chart by its source and read it from a chart cache
  • compiler: read the package's metadata from service.yaml and its parameters from the package

Features

  • --contracts only when a contract is read (0fb70e2)
  • --mkinstall with --umbrella, an install.sh for the umbrella chart (4577ee5)
  • --project values that add to the platform's, examples/03_full (91b4f11)
  • $else beside $if and $value (f91d187)
  • a missing config.schema.json is an empty schema (6493e89)
  • a reference names an output another instance of the namespace publishes (bb65ba2)
  • an instance's connections are a context layer of its level (9406cce)
  • chart defaults out of the compiled values, the chart cache for checks only (4bda6a1)
  • Chart.yaml, okdp.yaml and values.cel.yaml replace service.yaml (83148f0)
  • check external connections and provides against their contract's schema, apply contract defaults until stable, report an unreadable contract (46eae24)
  • check the types of provides secrets, okdpGeneratedSecret arguments and instance, report every missing contract field (37671fb)
  • check the umbrella with the Helm versions Flux and Argo CD embed, Helm 3.19 differences documented (9108aa5)
  • cmd: add the okdp-compile CLI (3fc5444)
  • compile an empty mapping as one without sections (26b3fbe)
  • compiler: accept bracketed literal keys and globs in protect and append paths (4bccd14)
  • compiler: add the oidc-dcr chart of each OAuth client without a service.yaml entry (b55364e)
  • compiler: add the okdp chart to every compile and take the platform's charts from global.okdp.charts (f8d4c63)
  • compiler: add the sha256, toJson, toPrettyJson, toYaml, quote and okdpFullname CEL functions (c4777a4)
  • compiler: add the YAML + CEL mapping engine (3e4599b)
  • compiler: compare a compile with a wrapper chart render (6c09201)
  • compiler: compile a service instance into upstream chart values (346b213)
  • compiler: compile the OAuth clients of an oidcClients section from an oidc-dcr template (ac45eca)
  • compiler: give the mapping its chart metadata and labels (24dc815)
  • compiler: let a chart of service.yaml name the vendored chart it compiles from (4d49c9c)
  • compiler: let a chart receive the upstream values of another chart with upstream.from (5a75046)
  • compiler: name each upstream chart by its source and read it from a chart cache (a17ca37)
  • compiler: read and merge values as Helm does (18d64f5)
  • compiler: read and merge values exactly as Helm does (b4ef002)
  • compiler: read the instance upstream values from files (d25ed1d)
  • compiler: read the oidc-dcr Job settings from the platform values (33c499d)
  • compiler: read the package's metadata from service.yaml and its parameters from the package (b8fc940)
  • compiler: refuse unknown keys under global.okdp.charts (b2bf8d0)
  • compiler: rename the fixed values of a chart to base (f10317e)
  • compiler: render OKDP's own objects and feed them to the okdp chart (606faa0)
  • compiler: report the instances an instance depends on (c63136e)
  • compiler: set the oidc-dcr 0.5.0 values in okdpDcr (b7d9ece)
  • compiler: show the mapping the upstream values files merged with the inline values (c34c33a)
  • compiler: validate the parameters and the compiled values against their schemas (a961dc9)
  • context levels replace --platform and --project (3c6b7b0)
  • convert CEL values to data recursively and refuse what values cannot hold (8ad89bf)
  • customizable indent (f2dce7c)
  • decode service.yaml strictly and require chart keys as DNS labels (f9e1a15)
  • do not require the secret fields of a contract (f9191dc)
  • emit the instance as an umbrella chart (d414017)
  • every dependency is rendered unless the values leave it out (ad6d6ef)
  • example: add basic target configure example (7f29cbc)
  • example: add the catalog annotations to the webapp chart (75800c6)
  • example: add the webapp chart and contracts, test the example (9fd35e5)
  • find the }} of an expression past raw and triple-quoted strings and comments, refuse mapping keys Helm reads at random, read the mapping's lines and YAML 1.1 scalars as Helm, fuzz the scanner, paths, values and the mapping reader (e09a264)
  • key the chart cache by repository, <repository>/<chart>-<version>, the flat entry kept unless two repositories share it (c7c1a43)
  • let a require entry of service.yaml take a condition, $if, evaluated on the mapping's context (cf6095b)
  • make DcrSource a function, add CompileContext with a CEL cost limit (3e8d2e1)
  • mark generated files with a DO NOT EDIT line (c735d84)
  • name the platform values input in the errors of a missing platform value, add CONTRIBUTING.md and a license section (bfe1717)
  • name the upstream chart in each <key>.values.yaml (b4c2996)
  • no empty okdp.instance.yaml, okdp.dependencies.yaml or keys (8a2f8f3)
  • no named output of a contract with a naming convention (1cab6c4)
  • no okdp.dependencies.yaml, the dependencies printed on stderr (06954e6)
  • normalize Go-typed values layers as Helm values, refuse what values cannot hold (3f038a1)
  • okdp.info.yaml, what an instance publishes (ad6a137)
  • okdp.instance.yaml replaces the descriptor ConfigMap (731eb36)
  • OKDP's objects in the umbrella, no okdp chart (a802f92)
  • read chart archives as Helm does, backslash names, paths out of the chart refused and a 100 MiB cap (047a10c)
  • refuse a YAML 1.1 boolean as upstream in service.yaml instead of taking it as a file name (3c6f09c)
  • refuse a YAML alias inside its own anchor and excessive aliasing (291fa3b)
  • refuse mistakes in the mapping language and resolve YAML merge keys as Helm (0236fa5)
  • refuse positional arguments, check the input directories, write every output or none, keep the output directories to their files, require --release and --namespace (33a6e4c)
  • refuse sections and platform settings of the wrong shape (667cba1)
  • refuse template code in instance parameters and connections, and a connection reference that is not a string or not a release name (004c863)
  • release the okdp-compile binaries with goreleaser, print the module version without ldflags (ce2f1ba)
  • rename charts.<key>.base to defaults, <key>.defaults.yaml by convention (510cb24)
  • replace okdp.charts.yaml with install.sh (--mkinstall) (328cf6e)
  • report connection errors at once and in a stable order (6c289d3)
  • take global from the platform's values layers only (--platform, Inputs.Platform) (5f6a468)
  • validate the release and namespace, name the descriptor with fullname, refuse colliding OAuth clients and objects and a secretRef without a name (ef77c56)
  • values.yaml, the charts' values without expressions (80704bf)
  • write okdp.dependencies.yaml only with --mkdag (01f4e89)
  • write the errors in CEL.YAML instead of CEL (b53c504)