@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.
Files changed (216) 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 +1 -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 +8 -8
  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 -2
  58. package/lib/externalDns/operator.js +5 -16
  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 -39
  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/grafana/alloy.d.ts +1 -1
  84. package/lib/grafana/alloy.js +10 -12
  85. package/lib/grafana/alloy.js.map +1 -1
  86. package/lib/grafana/deployment.js +2 -2
  87. package/lib/grafana/deployment.js.map +1 -1
  88. package/lib/hcloud/assets/alpine-install.sh +45 -0
  89. package/lib/hcloud/assets/fcos-install.sh +13 -6
  90. package/lib/hcloud/assets/flatcar-install.sh +2 -2
  91. package/lib/hcloud/cluster.d.ts +9 -2
  92. package/lib/hcloud/cluster.js +273 -117
  93. package/lib/hcloud/cluster.js.map +1 -1
  94. package/lib/homeAssistant/deployment.d.ts +38 -0
  95. package/lib/homeAssistant/deployment.js +183 -0
  96. package/lib/homeAssistant/deployment.js.map +1 -0
  97. package/lib/homeAssistant/index.d.ts +2 -0
  98. package/lib/homeAssistant/index.js +3 -0
  99. package/lib/homeAssistant/index.js.map +1 -0
  100. package/lib/jellyfin/deployment.d.ts +1 -1
  101. package/lib/jellyfin/deployment.js +2 -5
  102. package/lib/jellyfin/deployment.js.map +1 -1
  103. package/lib/k0s/cluster.js +9 -4
  104. package/lib/k0s/cluster.js.map +1 -1
  105. package/lib/kubernetes/assets/crashed-cleanup.sh +0 -0
  106. package/lib/kubernetes/crashedCleanup.js +19 -2
  107. package/lib/kubernetes/crashedCleanup.js.map +1 -1
  108. package/lib/kubernetes/index.d.ts +2 -1
  109. package/lib/kubernetes/index.js +2 -1
  110. package/lib/kubernetes/index.js.map +1 -1
  111. package/lib/kubernetes/interfaceBridge/assets/bridge.sh +43 -0
  112. package/lib/kubernetes/interfaceBridge/bridge.d.ts +6 -0
  113. package/lib/kubernetes/interfaceBridge/bridge.js +26 -0
  114. package/lib/kubernetes/interfaceBridge/bridge.js.map +1 -0
  115. package/lib/kubernetes/interfaceBridge/index.d.ts +2 -0
  116. package/lib/kubernetes/interfaceBridge/index.js +3 -0
  117. package/lib/kubernetes/interfaceBridge/index.js.map +1 -0
  118. package/lib/kubernetes/transformations/removeCrdDescriptions.js.map +1 -1
  119. package/lib/kubernetes/v1/secureIngress.js.map +1 -1
  120. package/lib/loki/deployment.js +8 -1
  121. package/lib/loki/deployment.js.map +1 -1
  122. package/lib/metallb/controller.d.ts +3 -0
  123. package/lib/metallb/controller.js +2 -0
  124. package/lib/metallb/controller.js.map +1 -1
  125. package/lib/mongodb/cluster.js +1 -1
  126. package/lib/mongodb/cluster.js.map +1 -1
  127. package/lib/musicAssistant/deployment.d.ts +26 -0
  128. package/lib/musicAssistant/deployment.js +77 -0
  129. package/lib/musicAssistant/deployment.js.map +1 -0
  130. package/lib/musicAssistant/index.d.ts +2 -0
  131. package/lib/musicAssistant/index.js +3 -0
  132. package/lib/musicAssistant/index.js.map +1 -0
  133. package/lib/netbird/agent.js +5 -4
  134. package/lib/netbird/agent.js.map +1 -1
  135. package/lib/netbird/assets/nftables.sh +0 -0
  136. package/lib/netbird/management.js +15 -0
  137. package/lib/netbird/management.js.map +1 -1
  138. package/lib/node/config.d.ts +37 -0
  139. package/lib/node/config.js +2 -0
  140. package/lib/node/config.js.map +1 -0
  141. package/lib/node/index.d.ts +2 -2
  142. package/lib/node/index.js.map +1 -1
  143. package/lib/node/node.d.ts +1 -1
  144. package/lib/oauth2Proxy/deployment.d.ts +20 -0
  145. package/lib/oauth2Proxy/deployment.js +56 -0
  146. package/lib/oauth2Proxy/deployment.js.map +1 -0
  147. package/lib/oauth2Proxy/index.d.ts +2 -0
  148. package/lib/oauth2Proxy/index.js +3 -0
  149. package/lib/oauth2Proxy/index.js.map +1 -0
  150. package/lib/paperless/deployment.d.ts +36 -0
  151. package/lib/paperless/deployment.js +164 -0
  152. package/lib/paperless/deployment.js.map +1 -0
  153. package/lib/paperless/index.d.ts +2 -0
  154. package/lib/paperless/index.js +3 -0
  155. package/lib/paperless/index.js.map +1 -0
  156. package/lib/plex/mediaServer.d.ts +1 -1
  157. package/lib/plex/mediaServer.js +3 -3
  158. package/lib/plex/mediaServer.js.map +1 -1
  159. package/lib/postgresql/cluster.js +1 -1
  160. package/lib/postgresql/cluster.js.map +1 -1
  161. package/lib/qbittorrent/deployment.d.ts +65 -0
  162. package/lib/qbittorrent/deployment.js +410 -0
  163. package/lib/qbittorrent/deployment.js.map +1 -0
  164. package/lib/qbittorrent/index.d.ts +2 -0
  165. package/lib/qbittorrent/index.js +3 -0
  166. package/lib/qbittorrent/index.js.map +1 -0
  167. package/lib/raspberrypi/cluster.d.ts +5 -2
  168. package/lib/raspberrypi/cluster.js +110 -76
  169. package/lib/raspberrypi/cluster.js.map +1 -1
  170. package/lib/redis/standalone.js +2 -2
  171. package/lib/rook/blockPool.js +1 -0
  172. package/lib/rook/blockPool.js.map +1 -1
  173. package/lib/rook/cluster.d.ts +0 -2
  174. package/lib/rook/cluster.js +10 -35
  175. package/lib/rook/cluster.js.map +1 -1
  176. package/lib/rook/filesystem.js +1 -1
  177. package/lib/rook/filesystem.js.map +1 -1
  178. package/lib/rook/operator.js +12 -2
  179. package/lib/rook/operator.js.map +1 -1
  180. package/lib/rook/sharedFilesystem.js +1 -0
  181. package/lib/rook/sharedFilesystem.js.map +1 -1
  182. package/lib/samba/avahiService.d.ts +1 -1
  183. package/lib/samba/avahiService.js +1 -1
  184. package/lib/samba/avahiService.js.map +1 -1
  185. package/lib/samba/dc.js +26 -0
  186. package/lib/samba/dc.js.map +1 -1
  187. package/lib/samba/deployment.d.ts +2 -1
  188. package/lib/samba/deployment.js +4 -5
  189. package/lib/samba/deployment.js.map +1 -1
  190. package/lib/torproxy/deployment.js +2 -3
  191. package/lib/torproxy/deployment.js.map +1 -1
  192. package/lib/traefik/controller.d.ts +12 -0
  193. package/lib/traefik/controller.js +31 -1
  194. package/lib/traefik/controller.js.map +1 -1
  195. package/lib/transmission/deployment.d.ts +5 -3
  196. package/lib/transmission/deployment.js +27 -11
  197. package/lib/transmission/deployment.js.map +1 -1
  198. package/lib/ubuntu/assets/init.sh +0 -0
  199. package/lib/ubuntu/deployment.js +1 -1
  200. package/lib/ubuntu/deployment.js.map +1 -1
  201. package/lib/unifi/index.d.ts +2 -2
  202. package/lib/unifi/index.js +2 -2
  203. package/lib/unifi/index.js.map +1 -1
  204. package/lib/unifi/{networkServer.d.ts → osServer.d.ts} +7 -16
  205. package/lib/unifi/{networkServer.js → osServer.js} +90 -140
  206. package/lib/unifi/osServer.js.map +1 -0
  207. package/lib/utils/args.js +1 -1
  208. package/lib/utils/args.js.map +1 -1
  209. package/lib/velero/operator.d.ts +2 -2
  210. package/lib/velero/operator.js +6 -6
  211. package/lib/velero/operator.js.map +1 -1
  212. package/lib/zitadel/deployment.js +1 -1
  213. package/lib/zitadel/deployment.js.map +1 -1
  214. package/package.json +31 -31
  215. package/lib/unifi/assets/init-mongo.sh +0 -19
  216. package/lib/unifi/networkServer.js.map +0 -1
