Skip to content

Commit 05dcb3a

Browse files
authored
feat: add core open-cluster-management.io crds (datreeio#668)
1 parent 35a6253 commit 05dcb3a

16 files changed

+5624
-0
lines changed
Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
{
2+
"description": "AddOnDeploymentConfig represents a configuration to customize the deployments of an add-on.\nFor example, you can specify the NodePlacement to control the scheduling of the add-on agents.",
3+
"properties": {
4+
"apiVersion": {
5+
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
6+
"type": "string"
7+
},
8+
"kind": {
9+
"description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
10+
"type": "string"
11+
},
12+
"metadata": {
13+
"type": "object"
14+
},
15+
"spec": {
16+
"description": "spec represents a desired configuration for an add-on.",
17+
"properties": {
18+
"agentInstallNamespace": {
19+
"default": "open-cluster-management-agent-addon",
20+
"description": "AgentInstallNamespace is the namespace where the add-on agent should be installed on the managed cluster.",
21+
"maxLength": 63,
22+
"pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$",
23+
"type": "string"
24+
},
25+
"customizedVariables": {
26+
"description": "CustomizedVariables is a list of name-value variables for the current add-on deployment.\nThe add-on implementation can use these variables to render its add-on deployment.\nThe default is an empty list.",
27+
"items": {
28+
"description": "CustomizedVariable represents a customized variable for add-on deployment.",
29+
"properties": {
30+
"name": {
31+
"description": "Name of this variable.",
32+
"maxLength": 255,
33+
"pattern": "^[a-zA-Z_][_a-zA-Z0-9]*$",
34+
"type": "string"
35+
},
36+
"value": {
37+
"description": "Value of this variable.",
38+
"maxLength": 1024,
39+
"type": "string"
40+
}
41+
},
42+
"required": [
43+
"name"
44+
],
45+
"type": "object",
46+
"additionalProperties": false
47+
},
48+
"type": "array",
49+
"x-kubernetes-list-map-keys": [
50+
"name"
51+
],
52+
"x-kubernetes-list-type": "map"
53+
},
54+
"nodePlacement": {
55+
"description": "NodePlacement enables explicit control over the scheduling of the add-on agents on the\nmanaged cluster.\nAll add-on agent pods are expected to comply with this node placement.\nIf the placement is nil, the placement is not specified, it will be omitted.\nIf the placement is an empty object, the placement will match all nodes and tolerate nothing.",
56+
"properties": {
57+
"nodeSelector": {
58+
"additionalProperties": {
59+
"type": "string"
60+
},
61+
"description": "NodeSelector defines which Nodes the Pods are scheduled on.\nIf the selector is an empty list, it will match all nodes.\nThe default is an empty list.",
62+
"type": "object"
63+
},
64+
"tolerations": {
65+
"description": "Tolerations is attached by pods to tolerate any taint that matches\nthe triple <key,value,effect> using the matching operator <operator>.\nIf the tolerations is an empty list, it will tolerate nothing.\nThe default is an empty list.",
66+
"items": {
67+
"description": "The pod this Toleration is attached to tolerates any taint that matches\nthe triple <key,value,effect> using the matching operator <operator>.",
68+
"properties": {
69+
"effect": {
70+
"description": "Effect indicates the taint effect to match. Empty means match all taint effects.\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.",
71+
"type": "string"
72+
},
73+
"key": {
74+
"description": "Key is the taint key that the toleration applies to. Empty means match all taint keys.\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.",
75+
"type": "string"
76+
},
77+
"operator": {
78+
"description": "Operator represents a key's relationship to the value.\nValid operators are Exists and Equal. Defaults to Equal.\nExists is equivalent to wildcard for value, so that a pod can\ntolerate all taints of a particular category.",
79+
"type": "string"
80+
},
81+
"tolerationSeconds": {
82+
"description": "TolerationSeconds represents the period of time the toleration (which must be\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\nit is not set, which means tolerate the taint forever (do not evict). Zero and\nnegative values will be treated as 0 (evict immediately) by the system.",
83+
"format": "int64",
84+
"type": "integer"
85+
},
86+
"value": {
87+
"description": "Value is the taint value the toleration matches to.\nIf the operator is Exists, the value should be empty, otherwise just a regular string.",
88+
"type": "string"
89+
}
90+
},
91+
"type": "object",
92+
"additionalProperties": false
93+
},
94+
"type": "array"
95+
}
96+
},
97+
"type": "object",
98+
"additionalProperties": false
99+
},
100+
"proxyConfig": {
101+
"description": "ProxyConfig holds proxy settings for add-on agent on the managed cluster.\nEmpty means no proxy settings is available.",
102+
"properties": {
103+
"caBundle": {
104+
"description": "CABundle is a CA certificate bundle to verify the proxy server.\nAnd it's only useful when HTTPSProxy is set and a HTTPS proxy server is specified.",
105+
"format": "byte",
106+
"type": "string"
107+
},
108+
"httpProxy": {
109+
"description": "HTTPProxy is the URL of the proxy for HTTP requests",
110+
"type": "string"
111+
},
112+
"httpsProxy": {
113+
"description": "HTTPSProxy is the URL of the proxy for HTTPS requests",
114+
"type": "string"
115+
},
116+
"noProxy": {
117+
"description": "NoProxy is a comma-separated list of hostnames and/or CIDRs and/or IPs for which the proxy\nshould not be used.",
118+
"type": "string"
119+
}
120+
},
121+
"type": "object",
122+
"additionalProperties": false
123+
},
124+
"registries": {
125+
"description": "Registries describes how to override images used by the addon agent on the managed cluster.\nthe following example will override image \"quay.io/open-cluster-management/addon-agent\" to\n\"quay.io/ocm/addon-agent\" when deploying the addon agent\n\nregistries:\n - source: quay.io/open-cluster-management/addon-agent\n mirror: quay.io/ocm/addon-agent",
126+
"items": {
127+
"description": "ImageMirror describes how to mirror images from a source",
128+
"properties": {
129+
"mirror": {
130+
"description": "Mirror is the mirrored registry of the Source. Will be ignored if Mirror is empty.",
131+
"type": "string"
132+
},
133+
"source": {
134+
"description": "Source is the source registry. All image registries will be replaced by Mirror if Source is empty.",
135+
"type": "string"
136+
}
137+
},
138+
"required": [
139+
"mirror"
140+
],
141+
"type": "object",
142+
"additionalProperties": false
143+
},
144+
"type": "array"
145+
},
146+
"resourceRequirements": {
147+
"description": "ResourceRequirements specify the resources required by add-on agents.\nIf a container matches multiple ContainerResourceRequirements, the last matched configuration in the\narray will take precedence.",
148+
"items": {
149+
"description": "ContainerResourceRequirements defines resources required by one or a group of containers.",
150+
"properties": {
151+
"containerID": {
152+
"description": "ContainerID is a unique identifier for an agent container. It consists of three parts: resource types,\nresource name, and container name, separated by ':'. The format follows\n'{resource_types}:{resource_name}:{container_name}' where\n 1). Supported resource types include deployments, daemonsets, statefulsets, replicasets, jobs,\n cronjobs and pods;\n 2). Wildcards (*) can be used in any part to match multiple containers. For example, '*:*:*'\n matches all containers of the agent.",
153+
"pattern": "^(deployments|daemonsets|statefulsets|replicasets|jobs|cronjobs|pods|\\*):.+:.+$",
154+
"type": "string"
155+
},
156+
"resources": {
157+
"description": "Compute resources required by matched containers.",
158+
"properties": {
159+
"claims": {
160+
"description": "Claims lists the names of resources, defined in spec.resourceClaims,\nthat are used by this container.\n\nThis is an alpha field and requires enabling the\nDynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.",
161+
"items": {
162+
"description": "ResourceClaim references one entry in PodSpec.ResourceClaims.",
163+
"properties": {
164+
"name": {
165+
"description": "Name must match the name of one entry in pod.spec.resourceClaims of\nthe Pod where this field is used. It makes that resource available\ninside a container.",
166+
"type": "string"
167+
},
168+
"request": {
169+
"description": "Request is the name chosen for a request in the referenced claim.\nIf empty, everything from the claim is made available, otherwise\nonly the result of this request.",
170+
"type": "string"
171+
}
172+
},
173+
"required": [
174+
"name"
175+
],
176+
"type": "object",
177+
"additionalProperties": false
178+
},
179+
"type": "array",
180+
"x-kubernetes-list-map-keys": [
181+
"name"
182+
],
183+
"x-kubernetes-list-type": "map"
184+
},
185+
"limits": {
186+
"additionalProperties": {
187+
"anyOf": [
188+
{
189+
"type": "integer"
190+
},
191+
{
192+
"type": "string"
193+
}
194+
],
195+
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
196+
"x-kubernetes-int-or-string": true
197+
},
198+
"description": "Limits describes the maximum amount of compute resources allowed.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
199+
"type": "object"
200+
},
201+
"requests": {
202+
"additionalProperties": {
203+
"anyOf": [
204+
{
205+
"type": "integer"
206+
},
207+
{
208+
"type": "string"
209+
}
210+
],
211+
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
212+
"x-kubernetes-int-or-string": true
213+
},
214+
"description": "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value. Requests cannot exceed Limits.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
215+
"type": "object"
216+
}
217+
},
218+
"type": "object",
219+
"additionalProperties": false
220+
}
221+
},
222+
"required": [
223+
"containerID",
224+
"resources"
225+
],
226+
"type": "object",
227+
"additionalProperties": false
228+
},
229+
"type": "array",
230+
"x-kubernetes-list-map-keys": [
231+
"containerID"
232+
],
233+
"x-kubernetes-list-type": "map"
234+
}
235+
},
236+
"type": "object",
237+
"additionalProperties": false
238+
}
239+
},
240+
"required": [
241+
"spec"
242+
],
243+
"type": "object"
244+
}

0 commit comments

Comments
 (0)