v4.0.0
-
No longer require the
--omitEmpty
flag todhall-to-yaml
The types were changed so that all optional records are explicitly marked
Optional
.Before this change, the types were designed around the use of the
--omitFlag
flag so that a record could be implicitly omitted by not specifying any non-default fields. However, that led to ambiguous situations where there was no way to distinguish between a present but empty value and an absent value, and in some cases the distinction between the two mattered. For example, in Kubernetes a present but empty label selector matches everything whereas an absent label selector matches nothing.Practically, what this means is that you will now need to add a few more
Some
s in your resource definitions (typically around records) where there is a new explicitOptional
layer. -
Prefer
io.k8s.api.autoscaling.v2beta2
overio.k8s.api.autoscaling.v1
The Kubernetes API exposes multiple versions of various resources, but the default
./package.dhall
makes an opinionated attempt to select the most recent stable resource (first preferring production over beta over alpha, and then preferring v2 over v1). However, in certain cases users indicate that the newer beta version is preferable over the older production version and this is one such case.Even though
io.k8s.api.autoscaling.v1
is no longer the default choice you can still access those resources by explicitly importing them from the./schemas
subdirectory of the desired Kubernetes version (e.g../1.17/schemas/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler.dhall
)