@@ -15,16 +15,8 @@ export class Config extends ComponentResource {
15
15
  constructor(name, args, opts) {
16
16
  super("fcos:config", name, args, opts);
17
17
  this.ignitionConfig = pulumi
18
- .all([
19
- this.defaultConfig(),
20
- args.hostname,
21
- args.users,
22
- args.disks,
23
- args.filesystems,
24
- args.files,
25
- args.systemdUnits,
26
- ])
27
- .apply(([config, hostname, users, disks, filesystems, files, systemdUnits]) => {
18
+ .all([this.defaultConfig(), args.hostname, args.packages, args.users, args.filesystems, args.files, args.run])
19
+ .apply(([config, hostname, packages, users, filesystems, files, run]) => {
28
20
  /* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
29
21
  if (hostname !== undefined) {
30
22
  config.storage.files.push({
@@ -34,30 +26,23 @@ export class Config extends ComponentResource {
34
26
  overwrite: true,
35
27
  });
36
28
  }
29
+ for (const pkg of packages ?? []) {
30
+ config.storage.files.push({
31
+ path: `/etc/rpm-ostree-install/${pkg}`,
32
+ contents: this.encodeContents(pkg),
33
+ mode: 0o644,
34
+ overwrite: true,
35
+ });
36
+ }
37
37
  for (const user of users ?? []) {
38
+ user.sshAuthorizedKeys = (user.sshAuthorizedKeys ?? []).map((key) => key.trim());
38
39
  config.passwd.users.push(user);
39
40
  }
40
- for (const disk of disks ?? []) {
41
- config.storage.disks.push({
42
- device: disk.device,
43
- partitions: disk.partitions.map((partition) => {
44
- return {
45
- label: partition.label,
46
- size_mib: partition.size,
47
- start_mib: partition.start,
48
- number: partition.number,
49
- resize: partition.resize,
50
- };
51
- }),
52
- wipe_table: disk.wipeTable,
53
- });
54
- }
55
41
  for (const filesystem of filesystems ?? []) {
56
42
  config.storage.filesystems.push({
57
43
  device: filesystem.device,
58
44
  path: filesystem.path,
59
45
  format: filesystem.format,
60
- label: filesystem.label,
61
46
  });
62
47
  if (filesystem.path !== undefined) {
63
48
  const checkSystemdName = filesystem.device.replace(/-/g, "\\x2d").replace(/^\//, "").replace(/\//g, "-");
@@ -85,12 +70,17 @@ export class Config extends ComponentResource {
85
70
  path: file.path,
86
71
  contents: this.encodeContents(file.contents),
87
72
  mode: file.mode ?? 0o644,
88
- overwrite: file.overwrite ?? true,
73
+ user: file.user,
74
+ group: file.group,
75
+ overwrite: true,
89
76
  });
90
77
  }
91
- for (const unit of systemdUnits ?? []) {
92
- config.systemd.units.push(unit);
93
- }
78
+ config.storage.files.push({
79
+ path: "/usr/local/sbin/install-run",
80
+ contents: this.encodeContents(["#!/bin/bash", "", ...(run ?? []), "", "exit 0"].join("\n")),
81
+ mode: 0o755,
82
+ overwrite: true,
83
+ });
94
84
  return JSON.stringify(config);
95
85
  });
96
86
  this.registerOutputs();
@@ -107,6 +97,12 @@ export class Config extends ComponentResource {
107
97
  filesystems: [],
108
98
  directories: [{ path: "/etc/rpm-ostree-install" }],
109
99
  files: [
100
+ {
101
+ path: "/etc/modules-load.d/wireguard.conf",
102
+ contents: this.encodeContents("wireguard"),
103
+ mode: 0o644,
104
+ overwrite: true,
105
+ },
110
106
  {
111
107
  path: "/etc/sysctl.d/20-silence-audit.conf",
112
108
  contents: this.encodeContents("kernel.printk=4"),
@@ -114,8 +110,12 @@ export class Config extends ComponentResource {
114
110
  overwrite: true,
115
111
  },
116
112
  {
117
- path: "/etc/sysctl.d/10-fs-inotify.conf",
118
- contents: this.encodeContents("fs.inotify.max_user_instances = 8192\nfs.inotify.max_user_watches = 524288"),
113
+ path: "/etc/sysctl.d/10-fs.conf",
114
+ contents: this.encodeContents([
115
+ "fs.file-max = 65536",
116
+ "fs.inotify.max_user_instances = 8192",
117
+ "fs.inotify.max_user_watches = 524288",
118
+ ].join("\n")),
119
119
  overwrite: true,
120
120
  },
121
121
  {
@@ -128,7 +128,6 @@ export class Config extends ComponentResource {
128
128
  contents: this.encodeContents("net.ipv6.conf.all.forwarding = 1"),
129
129
  overwrite: true,
130
130
  },
131
- { path: "/etc/systemd/resolved.conf", append: [this.encodeContents("LLMNR=no")], overwrite: false },
132
131
  {
133
132
  path: "/usr/local/sbin/rpm-ostree-install",
134
133
  contents: this.encodeContents(this.assetContent("rpm-ostree-install.sh")),
@@ -136,15 +135,26 @@ export class Config extends ComponentResource {
136
135
  overwrite: true,
137
136
  },
138
137
  ],
139
- links: [],
140
138
  },
141
139
  systemd: {
142
140
  units: [
141
+ { mask: true, name: "docker.service" },
142
+ { mask: true, name: "docker.socket" },
143
143
  {
144
144
  name: "rpm-ostree-install.service",
145
145
  enabled: true,
146
146
  contents: this.assetContent("rpm-ostree-install.service"),
147
147
  },
148
+ {
149
+ name: "install-ready.service",
150
+ enabled: true,
151
+ contents: this.assetContent("install-ready.service"),
152
+ },
153
+ {
154
+ name: "install-run.service",
155
+ enabled: true,
156
+ contents: this.assetContent("install-run.service"),
157
+ },
148
158
  ],
149
159
  },
150
160
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/fcos/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/fcos/config.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,17 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import * as tls from "@pulumi/tls";
3
3
  import { ComponentResource } from "../common/index.js";
4
- import { ConfigArgs } from "./config.js";
5
- export interface HostUserArgs {
6
- name: pulumi.Input<string>;
7
- groups?: pulumi.Input<pulumi.Input<string>[]>;
8
- }
9
- export interface HostArgs extends ConfigArgs {
10
- sshUsers?: pulumi.Input<pulumi.Input<HostUserArgs>[]>;
4
+ import { OperatingSystemConfigArgs } from "../node/index.js";
5
+ export interface HostArgs extends OperatingSystemConfigArgs {
6
+ sshAuthorizedKeys?: pulumi.Input<pulumi.Input<string>[]>;
11
7
  }
12
8
  export declare class Host extends ComponentResource {
13
- private static readonly defaultModules;
9
+ static readonly defaultUsername = "core";
10
+ private static readonly defaultDeployUsername;
14
11
  private static readonly defaultPackages;
15
- readonly sshPrivateKeys: pulumi.Output<{
16
- [key: string]: tls.PrivateKey;
17
- }>;
18
- readonly ignitionConfig: pulumi.Output<string>;
12
+ readonly deployUsername: string;
13
+ readonly deployPrivateKey: tls.PrivateKey;
14
+ readonly initConfig: pulumi.Output<string>;
19
15
  /**
20
16
  * Create a new FCOS host resource.
21
17
  * @param name The name of the FCOS host resource.
package/lib/fcos/host.js CHANGED
@@ -3,17 +3,20 @@ import * as tls from "@pulumi/tls";
3
3
  import { ComponentResource } from "../common/index.js";
4
4
  import { Config } from "./config.js";
5
5
  export class Host extends ComponentResource {
6
- static defaultModules = ["wireguard"];
6
+ static defaultUsername = "core";
7
+ static defaultDeployUsername = "pulumi";
7
8
  static defaultPackages = [
8
9
  "netcat",
9
10
  "tcpdump",
10
11
  "iperf3",
11
12
  "htop",
12
- "golang-gvisor",
13
- "container-selinux",
13
+ "glances",
14
+ "tmux",
15
+ "smartmontools",
14
16
  ];
15
- sshPrivateKeys;
16
- ignitionConfig;
17
+ deployUsername;
18
+ deployPrivateKey;
19
+ initConfig;
17
20
  /**
18
21
  * Create a new FCOS host resource.
19
22
  * @param name The name of the FCOS host resource.
@@ -23,45 +26,48 @@ export class Host extends ComponentResource {
23
26
  constructor(name, args, opts) {
24
27
  super("fcos:host", name, args, opts);
25
28
  const emptyOpts = this.opts();
26
- this.sshPrivateKeys = pulumi.all([args.sshUsers]).apply(([sshUsers]) => {
27
- const sshPrivateKeys = {};
28
- for (const sshUser of sshUsers ?? []) {
29
- sshPrivateKeys[sshUser.name] = new tls.PrivateKey(`${name}-${sshUser.name}`, { algorithm: "ED25519" }, emptyOpts);
30
- }
31
- return sshPrivateKeys;
32
- });
33
- this.ignitionConfig = new Config(name, {
29
+ this.deployUsername = Host.defaultDeployUsername;
30
+ this.deployPrivateKey = new tls.PrivateKey(`${name}-${Host.defaultDeployUsername}`, { algorithm: "ED25519" }, emptyOpts);
31
+ this.initConfig = new Config(name, {
34
32
  ...args,
35
- files: pulumi.all([args.files ?? []]).apply(([files]) => files.concat(Host.defaultModules
36
- .map((module) => ({
37
- path: `/etc/modules-load.d/${module}.conf`,
38
- contents: module,
39
- mode: 0o644,
40
- }))
41
- .concat(Host.defaultPackages.map((pkg) => ({
42
- path: `/etc/rpm-ostree-install/${pkg}`,
43
- contents: "",
44
- mode: 0o644,
45
- }))))),
33
+ packages: pulumi
34
+ .all([args.packages])
35
+ .apply(([packages]) => pulumi.all(packages ?? []).apply((packages) => packages.concat(Host.defaultPackages))),
46
36
  users: pulumi
47
- .all([args.users, args.sshUsers, this.sshPrivateKeys])
48
- .apply(([users, sshUsers, sshPrivateKeys]) => {
49
- const allUsers = [];
50
- for (const user of users ?? []) {
51
- allUsers.push(user);
37
+ .all([this.deployUsername, this.deployPrivateKey.publicKeyOpenssh, args.users, args.sshAuthorizedKeys])
38
+ .apply(([deployUsername, deployPublicKeyOpenssh, users, sshAuthorizedKeys]) => pulumi.all(users ?? []).apply((users) => {
39
+ let foundDefaultUser = false;
40
+ let foundDeployUser = false;
41
+ for (const user of users) {
42
+ if (user.name === Host.defaultUsername) {
43
+ user.sshAuthorizedKeys = (sshAuthorizedKeys ?? []).concat(user.sshAuthorizedKeys ?? []);
44
+ user.groups = (user.groups ?? []).concat(["sudo"]);
45
+ user.lockPasswd = true;
46
+ foundDefaultUser = true;
47
+ }
48
+ if (user.name === deployUsername) {
49
+ user.sshAuthorizedKeys = [deployPublicKeyOpenssh].concat(user.sshAuthorizedKeys ?? []);
50
+ user.groups = (user.groups ?? []).concat(["sudo"]);
51
+ user.lockPasswd = true;
52
+ foundDeployUser = true;
53
+ }
52
54
  }
53
- for (const sshUser of sshUsers ?? []) {
54
- allUsers.push({
55
- name: sshUser.name,
56
- groups: sshUser.groups,
57
- sshAuthorizedKeys: sshPrivateKeys[sshUser.name].publicKeyOpenssh.apply((key) => [key.trim()]),
55
+ if (!foundDefaultUser) {
56
+ users.push({
57
+ name: Host.defaultUsername,
58
+ groups: ["sudo"],
59
+ sshAuthorizedKeys,
58
60
  });
59
61
  }
60
- return allUsers;
61
- }),
62
- systemdUnits: pulumi
63
- .all([args.systemdUnits])
64
- .apply(([systemdUnits]) => (systemdUnits ?? []).concat({ mask: true, name: "docker.service" }, { mask: true, name: "docker.socket" })),
62
+ if (!foundDeployUser) {
63
+ users.push({
64
+ name: deployUsername,
65
+ groups: ["sudo"],
66
+ sshAuthorizedKeys: [deployPublicKeyOpenssh],
67
+ });
68
+ }
69
+ return users;
70
+ })),
65
71
  }, emptyOpts).ignitionConfig;
66
72
  this.registerOutputs();
67
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../lib/fcos/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../lib/fcos/host.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { ConfigArgs, Config } from "./config.js";
2
- import { HostUserArgs, HostArgs, Host } from "./host.js";
3
- export { ConfigArgs, Config, HostUserArgs, HostArgs, Host };
1
+ import { Config } from "./config.js";
2
+ import { HostArgs, Host } from "./host.js";
3
+ export { Config, HostArgs, Host };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/fcos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAA0B,IAAI,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAc,MAAM,EAA0B,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/fcos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAY,IAAI,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ [Unit]
2
+ Description=Create file to indicate the system is ready
3
+ Wants=network-online.target
4
+ After=network-online.target
5
+
6
+ [Service]
7
+ Type=oneshot
8
+ RemainAfterExit=yes
9
+ ExecStart=touch /tmp/install-ready
10
+
11
+ [Install]
12
+ WantedBy=multi-user.target
@@ -0,0 +1,14 @@
1
+ [Unit]
2
+ Description=Run abitrary commands after provisioning
3
+ Wants=network-online.target
4
+ After=network-online.target
5
+
6
+ [Service]
7
+ Type=oneshot
8
+ RemainAfterExit=yes
9
+ ExecStart=/usr/local/sbin/install-run
10
+ ExecStartPost=/usr/bin/touch /etc/install-run.done
11
+ ConditionPathExists=!/etc/install-run.done
12
+
13
+ [Install]
14
+ WantedBy=multi-user.target
@@ -1,9 +1,6 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import { ComponentResource } from "../common/index.js";
3
- import { IgnitionArgs } from "../node/index.js";
4
- export interface ConfigArgs extends IgnitionArgs {
5
- hostname: pulumi.Input<string>;
6
- }
3
+ import { OperatingSystemConfigArgs } from "../node/index.js";
7
4
  export declare class Config extends ComponentResource {
8
5
  readonly ignitionConfig: pulumi.Output<string>;
9
6
  /**
@@ -12,7 +9,8 @@ export declare class Config extends ComponentResource {
12
9
  * @param args A bag of arguments to control the Flatcar config creation.
13
10
  * @param opts A bag of options that control this resource's behavior.
14
11
  */
15
- constructor(name: string, args: ConfigArgs, opts?: pulumi.ComponentResourceOptions);
12
+ constructor(name: string, args: OperatingSystemConfigArgs, opts?: pulumi.ComponentResourceOptions);
16
13
  private defaultConfig;
14
+ private assetContent;
17
15
  private encodeContents;
18
16
  }
@@ -1,4 +1,7 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
+ import * as path from "path";
3
+ import * as fs from "fs";
4
+ import * as url from "url";
2
5
  import * as compress from "zlib";
3
6
  import { ComponentResource } from "../common/index.js";
4
7
  export class Config extends ComponentResource {
@@ -12,17 +15,8 @@ export class Config extends ComponentResource {
12
15
  constructor(name, args, opts) {
13
16
  super("flatcar:config", name, args, opts);
14
17
  this.ignitionConfig = pulumi
15
- .all([
16
- this.defaultConfig(),
17
- args.hostname,
18
- args.users,
19
- args.disks,
20
- args.filesystems,
21
- args.files,
22
- args.links,
23
- args.systemdUnits,
24
- ])
25
- .apply(([config, hostname, users, disks, filesystems, files, links, systemdUnits]) => {
18
+ .all([this.defaultConfig(), args.hostname, args.users, args.filesystems, args.files, args.run])
19
+ .apply(([config, hostname, users, filesystems, files, run]) => {
26
20
  /* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
27
21
  if (hostname !== undefined) {
28
22
  config.storage.files.push({
@@ -33,29 +27,14 @@ export class Config extends ComponentResource {
33
27
  });
34
28
  }
35
29
  for (const user of users ?? []) {
30
+ user.sshAuthorizedKeys = (user.sshAuthorizedKeys ?? []).map((key) => key.trim());
36
31
  config.passwd.users.push(user);
37
32
  }
38
- for (const disk of disks ?? []) {
39
- config.storage.disks.push({
40
- device: disk.device,
41
- partitions: disk.partitions.map((partition) => {
42
- return {
43
- label: partition.label,
44
- size_mib: partition.size,
45
- start_mib: partition.start,
46
- number: partition.number,
47
- resize: partition.resize,
48
- };
49
- }),
50
- wipe_table: disk.wipeTable,
51
- });
52
- }
53
33
  for (const filesystem of filesystems ?? []) {
54
34
  config.storage.filesystems.push({
55
35
  device: filesystem.device,
56
36
  path: filesystem.path,
57
37
  format: filesystem.format,
58
- label: filesystem.label,
59
38
  });
60
39
  if (filesystem.path !== undefined) {
61
40
  const checkSystemdName = filesystem.device.replace(/-/g, "\\x2d").replace(/^\//, "").replace(/\//g, "-");
@@ -83,19 +62,17 @@ export class Config extends ComponentResource {
83
62
  path: file.path,
84
63
  contents: this.encodeContents(file.contents),
85
64
  mode: file.mode ?? 0o644,
86
- overwrite: file.overwrite ?? true,
87
- });
88
- }
89
- for (const link of links ?? []) {
90
- config.storage.links.push({
91
- path: link.path,
92
- target: link.target,
65
+ user: file.user,
66
+ group: file.group,
93
67
  overwrite: true,
94
68
  });
95
69
  }
96
- for (const unit of systemdUnits ?? []) {
97
- config.systemd.units.push(unit);
98
- }
70
+ config.storage.files.push({
71
+ path: "/usr/local/sbin/install-run",
72
+ contents: this.encodeContents(["#!/bin/bash", "", ...(run ?? []), "", "exit 0"].join("\n")),
73
+ mode: 0o755,
74
+ overwrite: true,
75
+ });
99
76
  return JSON.stringify(config);
100
77
  });
101
78
  this.registerOutputs();
@@ -112,6 +89,12 @@ export class Config extends ComponentResource {
112
89
  filesystems: [],
113
90
  directories: [],
114
91
  files: [
92
+ {
93
+ path: "/etc/modules-load.d/wireguard.conf",
94
+ contents: this.encodeContents("wireguard"),
95
+ mode: 0o644,
96
+ overwrite: true,
97
+ },
115
98
  {
116
99
  path: "/etc/sysctl.d/10-kernel-logging.conf",
117
100
  contents: this.encodeContents("kernel.printk=4"),
@@ -119,8 +102,12 @@ export class Config extends ComponentResource {
119
102
  overwrite: true,
120
103
  },
121
104
  {
122
- path: "/etc/sysctl.d/20-fs-inotify.conf",
123
- contents: this.encodeContents("fs.inotify.max_user_instances = 8192\nfs.inotify.max_user_watches = 524288"),
105
+ path: "/etc/sysctl.d/20-fs.conf",
106
+ contents: this.encodeContents([
107
+ "fs.file-max = 65536",
108
+ "fs.inotify.max_user_instances = 8192",
109
+ "fs.inotify.max_user_watches = 524288",
110
+ ].join("\n")),
124
111
  mode: 0o644,
125
112
  overwrite: true,
126
113
  },
@@ -136,13 +123,28 @@ export class Config extends ComponentResource {
136
123
  mode: 0o644,
137
124
  overwrite: true,
138
125
  },
139
- { path: "/etc/systemd/resolved.conf", append: [this.encodeContents("LLMNR=no")], overwrite: false },
140
126
  ],
141
- links: [],
142
127
  },
143
- systemd: { units: [] },
128
+ systemd: {
129
+ units: [
130
+ {
131
+ name: "install-ready.service",
132
+ enabled: true,
133
+ contents: this.assetContent("install-ready.service"),
134
+ },
135
+ {
136
+ name: "install-run.service",
137
+ enabled: true,
138
+ contents: this.assetContent("install-run.service"),
139
+ },
140
+ ],
141
+ },
144
142
  };
145
143
  }
144
+ assetContent(filename) {
145
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
146
+ return fs.readFileSync(path.join(path.dirname(url.fileURLToPath(import.meta.url)), "assets", filename), "utf-8");
147
+ }
146
148
  encodeContents(data) {
147
149
  return {
148
150
  compression: "gzip",
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/flatcar/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAOvD,MAAM,OAAO,MAAO,SAAQ,iBAAiB;IAC3B,cAAc,CAAwB;IAEtD;;;;;OAKG;IACH,YAAY,IAAY,EAAE,IAAgB,EAAE,IAAsC;QAChF,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,MAAM;aACzB,GAAG,CAAC;YACH,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,YAAY;SAClB,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE;YACnF,kGAAkG;YAClG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;oBACvC,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAgC,EAAE,EAAE;wBACnE,OAAO;4BACL,KAAK,EAAE,SAAS,CAAC,KAAK;4BACtB,QAAQ,EAAE,SAAS,CAAC,IAAI;4BACxB,SAAS,EAAE,SAAS,CAAC,KAAK;4BAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;4BACxB,MAAM,EAAE,SAAS,CAAC,MAAM;yBACzB,CAAC;oBACJ,CAAC,CAAC;oBACF,UAAU,EAAE,IAAI,CAAC,SAAS;iBAC3B,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,UAAU,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBAC3C,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;oBAC9B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,KAAK,EAAE,UAAU,CAAC,KAAK;iBACxB,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAEzG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;wBACxB,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ;wBACvE,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE;4BACR,QAAQ;4BACR,wBAAwB;4BACxB,yBAAyB,gBAAgB,UAAU;4BACnD,sBAAsB,gBAAgB,UAAU;4BAChD,SAAS;4BACT,SAAS,UAAU,CAAC,IAAI,EAAE;4BAC1B,QAAQ,UAAU,CAAC,MAAM,EAAE;4BAC3B,QAAQ,UAAU,CAAC,MAAM,EAAE;4BAC3B,0BAA0B;4BAC1B,WAAW;4BACX,4BAA4B;yBAC7B,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;oBACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;iBAClC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,8DAA8D;IACtD,aAAa;QACnB,OAAO;YACL,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAC9B,MAAM,EAAE;gBACN,KAAK,EAAE,EAAE;aACV;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,sCAAsC;wBAC5C,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;wBAChD,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE,IAAI;qBAChB;oBACD;wBACE,IAAI,EAAE,kCAAkC;wBACxC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,4EAA4E,CAAC;wBAC3G,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE,IAAI;qBAChB;oBACD;wBACE,IAAI,EAAE,uCAAuC;wBAC7C,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC;wBACxD,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE,IAAI;qBAChB;oBACD;wBACE,IAAI,EAAE,0CAA0C;wBAChD,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,kCAAkC,CAAC;wBACjE,IAAI,EAAE,KAAK;wBACX,SAAS,EAAE,IAAI;qBAChB;oBACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;iBACpG;gBACD,KAAK,EAAE,EAAE;aACV;YACD,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACvB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,gBAAgB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;SAChG,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/flatcar/config.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,16 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import * as tls from "@pulumi/tls";
3
3
  import { ComponentResource } from "../common/index.js";
4
- import { ConfigArgs } from "./config.js";
5
- export interface HostUserArgs {
6
- name: pulumi.Input<string>;
7
- groups?: pulumi.Input<pulumi.Input<string>[]>;
8
- }
9
- export interface HostArgs extends ConfigArgs {
10
- sshUsers?: pulumi.Input<pulumi.Input<HostUserArgs>[]>;
4
+ import { OperatingSystemConfigArgs } from "../node/index.js";
5
+ export interface HostArgs extends OperatingSystemConfigArgs {
6
+ sshAuthorizedKeys?: pulumi.Input<pulumi.Input<string>[]>;
11
7
  }
12
8
  export declare class Host extends ComponentResource {
13
- private static readonly defaultModules;
14
- readonly sshPrivateKeys: pulumi.Output<{
15
- [key: string]: tls.PrivateKey;
16
- }>;
17
- readonly ignitionConfig: pulumi.Output<string>;
9
+ static readonly defaultUsername = "core";
10
+ private static readonly defaultDeployUsername;
11
+ readonly deployUsername: string;
12
+ readonly deployPrivateKey: tls.PrivateKey;
13
+ readonly initConfig: pulumi.Output<string>;
18
14
  /**
19
15
  * Create a new Flatcar host resource.
20
16
  * @param name The name of the Flatcar host resource.