@ydkn/pulumi-components 0.6.1 → 0.6.2

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 (57) hide show
  1. package/lib/avahi/service.d.ts +1 -1
  2. package/lib/avahi/service.d.ts.map +1 -1
  3. package/lib/avahi/service.js +4 -2
  4. package/lib/avahi/service.js.map +1 -1
  5. package/lib/hcloud/netbirdAgent.d.ts +2 -3
  6. package/lib/hcloud/netbirdAgent.d.ts.map +1 -1
  7. package/lib/hcloud/netbirdAgent.js +2 -13
  8. package/lib/hcloud/netbirdAgent.js.map +1 -1
  9. package/lib/hcloud/netbirdManagement.d.ts +2 -3
  10. package/lib/hcloud/netbirdManagement.d.ts.map +1 -1
  11. package/lib/hcloud/netbirdManagement.js +2 -13
  12. package/lib/hcloud/netbirdManagement.js.map +1 -1
  13. package/lib/hcloud/wireguard.d.ts +2 -3
  14. package/lib/hcloud/wireguard.d.ts.map +1 -1
  15. package/lib/hcloud/wireguard.js +2 -12
  16. package/lib/hcloud/wireguard.js.map +1 -1
  17. package/lib/netbird/agent.d.ts +1 -0
  18. package/lib/netbird/agent.d.ts.map +1 -1
  19. package/lib/netbird/agent.js +1 -1
  20. package/lib/netbird/agent.js.map +1 -1
  21. package/lib/netbird/management.d.ts +12 -0
  22. package/lib/netbird/management.d.ts.map +1 -1
  23. package/lib/netbird/management.js +37 -31
  24. package/lib/netbird/management.js.map +1 -1
  25. package/lib/node/gateway.d.ts +9 -0
  26. package/lib/node/gateway.d.ts.map +1 -0
  27. package/lib/node/gateway.js +12 -0
  28. package/lib/node/gateway.js.map +1 -0
  29. package/lib/node/index.d.ts +3 -2
  30. package/lib/node/index.d.ts.map +1 -1
  31. package/lib/node/index.js +8 -1
  32. package/lib/node/index.js.map +1 -1
  33. package/lib/node/node.d.ts +3 -0
  34. package/lib/node/node.d.ts.map +1 -1
  35. package/lib/node/node.js +44 -0
  36. package/lib/node/node.js.map +1 -1
  37. package/lib/samba/avahiService.d.ts +1 -0
  38. package/lib/samba/avahiService.d.ts.map +1 -1
  39. package/lib/samba/avahiService.js +25 -13
  40. package/lib/samba/avahiService.js.map +1 -1
  41. package/lib/samba/dc.d.ts +7 -1
  42. package/lib/samba/dc.d.ts.map +1 -1
  43. package/lib/samba/dc.js +13 -3
  44. package/lib/samba/dc.js.map +1 -1
  45. package/lib/samba/deployment.d.ts +8 -5
  46. package/lib/samba/deployment.d.ts.map +1 -1
  47. package/lib/samba/deployment.js +75 -28
  48. package/lib/samba/deployment.js.map +1 -1
  49. package/lib/samba/index.d.ts +2 -2
  50. package/lib/samba/index.d.ts.map +1 -1
  51. package/lib/samba/index.js.map +1 -1
  52. package/lib/ubuntu/assets/init.sh +19 -13
  53. package/lib/wireguard/deployment.d.ts +0 -2
  54. package/lib/wireguard/deployment.d.ts.map +1 -1
  55. package/lib/wireguard/deployment.js +2 -5
  56. package/lib/wireguard/deployment.js.map +1 -1
  57. package/package.json +14 -14
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gatewayNodes = exports.gatewayNodeSelector = exports.gatewayLabelValue = exports.gatewayLabel = void 0;
4
+ const node_1 = require("./node");
5
+ exports.gatewayLabel = "ydkn.network/gateway";
6
+ exports.gatewayLabelValue = "true";
7
+ exports.gatewayNodeSelector = { "ydkn.network/gateway": "true" };
8
+ function gatewayNodes(nodes) {
9
+ return (0, node_1.filterNodes)(nodes, exports.gatewayNodeSelector);
10
+ }
11
+ exports.gatewayNodes = gatewayNodes;
12
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../lib/node/gateway.ts"],"names":[],"mappings":";;;AACA,iCAA2C;AAE9B,QAAA,YAAY,GAAG,sBAAsB,CAAC;AACtC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,mBAAmB,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC;AAEtE,SAAgB,YAAY,CAAC,KAAyC;IACpE,OAAO,IAAA,kBAAW,EAAC,KAAK,EAAE,2BAAmB,CAAC,CAAC;AACjD,CAAC;AAFD,oCAEC"}
@@ -1,4 +1,5 @@
1
- import { Node } from "./node";
1
+ import { Node, filterNodes } from "./node";
2
2
  import { KubernetesArgs, Kubernetes } from "./kubernetes";
