@tyevco/pulumi-homelab 0.5.3 → 0.5.5
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/dockgeStack.js +6 -0
- package/index.js +31 -0
- package/lxcContainer.js +55 -0
- package/notificationSettings.js +65 -0
- package/opnsenseAlias.js +52 -0
- package/opnsenseFirewallRule.js +52 -0
- package/opnsenseUnboundAcl.js +52 -0
- package/opnsenseUnboundDnsbl.js +52 -0
- package/opnsenseUnboundForward.js +52 -0
- package/opnsenseUnboundHostOverride.js +52 -0
- package/package.json +26 -29
- package/provider.js +62 -0
- package/stack.js +74 -0
- package/traefikRoute.js +55 -0
- package/traefikStaticConfig.js +55 -0
- package/unraidVm.js +67 -0
- package/.github/workflows/ci.yml +0 -42
- package/.github/workflows/release-please.yml +0 -88
- package/.github/workflows/release.yml +0 -87
- package/.release-please-manifest.json +0 -3
- package/CHANGELOG.md +0 -102
- package/CLAUDE.md +0 -35
- package/dist/index.js +0 -179
- package/jest.config.js +0 -23
- package/pulumi-resource-homelab +0 -3
- package/pulumi-resource-homelab.cmd +0 -2
- package/release-please-config.json +0 -22
- package/schema.json +0 -1109
- package/sdk/nodejs/package-lock.json +0 -2967
- package/sdk/nodejs/package.json +0 -35
- package/src/composeDiff.ts +0 -197
- package/src/envDiff.ts +0 -41
- package/src/helpers.ts +0 -114
- package/src/homelabClient.ts +0 -316
- package/src/index.ts +0 -218
- package/src/opnsenseClient.ts +0 -553
- package/src/provider.ts +0 -100
- package/src/resources/lxcContainer.ts +0 -285
- package/src/resources/notificationSettings.ts +0 -157
- package/src/resources/opnsenseAlias.ts +0 -176
- package/src/resources/opnsenseFirewallRule.ts +0 -194
- package/src/resources/opnsenseUnboundAcl.ts +0 -182
- package/src/resources/opnsenseUnboundDnsbl.ts +0 -174
- package/src/resources/opnsenseUnboundForward.ts +0 -182
- package/src/resources/opnsenseUnboundHostOverride.ts +0 -180
- package/src/resources/stack.ts +0 -326
- package/src/resources/traefikRoute.ts +0 -199
- package/src/resources/traefikStaticConfig.ts +0 -157
- package/src/resources/unraidVm.ts +0 -217
- package/tests/composeDiff.test.ts +0 -256
- package/tests/envDiff.test.ts +0 -84
- package/tests/helpers.test.ts +0 -313
- package/tests/homelabClient.test.ts +0 -530
- package/tests/lxcClient.test.ts +0 -240
- package/tests/lxcContainer.test.ts +0 -504
- package/tests/notificationSettings.test.ts +0 -197
- package/tests/opnsenseAlias.test.ts +0 -383
- package/tests/opnsenseClient.test.ts +0 -1669
- package/tests/opnsenseFirewallRule.test.ts +0 -397
- package/tests/opnsenseUnboundAcl.test.ts +0 -316
- package/tests/opnsenseUnboundDnsbl.test.ts +0 -314
- package/tests/opnsenseUnboundForward.test.ts +0 -305
- package/tests/opnsenseUnboundHostOverride.test.ts +0 -320
- package/tests/provider.test.ts +0 -243
- package/tests/stack.test.ts +0 -675
- package/tests/testUtils.ts +0 -123
- package/tests/traefikRoute.test.ts +0 -565
- package/tests/unraidVm.test.ts +0 -272
- package/tsconfig.json +0 -18
- /package/{sdk/nodejs/index.d.ts → index.d.ts} +0 -0
- /package/{sdk/nodejs/lxcContainer.d.ts → lxcContainer.d.ts} +0 -0
- /package/{sdk/nodejs/notificationSettings.d.ts → notificationSettings.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseAlias.d.ts → opnsenseAlias.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseFirewallRule.d.ts → opnsenseFirewallRule.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseUnboundAcl.d.ts → opnsenseUnboundAcl.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseUnboundDnsbl.d.ts → opnsenseUnboundDnsbl.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseUnboundForward.d.ts → opnsenseUnboundForward.d.ts} +0 -0
- /package/{sdk/nodejs/opnsenseUnboundHostOverride.d.ts → opnsenseUnboundHostOverride.d.ts} +0 -0
- /package/{sdk/nodejs/provider.d.ts → provider.d.ts} +0 -0
- /package/{sdk/nodejs/stack.d.ts → stack.d.ts} +0 -0
- /package/{sdk/nodejs/traefikRoute.d.ts → traefikRoute.d.ts} +0 -0
- /package/{sdk/nodejs/traefikStaticConfig.d.ts → traefikStaticConfig.d.ts} +0 -0
- /package/{sdk/nodejs/unraidVm.d.ts → unraidVm.d.ts} +0 -0
package/dockgeStack.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DockgeStack = void 0;
|
|
4
|
+
// Backward compatibility — re-exports from renamed module
|
|
5
|
+
var stack_1 = require("./stack");
|
|
6
|
+
Object.defineProperty(exports, "DockgeStack", { enumerable: true, get: function () { return stack_1.DockgeStack; } });
|
package/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnraidVm = exports.NotificationSettings = exports.LxcContainer = exports.OpnsenseUnboundDnsbl = exports.OpnsenseUnboundAcl = exports.OpnsenseUnboundForward = exports.OpnsenseUnboundHostOverride = exports.OpnsenseAlias = exports.OpnsenseFirewallRule = exports.TraefikRoute = exports.TraefikStaticConfig = exports.Stack = exports.Provider = void 0;
|
|
4
|
+
// Provider
|
|
5
|
+
var provider_1 = require("./provider");
|
|
6
|
+
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return provider_1.Provider; } });
|
|
7
|
+
// Resources
|
|
8
|
+
var stack_1 = require("./stack");
|
|
9
|
+
Object.defineProperty(exports, "Stack", { enumerable: true, get: function () { return stack_1.Stack; } });
|
|
10
|
+
var traefikStaticConfig_1 = require("./traefikStaticConfig");
|
|
11
|
+
Object.defineProperty(exports, "TraefikStaticConfig", { enumerable: true, get: function () { return traefikStaticConfig_1.TraefikStaticConfig; } });
|
|
12
|
+
var traefikRoute_1 = require("./traefikRoute");
|
|
13
|
+
Object.defineProperty(exports, "TraefikRoute", { enumerable: true, get: function () { return traefikRoute_1.TraefikRoute; } });
|
|
14
|
+
var opnsenseFirewallRule_1 = require("./opnsenseFirewallRule");
|
|
15
|
+
Object.defineProperty(exports, "OpnsenseFirewallRule", { enumerable: true, get: function () { return opnsenseFirewallRule_1.OpnsenseFirewallRule; } });
|
|
16
|
+
var opnsenseAlias_1 = require("./opnsenseAlias");
|
|
17
|
+
Object.defineProperty(exports, "OpnsenseAlias", { enumerable: true, get: function () { return opnsenseAlias_1.OpnsenseAlias; } });
|
|
18
|
+
var opnsenseUnboundHostOverride_1 = require("./opnsenseUnboundHostOverride");
|
|
19
|
+
Object.defineProperty(exports, "OpnsenseUnboundHostOverride", { enumerable: true, get: function () { return opnsenseUnboundHostOverride_1.OpnsenseUnboundHostOverride; } });
|
|
20
|
+
var opnsenseUnboundForward_1 = require("./opnsenseUnboundForward");
|
|
21
|
+
Object.defineProperty(exports, "OpnsenseUnboundForward", { enumerable: true, get: function () { return opnsenseUnboundForward_1.OpnsenseUnboundForward; } });
|
|
22
|
+
var opnsenseUnboundAcl_1 = require("./opnsenseUnboundAcl");
|
|
23
|
+
Object.defineProperty(exports, "OpnsenseUnboundAcl", { enumerable: true, get: function () { return opnsenseUnboundAcl_1.OpnsenseUnboundAcl; } });
|
|
24
|
+
var opnsenseUnboundDnsbl_1 = require("./opnsenseUnboundDnsbl");
|
|
25
|
+
Object.defineProperty(exports, "OpnsenseUnboundDnsbl", { enumerable: true, get: function () { return opnsenseUnboundDnsbl_1.OpnsenseUnboundDnsbl; } });
|
|
26
|
+
var lxcContainer_1 = require("./lxcContainer");
|
|
27
|
+
Object.defineProperty(exports, "LxcContainer", { enumerable: true, get: function () { return lxcContainer_1.LxcContainer; } });
|
|
28
|
+
var notificationSettings_1 = require("./notificationSettings");
|
|
29
|
+
Object.defineProperty(exports, "NotificationSettings", { enumerable: true, get: function () { return notificationSettings_1.NotificationSettings; } });
|
|
30
|
+
var unraidVm_1 = require("./unraidVm");
|
|
31
|
+
Object.defineProperty(exports, "UnraidVm", { enumerable: true, get: function () { return unraidVm_1.UnraidVm; } });
|
package/lxcContainer.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.LxcContainer = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class LxcContainer extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:LxcContainer", name, {
|
|
43
|
+
status: undefined,
|
|
44
|
+
ip: undefined,
|
|
45
|
+
pid: undefined,
|
|
46
|
+
memory: undefined,
|
|
47
|
+
...args,
|
|
48
|
+
}, {
|
|
49
|
+
version: PLUGIN_VERSION,
|
|
50
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
51
|
+
...opts,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.LxcContainer = LxcContainer;
|
|
@@ -0,0 +1,65 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NotificationSettings = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
/**
|
|
41
|
+
* Manages notification provider settings on the homelab server.
|
|
42
|
+
* This is a singleton resource — only one instance should exist per provider.
|
|
43
|
+
*
|
|
44
|
+
* ## Example Usage
|
|
45
|
+
*
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const notifications = new homelab.NotificationSettings("notifications", {
|
|
48
|
+
* ntfyEnabled: true,
|
|
49
|
+
* ntfyUrl: "https://ntfy.sh/my-homelab-alerts",
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
class NotificationSettings extends pulumi.CustomResource {
|
|
54
|
+
constructor(name, args, opts) {
|
|
55
|
+
super("homelab:index:NotificationSettings", name, {
|
|
56
|
+
...args,
|
|
57
|
+
}, {
|
|
58
|
+
version: PLUGIN_VERSION,
|
|
59
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
60
|
+
additionalSecretOutputs: ["gotifyToken"],
|
|
61
|
+
...opts,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.NotificationSettings = NotificationSettings;
|
package/opnsenseAlias.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseAlias = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseAlias extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseAlias", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseAlias = OpnsenseAlias;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseFirewallRule = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseFirewallRule extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseFirewallRule", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseFirewallRule = OpnsenseFirewallRule;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseUnboundAcl = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseUnboundAcl extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundAcl", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundAcl = OpnsenseUnboundAcl;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseUnboundDnsbl = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseUnboundDnsbl extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundDnsbl", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundDnsbl = OpnsenseUnboundDnsbl;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseUnboundForward = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseUnboundForward extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundForward", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundForward = OpnsenseUnboundForward;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.OpnsenseUnboundHostOverride = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
class OpnsenseUnboundHostOverride extends pulumi.CustomResource {
|
|
41
|
+
constructor(name, args, opts) {
|
|
42
|
+
super("homelab:index:OpnsenseUnboundHostOverride", name, {
|
|
43
|
+
uuid: undefined,
|
|
44
|
+
...args,
|
|
45
|
+
}, {
|
|
46
|
+
version: PLUGIN_VERSION,
|
|
47
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
48
|
+
...opts,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpnsenseUnboundHostOverride = OpnsenseUnboundHostOverride;
|
package/package.json
CHANGED
|
@@ -1,38 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tyevco/pulumi-homelab",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "
|
|
6
|
-
"
|
|
3
|
+
"version": "0.5.5",
|
|
4
|
+
"description": "Pulumi SDK for managing homelab infrastructure",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"typings": "index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"*.js",
|
|
9
|
+
"*.d.ts",
|
|
10
|
+
"package.json"
|
|
11
|
+
],
|
|
7
12
|
"scripts": {
|
|
8
|
-
"build": "tsc"
|
|
9
|
-
"clean": "rm -rf dist",
|
|
10
|
-
"rebuild": "npm run clean && npm run build",
|
|
11
|
-
"deploy:local": "npm run rebuild && VERSION=$(node -p \"require('./package.json').version\") && mkdir -p ~/.pulumi/plugins/resource-homelab-v${VERSION} && cp -r dist package.json node_modules schema.json pulumi-resource-homelab pulumi-resource-homelab.cmd ~/.pulumi/plugins/resource-homelab-v${VERSION}/",
|
|
12
|
-
"prepublishOnly": "npm run build",
|
|
13
|
-
"test": "jest"
|
|
13
|
+
"build": "tsc"
|
|
14
14
|
},
|
|
15
|
-
"keywords": [
|
|
16
|
-
"pulumi",
|
|
17
|
-
"homelab",
|
|
18
|
-
"lxc",
|
|
19
|
-
"infrastructure",
|
|
20
|
-
"docker-compose"
|
|
21
|
-
],
|
|
22
|
-
"license": "Apache-2.0",
|
|
23
15
|
"dependencies": {
|
|
24
|
-
"@
|
|
25
|
-
"@pulumi/pulumi": "^3.132.0",
|
|
26
|
-
"cross-fetch": "^4.0.0",
|
|
27
|
-
"google-protobuf": "3.21.4",
|
|
28
|
-
"yaml": "^2.8.2"
|
|
16
|
+
"@pulumi/pulumi": "^3.132.0"
|
|
29
17
|
},
|
|
30
18
|
"devDependencies": {
|
|
31
|
-
"
|
|
32
|
-
"@types/
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
"
|
|
19
|
+
"typescript": "^5.0.0",
|
|
20
|
+
"@types/node": "^20.0.0"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "https://github.com/tyevco/pulumi-homelab.git",
|
|
25
|
+
"directory": "sdk/nodejs"
|
|
26
|
+
},
|
|
27
|
+
"license": "Apache-2.0",
|
|
28
|
+
"publishConfig": {
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"pulumi": {
|
|
32
|
+
"resource": true,
|
|
33
|
+
"pluginDownloadURL": "github://api.github.com/tyevco/pulumi-homelab"
|
|
37
34
|
}
|
|
38
35
|
}
|
package/provider.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Provider = void 0;
|
|
37
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const PLUGIN_VERSION = require("./package.json").version;
|
|
39
|
+
const PLUGIN_DOWNLOAD_URL = "github://api.github.com/tyevco/pulumi-homelab";
|
|
40
|
+
/**
|
|
41
|
+
* The provider type for the Homelab package. By default, resources use package-wide configuration
|
|
42
|
+
* settings, however an explicit `Provider` instance may be created and passed during resource
|
|
43
|
+
* construction to achieve fine-grained programmatic control over provider settings.
|
|
44
|
+
*/
|
|
45
|
+
class Provider extends pulumi.ProviderResource {
|
|
46
|
+
constructor(name, args, opts) {
|
|
47
|
+
const inputs = {
|
|
48
|
+
url: args?.url,
|
|
49
|
+
apiKey: args?.apiKey,
|
|
50
|
+
opnsenseUrl: args?.opnsenseUrl,
|
|
51
|
+
opnsenseApiKey: args?.opnsenseApiKey,
|
|
52
|
+
opnsenseApiSecret: args?.opnsenseApiSecret,
|
|
53
|
+
opnsenseInsecure: args?.opnsenseInsecure,
|
|
54
|
+
};
|
|
55
|
+
super("homelab", name, inputs, {
|
|
56
|
+
version: PLUGIN_VERSION,
|
|
57
|
+
pluginDownloadURL: PLUGIN_DOWNLOAD_URL,
|
|
58
|
+
...opts,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.Provider = Provider;
|