dhall-openapi: make metadata
optional for "inner" k8s types
#2128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
metadata
field is required for all top level resourcesaccording to
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata.
However for "inner" types this is not the case. For example
io.k8s.api.batch.v1beta1.JobTemplateSpec
has ametadata
field,but it is not required. The example in the official k8s docs does
not include this field:
https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#example.
I searched the kubernetes 1.17 OpenAPI spec for "inner" types
that include a
metadata
field with:It came up with:
The pod spec template example in
https://kubernetes.io/docs/concepts/workloads/pods/
also does not include a
metadata
field.This PR adds special cases to these types to make these fields
optional.
In general I think a nicer solution would be
dhall-lang/dhall-kubernetes#8 (comment).