Skip to content

Commit a63184a

Browse files
authored
updating fluxcd.controlplane.io schemas to operator version 0.33 (#711)
1 parent 2630362 commit a63184a

File tree

4 files changed

+429
-15
lines changed

4 files changed

+429
-15
lines changed

fluxcd.controlplane.io/fluxinstance_v1.json

Lines changed: 97 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
"description": "Multitenant enables the multitenancy lockdown. Defaults to false.",
2929
"type": "boolean"
3030
},
31+
"multitenantWorkloadIdentity": {
32+
"default": false,
33+
"description": "MultitenantWorkloadIdentity enables the multitenancy lockdown for\nworkload identity. Defaults to false.",
34+
"type": "boolean"
35+
},
3136
"networkPolicy": {
3237
"default": true,
3338
"description": "NetworkPolicy restricts network access to the current namespace.\nDefaults to true.",
@@ -37,8 +42,25 @@
3742
"description": "ObjectLevelWorkloadIdentity enables the feature gate\nrequired for object-level workload identity.\nThis feature is only available in Flux v2.6.0 and later.",
3843
"type": "boolean"
3944
},
45+
"size": {
46+
"description": "Size defines the vertical scaling profile of the Flux controllers.\nThe size is used to determine the concurrency and CPU/Memory limits for the Flux controllers.\nAccepted values are: 'small', 'medium' and 'large'.",
47+
"enum": [
48+
"small",
49+
"medium",
50+
"large"
51+
],
52+
"type": "string"
53+
},
54+
"tenantDefaultDecryptionServiceAccount": {
55+
"description": "TenantDefaultDecryptionServiceAccount is the name of the service account\nto use as default for kustomize-controller SOPS decryption when the\nmultitenant lockdown for workload identity is enabled. Defaults to the\n'default' service account from the tenant namespace.",
56+
"type": "string"
57+
},
58+
"tenantDefaultKubeConfigServiceAccount": {
59+
"description": "TenantDefaultKubeConfigServiceAccount is the name of the service account\nto use as default for kustomize-controller and helm-controller remote\ncluster access via spec.kubeConfig.configMapRef when the multitenant\nlockdown for workload identity is enabled. Defaults to the 'default'\nservice account from the tenant namespace.",
60+
"type": "string"
61+
},
4062
"tenantDefaultServiceAccount": {
41-
"description": "TenantDefaultServiceAccount is the name of the service account\nto use as default when the multitenant lockdown is enabled.\nDefaults to the 'default' service account from the tenant namespace.",
63+
"description": "TenantDefaultServiceAccount is the name of the service account\nto use as default when the multitenant lockdown is enabled, for\nkustomize-controller and helm-controller.\nThis field will also be used for multitenant workload identity\nlockdown for source-controller, notification-controller,\nimage-reflector-controller and image-automation-controller.\nDefaults to the 'default' service account from the tenant namespace.",
4264
"type": "string"
4365
},
4466
"type": {
@@ -55,6 +77,12 @@
5577
}
5678
},
5779
"type": "object",
80+
"x-kubernetes-validations": [
81+
{
82+
"message": ".objectLevelWorkloadIdentity must be set to true when .multitenantWorkloadIdentity is set to true",
83+
"rule": "(has(self.objectLevelWorkloadIdentity) && self.objectLevelWorkloadIdentity) || !has(self.multitenantWorkloadIdentity) || !self.multitenantWorkloadIdentity"
84+
}
85+
],
5886
"additionalProperties": false
5987
},
6088
"commonMetadata": {
@@ -88,7 +116,8 @@
88116
"helm-controller",
89117
"notification-controller",
90118
"image-reflector-controller",
91-
"image-automation-controller"
119+
"image-automation-controller",
120+
"source-watcher"
92121
],
93122
"type": "string"
94123
},
@@ -114,6 +143,15 @@
114143
"description": "Registry address to pull the distribution images from\ne.g. 'ghcr.io/fluxcd'.",
115144
"type": "string"
116145
},
146+
"variant": {
147+
"description": "Variant specifies the Flux distribution flavor stored\nin the registry.",
148+
"enum": [
149+
"upstream-alpine",
150+
"enterprise-alpine",
151+
"enterprise-distroless"
152+
],
153+
"type": "string"
154+
},
117155
"version": {
118156
"description": "Version semver expression e.g. '2.x', '2.3.x'.",
119157
"type": "string"
@@ -410,6 +448,59 @@
410448
},
411449
"type": "array"
412450
},
451+
"history": {
452+
"description": "History contains the reconciliation history of the FluxInstance\nas a list of snapshots ordered by the last reconciled time.",
453+
"items": {
454+
"description": "Snapshot represents a point-in-time record of a group of resources reconciliation,\nincluding timing information, status, and a unique digest identifier.",
455+
"properties": {
456+
"digest": {
457+
"description": "Digest is the checksum in the format `<algo>:<hex>` of the resources in this snapshot.",
458+
"type": "string"
459+
},
460+
"firstReconciled": {
461+
"description": "FirstReconciled is the time when this revision was first reconciled to the cluster.",
462+
"format": "date-time",
463+
"type": "string"
464+
},
465+
"lastReconciled": {
466+
"description": "LastReconciled is the time when this revision was last reconciled to the cluster.",
467+
"format": "date-time",
468+
"type": "string"
469+
},
470+
"lastReconciledDuration": {
471+
"description": "LastReconciledDuration is time it took to reconcile the resources in this revision.",
472+
"type": "string"
473+
},
474+
"lastReconciledStatus": {
475+
"description": "LastReconciledStatus is the status of the last reconciliation.",
476+
"type": "string"
477+
},
478+
"metadata": {
479+
"additionalProperties": {
480+
"type": "string"
481+
},
482+
"description": "Metadata contains additional information about the snapshot.",
483+
"type": "object"
484+
},
485+
"totalReconciliations": {
486+
"description": "TotalReconciliations is the total number of reconciliations that have occurred for this snapshot.",
487+
"format": "int64",
488+
"type": "integer"
489+
}
490+
},
491+
"required": [
492+
"digest",
493+
"firstReconciled",
494+
"lastReconciled",
495+
"lastReconciledDuration",
496+
"lastReconciledStatus",
497+
"totalReconciliations"
498+
],
499+
"type": "object",
500+
"additionalProperties": false
501+
},
502+
"type": "array"
503+
},
413504
"inventory": {
414505
"description": "Inventory contains a list of Kubernetes resource object references\nlast applied on the cluster.",
415506
"properties": {
@@ -455,6 +546,10 @@
455546
"description": "LastAttemptedRevision is the version and digest of the\ndistribution config that was last attempted to reconcile.",
456547
"type": "string"
457548
},
549+
"lastHandledForceAt": {
550+
"description": "LastHandledForceAt holds the value of the most recent\nforce request value, so a change of the annotation value\ncan be detected.",
551+
"type": "string"
552+
},
458553
"lastHandledReconcileAt": {
459554
"description": "LastHandledReconcileAt holds the value of the most recent\nreconcile request value, so a change of the annotation value\ncan be detected.",
460555
"type": "string"

fluxcd.controlplane.io/fluxreport_v1.json

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,29 @@
1515
"spec": {
1616
"description": "FluxReportSpec defines the observed state of a Flux installation.",
1717
"properties": {
18+
"cluster": {
19+
"description": "Cluster is the version information of the Kubernetes cluster.",
20+
"properties": {
21+
"nodes": {
22+
"description": "Nodes is the number of nodes in the Kubernetes cluster.",
23+
"type": "integer"
24+
},
25+
"platform": {
26+
"description": "Platform is the os/arch of the Kubernetes control plane.",
27+
"type": "string"
28+
},
29+
"serverVersion": {
30+
"description": "ServerVersion is the version of the Kubernetes API server.",
31+
"type": "string"
32+
}
33+
},
34+
"required": [
35+
"platform",
36+
"serverVersion"
37+
],
38+
"type": "object",
39+
"additionalProperties": false
40+
},
1841
"components": {
1942
"description": "ComponentsStatus is the status of the Flux controller deployments.",
2043
"items": {
@@ -75,6 +98,30 @@
7598
"type": "object",
7699
"additionalProperties": false
77100
},
101+
"operator": {
102+
"description": "Operator is the version information of the Flux Operator.",
103+
"properties": {
104+
"apiVersion": {
105+
"description": "APIVersion is the API version of the Flux Operator.",
106+
"type": "string"
107+
},
108+
"platform": {
109+
"description": "Platform is the os/arch of Flux Operator.",
110+
"type": "string"
111+
},
112+
"version": {
113+
"description": "Version is the version number of Flux Operator.",
114+
"type": "string"
115+
}
116+
},
117+
"required": [
118+
"apiVersion",
119+
"platform",
120+
"version"
121+
],
122+
"type": "object",
123+
"additionalProperties": false
124+
},
78125
"reconcilers": {
79126
"description": "ReconcilersStatus is the list of Flux reconcilers and\ntheir statistics grouped by API kind.",
80127
"items": {
@@ -233,5 +280,11 @@
233280
"additionalProperties": false
234281
}
235282
},
236-
"type": "object"
283+
"type": "object",
284+
"x-kubernetes-validations": [
285+
{
286+
"message": "the only accepted name for a FluxReport is 'flux'",
287+
"rule": "self.metadata.name == 'flux'"
288+
}
289+
]
237290
}

fluxcd.controlplane.io/resourceset_v1.json

Lines changed: 133 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,24 @@
7676
},
7777
"type": "array"
7878
},
79+
"inputStrategy": {
80+
"description": "InputStrategy defines how the inputs are combined when multiple\ninput provider objects are used. Defaults to flattening all inputs\nfrom all providers into a single list of input sets.",
81+
"properties": {
82+
"name": {
83+
"description": "Name defines how the inputs are combined when multiple\ninput provider objects are used. Supported values are:\n- Flatten: all inputs sets from all input provider objects are\n flattened into a single list of input sets.\n- Permute: all inputs sets from all input provider objects are\n combined using a Cartesian product, resulting in a list of input sets\n that contains every possible combination of input values.\n For example, if provider A has inputs [{x: 1}, {x: 2}] and provider B has\n inputs [{y: \"a\"}, {y: \"b\"}], the resulting input sets will be:\n [{x: 1, y: \"a\"}, {x: 1, y: \"b\"}, {x: 2, y: \"a\"}, {x: 2, y: \"b\"}].\n This strategy can lead to a large number of input sets and should be\n used with caution. Users should use filtering features from\n ResourceSetInputProvider to limit the amount of exported inputs.",
84+
"enum": [
85+
"Flatten",
86+
"Permute"
87+
],
88+
"type": "string"
89+
}
90+
},
91+
"required": [
92+
"name"
93+
],
94+
"type": "object",
95+
"additionalProperties": false
96+
},
7997
"inputs": {
8098
"description": "Inputs contains the list of ResourceSet inputs.",
8199
"items": {
@@ -90,9 +108,13 @@
90108
"inputsFrom": {
91109
"description": "InputsFrom contains the list of references to input providers.\nWhen set, the inputs are fetched from the providers and concatenated\nwith the in-line inputs defined in the ResourceSet.",
92110
"items": {
111+
"description": "InputProviderReference defines a reference to an input provider resource\nin the same namespace as the ResourceSet.",
93112
"properties": {
94113
"apiVersion": {
95114
"description": "APIVersion of the input provider resource.\nWhen not set, the APIVersion of the ResourceSet is used.",
115+
"enum": [
116+
"fluxcd.controlplane.io/v1"
117+
],
96118
"type": "string"
97119
},
98120
"kind": {
@@ -103,15 +125,68 @@
103125
"type": "string"
104126
},
105127
"name": {
106-
"description": "Name of the input provider resource.",
128+
"description": "Name of the input provider resource. Cannot be set\nwhen the Selector field is set.",
107129
"type": "string"
130+
},
131+
"selector": {
132+
"description": "Selector is a label selector to filter the input provider resources\nas an alternative to the Name field.",
133+
"properties": {
134+
"matchExpressions": {
135+
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
136+
"items": {
137+
"description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
138+
"properties": {
139+
"key": {
140+
"description": "key is the label key that the selector applies to.",
141+
"type": "string"
142+
},
143+
"operator": {
144+
"description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
145+
"type": "string"
146+
},
147+
"values": {
148+
"description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.",
149+
"items": {
150+
"type": "string"
151+
},
152+
"type": "array",
153+
"x-kubernetes-list-type": "atomic"
154+
}
155+
},
156+
"required": [
157+
"key",
158+
"operator"
159+
],
160+
"type": "object",
161+
"additionalProperties": false
162+
},
163+
"type": "array",
164+
"x-kubernetes-list-type": "atomic"
165+
},
166+
"matchLabels": {
167+
"additionalProperties": {
168+
"type": "string"
169+
},
170+
"description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
171+
"type": "object"
172+
}
173+
},
174+
"type": "object",
175+
"x-kubernetes-map-type": "atomic",
176+
"additionalProperties": false
108177
}
109178
},
110-
"required": [
111-
"kind",
112-
"name"
113-
],
114179
"type": "object",
180+
"x-kubernetes-validations": [
181+
{
182+
"message": "at least one of name or selector must be set for input provider references",
183+
"rule": "has(self.name) || has(self.selector)"
184+
},
185+
{
186+
"message": "cannot set both name and selector for input provider references",
187+
"rule": "!has(self.name) || !has(self.selector)"
188+
}
189+
],
115190
"additionalProperties": false
116191
},
117192
"type": "array"
@@ -198,6 +273,59 @@
198273
},
199274
"type": "array"
200275
},
276+
"history": {
277+
"description": "History contains the reconciliation history of the ResourceSet\nas a list of snapshots ordered by the last reconciled time.",
278+
"items": {
279+
"description": "Snapshot represents a point-in-time record of a group of resources reconciliation,\nincluding timing information, status, and a unique digest identifier.",
280+
"properties": {
281+
"digest": {
282+
"description": "Digest is the checksum in the format `<algo>:<hex>` of the resources in this snapshot.",
283+
"type": "string"
284+
},
285+
"firstReconciled": {
286+
"description": "FirstReconciled is the time when this revision was first reconciled to the cluster.",
287+
"format": "date-time",
288+
"type": "string"
289+
},
290+
"lastReconciled": {
291+
"description": "LastReconciled is the time when this revision was last reconciled to the cluster.",
292+
"format": "date-time",
293+
"type": "string"
294+
},
295+
"lastReconciledDuration": {
296+
"description": "LastReconciledDuration is time it took to reconcile the resources in this revision.",
297+
"type": "string"
298+
},
299+
"lastReconciledStatus": {
300+
"description": "LastReconciledStatus is the status of the last reconciliation.",
301+
"type": "string"
302+
},
303+
"metadata": {
304+
"additionalProperties": {
305+
"type": "string"
306+
},
307+
"description": "Metadata contains additional information about the snapshot.",
308+
"type": "object"
309+
},
310+
"totalReconciliations": {
311+
"description": "TotalReconciliations is the total number of reconciliations that have occurred for this snapshot.",
312+
"format": "int64",
313+
"type": "integer"
314+
}
315+
},
316+
"required": [
317+
"digest",
318+
"firstReconciled",
319+
"lastReconciled",
320+
"lastReconciledDuration",
321+
"lastReconciledStatus",
322+
"totalReconciliations"
323+
],
324+
"type": "object",
325+
"additionalProperties": false
326+
},
327+
"type": "array"
328+
},
201329
"inventory": {
202330
"description": "Inventory contains a list of Kubernetes resource object references\nlast applied on the cluster.",
203331
"properties": {

0 commit comments

Comments
 (0)