Open michaelbeaumont opened 1 year ago
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. If you think this issue is still relevant, please comment on it or attend the next triage meeting.
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. If you think this issue is still relevant, please comment on it or attend the next triage meeting.
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. If you think this issue is still relevant, please comment on it or attend the next triage meeting.
This issue was inactive for 90 days. It will be reviewed in the next triage meeting and might be closed. If you think this issue is still relevant, please comment on it or attend the next triage meeting.
What happened?
We use the
kubebuilder:default
annotation to generate an OpenAPI spec describing our resources. When we create our CRDs with these OpenAPI specs, Kubernetes then sets the value of omitted fields to the default. On Universal, we don't do the same, this part of the spec serves only as documentationThis means:
Merging won't work as intended. Given a
kubebuilder:default=30s
forinterval
:on Universal we get
{interval: 100s, timeout: 300s}
but on Kubernetes we get{interval: 30s, timeout: 300s}
because the API server setsinterval: 30s
on the second resource.when writing policy implementations, we have to duplicate the default everywhere we use the fields for the universal case, even though on Kubernetes they'll always be set