@ydkn/pulumi-components 0.4.7 → 0.4.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ydkn/pulumi-components",
3
- "version": "0.4.7",
3
+ "version": "0.4.8",
4
4
  "keywords": [
5
5
  "pulumi"
6
6
  ],
@@ -1,22 +0,0 @@
1
- import * as pulumi from "@pulumi/pulumi";
2
- import { ComponentResource } from "../common";
3
- export interface BrokerArgs {
4
- /**
5
- * Optional: Namespace
6
- */
7
- namespace?: pulumi.Input<string>;
8
- }
9
- export declare class Broker extends ComponentResource {
10
- private readonly helmRelease;
11
- readonly namespace: pulumi.Output<string>;
12
- readonly ca: pulumi.Output<string>;
13
- readonly token: pulumi.Output<string>;
14
- /**
15
- * Create a new Submariner broker resource.
16
- * @param name The name of Submariner broker resource.
17
- * @param args A bag of arguments to control the Submariner broker creation.
18
- * @param opts A bag of options that control this resource's behavior.
19
- */
20
- constructor(name: string, args: BrokerArgs, opts?: pulumi.ComponentResourceOptions);
21
- }
22
- //# sourceMappingURL=broker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../lib/submariner/broker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,MAAO,SAAQ,iBAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,SAAgB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,SAAgB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7C;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,wBAAwB;CAuCnF"}
@@ -1,64 +0,0 @@
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
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Broker = void 0;
27
- const pulumi = __importStar(require("@pulumi/pulumi"));
28
- const k8s = __importStar(require("@pulumi/kubernetes"));
29
- const common_1 = require("../common");
30
- const helm = __importStar(require("../kubernetes/helm"));
31
- class Broker extends common_1.ComponentResource {
32
- helmRelease;
33
- namespace;
34
- ca;
35
- token;
36
- /**
37
- * Create a new Submariner broker resource.
38
- * @param name The name of Submariner broker resource.
39
- * @param args A bag of arguments to control the Submariner broker creation.
40
- * @param opts A bag of options that control this resource's behavior.
41
- */
42
- constructor(name, args, opts) {
43
- super("submariner:broker", name, args, opts);
44
- const k8sOpts = this.opts(k8s.Provider);
45
- this.namespace = args.namespace
46
- ? pulumi.output(args.namespace)
47
- : new k8s.core.v1.Namespace(name, { metadata: { name } }, k8sOpts).metadata.name;
48
- this.helmRelease = new helm.v3.Release(name, {
49
- namespace: this.namespace,
50
- repositoryOpts: { repo: "https://submariner-io.github.io/submariner-charts/charts" },
51
- chart: "submariner-k8s-broker",
52
- values: {
53
- fullnameOverride: name,
54
- },
55
- }, k8sOpts);
56
- const serviceAccount = k8s.core.v1.ServiceAccount.get(`${name}-service-account`, pulumi.interpolate `${this.helmRelease.status.namespace}/${name}-client`, k8sOpts);
57
- const secret = k8s.core.v1.Secret.get(`${name}-secret`, pulumi.interpolate `${this.helmRelease.status.namespace}/${serviceAccount.secrets[0].name}`, k8sOpts);
58
- this.ca = pulumi.secret(secret.data["ca.crt"]);
59
- this.token = pulumi.secret(secret.data.token.apply((token) => Buffer.from(token, "base64").toString("ascii")));
60
- this.registerOutputs();
61
- }
62
- }
63
- exports.Broker = Broker;
64
- //# sourceMappingURL=broker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/submariner/broker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AACzC,wDAA0C;AAC1C,sCAA8C;AAC9C,yDAA2C;AAS3C,MAAa,MAAO,SAAQ,0BAAiB;IAC1B,WAAW,CAAkB;IAC9B,SAAS,CAAwB;IACjC,EAAE,CAAwB;IAC1B,KAAK,CAAwB;IAE7C;;;;;OAKG;IACH,YAAY,IAAY,EAAE,IAAgB,EAAE,IAAsC;QAChF,KAAK,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;YAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/B,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAEnF,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC,IAAI,EACJ;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,EAAE,IAAI,EAAE,0DAA0D,EAAE;YACpF,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE;gBACN,gBAAgB,EAAE,IAAI;aACvB;SACF,EACD,OAAO,CACR,CAAC;QAEF,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CACnD,GAAG,IAAI,kBAAkB,EACzB,MAAM,CAAC,WAAW,CAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,SAAS,EACvE,OAAO,CACR,CAAC;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CACnC,GAAG,IAAI,SAAS,EAChB,MAAM,CAAC,WAAW,CAAA,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAC1F,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE/G,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;CACF;AAnDD,wBAmDC"}
@@ -1,4 +0,0 @@
1
- import { BrokerArgs, Broker } from "./broker";
2
- import { OperatorBrokerArgs, OperatorArgs, Operator } from "./operator";
3
- export { BrokerArgs, Broker, OperatorBrokerArgs, OperatorArgs, Operator };
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/submariner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Operator = exports.Broker = void 0;
4
- const broker_1 = require("./broker");
5
- Object.defineProperty(exports, "Broker", { enumerable: true, get: function () { return broker_1.Broker; } });
6
- const operator_1 = require("./operator");
7
- Object.defineProperty(exports, "Operator", { enumerable: true, get: function () { return operator_1.Operator; } });
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/submariner/index.ts"],"names":[],"mappings":";;;AAAA,qCAA8C;AAGzB,uFAHA,eAAM,OAGA;AAF3B,yCAAwE;AAET,yFAFpB,mBAAQ,OAEoB"}
@@ -1,72 +0,0 @@
1
- import * as pulumi from "@pulumi/pulumi";
2
- import { ComponentResource } from "../common";
3
- export interface OperatorBrokerArgs {
4
- /**
5
- * Server
6
- */
7
- server: pulumi.Input<string>;
8
- /**
9
- * CA certificate
10
- */
11
- ca: pulumi.Input<string>;
12
- /**
13
- * Token
14
- */
15
- token: pulumi.Input<string>;
16
- /**
17
- * Optional: Namespace
18
- */
19
- namespace?: pulumi.Input<string>;
20
- /**
21
- * Optional: Enable GlobalNet
22
- */
23
- globalNet?: pulumi.Input<boolean>;
24
- }
25
- export interface OperatorArgs {
26
- /**
27
- * Optional: Namespace
28
- */
29
- namespace?: pulumi.Input<string>;
30
- /**
31
- * Broker
32
- */
33
- broker: pulumi.Input<OperatorBrokerArgs>;
34
- /**
35
- * Cluster ID
36
- */
37
- clusterId: pulumi.Input<string>;
38
- /**
39
- * Pod CIDR
40
- */
41
- podCIDR: pulumi.Input<string>;
42
- /**
43
- * Service CIDR
44
- */
45
- serviceCIDR: pulumi.Input<string>;
46
- /**
47
- * Optional: NAT enabled
48
- */
49
- natEnabled?: pulumi.Input<boolean>;
50
- /**
51
- * Optional: Calico ignored subnets
52
- */
53
- calicoIgnoredSubnets?: pulumi.Input<pulumi.Input<string>[]>;
54
- }
55
- export declare class Operator extends ComponentResource {
56
- private static readonly imageTag;
57
- private readonly psk;
58
- private readonly helmChart;
59
- private readonly role?;
60
- private readonly roleBindingGateway?;
61
- private readonly roleBindingRouteAgent?;
62
- private readonly calicoIPPools?;
63
- readonly namespace: pulumi.Output<string>;
64
- /**
65
- * Create a new Submariner operator resource.
66
- * @param name The name of Submariner operator resource.
67
- * @param args A bag of arguments to control the Submariner operator creation.
68
- * @param opts A bag of options that control this resource's behavior.
69
- */
70
- constructor(name: string, args: OperatorArgs, opts?: pulumi.ComponentResourceOptions);
71
- }
72
- //# sourceMappingURL=operator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../../../lib/submariner/operator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CAC7D;AAED,qBAAa,QAAS,SAAQ,iBAAiB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAY;IAE5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAA0B;IAC9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAA0B;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoD;IACnF,SAAgB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjD;;;;;OAKG;gBACS,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,wBAAwB;CAyErF"}
@@ -1,102 +0,0 @@
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
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Operator = void 0;
27
- const pulumi = __importStar(require("@pulumi/pulumi"));
28
- const random = __importStar(require("@pulumi/random"));
29
- const k8s = __importStar(require("@pulumi/kubernetes"));
30
- const common_1 = require("../common");
31
- const helm = __importStar(require("../kubernetes/helm"));
32
- class Operator extends common_1.ComponentResource {
33
- static imageTag = "0.12.0";
34
- psk;
35
- helmChart;
36
- role;
37
- roleBindingGateway;
38
- roleBindingRouteAgent;
39
- calicoIPPools;
40
- namespace;
41
- /**
42
- * Create a new Submariner operator resource.
43
- * @param name The name of Submariner operator resource.
44
- * @param args A bag of arguments to control the Submariner operator creation.
45
- * @param opts A bag of options that control this resource's behavior.
46
- */
47
- constructor(name, args, opts) {
48
- super("submariner:operator", name, args, opts);
49
- const emptyOpts = this.opts();
50
- const k8sOpts = this.opts(k8s.Provider);
51
- this.psk = new random.RandomString(name, { length: 64, special: false }, emptyOpts);
52
- this.namespace = args.namespace
53
- ? pulumi.output(args.namespace)
54
- : new k8s.core.v1.Namespace(name, { metadata: { name } }, k8sOpts).metadata.name;
55
- this.helmChart = new helm.v3.Chart(name, {
56
- namespace: this.namespace,
57
- fetchOpts: { repo: "https://submariner-io.github.io/submariner-charts/charts" },
58
- chart: "submariner-operator",
59
- values: {
60
- fullnameOverride: name,
61
- broker: pulumi.all([args.broker]).apply(([broker]) => {
62
- return {
63
- server: broker.server,
64
- ca: broker.ca,
65
- token: broker.token,
66
- namespace: broker.namespace ?? "submariner-broker",
67
- globalnet: broker.globalNet ?? false,
68
- };
69
- }),
70
- ipsec: { psk: this.psk.result },
71
- operator: { image: { tag: Operator.imageTag } },
72
- gateway: { image: { tag: Operator.imageTag } },
73
- submariner: {
74
- images: { tag: Operator.imageTag },
75
- serviceDiscovery: false,
76
- cableDriver: "wireguard",
77
- clusterId: args.clusterId,
78
- clusterCidr: args.podCIDR,
79
- serviceCidr: args.serviceCIDR,
80
- natEnabled: args.natEnabled,
81
- },
82
- serviceAccounts: {
83
- operator: { name },
84
- gateway: { name: `${name}-gateway` },
85
- routeAgent: { name: `${name}-routeagent` },
86
- globalnet: { name: `${name}-globalnet` },
87
- lighthouseAgent: { name: `${name}-lighthouse-agent` },
88
- lighthouseCoreDns: { name: `${name}-lighthouse-core-dns` },
89
- },
90
- },
91
- }, { transformers: { metadataNamespace: true, metadataNamespaceName: this.namespace } }, k8sOpts);
92
- this.calicoIPPools = pulumi.all([args.calicoIgnoredSubnets ?? []]).apply(([subnets]) => subnets.map((subnet) => new k8s.apiextensions.CustomResource(subnet, {
93
- apiVersion: "crd.projectcalico.org/v1",
94
- kind: "IPPool",
95
- metadata: { name: subnet.replace(/\//g, "-") },
96
- spec: { cidr: subnet, natOutgoing: false, disabled: true },
97
- }, k8sOpts)));
98
- this.registerOutputs();
99
- }
100
- }
101
- exports.Operator = Operator;
102
- //# sourceMappingURL=operator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operator.js","sourceRoot":"","sources":["../../../lib/submariner/operator.ts"],"names":[],"mappings":"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"}