-
Notifications
You must be signed in to change notification settings - Fork 0
/
kinetica-preflight.yaml
161 lines (161 loc) · 6.58 KB
/
kinetica-preflight.yaml
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
apiVersion: troubleshoot.sh/v1beta2
kind: Preflight
metadata:
name: kinetica
spec:
collectors:
- clusterInfo: {}
- clusterResources: {} # implicitly added if not defined in a spec
- logs:
namespace: velero
name: velero/logs
analyzers:
- clusterVersion:
outcomes:
- fail:
when: "< 1.25.0"
message: The application requires Kubernetes 1.25.0 or later, and recommends 1.28.0.
uri: https://www.kubernetes.io
- warn:
when: "< 1.28.0"
message: Your cluster meets the minimum version of Kubernetes, but we recommend you update to 1.28.0 or later.
uri: https://kubernetes.io
- pass:
message: Your cluster meets the recommended and required versions of Kubernetes.
- distribution:
checkName: Kubernetes distribution
outcomes:
- fail:
when: "== docker-desktop"
message: The application does not support Docker Desktop Clusters
- fail:
when: "== microk8s"
message: The application does not support Microk8s Clusters
- fail:
when: "== minikube"
message: The application does not support Minikube Clusters
- pass:
when: "== eks"
message: EKS is a supported distribution
- pass:
when: "== gke"
message: GKE is a supported distribution
- pass:
when: "== aks"
message: AKS is a supported distribution
- pass:
when: "== kurl"
message: KURL is a supported distribution
- pass:
when: "== digitalocean"
message: DigitalOcean is a supported distribution
- warn:
message: Unable to determine the distribution of Kubernetes
- nodeResources:
checkName: Must have a Kinetica Infra Node Group
filters:
allocatableMemory: 8Gi
cpuCapacity: "4"
selector:
matchLabel:
app.kinetica.com/pool: infra
outcomes:
- fail:
when: "count() < 1"
message: Must have 1 infra node with 8 GB (available) memory and 4 cores (on a single node).
- pass:
message: This cluster has a node with enough memory and cpu capacity to run the Kinetica Operators.
- nodeResources:
checkName: May have a Kinetica compute Node Group
filters:
allocatableMemory: 16Gi
cpuCapacity: "8"
selector:
matchLabel:
app.kinetica.com/pool: compute
outcomes:
- warn:
when: "count() < 1"
message: For a CPU Only installation the cluster should have 1 compute node with 16 GB (available) memory and 5 cores (on a single node).
- pass:
message: This cluster has a node with enough memory and cpu capacity for running Kinetica DB (CPU).
- nodeResources:
checkName: May have a Kinetica compute-gpu Node Group
filters:
allocatableMemory: 16Gi
cpuCapacity: "8"
selector:
matchLabel:
app.kinetica.com/pool: compute-gpu
outcomes:
- warn:
when: "count() < 1"
message: For a GPU installation the cluster should have 1 compute node with 16 GB (available) memory and 5 cores (on a single node).
- pass:
message: This cluster has a node with enough memory and cpu capacity for running Kinetica DB (GPU).
- nodeResources:
checkName: Every Infa node in the cluster must have at least 4 GB of memory, with 8 GB recommended
filters:
selector:
matchLabel:
app.kinetica.com/pool: infra
outcomes:
- fail:
when: "min(memoryCapacity) < 4Gi"
message: All Infra nodes must have at least 4 GB of memory.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- warn:
when: "min(memoryCapacity) < 8Gi"
message: All nodes are recommended to have at least 32 GB of memory.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- pass:
message: All Infra nodes have at least 8 GB of memory.
- nodeResources:
checkName: Every Compute node in the cluster must have at least 16 GB of memory, with 32 GB recommended
filters:
selector:
matchLabel:
app.kinetica.com/pool: compute
outcomes:
- fail:
when: "min(memoryCapacity) < 8Gi"
message: Every Compute nodes must have at least 8 GB of memory.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- warn:
when: "min(memoryCapacity) < 32Gi"
message: All nodes are recommended to have at least 32 GB of memory.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- pass:
message: All Infra nodes have at least 32 GB of memory.
- nodeResources:
checkName: Every node in the cluster must have at least 40 GB of ephemeral storage, with 100 GB recommended
outcomes:
- fail:
when: "min(ephemeralStorageCapacity) < 40Gi"
message: All nodes must have at least 40 GB of ephemeral storage.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- warn:
when: "min(ephemeralStorageCapacity) < 100Gi"
message: All nodes are recommended to have at least 100 GB of ephemeral storage.
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- pass:
message: All nodes have at least 100 GB of ephemeral storage.
- nodeResources:
checkName: Total CPU Cores in the cluster is 12 or greater
outcomes:
- fail:
when: "sum(cpuCapacity) < 4"
message: The cluster must contain at least 12 cores
uri: https://kurl.sh/docs/install-with-kurl/system-requirements
- pass:
message: There are at least 12 cores in the cluster
- storageClass:
checkName: Required storage classes
storageClassName: "default"
outcomes:
- fail:
message: Could not find a storage class called "default".
- pass:
message: A storage class called "default" is present.
- velero:
checkName: Is Velero Installed?