Skip to content

Commit 64fd36d

Browse files
committed
partial controller implementation
1 parent f36ec85 commit 64fd36d

File tree

10 files changed

+619
-279
lines changed

10 files changed

+619
-279
lines changed

api/crds/manifests/clusters.openmcp.cloud_dnsserviceconfigs.yaml

Lines changed: 0 additions & 129 deletions
This file was deleted.
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.18.0
7+
labels:
8+
openmcp.cloud/cluster: platform
9+
name: dnsserviceconfigs.dns.openmcp.cloud
10+
spec:
11+
group: dns.openmcp.cloud
12+
names:
13+
kind: DNSServiceConfig
14+
listKind: DNSServiceConfigList
15+
plural: dnsserviceconfigs
16+
shortNames:
17+
- dnscfg
18+
singular: dnsserviceconfig
19+
scope: Cluster
20+
versions:
21+
- name: v1alpha1
22+
schema:
23+
openAPIV3Schema:
24+
description: DNSServiceConfig is the Schema for the DNS PlatformService configuration
25+
API
26+
properties:
27+
apiVersion:
28+
description: |-
29+
APIVersion defines the versioned schema of this representation of an object.
30+
Servers should convert recognized schemas to the latest internal value, and
31+
may reject unrecognized values.
32+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
33+
type: string
34+
kind:
35+
description: |-
36+
Kind is a string value representing the REST resource this object represents.
37+
Servers may infer this from the endpoint the client submits requests to.
38+
Cannot be updated.
39+
In CamelCase.
40+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
41+
type: string
42+
metadata:
43+
type: object
44+
spec:
45+
description: DNSServiceConfigSpec defines the desired state of DNSServiceConfig
46+
properties:
47+
externalDNSForPurposes:
48+
description: |-
49+
ExternalDNSForPurposes is a list of DNS configurations in combination with purpose selectors.
50+
The first matching purpose selector will be applied to the Cluster.
51+
If no selector matches, no configuration will be applied.
52+
items:
53+
description: ExternalDNSPurposeConfig holds a purpose selector and
54+
the DNS configuration to apply if the selector matches.
55+
properties:
56+
config:
57+
description: Config is the DNS configuration to apply if the
58+
selector matches.
59+
type: object
60+
name:
61+
description: |-
62+
Name is an optional name.
63+
It can be set to more easily identify the configuration in logs and events.
64+
type: string
65+
purposeSelector:
66+
description: |-
67+
PurposeSelector is a selector to match against the list of purposes of a Cluster.
68+
If not set, all Clusters are matched.
69+
properties:
70+
and:
71+
items: {}
72+
type: array
73+
name:
74+
type: string
75+
not: {}
76+
or:
77+
items: {}
78+
type: array
79+
type: object
80+
x-kubernetes-validations:
81+
- message: Exactly one of 'and', 'or', 'not' or 'name' must
82+
be set
83+
rule: size(self.filter(property, size(self[property]) > 0))
84+
== 1
85+
required:
86+
- config
87+
type: object
88+
type: array
89+
selector:
90+
description: |-
91+
Selector is a label selector.
92+
If not nil, only Clusters that match the selector will be reconciled by the controller.
93+
properties:
94+
matchExpressions:
95+
description: matchExpressions is a list of label selector requirements.
96+
The requirements are ANDed.
97+
items:
98+
description: |-
99+
A label selector requirement is a selector that contains values, a key, and an operator that
100+
relates the key and values.
101+
properties:
102+
key:
103+
description: key is the label key that the selector applies
104+
to.
105+
type: string
106+
operator:
107+
description: |-
108+
operator represents a key's relationship to a set of values.
109+
Valid operators are In, NotIn, Exists and DoesNotExist.
110+
type: string
111+
values:
112+
description: |-
113+
values is an array of string values. If the operator is In or NotIn,
114+
the values array must be non-empty. If the operator is Exists or DoesNotExist,
115+
the values array must be empty. This array is replaced during a strategic
116+
merge patch.
117+
items:
118+
type: string
119+
type: array
120+
x-kubernetes-list-type: atomic
121+
required:
122+
- key
123+
- operator
124+
type: object
125+
type: array
126+
x-kubernetes-list-type: atomic
127+
matchLabels:
128+
additionalProperties:
129+
type: string
130+
description: |-
131+
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
132+
map is equivalent to an element of matchExpressions, whose key field is "key", the
133+
operator is "In", and the values array contains only "value". The requirements are ANDed.
134+
type: object
135+
type: object
136+
x-kubernetes-map-type: atomic
137+
type: object
138+
type: object
139+
served: true
140+
storage: true

0 commit comments

Comments
 (0)