@ydkn/pulumi-components 0.8.8 → 0.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +7 -1
- package/index.js +7 -1
- package/index.js.map +1 -1
- package/lib/alpine/assets/init.sh +0 -0
- package/lib/alpine/config.d.ts +19 -0
- package/lib/alpine/config.js +194 -0
- package/lib/alpine/config.js.map +1 -0
- package/lib/alpine/deployment.js +1 -1
- package/lib/alpine/deployment.js.map +1 -1
- package/lib/alpine/host.d.ts +25 -0
- package/lib/alpine/host.js +96 -0
- package/lib/alpine/host.js.map +1 -0
- package/lib/alpine/index.d.ts +3 -1
- package/lib/alpine/index.js +3 -1
- package/lib/alpine/index.js.map +1 -1
- package/lib/avahi/deployment.d.ts +2 -0
- package/lib/avahi/deployment.js +43 -19
- package/lib/avahi/deployment.js.map +1 -1
- package/lib/avahi/service.d.ts +2 -2
- package/lib/avahi/service.js +9 -7
- package/lib/avahi/service.js.map +1 -1
- package/lib/certManager/certificate.js +1 -1
- package/lib/certManager/certificate.js.map +1 -1
- package/lib/certManager/issuer.d.ts +1 -1
- package/lib/certManager/operator.js +8 -8
- package/lib/certManager/operator.js.map +1 -1
- package/lib/cilium/deployment.d.ts +33 -0
- package/lib/cilium/deployment.js +112 -0
- package/lib/cilium/deployment.js.map +1 -0
- package/lib/cilium/index.d.ts +5 -0
- package/lib/cilium/index.js +6 -0
- package/lib/cilium/index.js.map +1 -0
- package/lib/cilium/l2AnnouncementPolicy.d.ts +22 -0
- package/lib/cilium/l2AnnouncementPolicy.js +25 -0
- package/lib/cilium/l2AnnouncementPolicy.js.map +1 -0
- package/lib/cilium/loadBalancerIPPool.d.ts +22 -0
- package/lib/cilium/loadBalancerIPPool.js +18 -0
- package/lib/cilium/loadBalancerIPPool.js.map +1 -0
- package/lib/cilium/localRedirectPolicy.d.ts +40 -0
- package/lib/cilium/localRedirectPolicy.js +13 -0
- package/lib/cilium/localRedirectPolicy.js.map +1 -0
- package/lib/cups/avahiService.d.ts +1 -1
- package/lib/cups/avahiService.js +1 -1
- package/lib/cups/avahiService.js.map +1 -1
- package/lib/cups/deployment.d.ts +1 -1
- package/lib/cups/deployment.js +3 -3
- package/lib/cups/deployment.js.map +1 -1
- package/lib/dashy/deployment.d.ts +35 -0
- package/lib/dashy/deployment.js +78 -0
- package/lib/dashy/deployment.js.map +1 -0
- package/lib/dashy/index.d.ts +2 -0
- package/lib/dashy/index.js +3 -0
- package/lib/dashy/index.js.map +1 -0
- package/lib/dhcpd/deployment.d.ts +6 -6
- package/lib/dhcpd/deployment.js +40 -30
- package/lib/dhcpd/deployment.js.map +1 -1
- package/lib/externalDns/operator.d.ts +2 -2
- package/lib/externalDns/operator.js +5 -16
- package/lib/externalDns/operator.js.map +1 -1
- package/lib/fcos/assets/install-ready.service +12 -0
- package/lib/fcos/assets/install-run.service +14 -0
- package/lib/fcos/assets/rpm-ostree-install.sh +0 -0
- package/lib/fcos/config.d.ts +2 -5
- package/lib/fcos/config.js +44 -34
- package/lib/fcos/config.js.map +1 -1
- package/lib/fcos/host.d.ts +8 -12
- package/lib/fcos/host.js +45 -39
- package/lib/fcos/host.js.map +1 -1
- package/lib/fcos/index.d.ts +3 -3
- package/lib/fcos/index.js.map +1 -1
- package/lib/flatcar/assets/install-ready.service +12 -0
- package/lib/flatcar/assets/install-run.service +14 -0
- package/lib/flatcar/config.d.ts +3 -5
- package/lib/flatcar/config.js +44 -42
- package/lib/flatcar/config.js.map +1 -1
- package/lib/flatcar/host.d.ts +8 -12
- package/lib/flatcar/host.js +39 -29
- package/lib/flatcar/host.js.map +1 -1
- package/lib/flatcar/index.d.ts +3 -3
- package/lib/flatcar/index.js.map +1 -1
- package/lib/gitlab/project.js +4 -4
- package/lib/gitlab/project.js.map +1 -1
- package/lib/grafana/alloy.d.ts +1 -1
- package/lib/grafana/alloy.js +10 -12
- package/lib/grafana/alloy.js.map +1 -1
- package/lib/grafana/deployment.js +2 -2
- package/lib/grafana/deployment.js.map +1 -1
- package/lib/hcloud/assets/alpine-install.sh +45 -0
- package/lib/hcloud/assets/fcos-install.sh +13 -6
- package/lib/hcloud/assets/flatcar-install.sh +2 -2
- package/lib/hcloud/cluster.d.ts +9 -2
- package/lib/hcloud/cluster.js +273 -117
- package/lib/hcloud/cluster.js.map +1 -1
- package/lib/homeAssistant/deployment.d.ts +38 -0
- package/lib/homeAssistant/deployment.js +183 -0
- package/lib/homeAssistant/deployment.js.map +1 -0
- package/lib/homeAssistant/index.d.ts +2 -0
- package/lib/homeAssistant/index.js +3 -0
- package/lib/homeAssistant/index.js.map +1 -0
- package/lib/jellyfin/deployment.d.ts +1 -1
- package/lib/jellyfin/deployment.js +2 -5
- package/lib/jellyfin/deployment.js.map +1 -1
- package/lib/k0s/cluster.js +9 -4
- package/lib/k0s/cluster.js.map +1 -1
- package/lib/kubernetes/assets/crashed-cleanup.sh +0 -0
- package/lib/kubernetes/crashedCleanup.js +19 -2
- package/lib/kubernetes/crashedCleanup.js.map +1 -1
- package/lib/kubernetes/index.d.ts +2 -1
- package/lib/kubernetes/index.js +2 -1
- package/lib/kubernetes/index.js.map +1 -1
- package/lib/kubernetes/interfaceBridge/assets/bridge.sh +43 -0
- package/lib/kubernetes/interfaceBridge/bridge.d.ts +6 -0
- package/lib/kubernetes/interfaceBridge/bridge.js +26 -0
- package/lib/kubernetes/interfaceBridge/bridge.js.map +1 -0
- package/lib/kubernetes/interfaceBridge/index.d.ts +2 -0
- package/lib/kubernetes/interfaceBridge/index.js +3 -0
- package/lib/kubernetes/interfaceBridge/index.js.map +1 -0
- package/lib/kubernetes/transformations/removeCrdDescriptions.js.map +1 -1
- package/lib/kubernetes/v1/secureIngress.js.map +1 -1
- package/lib/loki/deployment.js +8 -1
- package/lib/loki/deployment.js.map +1 -1
- package/lib/metallb/controller.d.ts +3 -0
- package/lib/metallb/controller.js +2 -0
- package/lib/metallb/controller.js.map +1 -1
- package/lib/mongodb/cluster.js +1 -1
- package/lib/mongodb/cluster.js.map +1 -1
- package/lib/musicAssistant/deployment.d.ts +26 -0
- package/lib/musicAssistant/deployment.js +77 -0
- package/lib/musicAssistant/deployment.js.map +1 -0
- package/lib/musicAssistant/index.d.ts +2 -0
- package/lib/musicAssistant/index.js +3 -0
- package/lib/musicAssistant/index.js.map +1 -0
- package/lib/netbird/agent.js +5 -4
- package/lib/netbird/agent.js.map +1 -1
- package/lib/netbird/assets/nftables.sh +0 -0
- package/lib/netbird/management.js +15 -0
- package/lib/netbird/management.js.map +1 -1
- package/lib/node/config.d.ts +37 -0
- package/lib/node/config.js +2 -0
- package/lib/node/config.js.map +1 -0
- package/lib/node/index.d.ts +2 -2
- package/lib/node/index.js.map +1 -1
- package/lib/node/node.d.ts +1 -1
- package/lib/oauth2Proxy/deployment.d.ts +20 -0
- package/lib/oauth2Proxy/deployment.js +56 -0
- package/lib/oauth2Proxy/deployment.js.map +1 -0
- package/lib/oauth2Proxy/index.d.ts +2 -0
- package/lib/oauth2Proxy/index.js +3 -0
- package/lib/oauth2Proxy/index.js.map +1 -0
- package/lib/paperless/deployment.d.ts +36 -0
- package/lib/paperless/deployment.js +164 -0
- package/lib/paperless/deployment.js.map +1 -0
- package/lib/paperless/index.d.ts +2 -0
- package/lib/paperless/index.js +3 -0
- package/lib/paperless/index.js.map +1 -0
- package/lib/plex/mediaServer.d.ts +1 -1
- package/lib/plex/mediaServer.js +3 -3
- package/lib/plex/mediaServer.js.map +1 -1
- package/lib/postgresql/cluster.js +1 -1
- package/lib/postgresql/cluster.js.map +1 -1
- package/lib/qbittorrent/deployment.d.ts +65 -0
- package/lib/qbittorrent/deployment.js +410 -0
- package/lib/qbittorrent/deployment.js.map +1 -0
- package/lib/qbittorrent/index.d.ts +2 -0
- package/lib/qbittorrent/index.js +3 -0
- package/lib/qbittorrent/index.js.map +1 -0
- package/lib/raspberrypi/cluster.d.ts +5 -2
- package/lib/raspberrypi/cluster.js +110 -76
- package/lib/raspberrypi/cluster.js.map +1 -1
- package/lib/redis/standalone.js +2 -2
- package/lib/rook/blockPool.js +1 -0
- package/lib/rook/blockPool.js.map +1 -1
- package/lib/rook/cluster.d.ts +0 -2
- package/lib/rook/cluster.js +10 -35
- package/lib/rook/cluster.js.map +1 -1
- package/lib/rook/filesystem.js +1 -1
- package/lib/rook/filesystem.js.map +1 -1
- package/lib/rook/operator.js +12 -2
- package/lib/rook/operator.js.map +1 -1
- package/lib/rook/sharedFilesystem.js +1 -0
- package/lib/rook/sharedFilesystem.js.map +1 -1
- package/lib/samba/avahiService.d.ts +1 -1
- package/lib/samba/avahiService.js +1 -1
- package/lib/samba/avahiService.js.map +1 -1
- package/lib/samba/dc.js +26 -0
- package/lib/samba/dc.js.map +1 -1
- package/lib/samba/deployment.d.ts +2 -1
- package/lib/samba/deployment.js +4 -5
- package/lib/samba/deployment.js.map +1 -1
- package/lib/torproxy/deployment.js +2 -3
- package/lib/torproxy/deployment.js.map +1 -1
- package/lib/traefik/controller.d.ts +12 -0
- package/lib/traefik/controller.js +31 -1
- package/lib/traefik/controller.js.map +1 -1
- package/lib/transmission/deployment.d.ts +5 -3
- package/lib/transmission/deployment.js +27 -11
- package/lib/transmission/deployment.js.map +1 -1
- package/lib/ubuntu/assets/init.sh +0 -0
- package/lib/ubuntu/deployment.js +1 -1
- package/lib/ubuntu/deployment.js.map +1 -1
- package/lib/unifi/index.d.ts +2 -2
- package/lib/unifi/index.js +2 -2
- package/lib/unifi/index.js.map +1 -1
- package/lib/unifi/{networkServer.d.ts → osServer.d.ts} +7 -16
- package/lib/unifi/{networkServer.js → osServer.js} +90 -140
- package/lib/unifi/osServer.js.map +1 -0
- package/lib/utils/args.js +1 -1
- package/lib/utils/args.js.map +1 -1
- package/lib/velero/operator.d.ts +2 -2
- package/lib/velero/operator.js +6 -6
- package/lib/velero/operator.js.map +1 -1
- package/lib/zitadel/deployment.js +1 -1
- package/lib/zitadel/deployment.js.map +1 -1
- package/package.json +31 -31
- package/lib/unifi/assets/init-mongo.sh +0 -19
- package/lib/unifi/networkServer.js.map +0 -1
package/lib/hcloud/cluster.js
CHANGED
|
@@ -11,6 +11,7 @@ import * as crypto from "crypto";
|
|
|
11
11
|
import { ComponentResource } from "../common/index.js";
|
|
12
12
|
import * as fcos from "../fcos/index.js";
|
|
13
13
|
import * as flatcar from "../flatcar/index.js";
|
|
14
|
+
import * as alpine from "../alpine/index.js";
|
|
14
15
|
import * as k0s from "../k0s/index.js";
|
|
15
16
|
import { Kubernetes } from "./kubernetes.js";
|
|
16
17
|
export class Cluster extends ComponentResource {
|
|
@@ -27,10 +28,15 @@ export class Cluster extends ComponentResource {
|
|
|
27
28
|
flatcar: {
|
|
28
29
|
DEFAULT: { primary: "eth0", private: [1, 2].map((i) => `eth${i}`) },
|
|
29
30
|
},
|
|
31
|
+
alpine: {
|
|
32
|
+
DEFAULT: { primary: "eth0", private: [1, 2].map((i) => `eth${i}`) },
|
|
33
|
+
},
|
|
30
34
|
};
|
|
31
|
-
static dnsServers = ["2a01:4ff:ff00::add:1", "2a01:4ff:ff00::add:2"];
|
|
35
|
+
static dnsServers = ["185.12.64.1", "185.12.64.2"]; // ["2a01:4ff:ff00::add:1", "2a01:4ff:ff00::add:2"];
|
|
32
36
|
static gatewayIPv6 = "fe80::1";
|
|
33
37
|
static ignitionConfigPathRemote = "/tmp/config.ign";
|
|
38
|
+
static cloudInitMetaDataPathRemote = "/tmp/meta-data";
|
|
39
|
+
static cloudInitUserDataPathRemote = "/tmp/user-data";
|
|
34
40
|
static installScriptPathRemote = "/tmp/install.sh";
|
|
35
41
|
sshKey;
|
|
36
42
|
network;
|
|
@@ -83,7 +89,7 @@ export class Cluster extends ComponentResource {
|
|
|
83
89
|
.apply(([result]) => {
|
|
84
90
|
return result.images.filter((image) => image.osFlavor === "ubuntu").sort((a, b) => (a > b ? -1 : 1))[0].name;
|
|
85
91
|
});
|
|
86
|
-
const servers = this.createServers(args.nodes, serverImage, this.sshKey, this.sshPrivateKey.privateKeyOpenssh, this.nodeSubnet, this.placementGroup, args.
|
|
92
|
+
const servers = this.createServers(args.nodes, serverImage, this.sshKey, this.sshPrivateKey.privateKeyOpenssh, this.nodeSubnet, this.placementGroup, args.packages, args.filesystems, args.users, args.files, args.run, args.sshAuthorizedKeys, args.protect);
|
|
87
93
|
this.nodes = servers.apply((servers) => servers.map((s) => s.node));
|
|
88
94
|
const nodeIPs = pulumi.all([this.nodes]).apply(([nodes]) => pulumi.all(nodes).apply((nodes) => {
|
|
89
95
|
const nodeIPs = [];
|
|
@@ -186,7 +192,7 @@ export class Cluster extends ComponentResource {
|
|
|
186
192
|
}, { ...emptyOpts, providers: [this.provider] });
|
|
187
193
|
this.registerOutputs();
|
|
188
194
|
}
|
|
189
|
-
createServers(nodes, image, sshKey, sshPrivateKey, subnet, placementGroup,
|
|
195
|
+
createServers(nodes, image, sshKey, sshPrivateKey, subnet, placementGroup, packages, filesystems, users, files, run, sshAuthorizedKeys, protect) {
|
|
190
196
|
const emptyOpts = this.opts();
|
|
191
197
|
const hcloudOpts = this.opts(hcloud.Provider);
|
|
192
198
|
return pulumi.all([nodes]).apply(([nodes]) => {
|
|
@@ -232,113 +238,21 @@ export class Cluster extends ComponentResource {
|
|
|
232
238
|
}, { ...hcloudOpts, protect }));
|
|
233
239
|
}
|
|
234
240
|
const serverNetwork = pulumi.all([server.id, server.name]).apply(([serverId, serverName]) => {
|
|
235
|
-
return new hcloud.ServerNetwork(serverName, { serverId: parseInt(serverId), subnetId: subnet.id }, hcloudOpts);
|
|
241
|
+
return new hcloud.ServerNetwork(serverName, { serverId: parseInt(serverId), subnetId: subnet.id }, { ...hcloudOpts, dependsOn: [server] });
|
|
236
242
|
});
|
|
237
243
|
const node = pulumi
|
|
238
|
-
.all([hostname,
|
|
239
|
-
.apply(([hostname,
|
|
240
|
-
const ethernetInterfaces = Cluster.ethernetInterfaceName(nodeGroup.operatingSystem, serverType);
|
|
244
|
+
.all([hostname, filesystems, files, server])
|
|
245
|
+
.apply(([hostname, filesystems, files, server]) => {
|
|
241
246
|
let host;
|
|
242
247
|
switch (nodeGroup.operatingSystem) {
|
|
243
248
|
case "fcos":
|
|
244
|
-
host = new fcos.Host(hostname,
|
|
245
|
-
hostname,
|
|
246
|
-
filesystems: dataVolume !== undefined
|
|
247
|
-
? [
|
|
248
|
-
{
|
|
249
|
-
device: pulumi.interpolate `/dev/disk/by-id/scsi-0HC_Volume_${dataVolume.id}`,
|
|
250
|
-
path: "/var/lib/k0s",
|
|
251
|
-
format: dataVolume.format.apply((format) => format ?? "ext4"),
|
|
252
|
-
},
|
|
253
|
-
]
|
|
254
|
-
: [],
|
|
255
|
-
files: pulumi.all(files ?? []).apply((files) => {
|
|
256
|
-
files.push({
|
|
257
|
-
path: `/etc/NetworkManager/system-connections/${ethernetInterfaces.primary}.nmconnection`,
|
|
258
|
-
contents: [
|
|
259
|
-
"[connection]",
|
|
260
|
-
"type=ethernet",
|
|
261
|
-
`id=${ethernetInterfaces.primary}`,
|
|
262
|
-
`interface-name=${ethernetInterfaces.primary}`,
|
|
263
|
-
"[ipv4]",
|
|
264
|
-
"method=auto",
|
|
265
|
-
"ignore-auto-dns=true",
|
|
266
|
-
"[ipv6]",
|
|
267
|
-
"method=manual",
|
|
268
|
-
`address1=${ipv6Address}`,
|
|
269
|
-
`gateway=${Cluster.gatewayIPv6}`,
|
|
270
|
-
`dns=${Cluster.dnsServers.join(";")}`,
|
|
271
|
-
].join("\n"),
|
|
272
|
-
mode: 0o600,
|
|
273
|
-
});
|
|
274
|
-
for (const iface of ethernetInterfaces.private) {
|
|
275
|
-
files.push({
|
|
276
|
-
path: `/etc/NetworkManager/system-connections/${iface}.nmconnection`,
|
|
277
|
-
contents: [
|
|
278
|
-
"[connection]",
|
|
279
|
-
"type=ethernet",
|
|
280
|
-
`id=${iface}`,
|
|
281
|
-
`interface-name=${iface}`,
|
|
282
|
-
"[ipv4]",
|
|
283
|
-
"method=auto",
|
|
284
|
-
"never-default=true",
|
|
285
|
-
"[ipv6]",
|
|
286
|
-
"method=auto",
|
|
287
|
-
"never-default=true",
|
|
288
|
-
].join("\n"),
|
|
289
|
-
mode: 0o600,
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
return files;
|
|
293
|
-
}),
|
|
294
|
-
links,
|
|
295
|
-
systemdUnits,
|
|
296
|
-
users: [{ name: "core", sshAuthorizedKeys }],
|
|
297
|
-
sshUsers: [{ name: Cluster.sshUsername, groups: ["sudo"] }],
|
|
298
|
-
}, emptyOpts);
|
|
249
|
+
host = new fcos.Host(hostname, this.mergeNodeArgs(nodeGroup, hostname, dataVolume, packages, filesystems, users, files, run, sshAuthorizedKeys, this.networkManagerConfigFiles(nodeGroup, server)), emptyOpts);
|
|
299
250
|
break;
|
|
300
251
|
case "flatcar":
|
|
301
|
-
host = new flatcar.Host(hostname,
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
{
|
|
306
|
-
device: pulumi.interpolate `/dev/disk/by-id/scsi-0HC_Volume_${dataVolume.id}`,
|
|
307
|
-
path: "/var/lib/k0s",
|
|
308
|
-
format: dataVolume.format.apply((format) => format ?? "ext4"),
|
|
309
|
-
},
|
|
310
|
-
]
|
|
311
|
-
: [],
|
|
312
|
-
files: pulumi.all(files ?? []).apply((files) => {
|
|
313
|
-
files.push({
|
|
314
|
-
path: `/etc/systemd/network/10-${ethernetInterfaces.primary}.network`,
|
|
315
|
-
contents: [
|
|
316
|
-
"[Match]",
|
|
317
|
-
`Name=${ethernetInterfaces.primary}`,
|
|
318
|
-
"[Link]",
|
|
319
|
-
"RequiredForOnline=routable",
|
|
320
|
-
"[Network]",
|
|
321
|
-
"DHCP=yes",
|
|
322
|
-
`Address=${ipv6Address}/64`,
|
|
323
|
-
`Gateway=${Cluster.gatewayIPv6}`,
|
|
324
|
-
...Cluster.dnsServers.map((dns) => `DNS=${dns}`),
|
|
325
|
-
].join("\n"),
|
|
326
|
-
mode: 0o644,
|
|
327
|
-
});
|
|
328
|
-
for (const iface of ethernetInterfaces.private) {
|
|
329
|
-
files.push({
|
|
330
|
-
path: `/etc/systemd/network/10-${iface}.network`,
|
|
331
|
-
contents: ["[Match]", `Name=${iface}`, "[Network]", "DHCP=yes", "IPv6AcceptRA=true"].join("\n"),
|
|
332
|
-
mode: 0o644,
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
return files;
|
|
336
|
-
}),
|
|
337
|
-
links,
|
|
338
|
-
systemdUnits,
|
|
339
|
-
users: [{ name: "core", sshAuthorizedKeys }],
|
|
340
|
-
sshUsers: [{ name: Cluster.sshUsername, groups: ["sudo"] }],
|
|
341
|
-
}, emptyOpts);
|
|
252
|
+
host = new flatcar.Host(hostname, this.mergeNodeArgs(nodeGroup, hostname, dataVolume, packages, filesystems, users, files, run, sshAuthorizedKeys, this.networkdConfigFiles(nodeGroup, server)), emptyOpts);
|
|
253
|
+
break;
|
|
254
|
+
case "alpine":
|
|
255
|
+
host = new alpine.Host(hostname, this.mergeNodeArgs(nodeGroup, hostname, dataVolume, packages, filesystems, users, files, run, sshAuthorizedKeys, this.interfacesConfigFiles(nodeGroup, server)), emptyOpts);
|
|
342
256
|
break;
|
|
343
257
|
default:
|
|
344
258
|
throw new Error(`Unsupported operating system ${nodeGroup.operatingSystem}`);
|
|
@@ -353,17 +267,9 @@ export class Cluster extends ComponentResource {
|
|
|
353
267
|
labels: nodeGroup.labels ?? {},
|
|
354
268
|
taints: nodeGroup.taints ?? [],
|
|
355
269
|
username: Cluster.sshUsername,
|
|
356
|
-
privateKey: host.
|
|
357
|
-
for (const username in sshPrivateKeys) {
|
|
358
|
-
if (username === Cluster.sshUsername) {
|
|
359
|
-
// eslint-disable-next-line security/detect-object-injection
|
|
360
|
-
return sshPrivateKeys[username].privateKeyOpenssh;
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
throw new Error(`No private key found for user ${Cluster.sshUsername}`);
|
|
364
|
-
}),
|
|
270
|
+
privateKey: host.deployPrivateKey.privateKeyOpenssh,
|
|
365
271
|
operatingSystem: nodeGroup.operatingSystem,
|
|
366
|
-
|
|
272
|
+
initConfig: host.initConfig,
|
|
367
273
|
disabled: nodeGroup.disabled ?? false,
|
|
368
274
|
};
|
|
369
275
|
});
|
|
@@ -375,7 +281,10 @@ export class Cluster extends ComponentResource {
|
|
|
375
281
|
return this.configureFcosNode(sshPrivateKey, server, node);
|
|
376
282
|
case "flatcar":
|
|
377
283
|
return this.configureFlatcarNode(sshPrivateKey, server, node);
|
|
284
|
+
case "alpine":
|
|
285
|
+
return this.configureAlpineNode(sshPrivateKey, server, node);
|
|
378
286
|
default:
|
|
287
|
+
//eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
379
288
|
throw new Error(`Unsupported operating system ${os}`);
|
|
380
289
|
}
|
|
381
290
|
}),
|
|
@@ -385,6 +294,180 @@ export class Cluster extends ComponentResource {
|
|
|
385
294
|
return results;
|
|
386
295
|
});
|
|
387
296
|
}
|
|
297
|
+
mergeNodeArgs(serverNode, hostname, dataVolume, packages, filesystems, users, files, run, sshAuthorizedKeys, additionalFiles) {
|
|
298
|
+
return {
|
|
299
|
+
hostname: pulumi.output(hostname),
|
|
300
|
+
packages: pulumi
|
|
301
|
+
.all([serverNode])
|
|
302
|
+
.apply(([serverNode]) => pulumi
|
|
303
|
+
.all([packages])
|
|
304
|
+
.apply(([packages]) => pulumi
|
|
305
|
+
.all(packages ?? [])
|
|
306
|
+
.apply((packages) => pulumi.all(serverNode.packages ?? []).apply((nodePackages) => packages.concat(nodePackages))))),
|
|
307
|
+
filesystems: pulumi.all([serverNode]).apply(([serverNode]) => pulumi.all([filesystems]).apply(([filesystems]) => pulumi.all(filesystems ?? []).apply((filesystems) => pulumi.all(serverNode.filesystems ?? []).apply((nodeFilesystems) => pulumi.all([dataVolume]).apply(([dataVolume]) => pulumi
|
|
308
|
+
.all([dataVolume ? dataVolume.id : undefined, dataVolume ? dataVolume.format : undefined])
|
|
309
|
+
.apply(([dataVolumeId, dataVolumeFormat]) => (dataVolumeId !== undefined && dataVolumeFormat !== undefined
|
|
310
|
+
? [
|
|
311
|
+
{
|
|
312
|
+
device: `/dev/disk/by-id/scsi-0HC_Volume_${dataVolumeId}`,
|
|
313
|
+
path: "/var/lib/k0s",
|
|
314
|
+
format: dataVolumeFormat ?? "ext4",
|
|
315
|
+
},
|
|
316
|
+
]
|
|
317
|
+
: [])
|
|
318
|
+
.concat(filesystems)
|
|
319
|
+
.concat(nodeFilesystems))))))),
|
|
320
|
+
users: pulumi.all([serverNode]).apply(([serverNode]) => pulumi.all([users]).apply(([users]) => pulumi.all(users ?? []).apply((users) => pulumi.all(serverNode.users ?? []).apply((nodeUsers) => {
|
|
321
|
+
const allUsers = [];
|
|
322
|
+
for (const user of users ?? []) {
|
|
323
|
+
for (const [i, u] of (allUsers ?? []).entries()) {
|
|
324
|
+
if (user.name === u.name) {
|
|
325
|
+
allUsers[i] = { ...u, ...user }; // eslint-disable-line security/detect-object-injection
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
for (const user of nodeUsers ?? []) {
|
|
331
|
+
for (const [i, u] of (allUsers ?? []).entries()) {
|
|
332
|
+
if (user.name === u.name) {
|
|
333
|
+
allUsers[i] = { ...u, ...user }; // eslint-disable-line security/detect-object-injection
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return allUsers;
|
|
339
|
+
})))),
|
|
340
|
+
files: pulumi.all([serverNode, hostname]).apply(([serverNode, hostname]) => pulumi.all([files]).apply(([files]) => pulumi.all(files ?? []).apply((files) => pulumi.all([additionalFiles]).apply(([additionalFiles]) => pulumi.all(additionalFiles ?? []).apply((additionalFiles) => pulumi.all(serverNode.files ?? []).apply((nodeFiles) => files
|
|
341
|
+
.concat(additionalFiles)
|
|
342
|
+
.concat(nodeFiles)
|
|
343
|
+
.concat([
|
|
344
|
+
{
|
|
345
|
+
path: "/var/lib/calico/nodename",
|
|
346
|
+
user: "root",
|
|
347
|
+
group: "root",
|
|
348
|
+
mode: 0o644,
|
|
349
|
+
contents: hostname,
|
|
350
|
+
},
|
|
351
|
+
]))))))),
|
|
352
|
+
run: pulumi
|
|
353
|
+
.all([serverNode])
|
|
354
|
+
.apply(([serverNode]) => pulumi
|
|
355
|
+
.all([run])
|
|
356
|
+
.apply(([run]) => pulumi
|
|
357
|
+
.all(run ?? [])
|
|
358
|
+
.apply((run) => pulumi.all(serverNode.run ?? []).apply((nodeRun) => run.concat(nodeRun))))),
|
|
359
|
+
sshAuthorizedKeys,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
networkManagerConfigFiles(nodeGroup, server) {
|
|
363
|
+
return pulumi
|
|
364
|
+
.all([nodeGroup.operatingSystem, server.serverType, server.ipv6Address])
|
|
365
|
+
.apply(([os, serverType, ipv6Address]) => {
|
|
366
|
+
const configs = [];
|
|
367
|
+
const ethernetInterfaces = Cluster.ethernetInterfaceName(os, serverType);
|
|
368
|
+
configs.push({
|
|
369
|
+
path: `/etc/NetworkManager/system-connections/${ethernetInterfaces.primary}.nmconnection`,
|
|
370
|
+
contents: [
|
|
371
|
+
"[connection]",
|
|
372
|
+
"type=ethernet",
|
|
373
|
+
`id=${ethernetInterfaces.primary}`,
|
|
374
|
+
`interface-name=${ethernetInterfaces.primary}`,
|
|
375
|
+
"[ipv4]",
|
|
376
|
+
"method=auto",
|
|
377
|
+
"ignore-auto-dns=true",
|
|
378
|
+
"[ipv6]",
|
|
379
|
+
"method=manual",
|
|
380
|
+
`address1=${ipv6Address}`,
|
|
381
|
+
`gateway=${Cluster.gatewayIPv6}`,
|
|
382
|
+
`dns=${Cluster.dnsServers.join(";")}`,
|
|
383
|
+
].join("\n"),
|
|
384
|
+
mode: 0o600,
|
|
385
|
+
});
|
|
386
|
+
for (const iface of ethernetInterfaces.private) {
|
|
387
|
+
configs.push({
|
|
388
|
+
path: `/etc/NetworkManager/system-connections/${iface}.nmconnection`,
|
|
389
|
+
contents: [
|
|
390
|
+
"[connection]",
|
|
391
|
+
"type=ethernet",
|
|
392
|
+
`id=${iface}`,
|
|
393
|
+
`interface-name=${iface}`,
|
|
394
|
+
"[ipv4]",
|
|
395
|
+
"method=auto",
|
|
396
|
+
"never-default=true",
|
|
397
|
+
"[ipv6]",
|
|
398
|
+
"method=auto",
|
|
399
|
+
"never-default=true",
|
|
400
|
+
].join("\n"),
|
|
401
|
+
mode: 0o600,
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
return configs;
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
networkdConfigFiles(nodeGroup, server) {
|
|
408
|
+
return pulumi
|
|
409
|
+
.all([nodeGroup.operatingSystem, server.serverType, server.ipv6Address])
|
|
410
|
+
.apply(([os, serverType, ipv6Address]) => {
|
|
411
|
+
const configs = [];
|
|
412
|
+
const ethernetInterfaces = Cluster.ethernetInterfaceName(os, serverType);
|
|
413
|
+
configs.push({
|
|
414
|
+
path: `/etc/systemd/network/10-${ethernetInterfaces.primary}.network`,
|
|
415
|
+
contents: [
|
|
416
|
+
"[Match]",
|
|
417
|
+
`Name=${ethernetInterfaces.primary}`,
|
|
418
|
+
"[Link]",
|
|
419
|
+
"RequiredForOnline=routable",
|
|
420
|
+
"[Network]",
|
|
421
|
+
"DHCP=yes",
|
|
422
|
+
`Address=${ipv6Address}/64`,
|
|
423
|
+
`Gateway=${Cluster.gatewayIPv6}`,
|
|
424
|
+
...Cluster.dnsServers.map((dns) => `DNS=${dns}`),
|
|
425
|
+
].join("\n"),
|
|
426
|
+
mode: 0o644,
|
|
427
|
+
});
|
|
428
|
+
for (const iface of ethernetInterfaces.private) {
|
|
429
|
+
configs.push({
|
|
430
|
+
path: `/etc/systemd/network/10-${iface}.network`,
|
|
431
|
+
contents: ["[Match]", `Name=${iface}`, "[Network]", "DHCP=yes", "IPv6AcceptRA=true"].join("\n"),
|
|
432
|
+
mode: 0o644,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
return configs;
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
interfacesConfigFiles(nodeGroup, server) {
|
|
439
|
+
return pulumi
|
|
440
|
+
.all([nodeGroup.operatingSystem, server.name, server.serverType, server.ipv6Address])
|
|
441
|
+
.apply(([os, name, serverType, ipv6Address]) => {
|
|
442
|
+
const ethernetInterfaces = Cluster.ethernetInterfaceName(os, serverType);
|
|
443
|
+
return [
|
|
444
|
+
{
|
|
445
|
+
path: "/etc/network/interfaces",
|
|
446
|
+
contents: [
|
|
447
|
+
"auto lo",
|
|
448
|
+
"iface lo inet loopback",
|
|
449
|
+
"",
|
|
450
|
+
`auto ${ethernetInterfaces.primary}`,
|
|
451
|
+
`iface ${ethernetInterfaces.primary} inet dhcp`,
|
|
452
|
+
"",
|
|
453
|
+
`iface ${ethernetInterfaces.primary} inet6 static`,
|
|
454
|
+
`address ${ipv6Address}`,
|
|
455
|
+
"netmask 64",
|
|
456
|
+
`gateway ${Cluster.gatewayIPv6}`,
|
|
457
|
+
`post-up sh -c "echo -n '' > /etc/resolv.conf"`,
|
|
458
|
+
...Cluster.dnsServers.map((dns) => `post-up sh -c "echo 'nameserver ${dns}' >> /etc/resolv.conf"`),
|
|
459
|
+
...(ethernetInterfaces.private ?? []).map((iface) => [
|
|
460
|
+
"",
|
|
461
|
+
`auto ${iface}`,
|
|
462
|
+
`iface ${iface} inet manual`,
|
|
463
|
+
`post-up /sbin/udhcpc -b -R -p /var/run/udhcpc.${iface}.pid -o -O 1 -i ${iface} -x hostname:${name}`,
|
|
464
|
+
].join("\n")),
|
|
465
|
+
].join("\n"),
|
|
466
|
+
mode: 0o644,
|
|
467
|
+
},
|
|
468
|
+
];
|
|
469
|
+
});
|
|
470
|
+
}
|
|
388
471
|
configureFcosNode(sshPrivateKey, server, node) {
|
|
389
472
|
const emptyOpts = this.opts();
|
|
390
473
|
return pulumi.all([server.name, server.ipv4Address, node]).apply(([nodeName, ipv4Address, node]) => {
|
|
@@ -402,7 +485,8 @@ export class Cluster extends ComponentResource {
|
|
|
402
485
|
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
403
486
|
const fcosConfigFile = new command.remote.CopyToRemote(`${nodeName}-fcos-config`, {
|
|
404
487
|
connection,
|
|
405
|
-
|
|
488
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
489
|
+
source: this.fileAssetFromString(node.initConfig),
|
|
406
490
|
remotePath: Cluster.ignitionConfigPathRemote,
|
|
407
491
|
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
408
492
|
const fcosInstall = new command.remote.Command(`${nodeName}-fcos-install`, {
|
|
@@ -411,6 +495,7 @@ export class Cluster extends ComponentResource {
|
|
|
411
495
|
`chmod +x ${Cluster.installScriptPathRemote}`,
|
|
412
496
|
`${Cluster.installScriptPathRemote} /dev/sda ${Cluster.ignitionConfigPathRemote}`,
|
|
413
497
|
].join(" && "),
|
|
498
|
+
addPreviousOutputInEnv: false,
|
|
414
499
|
}, { ...emptyOpts, dependsOn: [fcosInstallScript, fcosConfigFile], ignoreChanges: ["connection", "create"] });
|
|
415
500
|
return new command.remote.Command(`${nodeName}-fcos-up`, {
|
|
416
501
|
connection: {
|
|
@@ -420,7 +505,8 @@ export class Cluster extends ComponentResource {
|
|
|
420
505
|
perDialTimeout: 10,
|
|
421
506
|
dialErrorLimit: 30,
|
|
422
507
|
},
|
|
423
|
-
create: "echo
|
|
508
|
+
create: "until test -f /tmp/install-ready; do echo 'Waiting for install to finish...'; sleep 2; done",
|
|
509
|
+
addPreviousOutputInEnv: false,
|
|
424
510
|
}, { ...emptyOpts, dependsOn: fcosInstall, ignoreChanges: ["connection", "create"] });
|
|
425
511
|
});
|
|
426
512
|
}
|
|
@@ -441,7 +527,8 @@ export class Cluster extends ComponentResource {
|
|
|
441
527
|
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
442
528
|
const flatcarConfigFile = new command.remote.CopyToRemote(`${nodeName}-flatcar-config`, {
|
|
443
529
|
connection,
|
|
444
|
-
|
|
530
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
531
|
+
source: this.fileAssetFromString(node.initConfig),
|
|
445
532
|
remotePath: Cluster.ignitionConfigPathRemote,
|
|
446
533
|
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
447
534
|
const flatcarInstall = new command.remote.Command(`${nodeName}-flatcar-install`, {
|
|
@@ -450,6 +537,7 @@ export class Cluster extends ComponentResource {
|
|
|
450
537
|
`chmod +x ${Cluster.installScriptPathRemote}`,
|
|
451
538
|
`${Cluster.installScriptPathRemote} /dev/sda ${Cluster.ignitionConfigPathRemote}`,
|
|
452
539
|
].join(" && "),
|
|
540
|
+
addPreviousOutputInEnv: false,
|
|
453
541
|
}, { ...emptyOpts, dependsOn: [flatcarInstallScript, flatcarConfigFile], ignoreChanges: ["connection", "create"] });
|
|
454
542
|
return new command.remote.Command(`${nodeName}-flatcar-up`, {
|
|
455
543
|
connection: {
|
|
@@ -459,10 +547,68 @@ export class Cluster extends ComponentResource {
|
|
|
459
547
|
perDialTimeout: 10,
|
|
460
548
|
dialErrorLimit: 30,
|
|
461
549
|
},
|
|
462
|
-
create: "echo
|
|
550
|
+
create: "until test -f /tmp/install-ready; do echo 'Waiting for install to finish...'; sleep 2; done",
|
|
551
|
+
addPreviousOutputInEnv: false,
|
|
463
552
|
}, { ...emptyOpts, dependsOn: flatcarInstall, ignoreChanges: ["connection", "create"] });
|
|
464
553
|
});
|
|
465
554
|
}
|
|
555
|
+
configureAlpineNode(sshPrivateKey, server, node) {
|
|
556
|
+
const emptyOpts = this.opts();
|
|
557
|
+
return pulumi.all([server.name, server.ipv4Address, node]).apply(([nodeName, ipv4Address, node]) => {
|
|
558
|
+
const connection = {
|
|
559
|
+
host: ipv4Address,
|
|
560
|
+
privateKey: sshPrivateKey,
|
|
561
|
+
user: Cluster.rescueSshUsername,
|
|
562
|
+
perDialTimeout: 10,
|
|
563
|
+
dialErrorLimit: 30,
|
|
564
|
+
};
|
|
565
|
+
const installScript = new command.remote.CopyToRemote(`${nodeName}-alpine-install-script`, {
|
|
566
|
+
connection,
|
|
567
|
+
source: new pulumi.asset.FileAsset(path.join(path.dirname(url.fileURLToPath(import.meta.url)), "assets", "alpine-install.sh")),
|
|
568
|
+
remotePath: Cluster.installScriptPathRemote,
|
|
569
|
+
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
570
|
+
const metaDataFile = new command.remote.CopyToRemote(`${nodeName}-alpine-meta-data`, {
|
|
571
|
+
connection,
|
|
572
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
|
|
573
|
+
source: this.fileAssetFromString(node.initConfig.metaData),
|
|
574
|
+
remotePath: Cluster.cloudInitMetaDataPathRemote,
|
|
575
|
+
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
576
|
+
const userDataFile = new command.remote.CopyToRemote(`${nodeName}-alpine-user-data`, {
|
|
577
|
+
connection,
|
|
578
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-member-access
|
|
579
|
+
source: this.fileAssetFromString(node.initConfig.userData),
|
|
580
|
+
remotePath: Cluster.cloudInitUserDataPathRemote,
|
|
581
|
+
}, { ...emptyOpts, dependsOn: server, ignoreChanges: ["connection", "source", "remotePath"] });
|
|
582
|
+
const installCommand = new command.remote.Command(`${nodeName}-alpine-install`, {
|
|
583
|
+
connection,
|
|
584
|
+
create: [
|
|
585
|
+
`chmod +x ${Cluster.installScriptPathRemote}`,
|
|
586
|
+
[
|
|
587
|
+
Cluster.installScriptPathRemote,
|
|
588
|
+
"/dev/sda",
|
|
589
|
+
Cluster.cloudInitMetaDataPathRemote,
|
|
590
|
+
Cluster.cloudInitUserDataPathRemote,
|
|
591
|
+
].join(" "),
|
|
592
|
+
].join(" && "),
|
|
593
|
+
addPreviousOutputInEnv: false,
|
|
594
|
+
}, {
|
|
595
|
+
...emptyOpts,
|
|
596
|
+
dependsOn: [installScript, metaDataFile, userDataFile],
|
|
597
|
+
ignoreChanges: ["connection", "create"],
|
|
598
|
+
});
|
|
599
|
+
return new command.remote.Command(`${nodeName}-alpine-up`, {
|
|
600
|
+
connection: {
|
|
601
|
+
host: ipv4Address,
|
|
602
|
+
privateKey: node.privateKey,
|
|
603
|
+
user: Cluster.sshUsername,
|
|
604
|
+
perDialTimeout: 10,
|
|
605
|
+
dialErrorLimit: 30,
|
|
606
|
+
},
|
|
607
|
+
create: "until test -f /tmp/install-ready; do echo 'Waiting for install to finish...'; sleep 2; done",
|
|
608
|
+
addPreviousOutputInEnv: false,
|
|
609
|
+
}, { ...emptyOpts, dependsOn: installCommand, ignoreChanges: ["connection", "create"] });
|
|
610
|
+
});
|
|
611
|
+
}
|
|
466
612
|
fileAssetFromString(content) {
|
|
467
613
|
return pulumi.all([content]).apply(([content]) => {
|
|
468
614
|
const filename = `/tmp/${crypto.createHash("sha1").update(content).digest("hex")}`;
|
|
@@ -495,6 +641,16 @@ export class Cluster extends ComponentResource {
|
|
|
495
641
|
}
|
|
496
642
|
}
|
|
497
643
|
return { primary: primaryInterface, private: privateInterfaces };
|
|
644
|
+
case "alpine":
|
|
645
|
+
primaryInterface = Cluster.interfacesMap.alpine.DEFAULT.primary;
|
|
646
|
+
privateInterfaces = Cluster.interfacesMap.alpine.DEFAULT.private;
|
|
647
|
+
for (const [pattern, iface] of Object.entries(Cluster.interfacesMap.alpine)) {
|
|
648
|
+
if (RegExp(pattern).exec(serverType)) {
|
|
649
|
+
primaryInterface = iface.primary;
|
|
650
|
+
privateInterfaces = iface.private;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
return { primary: primaryInterface, private: privateInterfaces };
|
|
498
654
|
default:
|
|
499
655
|
throw new Error(`Unsupported operating system ${os}`);
|
|
500
656
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../lib/hcloud/cluster.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../../lib/hcloud/cluster.ts"],"names":[],"mappings":"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"}
|