3
- export { Node, KubernetesArgs, Kubernetes };
3
+ import { gatewayLabel, gatewayLabelValue, gatewayNodeSelector, gatewayNodes } from "./gateway";
4
+ export { Node, filterNodes, KubernetesArgs, Kubernetes, gatewayLabel, gatewayLabelValue, gatewayNodeSelector, gatewayNodes, };
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE/F,OAAO,EACL,IAAI,EACJ,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,GACb,CAAC"}
package/lib/node/index.js CHANGED
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Kubernetes = void 0;
3
+ exports.gatewayNodes = exports.gatewayNodeSelector = exports.gatewayLabelValue = exports.gatewayLabel = exports.Kubernetes = exports.filterNodes = void 0;
4
+ const node_1 = require("./node");
5
+ Object.defineProperty(exports, "filterNodes", { enumerable: true, get: function () { return node_1.filterNodes; } });
4
6
  const kubernetes_1 = require("./kubernetes");
5
7
  Object.defineProperty(exports, "Kubernetes", { enumerable: true, get: function () { return kubernetes_1.Kubernetes; } });
8
+ const gateway_1 = require("./gateway");
9
+ Object.defineProperty(exports, "gatewayLabel", { enumerable: true, get: function () { return gateway_1.gatewayLabel; } });
10
+ Object.defineProperty(exports, "gatewayLabelValue", { enumerable: true, get: function () { return gateway_1.gatewayLabelValue; } });
11
+ Object.defineProperty(exports, "gatewayNodeSelector", { enumerable: true, get: function () { return gateway_1.gatewayNodeSelector; } });
12
+ Object.defineProperty(exports, "gatewayNodes", { enumerable: true, get: function () { return gateway_1.gatewayNodes; } });
6
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/node/index.ts"],"names":[],"mappings":";;;AACA,6CAA0D;AAE3B,2FAFN,uBAAU,OAEM"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/node/index.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAMzC,4FANa,kBAAW,OAMb;AALb,6CAA0D;AAOxD,2FAPuB,uBAAU,OAOvB;AANZ,uCAA+F;AAO7F,6FAPO,sBAAY,OAOP;AACZ,kGARqB,2BAAiB,OAQrB;AACjB,oGATwC,6BAAmB,OASxC;AACnB,6FAV6D,sBAAY,OAU7D"}
@@ -18,4 +18,7 @@ export interface Node {
18
18
  username?: pulumi.Input<string>;
19
19
  privateKey?: pulumi.Input<string>;
20
20
  }
21
+ export declare function filterNodes(nodes: pulumi.Input<pulumi.Input<Node>[]>, selector: pulumi.Input<{
22
+ [key: string]: pulumi.Input<string>;
23
+ }>): pulumi.Output<pulumi.Output<Node>[]>;
21
24
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../lib/node/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,IAAI;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CACnB,MAAM,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CACzG,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../lib/node/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,IAAI;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CACnB,MAAM,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,EAAE,CACzG,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EACzC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,GAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAuBtC"}
package/lib/node/node.js CHANGED
@@ -1,3 +1,47 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.filterNodes = void 0;
27
+ const pulumi = __importStar(require("@pulumi/pulumi"));
28
+ function filterNodes(nodes, selector) {
29
+ return pulumi.all([nodes, selector]).apply(([nodes, selector]) => pulumi.all(selector).apply((selector) => pulumi.all(nodes ?? []).apply((nodes) => {
30
+ return nodes
31
+ .filter((n) => {
32
+ if (n.id === undefined || n.labels === undefined) {
33
+ return false;
34
+ }
35
+ for (const [labelName, labelValue] of Object.entries(selector)) {
36
+ // eslint-disable-next-line security/detect-object-injection
37
+ if (n.labels[labelName] === undefined || n.labels[labelName] !== labelValue) {
38
+ return false;
39
+ }
40
+ }
41
+ return true;
42
+ })
43
+ .map((n) => pulumi.output(n));
44
+ })));
45
+ }
46
+ exports.filterNodes = filterNodes;
3
47
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../lib/node/node.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../lib/node/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAkBzC,SAAgB,WAAW,CACzB,KAAyC,EACzC,QAA+D;IAE/D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/D,4DAA4D;gBAC5D,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;oBAC5E,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CACH,CACF,CAAC;AACJ,CAAC;AA1BD,kCA0BC"}
@@ -7,6 +7,7 @@ export interface AvahiServiceArgs {
7
7
  labelName: pulumi.Input<string>;
8
8
  hostname: pulumi.Input<string>;
9
9
  deviceModel?: pulumi.Input<string>;
10
+ timeMachineShareName?: pulumi.Input<string | undefined>;
10
11
  }
