Skip to content

Commit 1e8a198

Browse files
committed
Fix list type tags and required validations in DNS operator API
1 parent 2587c6b commit 1e8a198

9 files changed

Lines changed: 133 additions & 0 deletions

File tree

openapi/generated_openapi/zz_generated.openapi.go

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

operator/v1/types_dns.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type DNSSpec struct {
5252
// If this field is nil, no servers are created.
5353
//
5454
// +optional
55+
// +listType=map
56+
// +listMapKey=name
5557
Servers []Server `json:"servers,omitempty"`
5658

5759
// upstreamResolvers defines a schema for configuring CoreDNS
@@ -179,10 +181,13 @@ var (
179181
type Server struct {
180182
// name is required and specifies a unique name for the server. Name must comply
181183
// with the Service Name Syntax of rfc6335.
184+
// +required
182185
Name string `json:"name"`
183186
// zones is required and specifies the subdomains that Server is authoritative for.
184187
// Zones must conform to the rfc1123 definition of a subdomain. Specifying the
185188
// cluster domain (i.e., "cluster.local") is invalid.
189+
// +required
190+
// +listType=set
186191
Zones []string `json:"zones"`
187192
// forwardPlugin defines a schema for configuring CoreDNS to proxy DNS messages
188193
// to upstream resolvers.
@@ -282,6 +287,7 @@ type ForwardPlugin struct {
282287
// A maximum of 15 upstreams is allowed per ForwardPlugin.
283288
//
284289
// +kubebuilder:validation:MaxItems=15
290+
// +listType=set
285291
Upstreams []string `json:"upstreams"`
286292

287293
// policy is used to determine the order in which upstream servers are selected for querying.
@@ -342,6 +348,7 @@ type UpstreamResolvers struct {
342348
// +optional
343349
// +kubebuilder:validation:MaxItems=15
344350
// +kubebuilder:default={{"type":"SystemResolvConf"}}
351+
// +listType=atomic
345352
Upstreams []Upstream `json:"upstreams"`
346353

347354
// policy is used to determine the order in which upstream servers are selected for querying.
@@ -471,6 +478,7 @@ type DNSNodePlacement struct {
471478
// https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
472479
//
473480
// +optional
481+
// +listType=atomic
474482
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
475483
}
476484

@@ -600,6 +608,8 @@ type DNSStatus struct {
600608
//
601609
// +patchMergeKey=type
602610
// +patchStrategy=merge
611+
// +listType=map
612+
// +listMapKey=type
603613
// +optional
604614
Conditions []OperatorCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
605615
}

operator/v1/zz_generated.crd-manifests/0000_70_dns_00_dnses-CustomNoUpgrade.crd.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ spec:
192192
type: string
193193
type: object
194194
type: array
195+
x-kubernetes-list-type: atomic
195196
type: object
196197
operatorLogLevel:
197198
default: Normal
@@ -338,6 +339,7 @@ spec:
338339
type: string
339340
maxItems: 15
340341
type: array
342+
x-kubernetes-list-type: set
341343
type: object
342344
name:
343345
description: |-
@@ -352,8 +354,15 @@ spec:
352354
items:
353355
type: string
354356
type: array
357+
x-kubernetes-list-type: set
358+
required:
359+
- name
360+
- zones
355361
type: object
356362
type: array
363+
x-kubernetes-list-map-keys:
364+
- name
365+
x-kubernetes-list-type: map
357366
template:
358367
description: |-
359368
template is an optional configuration for custom DNS query handling via the CoreDNS template plugin.
@@ -608,6 +617,7 @@ spec:
608617
type: object
609618
maxItems: 15
610619
type: array
620+
x-kubernetes-list-type: atomic
611621
type: object
612622
type: object
613623
status:
@@ -676,6 +686,9 @@ spec:
676686
- type
677687
type: object
678688
type: array
689+
x-kubernetes-list-map-keys:
690+
- type
691+
x-kubernetes-list-type: map
679692
required:
680693
- clusterDomain
681694
- clusterIP

operator/v1/zz_generated.crd-manifests/0000_70_dns_00_dnses-Default.crd.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ spec:
192192
type: string
193193
type: object
194194
type: array
195+
x-kubernetes-list-type: atomic
195196
type: object
196197
operatorLogLevel:
197198
default: Normal
@@ -338,6 +339,7 @@ spec:
338339
type: string
339340
maxItems: 15
340341
type: array
342+
x-kubernetes-list-type: set
341343
type: object
342344
name:
343345
description: |-
@@ -352,8 +354,15 @@ spec:
352354
items:
353355
type: string
354356
type: array
357+
x-kubernetes-list-type: set
358+
required:
359+
- name
360+
- zones
355361
type: object
356362
type: array
363+
x-kubernetes-list-map-keys:
364+
- name
365+
x-kubernetes-list-type: map
357366
upstreamResolvers:
358367
default: {}
359368
description: |-
@@ -537,6 +546,7 @@ spec:
537546
type: object
538547
maxItems: 15
539548
type: array
549+
x-kubernetes-list-type: atomic
540550
type: object
541551
type: object
542552
status:
@@ -605,6 +615,9 @@ spec:
605615
- type
606616
type: object
607617
type: array
618+
x-kubernetes-list-map-keys:
619+
- type
620+
x-kubernetes-list-type: map
608621
required:
609622
- clusterDomain
610623
- clusterIP

operator/v1/zz_generated.crd-manifests/0000_70_dns_00_dnses-DevPreviewNoUpgrade.crd.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ spec:
192192
type: string
193193
type: object
194194
type: array
195+
x-kubernetes-list-type: atomic
195196
type: object
196197
operatorLogLevel:
197198
default: Normal
@@ -338,6 +339,7 @@ spec:
338339
type: string
339340
maxItems: 15
340341
type: array
342+
x-kubernetes-list-type: set
341343
type: object
342344
name:
343345
description: |-
@@ -352,8 +354,15 @@ spec:
352354
items:
353355
type: string
354356
type: array
357+
x-kubernetes-list-type: set
358+
required:
359+
- name
360+
- zones
355361
type: object
356362
type: array
363+
x-kubernetes-list-map-keys:
364+
- name
365+
x-kubernetes-list-type: map
357366
template:
358367
description: |-
359368
template is an optional configuration for custom DNS query handling via the CoreDNS template plugin.
@@ -608,6 +617,7 @@ spec:
608617
type: object
609618
maxItems: 15
610619
type: array
620+
x-kubernetes-list-type: atomic
611621
type: object
612622
type: object
613623
status:
@@ -676,6 +686,9 @@ spec:
676686
- type
677687
type: object
678688
type: array
689+
x-kubernetes-list-map-keys:
690+
- type
691+
x-kubernetes-list-type: map
679692
required:
680693
- clusterDomain
681694
- clusterIP

operator/v1/zz_generated.crd-manifests/0000_70_dns_00_dnses-OKD.crd.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ spec:
192192
type: string
193193
type: object
194194
type: array
195+
x-kubernetes-list-type: atomic
195196
type: object
196197
operatorLogLevel:
197198
default: Normal
@@ -338,6 +339,7 @@ spec:
338339
type: string
339340
maxItems: 15
340341
type: array
342+
x-kubernetes-list-type: set
341343
type: object
342344
name:
343345
description: |-
@@ -352,8 +354,15 @@ spec:
352354
items:
353355
type: string
354356
type: array
357+
x-kubernetes-list-type: set
358+
required:
359+
- name
360+
- zones
355361
type: object
356362
type: array
363+
x-kubernetes-list-map-keys:
364+
- name
365+
x-kubernetes-list-type: map
357366
upstreamResolvers:
358367
default: {}
359368
description: |-
@@ -537,6 +546,7 @@ spec:
537546
type: object
538547
maxItems: 15
539548
type: array
549+
x-kubernetes-list-type: atomic
540550
type: object
541551
type: object
542552
status:
@@ -605,6 +615,9 @@ spec:
605615
- type
606616
type: object
607617
type: array
618+
x-kubernetes-list-map-keys:
619+
- type
620+
x-kubernetes-list-type: map
608621
required:
609622
- clusterDomain
610623
- clusterIP

operator/v1/zz_generated.crd-manifests/0000_70_dns_00_dnses-TechPreviewNoUpgrade.crd.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ spec:
192192
type: string
193193
type: object
194194
type: array
195+
x-kubernetes-list-type: atomic
195196
type: object
196197
operatorLogLevel:
197198
default: Normal
@@ -338,6 +339,7 @@ spec:
338339
type: string
339340
maxItems: 15
340341
type: array
342+
x-kubernetes-list-type: set
341343
type: object
342344
name:
343345
description: |-
@@ -352,8 +354,15 @@ spec:
352354
items:
353355
type: string
354356
type: array
357+
x-kubernetes-list-type: set
358+
required:
359+
- name
360+
- zones
355361
type: object
356362
type: array
363+
x-kubernetes-list-map-keys:
364+
- name
365+
x-kubernetes-list-type: map
357366
upstreamResolvers:
358367
default: {}
359368
description: |-
@@ -537,6 +546,7 @@ spec:
537546
type: object
538547
maxItems: 15
539548
type: array
549+
x-kubernetes-list-type: atomic
540550
type: object
541551
type: object
542552
status:
@@ -605,6 +615,9 @@ spec:
605615
- type
606616
type: object
607617
type: array
618+
x-kubernetes-list-map-keys:
619+
- type
620+
x-kubernetes-list-type: map
608621
required:
609622
- clusterDomain
610623
- clusterIP

0 commit comments

Comments
 (0)