@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.
- package/lib/avahi/service.d.ts +1 -1
- package/lib/avahi/service.d.ts.map +1 -1
- package/lib/avahi/service.js +4 -2
- package/lib/avahi/service.js.map +1 -1
- package/lib/hcloud/netbirdAgent.d.ts +2 -3
- package/lib/hcloud/netbirdAgent.d.ts.map +1 -1
- package/lib/hcloud/netbirdAgent.js +2 -13
- package/lib/hcloud/netbirdAgent.js.map +1 -1
- package/lib/hcloud/netbirdManagement.d.ts +2 -3
- package/lib/hcloud/netbirdManagement.d.ts.map +1 -1
- package/lib/hcloud/netbirdManagement.js +2 -13
- package/lib/hcloud/netbirdManagement.js.map +1 -1
- package/lib/hcloud/wireguard.d.ts +2 -3
- package/lib/hcloud/wireguard.d.ts.map +1 -1
- package/lib/hcloud/wireguard.js +2 -12
- package/lib/hcloud/wireguard.js.map +1 -1
- package/lib/netbird/agent.d.ts +1 -0
- package/lib/netbird/agent.d.ts.map +1 -1
- package/lib/netbird/agent.js +1 -1
- package/lib/netbird/agent.js.map +1 -1
- package/lib/netbird/management.d.ts +12 -0
- package/lib/netbird/management.d.ts.map +1 -1
- package/lib/netbird/management.js +37 -31
- package/lib/netbird/management.js.map +1 -1
- package/lib/node/gateway.d.ts +9 -0
- package/lib/node/gateway.d.ts.map +1 -0
- package/lib/node/gateway.js +12 -0
- package/lib/node/gateway.js.map +1 -0
- package/lib/node/index.d.ts +3 -2
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +8 -1
- package/lib/node/index.js.map +1 -1
- package/lib/node/node.d.ts +3 -0
- package/lib/node/node.d.ts.map +1 -1
- package/lib/node/node.js +44 -0
- package/lib/node/node.js.map +1 -1
- package/lib/samba/avahiService.d.ts +1 -0
- package/lib/samba/avahiService.d.ts.map +1 -1
- package/lib/samba/avahiService.js +25 -13
- package/lib/samba/avahiService.js.map +1 -1
- package/lib/samba/dc.d.ts +7 -1
- package/lib/samba/dc.d.ts.map +1 -1
- package/lib/samba/dc.js +13 -3
- package/lib/samba/dc.js.map +1 -1
- package/lib/samba/deployment.d.ts +8 -5
- package/lib/samba/deployment.d.ts.map +1 -1
- package/lib/samba/deployment.js +75 -28
- package/lib/samba/deployment.js.map +1 -1
- package/lib/samba/index.d.ts +2 -2
- package/lib/samba/index.d.ts.map +1 -1
- package/lib/samba/index.js.map +1 -1
- package/lib/ubuntu/assets/init.sh +19 -13
- package/lib/wireguard/deployment.d.ts +0 -2
- package/lib/wireguard/deployment.d.ts.map +1 -1
- package/lib/wireguard/deployment.js +2 -5
- package/lib/wireguard/deployment.js.map +1 -1
- 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"}
|
package/lib/node/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Node } from "./node";
|
|
1
|
+
import { Node, filterNodes } from "./node";
|
|
2
2
|
import { KubernetesArgs, Kubernetes } from "./kubernetes";
|
|
3
|
-
|
|
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
|
package/lib/node/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
package/lib/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/node/index.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/lib/node/node.d.ts
CHANGED
|
@@ -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
|
package/lib/node/node.d.ts.map
CHANGED
|
@@ -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
|
package/lib/node/node.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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;
|
|
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
|
-
|
|
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.
|
package/lib/samba/dc.d.ts.map
CHANGED
|
@@ -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,
|
|
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 =
|
|
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.
|
|
246
|
+
hostnames: [args.nsHostname, args.ldapHostname],
|
|
237
247
|
}, { ...k8sOpts, dependsOn: [this.deployment] });
|
|
238
248
|
this.registerOutputs();
|
|
239
249
|
}
|
package/lib/samba/dc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dc.js","sourceRoot":"","sources":["../../../lib/samba/dc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AACzC,uDAAyC;AACzC,wDAA0C;AAC1C,sCAA8C;AAC9C,0DAA4C;
|
|
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":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../lib/samba/deployment.ts"],"names":[],"mappings":"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"}
|
package/lib/samba/deployment.js
CHANGED
|
@@ -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=
|
|
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 =
|
|
185
|
-
"
|
|
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
|
-
"
|
|
188
|
-
"
|
|
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: "
|
|
301
|
+
image: "ydkn/samba:latest",
|
|
256
302
|
imagePullPolicy: "Always",
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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: "
|
|
288
|
-
limits: { memory: "
|
|
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: "/
|
|
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();
|