-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.cue
63 lines (51 loc) · 1.45 KB
/
schema.cue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#Cuemix: helm: {
// Helm charts are downloaded to a local path
destDir: string | *".charts"
// If untar = false, tgz files are stored and used
// If untar = true, tgz files are extracted then deleted
untar: bool | *false
// Some charts rely on capabilities.KubeVersion
kubeVersion: string | *""
}
#HelmChart: {
// repo can be a helm repo, oci repo, or a local directory
repo: string
chart: string
release: string
namespace: string
version: string
includeCRDs: bool | *false
values?: {...}
}
// Target for patches, the implementation is pretty much the same as kustomize
// https://github.com/kubernetes-sigs/kustomize/blob/master/examples/patchMultipleObjects.md
#Target: {
group?: string
version?: string
kind?: string
name?: string
namespace?: string
annotationSelector?: string
labelSelector?: string
}
#Operation: {
op: "add" | "remove" | "replace" | "move" | "copy" | "test"
path: string
from?: string
value?: _
}
cuemix: #Cuemix
helm?: [string]: #HelmChart
// Manifests can be loaded from a (yaml) file, directory, or URL
manifests?: [...string]
strategicpatch?: [string]: {
patch: [string]: _
// Target is optional for strategic patches,
// it will be derived from the patches gvk, name, and namespace by default
target: #Target
}
jsonpatch?: [string]: {
patch: [...#Operation]
// Target must be specified for json patches
target: #Target
}