timonel 0.2.1 → 0.4.0
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/CHANGELOG.md +91 -1
- package/README.md +265 -12
- package/dist/cli.js +239 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/HelmChartWriter.d.ts +2 -0
- package/dist/lib/HelmChartWriter.d.ts.map +1 -1
- package/dist/lib/HelmChartWriter.js +17 -5
- package/dist/lib/HelmChartWriter.js.map +1 -1
- package/dist/lib/Rutter.d.ts +297 -11
- package/dist/lib/Rutter.d.ts.map +1 -1
- package/dist/lib/Rutter.js +444 -23
- package/dist/lib/Rutter.js.map +1 -1
- package/dist/lib/UmbrellaRutter.d.ts +34 -0
- package/dist/lib/UmbrellaRutter.d.ts.map +1 -0
- package/dist/lib/UmbrellaRutter.js +146 -0
- package/dist/lib/UmbrellaRutter.js.map +1 -0
- package/dist/lib/umbrella.d.ts +7 -0
- package/dist/lib/umbrella.d.ts.map +1 -0
- package/dist/lib/umbrella.js +11 -0
- package/dist/lib/umbrella.js.map +1 -0
- package/package.json +1 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Rutter } from './Rutter';
|
|
2
|
+
import type { HelmChartMeta } from './HelmChartWriter';
|
|
3
|
+
export interface SubchartSpec {
|
|
4
|
+
name: string;
|
|
5
|
+
rutter: Rutter;
|
|
6
|
+
version?: string;
|
|
7
|
+
condition?: string;
|
|
8
|
+
tags?: string[];
|
|
9
|
+
repository?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface UmbrellaRutterProps {
|
|
12
|
+
meta: HelmChartMeta;
|
|
13
|
+
subcharts: SubchartSpec[];
|
|
14
|
+
defaultValues?: Record<string, unknown>;
|
|
15
|
+
envValues?: Record<string, Record<string, unknown>>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* UmbrellaRutter manages multiple Rutter instances as subcharts
|
|
19
|
+
* to create Helm umbrella charts with dependencies.
|
|
20
|
+
*/
|
|
21
|
+
export declare class UmbrellaRutter {
|
|
22
|
+
private readonly props;
|
|
23
|
+
constructor(props: UmbrellaRutterProps);
|
|
24
|
+
private validateMetadata;
|
|
25
|
+
/**
|
|
26
|
+
* Write the umbrella chart with all subcharts to the output directory
|
|
27
|
+
*/
|
|
28
|
+
write(outDir: string): void;
|
|
29
|
+
private writeParentChart;
|
|
30
|
+
private writeParentValues;
|
|
31
|
+
private deepMerge;
|
|
32
|
+
private generateNotesTemplate;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=UmbrellaRutter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UmbrellaRutter.d.ts","sourceRoot":"","sources":["../../src/lib/UmbrellaRutter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;gBAEhC,KAAK,EAAE,mBAAmB;IAMtC,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmC3B,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,qBAAqB;CAe9B"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UmbrellaRutter = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const yaml_1 = __importDefault(require("yaml"));
|
|
10
|
+
/**
|
|
11
|
+
* UmbrellaRutter manages multiple Rutter instances as subcharts
|
|
12
|
+
* to create Helm umbrella charts with dependencies.
|
|
13
|
+
*/
|
|
14
|
+
class UmbrellaRutter {
|
|
15
|
+
constructor(props) {
|
|
16
|
+
// Validate chart metadata
|
|
17
|
+
this.validateMetadata(props.meta);
|
|
18
|
+
this.props = props;
|
|
19
|
+
}
|
|
20
|
+
validateMetadata(meta) {
|
|
21
|
+
// Validate chart name follows Helm conventions
|
|
22
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- Safe regex for chart name validation
|
|
23
|
+
if (!/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(meta.name)) {
|
|
24
|
+
throw new Error('Chart name must contain only lowercase letters, numbers, and dashes');
|
|
25
|
+
}
|
|
26
|
+
// Validate semantic versioning
|
|
27
|
+
// eslint-disable-next-line security/detect-unsafe-regex -- Safe regex for semver validation
|
|
28
|
+
if (!/^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/.test(meta.version)) {
|
|
29
|
+
throw new Error('Chart version must follow semantic versioning (e.g., 1.0.0)');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Write the umbrella chart with all subcharts to the output directory
|
|
34
|
+
*/
|
|
35
|
+
write(outDir) {
|
|
36
|
+
// Sanitize paths to prevent directory traversal
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires -- Dynamic import needed for path operations
|
|
38
|
+
const path = require('path');
|
|
39
|
+
const sanitizedOutDir = path.normalize(path.resolve(outDir));
|
|
40
|
+
const cwd = process.cwd();
|
|
41
|
+
if (!sanitizedOutDir.startsWith(cwd)) {
|
|
42
|
+
throw new Error('Output directory must be within current working directory');
|
|
43
|
+
}
|
|
44
|
+
// Create output directory structure
|
|
45
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
46
|
+
(0, fs_1.mkdirSync)(sanitizedOutDir, { recursive: true });
|
|
47
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
48
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(sanitizedOutDir, 'charts'), { recursive: true });
|
|
49
|
+
// Write each subchart to charts/ directory
|
|
50
|
+
for (const subchart of this.props.subcharts) {
|
|
51
|
+
const subchartDir = (0, path_1.join)(sanitizedOutDir, 'charts', subchart.name);
|
|
52
|
+
subchart.rutter.write(subchartDir);
|
|
53
|
+
}
|
|
54
|
+
// Generate parent Chart.yaml with dependencies
|
|
55
|
+
this.writeParentChart(sanitizedOutDir);
|
|
56
|
+
// Generate parent values.yaml
|
|
57
|
+
this.writeParentValues(sanitizedOutDir);
|
|
58
|
+
// Generate empty templates directory (umbrella charts typically don't have templates)
|
|
59
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
60
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(sanitizedOutDir, 'templates'), { recursive: true });
|
|
61
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
62
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(sanitizedOutDir, 'templates', 'NOTES.txt'), this.generateNotesTemplate());
|
|
63
|
+
}
|
|
64
|
+
writeParentChart(outDir) {
|
|
65
|
+
const chartYaml = {
|
|
66
|
+
apiVersion: 'v2',
|
|
67
|
+
name: this.props.meta.name,
|
|
68
|
+
description: this.props.meta.description || `${this.props.meta.name} umbrella chart`,
|
|
69
|
+
type: 'application',
|
|
70
|
+
version: this.props.meta.version,
|
|
71
|
+
appVersion: this.props.meta.appVersion,
|
|
72
|
+
keywords: this.props.meta.keywords || [],
|
|
73
|
+
home: this.props.meta.home,
|
|
74
|
+
sources: this.props.meta.sources,
|
|
75
|
+
maintainers: this.props.meta.maintainers,
|
|
76
|
+
dependencies: this.props.subcharts.map((subchart) => ({
|
|
77
|
+
name: subchart.name,
|
|
78
|
+
version: subchart.version || '0.1.0',
|
|
79
|
+
repository: subchart.repository || `file://./charts/${subchart.name}`,
|
|
80
|
+
condition: subchart.condition,
|
|
81
|
+
tags: subchart.tags,
|
|
82
|
+
})),
|
|
83
|
+
};
|
|
84
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
85
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(outDir, 'Chart.yaml'), yaml_1.default.stringify(chartYaml));
|
|
86
|
+
}
|
|
87
|
+
writeParentValues(outDir) {
|
|
88
|
+
const values = {
|
|
89
|
+
// Global values that can be shared across subcharts
|
|
90
|
+
global: {},
|
|
91
|
+
// Individual subchart values
|
|
92
|
+
...this.props.defaultValues,
|
|
93
|
+
};
|
|
94
|
+
// Add subchart-specific value sections
|
|
95
|
+
for (const subchart of this.props.subcharts) {
|
|
96
|
+
if (!(subchart.name in values)) {
|
|
97
|
+
values[subchart.name] = {
|
|
98
|
+
enabled: true,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
103
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(outDir, 'values.yaml'), yaml_1.default.stringify(values));
|
|
104
|
+
// Write environment-specific values files
|
|
105
|
+
if (this.props.envValues) {
|
|
106
|
+
for (const [env, envVals] of Object.entries(this.props.envValues)) {
|
|
107
|
+
const envValues = this.deepMerge(values, envVals);
|
|
108
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
109
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(outDir, `values-${env}.yaml`), yaml_1.default.stringify(envValues));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
deepMerge(target, source) {
|
|
114
|
+
const result = { ...target };
|
|
115
|
+
for (const [key, value] of Object.entries(source)) {
|
|
116
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
117
|
+
// eslint-disable-next-line security/detect-object-injection -- Safe object property access in deep merge
|
|
118
|
+
result[key] = this.deepMerge(
|
|
119
|
+
// eslint-disable-next-line security/detect-object-injection -- Safe object property access in deep merge
|
|
120
|
+
result[key] || {}, value);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// eslint-disable-next-line security/detect-object-injection -- Safe object property access in deep merge
|
|
124
|
+
result[key] = value;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
generateNotesTemplate() {
|
|
130
|
+
return `1. Get the application URLs by running these commands:
|
|
131
|
+
{{- range $subchart := .Values }}
|
|
132
|
+
{{- if and (hasKey $subchart "enabled") $subchart.enabled }}
|
|
133
|
+
{{ $subchart | quote }} is enabled
|
|
134
|
+
{{- end }}
|
|
135
|
+
{{- end }}
|
|
136
|
+
|
|
137
|
+
2. Check the status of subcharts:
|
|
138
|
+
helm list -A
|
|
139
|
+
|
|
140
|
+
3. For more information about each subchart, check:
|
|
141
|
+
${this.props.subcharts.map((s) => ` - charts/${s.name}/README.md`).join('\n')}
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.UmbrellaRutter = UmbrellaRutter;
|
|
146
|
+
//# sourceMappingURL=UmbrellaRutter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UmbrellaRutter.js","sourceRoot":"","sources":["../../src/lib/UmbrellaRutter.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA8C;AAC9C,+BAA4B;AAE5B,gDAAwB;AAqBxB;;;GAGG;AACH,MAAa,cAAc;IAGzB,YAAY,KAA0B;QACpC,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,+CAA+C;QAC/C,gGAAgG;QAChG,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QAED,+BAA+B;QAC/B,4FAA4F;QAC5F,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAc;QAClB,gDAAgD;QAChD,2GAA2G;QAC3G,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,oCAAoC;QACpC,mGAAmG;QACnG,IAAA,cAAS,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,mGAAmG;QACnG,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,2CAA2C;QAC3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAEvC,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAExC,sFAAsF;QACtF,mGAAmG;QACnG,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,eAAe,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,mGAAmG;QACnG,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC/F,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,SAAS,GAAG;YAChB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;YAC1B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,iBAAiB;YACpF,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;YACtC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;YAC1B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;YAChC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW;YACxC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,OAAO;gBACpC,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,mBAAmB,QAAQ,CAAC,IAAI,EAAE;gBACrE,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC;SACJ,CAAC;QAEF,mGAAmG;QACnG,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,YAAY,CAAC,EAAE,cAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,MAAM,MAAM,GAA4B;YACtC,oDAAoD;YACpD,MAAM,EAAE,EAAE;YACV,6BAA6B;YAC7B,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;SAC5B,CAAC;QAEF,uCAAuC;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;oBACtB,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mGAAmG;QACnG,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE,cAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnE,0CAA0C;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAClD,mGAAmG;gBACnG,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,cAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CACf,MAA+B,EAC/B,MAA+B;QAE/B,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,yGAAyG;gBACzG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;gBAC1B,yGAAyG;gBACxG,MAAM,CAAC,GAAG,CAA6B,IAAI,EAAE,EAC9C,KAAgC,CACjC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,yGAAyG;gBACzG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB;QAC3B,OAAO;;;;;;;;;;;EAWT,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC7E,CAAC;IACA,CAAC;CACF;AAxJD,wCAwJC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UmbrellaRutter, UmbrellaRutterProps } from './UmbrellaRutter';
|
|
2
|
+
/**
|
|
3
|
+
* Create an umbrella chart from multiple Rutter instances
|
|
4
|
+
*/
|
|
5
|
+
export declare function createUmbrella(props: UmbrellaRutterProps): UmbrellaRutter;
|
|
6
|
+
export type { UmbrellaRutterProps, SubchartSpec } from './UmbrellaRutter';
|
|
7
|
+
//# sourceMappingURL=umbrella.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"umbrella.d.ts","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5E;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAEzE;AAGD,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createUmbrella = createUmbrella;
|
|
4
|
+
const UmbrellaRutter_1 = require("./UmbrellaRutter");
|
|
5
|
+
/**
|
|
6
|
+
* Create an umbrella chart from multiple Rutter instances
|
|
7
|
+
*/
|
|
8
|
+
function createUmbrella(props) {
|
|
9
|
+
return new UmbrellaRutter_1.UmbrellaRutter(props);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=umbrella.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"umbrella.js","sourceRoot":"","sources":["../../src/lib/umbrella.ts"],"names":[],"mappings":";;AAMA,wCAEC;AAPD,qDAAyE;AAEzE;;GAEG;AACH,SAAgB,cAAc,CAAC,KAA0B;IACvD,OAAO,IAAI,+BAAmB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "timonel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Timonel: programmatic Helm chart generator using cdk8s (TypeScript)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"timonel": "dist/cli.js",
|
|
@@ -77,7 +77,6 @@
|
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"cdk8s": "^2.70.11",
|
|
80
|
-
"cdk8s-plus-28": "^2.5.6",
|
|
81
80
|
"ts-node": "^10.9.2",
|
|
82
81
|
"yaml": "^2.8.1"
|
|
83
82
|
},
|