11
12
  export declare class AvahiService extends avahi.AvahiService {
12
13
  private static readonly defaultDeviceModel;
@@ -1 +1 @@
1
- {"version":3,"file":"avahiService.d.ts","sourceRoot":"","sources":["../../../lib/samba/avahiService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACpC;AAED,qBAAa,YAAa,SAAQ,KAAK,CAAC,YAAY;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;IAE1D;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,eAAe;CAwBhF"}
1
+ {"version":3,"file":"avahiService.d.ts","sourceRoot":"","sources":["../../../lib/samba/avahiService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACzD;AAED,qBAAa,YAAa,SAAQ,KAAK,CAAC,YAAY;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAgB;IAE1D;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,eAAe;CAsChF"}
@@ -39,19 +39,31 @@ class AvahiService extends avahi.AvahiService {
39
39
  metadata: args.metadata,
40
40
  labelName: args.labelName,
41
41
  name: args.name,
42
- services: [
43
- {
44
- type: "_smb._tcp",
45
- port: 445,
46
- hostname: args.hostname,
47
- },
48
- {
49
- type: "_device-info._tcp",
50
- port: 9,
51
- txtRecords: [pulumi.interpolate `model=${args.deviceModel ?? AvahiService.defaultDeviceModel}`],
52
- hostname: args.hostname,
53
- },
54
- ],
42
+ services: pulumi
43
+ .all([args.deviceModel, args.timeMachineShareName])
44
+ .apply(([deviceModel, timeMachineShareName]) => {
45
+ const services = [
46
+ {
47
+ type: "_smb._tcp",
48
+ port: 445,
49
+ hostname: args.hostname,
50
+ },
51
+ {
52
+ type: "_device-info._tcp",
53
+ port: 0,
54
+ txtRecords: [`model=${deviceModel ?? AvahiService.defaultDeviceModel}`],
55
+ hostname: args.hostname,
56
+ },
57
+ ];
58
+ if (timeMachineShareName !== undefined) {
59
+ services.push({
60
+ type: "_adisk._tcp",
61
+ txtRecords: ["sys=waMa=0,adVF=0x100", `dk0=adVN=${timeMachineShareName},adVF=0x82`],
62
+ hostname: args.hostname,
63
+ });
64
+ }
65
+ return services;
66
+ }),
55
67
  }, opts);
56
68
  }
57
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"avahiService.js","sourceRoot":"","sources":["../../../lib/samba/avahiService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAEzC,gDAAkC;AAUlC,MAAa,YAAa,SAAQ,KAAK,CAAC,YAAY;IAC1C,MAAM,CAAU,kBAAkB,GAAG,YAAY,CAAC;IAE1D;;;;;OAKG;IACH,YAAY,IAAY,EAAE,IAAsB,EAAE,IAA6B;QAC7E,KAAK,CACH,IAAI,EACJ;YACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,GAAG;oBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,CAAC;oBACP,UAAU,EAAE,CAAC,MAAM,CAAC,WAAW,CAAA,SAAS,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;oBAC9F,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF;SACF,EACD,IAAI,CACL,CAAC;IACJ,CAAC;;AAhCH,oCAiCC"}
1
+ {"version":3,"file":"avahiService.js","sourceRoot":"","sources":["../../../lib/samba/avahiService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAEzC,gDAAkC;AAWlC,MAAa,YAAa,SAAQ,KAAK,CAAC,YAAY;IAC1C,MAAM,CAAU,kBAAkB,GAAG,YAAY,CAAC;IAE1D;;;;;OAKG;IACH,YAAY,IAAY,EAAE,IAAsB,EAAE,IAA6B;QAC7E,KAAK,CACH,IAAI,EACJ;YACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,MAAM;iBACb,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;iBAClD,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,oBAAoB,CAAC,EAAE,EAAE;gBAC7C,MAAM,QAAQ,GAAuC;oBACnD;wBACE,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,GAAG;wBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB;oBACD;wBACE,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,CAAC;wBACP,UAAU,EAAE,CAAC,SAAS,WAAW,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;wBACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB;iBACF,CAAC;gBAEF,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;oBACvC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,CAAC,uBAAuB,EAAE,YAAY,oBAAoB,YAAY,CAAC;wBACnF,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;SACL,EACD,IAAI,CACL,CAAC;IACJ,CAAC;;AA9CH,oCA+CC"}
package/lib/samba/dc.d.ts CHANGED
@@ -10,7 +10,8 @@ export interface SambaDcArgs {
10
10
  storage?: pulumi.Input<string>;
11
11
  dnsServiceType?: pulumi.Input<string>;
12
12
  dnsLoadBalancerClass?: pulumi.Input<string>;
13
- hostnames?: pulumi.Input<pulumi.Input<string>[]>;
13
+ nsHostname: pulumi.Input<string>;
14
+ ldapHostname: pulumi.Input<string>;
14
15
  nodeSelector?: pulumi.Input<{
15
16
  [key: string]: pulumi.Input<string>;
16
17
  }>;
@@ -28,6 +29,11 @@ export declare class SambaDc extends ComponentResource {
28
29
  private readonly podDisruptionBudget;
29
30
  private readonly service;
30
31
  readonly namespace: pulumi.Output<string>;
32
+ readonly baseDN: pulumi.Output<string>;
33
+ readonly nsHostname: pulumi.Output<string>;
34
+ readonly ldapHostname: pulumi.Output<string>;
35
+ readonly administratorDN: pulumi.Output<string>;
36
+ readonly administratorUsername: pulumi.Output<string>;
31
37
  readonly administratorPassword: pulumi.Output<string>;
32
38
  /**
33
39
  * Create a new Samba DC resource.
@@ -1 +1 @@
1
- {"version":3,"file":"dc.d.ts","sourceRoot":"","sources":["../../../lib/samba/dc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IACrE,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,OAAQ,SAAQ,iBAAiB;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAiBlB;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAmC;IACzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,SAAgB,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7D;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,wBAAwB;CAgOpF"}
1
+ {"version":3,"file":"dc.d.ts","sourceRoot":"","sources":["../../../lib/samba/dc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5C,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IACrE,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,OAAQ,SAAQ,iBAAiB;IAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAiBlB;IAEF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAmC;IACzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAoC;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,SAAgB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,SAAgB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,SAAgB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvD,SAAgB,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7D,SAAgB,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7D;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,wBAAwB;CAsOpF"}
package/lib/samba/dc.js CHANGED
@@ -57,6 +57,11 @@ class SambaDc extends common_1.ComponentResource {
57
57
  podDisruptionBudget;
58
58
  service;
59
59
  namespace;
60
+ baseDN;
61
+ nsHostname;
62
+ ldapHostname;
63
+ administratorDN;
64
+ administratorUsername;
60
65
  administratorPassword;
61
66
  /**
62
67
  * Create a new Samba DC resource.
@@ -87,7 +92,12 @@ class SambaDc extends common_1.ComponentResource {
87
92
  "app.kubernetes.io/instance": name,
88
93
  },
89
94
  };
95
+ this.baseDN = pulumi.all([args.domain]).apply(([domain]) => `DC=${domain.replace(/\./g, ",DC=")}`);
96
+ this.nsHostname = pulumi.output(args.nsHostname);
97
+ this.ldapHostname = pulumi.output(args.ldapHostname);
98
+ this.administratorUsername = pulumi.secret(pulumi.output("Administrator"));
90
99
  this.administratorPassword = pulumi.secret(new random.RandomPassword(`${name}-admin-password`, { length: 24, special: true }, emptyOpts).result);
100
+ this.administratorDN = pulumi.secret(pulumi.interpolate `CN=${this.administratorUsername},CN=Users,${this.baseDN}`);
91
101
  this.adminPasswordSecret = new k8s.core.v1.Secret(`${name}-admin-password`, {
92
102
  metadata: { ...metadata, name: pulumi.interpolate `${name}-admin-password` },
93
103
  stringData: {
@@ -97,7 +107,7 @@ class SambaDc extends common_1.ComponentResource {
97
107
  this.config = new k8s.core.v1.ConfigMap(name, {
98
108
  metadata,
99
109
  data: {
100
- "00globals.conf": ["[global]", "ldap server require strong auth = No", "idmap_ldb:use rfc2307 = Yes"].join("\n"),
110
+ "00globals.conf": ["[global]", "ldap server require strong auth = no", "idmap_ldb:use rfc2307 = yes"].join("\n"),
101
111
  },
102
112
  }, k8sOpts);
103
113
  if (args.calicoIpReservations !== undefined) {
@@ -146,7 +156,7 @@ class SambaDc extends common_1.ComponentResource {
146
156
  { key: "node-role.kubernetes.io/master", operator: "Exists", effect: "NoSchedule" },
147
157
  { key: "node-role.kubernetes.io/control-plane", operator: "Exists", effect: "NoSchedule" },
148
158
  ],
149
- hostname: args.serverName,
159
+ hostname: pulumi.all([args.serverName]).apply(([serverName]) => serverName.toLowerCase()),
150
160
  containers: [
151
161
  {
152
162
  name: "samba-dc",
@@ -233,7 +243,7 @@ class SambaDc extends common_1.ComponentResource {
233
243
  targetPort: port.name,
234
244
  })),
235
245
  },
236
- hostnames: args.hostnames,
246
+ hostnames: [args.nsHostname, args.ldapHostname],
237
247
  }, { ...k8sOpts, dependsOn: [this.deployment] });
238
248
  this.registerOutputs();
239
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dc.js","sourceRoot":"","sources":["../../../lib/samba/dc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dc.js","sourceRoot":"","sources":["../../../lib/samba/dc.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface ShareArgs {
6
6
  id: pulumi.Input<string>;
7
7
  name: pulumi.Input<string>;
8
8
  comment?: pulumi.Input<string>;
9
+ timeMachine?: pulumi.Input<boolean>;
9
10
  }
10
11
  export interface PVCVolumeArgs extends ShareArgs {
11
12
  accessModes?: pulumi.Input<pulumi.Input<string>[]>;
@@ -20,22 +21,22 @@ export interface NFSVolumeArgs extends ShareArgs, kubernetes.v1.NfsVolumeConfig
20
21
  export interface SharedFilesystemVolumeArgs extends ShareArgs {
21
22
  filesystemName: pulumi.Input<string>;
22
23
  }
23
- export interface User {
24
- name: pulumi.Input<string>;
25
- uid: pulumi.Input<number>;
26
- }
27
24
  export interface SambaArgs {
28
25
  namespace?: pulumi.Input<string>;
29
26
  serverName: pulumi.Input<string>;
30
27
  workgroup: pulumi.Input<string>;
28
+ domain?: pulumi.Input<string>;
29
+ domainNameservers?: pulumi.Input<pulumi.Input<string>[]>;
30
+ domainJoinUsername?: pulumi.Input<string>;
31
+ domainJoinPassword?: pulumi.Input<string>;
31
32
  deviceModel?: pulumi.Input<string>;
32
33
  hostname: pulumi.Input<string>;
33
- users: pulumi.Input<pulumi.Input<User>[]>;
34
34
  pvcVolumes?: pulumi.Input<pulumi.Input<PVCVolumeArgs>[]>;
35
35
  nfsVolumes?: pulumi.Input<pulumi.Input<NFSVolumeArgs>[]>;
36
36
  sharedFilesystemVolumes?: pulumi.Input<pulumi.Input<SharedFilesystemVolumeArgs>[]>;
37
37
  serviceType?: pulumi.Input<string>;
38
38
  avahiLabelName?: pulumi.Input<string>;
39
+ avahiServiceName?: pulumi.Input<string>;
39
40
  storageClassName?: pulumi.Input<string>;
40
41
  nodeSelector?: pulumi.Input<{
41
42
  [key: string]: pulumi.Input<string>;
@@ -49,11 +50,13 @@ export declare class Samba extends ComponentResource {
49
50
  }>;
50
51
  private static readonly vetoFiles;
51
52
  private readonly settings;
53
+ private readonly domainJoinCredentials;
52
54
  private readonly calicoIpReservations?;
53
55
  private readonly dataVolumeClaim;
54
56
  private readonly deployment;
55
57
  private readonly podDisruptionBudget;
56
58
  private readonly service;
59
+ private readonly timeMachineUuid?;
57
60
  private readonly avahiService?;
58
61
  readonly namespace: pulumi.Output<string>;
59
62
  readonly hostname: pulumi.Output<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../lib/samba/deployment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../lib/samba/deployment.ts"],"names":[],"mappings":"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"}
@@ -47,11 +47,13 @@ class Samba extends common_1.ComponentResource {
47
47
  "Thumbs.db",
48
48
  ];
49
49
  settings;
50
+ domainJoinCredentials;
50
51
  calicoIpReservations;
51
52
  dataVolumeClaim;
52
53
  deployment;
53
54
  podDisruptionBudget;
54
55
  service;
56
+ timeMachineUuid;
55
57
  avahiService;
56
58
  namespace;
57
59
  hostname;
@@ -95,11 +97,12 @@ class Samba extends common_1.ComponentResource {
95
97
  accessModes: pvcVolume.accessModes ?? ["ReadWriteOnce"],
96
98
  resources: { requests: { storage: pvcVolume.size ?? "10Gi" } },
97
99
  },
98
- }, opts);
100
+ }, { ...opts, protect: args.protect });
99
101
  volumes.push({
100
102
  name: pulumi.output(pvcVolume.name),
101
103
  comment: pvcVolume.comment ? pulumi.output(pvcVolume.comment) : undefined,
102
104
  persistentVolumeClaimName: pvc.metadata.name,
105
+ timeMachine: pvcVolume.timeMachine,
103
106
  });
104
107
  }
105
108
  for (const nfsVolume of nfsVolumes) {
@@ -108,6 +111,7 @@ class Samba extends common_1.ComponentResource {
108
111
  name: pulumi.output(nfsVolume.name),
109
112
  comment: nfsVolume.comment ? pulumi.output(nfsVolume.comment) : undefined,
110
113
  persistentVolumeClaimName: volume.persistentVolumeClaim.metadata.name,
114
+ timeMachine: nfsVolume.timeMachine,
111
115
  });
112
116
  }
113
117
  for (const sharedFilesystemVolume of sharedFilesystemVolumes) {
@@ -127,6 +131,7 @@ class Samba extends common_1.ComponentResource {
127
131
  name: pulumi.output(sharedFilesystemVolume.name),
128
132
  comment: sharedFilesystemVolume.comment ? pulumi.output(sharedFilesystemVolume.comment) : undefined,
129
133
  persistentVolumeClaimName: sharedFilesystem.persistentVolumeClaim.metadata.name,
134
+ timeMachine: sharedFilesystemVolume.timeMachine,
130
135
  });
131
136
  }
132
137
  return volumes;
@@ -135,19 +140,23 @@ class Samba extends common_1.ComponentResource {
135
140
  });
136
141
  });
137
142
  const config = pulumi
138
- .all([args.workgroup, args.serverName, args.deviceModel, volumes])
139
- .apply(([workgroup, serverName, deviceModel, volumes]) => {
143
+ .all([args.workgroup, args.domain, args.serverName, args.deviceModel, volumes])
144
+ .apply(([workgroup, domain, serverName, deviceModel, volumes]) => {
140
145
  const sambaConfig = [
141
146
  "[global]",
142
147
  `workgroup = ${workgroup}`,
143
148
  `server string = ${serverName}`,
144
149
  `netbios name = ${serverName}`,
145
- "server role = standalone server",
146
150
  "log file = /dev/stdout",
147
151
  "max log size = 50",
148
152
  "dns proxy = no",
149
153
  "map to guest = bad user",
150
154
  "usershare allow guests = no",
155
+ "obey pam restrictions = yes",
156
+ "pam password change = no",
157
+ "unix password sync = yes",
158
+ "passwd program = /usr/bin/passwd %u",
159
+ "panic action = /usr/share/samba/panic-action %d",
151
160
  "client ipc min protocol = SMB2",
152
161
  "client ipc max protocol = SMB3",
153
162
  "client min protocol = SMB2",
@@ -159,7 +168,7 @@ class Samba extends common_1.ComponentResource {
159
168
  "printing = bsd",
160
169
  "printcap name = /dev/null",
161
170
  "disable spoolss = yes",
162
- "socket options = SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY",
171
+ "socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=524288 SO_SNDBUF=524288",
163
172
  "min receivefile size = 16384",
164
173
  "use sendfile = true",
165
174
  "aio max threads = 128",
@@ -168,25 +177,46 @@ class Samba extends common_1.ComponentResource {
168
177
  "aio write behind = true",
169
178
  "posix locking = no",
170
179
  "strict locking = no",
171
- "follow symlinks = yes",
172
180
  "unix extensions = yes",
173
181
  "wide links = no",
174
182
  "mangled names = no",
175
183
  "unix charset = UTF-8",
176
184
  "acl allow execute always = yes",
177
- "vfs objects = catia fruit",
185
+ "vfs objects = catia fruit streams_xattr acl_xattr",
186
+ "map acl inherit = yes",
187
+ "store dos attributes = yes",
188
+ "inherit acls = yes",
178
189
  "fruit:aapl = yes",
179
- "fruit:delete_empty_adfiles = yes",
180
- "fruit:time machine = yes",
181
190
  "fruit:veto_appledouble = yes",
191
+ "fruit:delete_empty_adfiles = yes",
192
+ "fruit:advertise_fullsync = true",
182
193
  "fruit:wipe_intentionally_left_blank_rfork = yes",
183
194
  `fruit:model = ${deviceModel}`,
184
- "fruit:locking = none",
185
- "ea support = no",
195
+ "fruit:locking = netatalk",
196
+ "fruit:metadata = stream",
197
+ "fruit:posix_rename = yes",
198
+ "fruit:zero_file_id = yes",
199
+ "fruit:resource = xattr",
200
+ "fruit:nfs_aces = no",
201
+ "ea support = yes",
202
+ "durable handles = yes",
203
+ "kernel share modes = no",
186
204
  "kernel oplocks = no",
187
- "oplocks = no",
188
- "level2 oplocks = no",
205
+ "getwd cache = yes",
206
+ "winbind nss info = rfc2307",
207
+ "winbind use default domain = yes",
208
+ "winbind enum users = yes",
209
+ "winbind enum groups = yes",
210
+ "winbind nested groups = yes",
211
+ "winbind refresh tickets = yes",
212
+ "winbind offline logon = true",
189
213
  ];
214
+ if (args.domainJoinUsername !== undefined && (args.domainJoinPassword !== undefined && domain) !== undefined) {
215
+ sambaConfig.push(`realm = ${domain}`, "server role = member server", "security = ADS", `idmap config ${workgroup} : backend = ad`, `idmap config ${workgroup} : schema_mode = rfc2307`, `idmap config ${workgroup} : range = 2000-999999`, `idmap config ${workgroup} : unix_primary_group = yes`, `idmap config ${workgroup} : unix_nss_info = yes`, "idmap config *: range = 1000000-1999999", "idmap config * : backend = tdb");
216
+ }
217
+ else {
218
+ sambaConfig.push("server role = standalone server", "security = USER");
219
+ }
190
220
  const deploymentVolumes = [];
191
221
  const deploymentVolumeMounts = [];
192
222
  for (const volume of volumes) {
@@ -197,7 +227,10 @@ class Samba extends common_1.ComponentResource {
197
227
  });
198
228
  const mountPath = `/shares/${volumeName}`;
199
229
  deploymentVolumeMounts.push({ name: volumeName, mountPath });
200
- sambaConfig.push(`[${volume.name}]`, `comment = ${volume.comment ?? volume.name}`, `path = ${mountPath}`, "browseable = yes", "read only = no", "guest ok = no", `veto files = /${Samba.vetoFiles.join("/")}/`, "delete veto files = yes");
230
+ sambaConfig.push(`[${volume.name}]`, `comment = ${volume.comment ?? volume.name}`, `path = ${mountPath}`, "browseable = yes", "read only = no", "writable = yes", "guest ok = no", `veto files = /${Samba.vetoFiles.join("/")}/`, "delete veto files = yes");
231
+ if (volume.timeMachine) {
232
+ sambaConfig.push("fruit:time machine = yes");
233
+ }
201
234
  }
202
235
  return { smbConf: sambaConfig.join("\n"), volumes: deploymentVolumes, volumeMounts: deploymentVolumeMounts };
203
236
  });
@@ -207,6 +240,13 @@ class Samba extends common_1.ComponentResource {
207
240
  "smb.conf": config.smbConf,
208
241
  },
209
242
  }, opts);
243
+ this.domainJoinCredentials = new k8s.core.v1.Secret(`${name}-domain-join-credentials`, {
244
+ metadata: { ...metadata, name: pulumi.interpolate `${name}-domain-join-credentials` },
245
+ stringData: {
246
+ username: args.domainJoinUsername ?? "",
247
+ password: args.domainJoinPassword ?? "",
248
+ },
249
+ }, opts);
210
250
  if (args.calicoIpReservations !== undefined) {
211
251
  this.calicoIpReservations = new k8s.apiextensions.CustomResource(name, {
212
252
  apiVersion: "crd.projectcalico.org/v1",
@@ -249,20 +289,21 @@ class Samba extends common_1.ComponentResource {
249
289
  },
250
290
  spec: {
251
291
  nodeSelector: args.nodeSelector,
292
+ hostname: pulumi.all([args.serverName]).apply(([serverName]) => serverName.toLowerCase()),
293
+ dnsPolicy: args.domainNameservers ? "None" : undefined,
294
+ dnsConfig: {
295
+ nameservers: args.domainNameservers,
296
+ searches: args.domain ? [args.domain] : undefined,
297
+ },
252
298
  containers: [
253
299
  {
254
300
  name: "samba",
255
- image: "dperson/samba:latest",
301
+ image: "ydkn/samba:latest",
256
302
  imagePullPolicy: "Always",
257
- command: ["/bin/sh"],
258
- args: pulumi.all([args.users]).apply((o) => {
259
- const cmds = ["mkdir -p /var/lib/samba/private"];
260
- for (const user of o[0]) {
261
- cmds.push(`adduser -s /bin/false -D -u ${user.uid} "${user.name}"`);
262
- }
263
- cmds.push("/usr/bin/samba.sh");
264
- return ["-c", cmds.join(" && ")];
265
- }),
303
+ env: [
304
+ { name: "WORKGROUP", value: args.workgroup },
305
+ { name: "REALM", value: args.domain ?? "" },
306
+ ],
266
307
  ports: [
267
308
  { containerPort: 137, protocol: "UDP", name: "netbios-ns" },
268
309
  { containerPort: 138, protocol: "UDP", name: "netbios-dgm" },
@@ -284,12 +325,13 @@ class Samba extends common_1.ComponentResource {
284
325
  timeoutSeconds: 10,
285
326
  },
286
327
  resources: {
287
- requests: { memory: "256Mi" },
288
- limits: { memory: "512Mi" },
328
+ requests: { memory: "512Mi" },
329
+ limits: { memory: "768Mi" },
289
330
  },
290
331
  volumeMounts: pulumi.all([config]).apply(([config]) => {
291
332
  return config.volumeMounts.concat([
292
- { name: "config", mountPath: "/etc/samba" },
333
+ { name: "config", mountPath: "/config" },
334
+ { name: "domain-join-credentials", mountPath: "/run/secrets/samba-dc-join-credentials" },
293
335
  { name: "data", mountPath: "/var/lib/samba" },
294
336
  ]);
295
337
  }),
@@ -298,6 +340,7 @@ class Samba extends common_1.ComponentResource {
298
340
  volumes: pulumi.all([config]).apply(([config]) => {
299
341
  return config.volumes.concat([
300
342
  { name: "config", configMap: { name: this.settings.metadata.name } },
343
+ { name: "domain-join-credentials", secret: { secretName: this.domainJoinCredentials.metadata.name } },
301
344
  { name: "data", persistentVolumeClaim: { claimName: dataVolumeClaimName } },
302
345
  ]);
303
346
  }),
@@ -325,9 +368,13 @@ class Samba extends common_1.ComponentResource {
325
368
  this.avahiService = new avahiService_1.AvahiService(name, {
326
369
  labelName: args.avahiLabelName,
327
370
  metadata,
328
- name: args.serverName,
371
+ name: args.avahiServiceName ?? args.serverName,
329
372
  hostname: args.hostname,
330
373
  deviceModel: args.deviceModel,
374
+ timeMachineShareName: pulumi.all([volumes]).apply(([volumes]) => {
375
+ const share = volumes.filter((volume) => volume.timeMachine)[0];
376
+ return share ? share.name : undefined;
377
+ }),
331
378
  }, opts);
332
379
  }
333
380
  this.registerOutputs();