-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.jsonnet
More file actions
89 lines (85 loc) · 2.28 KB
/
Copy pathexample.jsonnet
File metadata and controls
89 lines (85 loc) · 2.28 KB
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
local d8virt = import 'lib/d8virt.jsonnet';
// Create list of virtual machines (bootstrap and master are manadatory)
local vms =
d8virt.vms('bootstrap', 1, { cpu: '1', mem: '4Gi', disk: '20Gi' }) +
d8virt.vms('master', 3, { cpu: '4', mem: '8Gi', disk: '40Gi' }) +
d8virt.vms('system', 2, { cpu: '4', mem: '8Gi', disk: '100Gi' }) +
d8virt.vms('worker', 2, { cpu: '8', mem: '16Gi', disk: '150Gi' }) +
[
// Example override: add specific nodeSelector for frontend VM
x { spec+: { nodeSelector: { 'node-role.deckhouse.io/frontend': '' } } }
for x in d8virt.vms('frontend', 1, { cpu: '2', mem: '4Gi', disk: '20Gi' })
];
// Specify overrides for virtual machine resources
local vmOverrides = {
spec+: {
bootDisk+: {
source: {
kind: 'ClusterVirtualMachineImage',
name: 'ubuntu-22.04',
},
storageClassName: 'linstor-thindata-r2',
},
userName: 'ubuntu',
sshPublicKey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAEQDSB2i8Sstj6kl9Ekyn7A3T',
},
};
// Specify Deckhouse config
local d8Config = [
{
apiVersion: 'deckhouse.io/v1',
kind: 'ClusterConfiguration',
clusterType: 'Static',
podSubnetCIDR: '10.112.0.0/16',
serviceSubnetCIDR: '10.223.0.0/16',
kubernetesVersion: 'Automatic',
clusterDomain: 'cluster.local',
},
{
apiVersion: 'deckhouse.io/v1',
kind: 'InitConfiguration',
deckhouse: {
releaseChannel: 'Stable',
configOverrides: {
global: {
modules: {
publicDomainTemplate: '%s.example.com',
},
},
cniCiliumEnabled: true,
cniCilium: {
tunnelMode: 'VXLAN',
},
},
},
},
{
apiVersion: 'deckhouse.io/v1',
kind: 'StaticClusterConfiguration',
internalNetworkCIDRs: [
'10.10.10.0/24',
],
},
];
// Start building root object
{
// List of VirtualMachines with overrides
vms: {
apiVersion: 'v1',
kind: 'List',
items: [
vm + vmOverrides
for vm in vms
],
},
// List of NodeGroups
ngs: {
apiVersion: 'v1',
kind: 'List',
items: d8virt.ngs($.vms),
},
// Deckhouse bootstrap config
config: std.manifestYamlStream(d8Config, false, false, false),
// Bootstrap script includes all above
script: d8virt.script(self.vms, self.ngs, self.config),
}