@ydkn/pulumi-components 0.8.7 → 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.
Files changed (237) hide show
  1. package/index.d.ts +7 -1
  2. package/index.js +7 -1
  3. package/index.js.map +1 -1
  4. package/lib/alpine/assets/init.sh +0 -0
  5. package/lib/alpine/config.d.ts +19 -0
  6. package/lib/alpine/config.js +194 -0
  7. package/lib/alpine/config.js.map +1 -0
  8. package/lib/alpine/deployment.js +10 -1
  9. package/lib/alpine/deployment.js.map +1 -1
  10. package/lib/alpine/host.d.ts +25 -0
  11. package/lib/alpine/host.js +96 -0
  12. package/lib/alpine/host.js.map +1 -0
  13. package/lib/alpine/index.d.ts +3 -1
  14. package/lib/alpine/index.js +3 -1
  15. package/lib/alpine/index.js.map +1 -1
  16. package/lib/avahi/deployment.d.ts +2 -0
  17. package/lib/avahi/deployment.js +43 -19
  18. package/lib/avahi/deployment.js.map +1 -1
  19. package/lib/avahi/service.d.ts +2 -2
  20. package/lib/avahi/service.js +9 -7
  21. package/lib/avahi/service.js.map +1 -1
  22. package/lib/certManager/certificate.js +1 -1
  23. package/lib/certManager/certificate.js.map +1 -1
  24. package/lib/certManager/issuer.d.ts +1 -1
  25. package/lib/certManager/operator.js +15 -9
  26. package/lib/certManager/operator.js.map +1 -1
  27. package/lib/cilium/deployment.d.ts +33 -0
  28. package/lib/cilium/deployment.js +112 -0
  29. package/lib/cilium/deployment.js.map +1 -0
  30. package/lib/cilium/index.d.ts +5 -0
  31. package/lib/cilium/index.js +6 -0
  32. package/lib/cilium/index.js.map +1 -0
  33. package/lib/cilium/l2AnnouncementPolicy.d.ts +22 -0
  34. package/lib/cilium/l2AnnouncementPolicy.js +25 -0
  35. package/lib/cilium/l2AnnouncementPolicy.js.map +1 -0
  36. package/lib/cilium/loadBalancerIPPool.d.ts +22 -0
  37. package/lib/cilium/loadBalancerIPPool.js +18 -0
  38. package/lib/cilium/loadBalancerIPPool.js.map +1 -0
  39. package/lib/cilium/localRedirectPolicy.d.ts +40 -0
  40. package/lib/cilium/localRedirectPolicy.js +13 -0
  41. package/lib/cilium/localRedirectPolicy.js.map +1 -0
  42. package/lib/cups/avahiService.d.ts +1 -1
  43. package/lib/cups/avahiService.js +1 -1
  44. package/lib/cups/avahiService.js.map +1 -1
  45. package/lib/cups/deployment.d.ts +1 -1
  46. package/lib/cups/deployment.js +3 -3
  47. package/lib/cups/deployment.js.map +1 -1
  48. package/lib/dashy/deployment.d.ts +35 -0
  49. package/lib/dashy/deployment.js +78 -0
  50. package/lib/dashy/deployment.js.map +1 -0
  51. package/lib/dashy/index.d.ts +2 -0
  52. package/lib/dashy/index.js +3 -0
  53. package/lib/dashy/index.js.map +1 -0
  54. package/lib/dhcpd/deployment.d.ts +6 -6
  55. package/lib/dhcpd/deployment.js +40 -30
  56. package/lib/dhcpd/deployment.js.map +1 -1
  57. package/lib/externalDns/operator.d.ts +2 -4
  58. package/lib/externalDns/operator.js +5 -36
  59. package/lib/externalDns/operator.js.map +1 -1
  60. package/lib/fcos/assets/install-ready.service +12 -0
  61. package/lib/fcos/assets/install-run.service +14 -0
  62. package/lib/fcos/assets/rpm-ostree-install.sh +0 -0
  63. package/lib/fcos/config.d.ts +2 -5
  64. package/lib/fcos/config.js +44 -34
  65. package/lib/fcos/config.js.map +1 -1
  66. package/lib/fcos/host.d.ts +8 -12
  67. package/lib/fcos/host.js +45 -40
  68. package/lib/fcos/host.js.map +1 -1
  69. package/lib/fcos/index.d.ts +3 -3
  70. package/lib/fcos/index.js.map +1 -1
  71. package/lib/flatcar/assets/install-ready.service +12 -0
  72. package/lib/flatcar/assets/install-run.service +14 -0
  73. package/lib/flatcar/config.d.ts +3 -5
  74. package/lib/flatcar/config.js +44 -42
  75. package/lib/flatcar/config.js.map +1 -1
  76. package/lib/flatcar/host.d.ts +8 -12
  77. package/lib/flatcar/host.js +39 -29
  78. package/lib/flatcar/host.js.map +1 -1
  79. package/lib/flatcar/index.d.ts +3 -3
  80. package/lib/flatcar/index.js.map +1 -1
  81. package/lib/gitlab/project.js +4 -4
  82. package/lib/gitlab/project.js.map +1 -1
  83. package/lib/gitlab/renovate.d.ts +2 -0
  84. package/lib/gitlab/renovate.js +10 -1
  85. package/lib/gitlab/renovate.js.map +1 -1
  86. package/lib/grafana/alloy.d.ts +1 -2
  87. package/lib/grafana/alloy.js +10 -13
  88. package/lib/grafana/alloy.js.map +1 -1
  89. package/lib/grafana/deployment.js +2 -2
  90. package/lib/grafana/deployment.js.map +1 -1
  91. package/lib/hcloud/assets/alpine-install.sh +45 -0
  92. package/lib/hcloud/assets/fcos-install.sh +13 -6
  93. package/lib/hcloud/assets/flatcar-install.sh +2 -2
  94. package/lib/hcloud/cluster.d.ts +9 -2
  95. package/lib/hcloud/cluster.js +273 -117
  96. package/lib/hcloud/cluster.js.map +1 -1
  97. package/lib/homeAssistant/deployment.d.ts +38 -0
  98. package/lib/homeAssistant/deployment.js +183 -0
  99. package/lib/homeAssistant/deployment.js.map +1 -0
  100. package/lib/homeAssistant/index.d.ts +2 -0
  101. package/lib/homeAssistant/index.js +3 -0
  102. package/lib/homeAssistant/index.js.map +1 -0
  103. package/lib/hostPathProvisioner/index.d.ts +2 -1
  104. package/lib/hostPathProvisioner/index.js +2 -1
  105. package/lib/hostPathProvisioner/index.js.map +1 -1
  106. package/lib/hostPathProvisioner/sharedFilesystem.d.ts +40 -0
  107. package/lib/hostPathProvisioner/sharedFilesystem.js +124 -0
  108. package/lib/hostPathProvisioner/sharedFilesystem.js.map +1 -0
  109. package/lib/jellyfin/deployment.d.ts +1 -1
  110. package/lib/jellyfin/deployment.js +11 -5
  111. package/lib/jellyfin/deployment.js.map +1 -1
  112. package/lib/k0s/cluster.js +9 -4
  113. package/lib/k0s/cluster.js.map +1 -1
  114. package/lib/kubernetes/assets/crashed-cleanup.sh +0 -0
  115. package/lib/kubernetes/crashedCleanup.js +20 -3
  116. package/lib/kubernetes/crashedCleanup.js.map +1 -1
  117. package/lib/kubernetes/index.d.ts +2 -1
  118. package/lib/kubernetes/index.js +2 -1
  119. package/lib/kubernetes/index.js.map +1 -1
  120. package/lib/kubernetes/interfaceBridge/assets/bridge.sh +43 -0
  121. package/lib/kubernetes/interfaceBridge/bridge.d.ts +6 -0
  122. package/lib/kubernetes/interfaceBridge/bridge.js +26 -0
  123. package/lib/kubernetes/interfaceBridge/bridge.js.map +1 -0
  124. package/lib/kubernetes/interfaceBridge/index.d.ts +2 -0
  125. package/lib/kubernetes/interfaceBridge/index.js +3 -0
  126. package/lib/kubernetes/interfaceBridge/index.js.map +1 -0
  127. package/lib/kubernetes/transformations/removeCrdDescriptions.js.map +1 -1
  128. package/lib/kubernetes/v1/secureIngress.js.map +1 -1
  129. package/lib/kubernetes/v1/service.js +1 -1
  130. package/lib/kubernetes/v1/service.js.map +1 -1
  131. package/lib/loki/deployment.js +8 -1
  132. package/lib/loki/deployment.js.map +1 -1
  133. package/lib/metallb/controller.d.ts +3 -0
  134. package/lib/metallb/controller.js +2 -0
  135. package/lib/metallb/controller.js.map +1 -1
  136. package/lib/mongodb/cluster.js +2 -2
  137. package/lib/mongodb/cluster.js.map +1 -1
  138. package/lib/mongodb/operator.js +1 -1
  139. package/lib/musicAssistant/deployment.d.ts +26 -0
  140. package/lib/musicAssistant/deployment.js +77 -0
  141. package/lib/musicAssistant/deployment.js.map +1 -0
  142. package/lib/musicAssistant/index.d.ts +2 -0
  143. package/lib/musicAssistant/index.js +3 -0
  144. package/lib/musicAssistant/index.js.map +1 -0
  145. package/lib/netbird/agent.js +5 -4
  146. package/lib/netbird/agent.js.map +1 -1
  147. package/lib/netbird/assets/nftables.sh +0 -0
  148. package/lib/netbird/management.d.ts +0 -2
  149. package/lib/netbird/management.js +15 -16
  150. package/lib/netbird/management.js.map +1 -1
  151. package/lib/nginx/deployment.d.ts +1 -0
  152. package/lib/nginx/deployment.js +56 -42
  153. package/lib/nginx/deployment.js.map +1 -1
  154. package/lib/node/config.d.ts +37 -0
  155. package/lib/node/config.js +2 -0
  156. package/lib/node/config.js.map +1 -0
  157. package/lib/node/index.d.ts +2 -2
  158. package/lib/node/index.js.map +1 -1
  159. package/lib/node/node.d.ts +1 -1
  160. package/lib/oauth2Proxy/deployment.d.ts +20 -0
  161. package/lib/oauth2Proxy/deployment.js +56 -0
  162. package/lib/oauth2Proxy/deployment.js.map +1 -0
  163. package/lib/oauth2Proxy/index.d.ts +2 -0
  164. package/lib/oauth2Proxy/index.js +3 -0
  165. package/lib/oauth2Proxy/index.js.map +1 -0
  166. package/lib/paperless/deployment.d.ts +36 -0
  167. package/lib/paperless/deployment.js +164 -0
  168. package/lib/paperless/deployment.js.map +1 -0
  169. package/lib/paperless/index.d.ts +2 -0
  170. package/lib/paperless/index.js +3 -0
  171. package/lib/paperless/index.js.map +1 -0
  172. package/lib/plex/mediaServer.d.ts +1 -1
  173. package/lib/plex/mediaServer.js +12 -3
  174. package/lib/plex/mediaServer.js.map +1 -1
  175. package/lib/plex/playlists.d.ts +1 -0
  176. package/lib/plex/playlists.js +3 -1
  177. package/lib/plex/playlists.js.map +1 -1
  178. package/lib/postgresql/cluster.js +1 -1
  179. package/lib/postgresql/cluster.js.map +1 -1
  180. package/lib/qbittorrent/deployment.d.ts +65 -0
  181. package/lib/qbittorrent/deployment.js +410 -0
  182. package/lib/qbittorrent/deployment.js.map +1 -0
  183. package/lib/qbittorrent/index.d.ts +2 -0
  184. package/lib/qbittorrent/index.js +3 -0
  185. package/lib/qbittorrent/index.js.map +1 -0
  186. package/lib/raspberrypi/cluster.d.ts +5 -2
  187. package/lib/raspberrypi/cluster.js +110 -76
  188. package/lib/raspberrypi/cluster.js.map +1 -1
  189. package/lib/redis/standalone.js +2 -2
  190. package/lib/rook/blockPool.js +1 -0
  191. package/lib/rook/blockPool.js.map +1 -1
  192. package/lib/rook/cluster.d.ts +0 -2
  193. package/lib/rook/cluster.js +10 -35
  194. package/lib/rook/cluster.js.map +1 -1
  195. package/lib/rook/filesystem.js +1 -1
  196. package/lib/rook/filesystem.js.map +1 -1
  197. package/lib/rook/operator.js +12 -2
  198. package/lib/rook/operator.js.map +1 -1
  199. package/lib/rook/sharedFilesystem.js +1 -0
  200. package/lib/rook/sharedFilesystem.js.map +1 -1
  201. package/lib/samba/avahiService.d.ts +1 -1
  202. package/lib/samba/avahiService.js +1 -1
  203. package/lib/samba/avahiService.js.map +1 -1
  204. package/lib/samba/dc.js +28 -2
  205. package/lib/samba/dc.js.map +1 -1
  206. package/lib/samba/deployment.d.ts +2 -1
  207. package/lib/samba/deployment.js +13 -5
  208. package/lib/samba/deployment.js.map +1 -1
  209. package/lib/torproxy/deployment.js +2 -3
  210. package/lib/torproxy/deployment.js.map +1 -1
  211. package/lib/traefik/controller.d.ts +12 -0
  212. package/lib/traefik/controller.js +31 -1
  213. package/lib/traefik/controller.js.map +1 -1
  214. package/lib/traefik/middleware.d.ts +5 -0
  215. package/lib/traefik/middleware.js.map +1 -1
  216. package/lib/transmission/deployment.d.ts +5 -3
  217. package/lib/transmission/deployment.js +47 -16
  218. package/lib/transmission/deployment.js.map +1 -1
  219. package/lib/ubuntu/assets/init.sh +0 -0
  220. package/lib/ubuntu/deployment.js +10 -1
  221. package/lib/ubuntu/deployment.js.map +1 -1
  222. package/lib/unifi/index.d.ts +2 -2
  223. package/lib/unifi/index.js +2 -2
  224. package/lib/unifi/index.js.map +1 -1
  225. package/lib/unifi/{networkServer.d.ts → osServer.d.ts} +7 -16
  226. package/lib/unifi/{networkServer.js → osServer.js} +90 -140
  227. package/lib/unifi/osServer.js.map +1 -0
  228. package/lib/utils/args.js +1 -1
  229. package/lib/utils/args.js.map +1 -1
  230. package/lib/velero/operator.d.ts +2 -2
  231. package/lib/velero/operator.js +8 -8
  232. package/lib/velero/operator.js.map +1 -1
  233. package/lib/zitadel/deployment.js +1 -1
  234. package/lib/zitadel/deployment.js.map +1 -1
  235. package/package.json +34 -35
  236. package/lib/unifi/assets/init-mongo.sh +0 -19
  237. package/lib/unifi/networkServer.js.map +0 -1
@@ -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.files, args.links, args.systemdUnits, args.sshAuthorizedKeys, args.protect);
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, files, links, systemdUnits, sshAuthorizedKeys, protect) {
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, files, links, systemdUnits, sshAuthorizedKeys, server.ipv6Address, server.serverType])
239
- .apply(([hostname, files, links, systemdUnits, sshAuthorizedKeys, ipv6Address, serverType]) => {
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
- hostname,
303
- filesystems: dataVolume !== undefined
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.sshPrivateKeys.apply((sshPrivateKeys) => {
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
- ignitionConfig: host.ignitionConfig,
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
- source: this.fileAssetFromString(node.ignitionConfig),
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 up",
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
- source: this.fileAssetFromString(node.ignitionConfig),
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 up",
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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"}