timonel 0.2.0 → 0.3.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 +54 -12
- package/README.md +67 -1
- 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/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 +13 -14
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.
|
|
10
|
+
## [0.3.0] - 2025-09-02
|
|
11
|
+
|
|
12
|
+
### Added (0.3.0)
|
|
13
|
+
|
|
14
|
+
- **Umbrella Charts Support**: Complete implementation for managing multiple subcharts
|
|
15
|
+
- `UmbrellaRutter` class for coordinating multiple Rutter instances
|
|
16
|
+
- `createUmbrella()` helper function for easy umbrella chart creation
|
|
17
|
+
- CLI commands: `tl umbrella init`, `tl umbrella add`, `tl umbrella synth`
|
|
18
|
+
- Automatic Chart.yaml generation with dependencies
|
|
19
|
+
- Support for environment-specific values in umbrella charts
|
|
20
|
+
- Example templates for umbrella and subchart scaffolding
|
|
21
|
+
- **WordPress Umbrella Example**: Complete example separating MySQL and WordPress into subcharts
|
|
22
|
+
- MySQL subchart with persistent storage and secrets
|
|
23
|
+
- WordPress subchart with database connectivity
|
|
24
|
+
- Multi-environment configuration (dev/prod)
|
|
25
|
+
- Comprehensive documentation and deployment guide
|
|
26
|
+
|
|
27
|
+
### Changed (0.3.0)
|
|
28
|
+
|
|
29
|
+
- Updated CLI usage to include umbrella chart commands
|
|
30
|
+
- Enhanced example generation with subchart support
|
|
31
|
+
|
|
32
|
+
### Removed
|
|
33
|
+
|
|
34
|
+
- **BREAKING**: Removed unused `cdk8s-plus-28` dependency
|
|
35
|
+
- Project uses `ApiObject` directly for better control
|
|
36
|
+
- No impact on functionality, only dependency cleanup
|
|
37
|
+
|
|
38
|
+
## [0.2.1] - 2025-09-02
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Updated examples package.json versions to 0.2.0 for consistency
|
|
43
|
+
- Fixed examples imports to use relative paths instead of 'timonel' package
|
|
44
|
+
- Updated dependencies to resolve brace-expansion security vulnerability
|
|
45
|
+
- Examples now work correctly with CLI after v0.2.0 breaking changes
|
|
46
|
+
|
|
47
|
+
### Security
|
|
48
|
+
|
|
49
|
+
- Updated dependencies to latest versions
|
|
50
|
+
- Resolved brace-expansion vulnerability in transitive dependencies
|
|
51
|
+
|
|
52
|
+
## [0.2.0] - 2025-09-02
|
|
11
53
|
|
|
12
54
|
### BREAKING CHANGES
|
|
13
55
|
|
|
@@ -36,7 +78,7 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
36
78
|
- Eliminated all factory references from codebase
|
|
37
79
|
- Enhanced maritime theme consistency (Timonel + Rutter)
|
|
38
80
|
|
|
39
|
-
## [0.1.7] - 2025-01
|
|
81
|
+
## [0.1.7] - 2025-09-01
|
|
40
82
|
|
|
41
83
|
### Breaking Changes
|
|
42
84
|
|
|
@@ -45,7 +87,7 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
45
87
|
- Renamed `ChartFactory.ts` to `Rutter.ts` for consistency
|
|
46
88
|
- Updated API: `new Rutter()` instead of `new ChartFactory()`
|
|
47
89
|
|
|
48
|
-
## [0.1.6] - 2025-01
|
|
90
|
+
## [0.1.6] - 2025-09-01
|
|
49
91
|
|
|
50
92
|
### Structure
|
|
51
93
|
|
|
@@ -53,14 +95,14 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
53
95
|
- Updated linting ignore patterns to use `examples/**`
|
|
54
96
|
- Added Examples section to README documenting available examples
|
|
55
97
|
|
|
56
|
-
## [0.1.5] - 2025-
|
|
98
|
+
## [0.1.5] - 2025-08-31
|
|
57
99
|
|
|
58
100
|
### Linting
|
|
59
101
|
|
|
60
102
|
- Excluded example directories from main lint script to resolve CI errors
|
|
61
103
|
- Ensure both lint and security:lint scripts ignore example imports
|
|
62
104
|
|
|
63
|
-
## [0.1.4] - 2025-
|
|
105
|
+
## [0.1.4] - 2025-08-31
|
|
64
106
|
|
|
65
107
|
### Updated
|
|
66
108
|
|
|
@@ -72,9 +114,9 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
72
114
|
|
|
73
115
|
- Excluded example directories from security linting to resolve CI import errors
|
|
74
116
|
|
|
75
|
-
## [0.1.3] - 2025-
|
|
117
|
+
## [0.1.3] - 2025-08-31
|
|
76
118
|
|
|
77
|
-
### Bug Fixes
|
|
119
|
+
### Bug Fixes 0.1.3
|
|
78
120
|
|
|
79
121
|
- Fixed Helm chart generation issues with numeric values in YAML
|
|
80
122
|
- Corrected environment variable handling for complex objects
|
|
@@ -95,7 +137,7 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
95
137
|
- Updated example READMEs with working deployment commands
|
|
96
138
|
- Added notes about numeric value handling in Helm templates
|
|
97
139
|
|
|
98
|
-
## [0.1.2] -
|
|
140
|
+
## [0.1.2] - 2025-08-30
|
|
99
141
|
|
|
100
142
|
### Added
|
|
101
143
|
|
|
@@ -103,12 +145,12 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
103
145
|
- Helm installation detection with clear installation instructions
|
|
104
146
|
- Automatic cleanup of temporary validation directories
|
|
105
147
|
|
|
106
|
-
###
|
|
148
|
+
### Bug Fixes 0.1.2
|
|
107
149
|
|
|
108
150
|
- Fixed example chart to use valid Helm template syntax for annotations
|
|
109
151
|
- Improved error messages with installation links for missing Helm binary
|
|
110
152
|
|
|
111
|
-
## [0.1.1] -
|
|
153
|
+
## [0.1.1] - 2025-08-30
|
|
112
154
|
|
|
113
155
|
### Resolved
|
|
114
156
|
|
|
@@ -116,7 +158,7 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
116
158
|
- Added explicit ts-node configuration to prevent module resolution error
|
|
117
159
|
- Added `exports` field to package.json to support subpath imports like `timonel/lib/helm`
|
|
118
160
|
|
|
119
|
-
## [0.1.0] -
|
|
161
|
+
## [0.1.0] - 2025-08-30
|
|
120
162
|
|
|
121
163
|
### Initial
|
|
122
164
|
|
|
@@ -134,7 +176,7 @@ const rutter = new Rutter({ meta: { name: 'my-app' } });
|
|
|
134
176
|
- Security-focused development with ESLint security plugin and audit pipeline
|
|
135
177
|
- GitHub Actions workflows for CI/CD with provenance-enabled publishing
|
|
136
178
|
|
|
137
|
-
### Security
|
|
179
|
+
### Security Features
|
|
138
180
|
|
|
139
181
|
- ESLint security plugin with 12+ vulnerability detection rules
|
|
140
182
|
- Automated dependency scanning via Dependabot
|
package/README.md
CHANGED
|
@@ -20,11 +20,13 @@ Key features:
|
|
|
20
20
|
- Type-safe API (strict TypeScript) with cdk8s constructs.
|
|
21
21
|
- Helm templating helpers to embed `{{ .Values.* }}` where needed.
|
|
22
22
|
- Simple multi-environment setup: `values.yaml`, `values-dev.yaml`, `values-prod.yaml`, etc.
|
|
23
|
+
- **Umbrella Charts**: Manage multiple subcharts as a single deployable unit.
|
|
23
24
|
- Minimal CLI (`tl`) to scaffold an example and synthesize the chart.
|
|
24
25
|
|
|
25
26
|
Advanced templating:
|
|
26
27
|
|
|
27
28
|
- Programmatic Helm helpers: generate `templates/_helpers.tpl` and call helpers using `template()`/`include()`.
|
|
29
|
+
- Umbrella chart support with automatic dependency management.
|
|
28
30
|
|
|
29
31
|
## Installation
|
|
30
32
|
|
|
@@ -161,15 +163,79 @@ rutter.addDeployment({
|
|
|
161
163
|
rutter.write('dist/charts/my-app');
|
|
162
164
|
```
|
|
163
165
|
|
|
166
|
+
## Umbrella Charts
|
|
167
|
+
|
|
168
|
+
Create umbrella charts that combine multiple subcharts into a single deployable unit:
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
import { createUmbrella, Rutter } from 'timonel';
|
|
172
|
+
|
|
173
|
+
// Create individual subcharts
|
|
174
|
+
const mysql = new Rutter({
|
|
175
|
+
meta: { name: 'mysql', version: '0.1.0' },
|
|
176
|
+
// MySQL configuration...
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
const wordpress = new Rutter({
|
|
180
|
+
meta: { name: 'wordpress', version: '0.1.0' },
|
|
181
|
+
// WordPress configuration...
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Combine into umbrella chart
|
|
185
|
+
const umbrella = createUmbrella({
|
|
186
|
+
meta: {
|
|
187
|
+
name: 'wordpress-stack',
|
|
188
|
+
version: '1.0.0',
|
|
189
|
+
description: 'Complete WordPress stack with MySQL database',
|
|
190
|
+
},
|
|
191
|
+
subcharts: [
|
|
192
|
+
{ name: 'mysql', rutter: mysql },
|
|
193
|
+
{ name: 'wordpress', rutter: wordpress },
|
|
194
|
+
],
|
|
195
|
+
defaultValues: {
|
|
196
|
+
global: { storageClass: 'gp2' },
|
|
197
|
+
mysql: { persistence: { size: '8Gi' } },
|
|
198
|
+
wordpress: { service: { type: 'LoadBalancer' } },
|
|
199
|
+
},
|
|
200
|
+
envValues: {
|
|
201
|
+
dev: { mysql: { persistence: { size: '5Gi' } } },
|
|
202
|
+
prod: { mysql: { persistence: { size: '20Gi' } } },
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
umbrella.write('dist/wordpress-stack');
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### CLI for Umbrella Charts
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Create umbrella structure
|
|
213
|
+
tl umbrella init my-stack
|
|
214
|
+
|
|
215
|
+
# Add subcharts
|
|
216
|
+
tl umbrella add database
|
|
217
|
+
tl umbrella add frontend
|
|
218
|
+
|
|
219
|
+
# Generate umbrella chart
|
|
220
|
+
tl umbrella synth ./dist
|
|
221
|
+
```
|
|
222
|
+
|
|
164
223
|
## Examples
|
|
165
224
|
|
|
166
225
|
The `examples/` directory contains complete working examples:
|
|
167
226
|
|
|
168
227
|
- **aws-game-2048**: AWS 2048 game deployment with Service and Ingress
|
|
169
|
-
- **wordpress**: WordPress with MySQL database setup
|
|
228
|
+
- **wordpress**: WordPress with MySQL database setup (single chart)
|
|
229
|
+
- **wordpress-umbrella**: WordPress stack using umbrella charts (MySQL + WordPress subcharts)
|
|
170
230
|
|
|
171
231
|
Each example includes its own README with deployment instructions.
|
|
172
232
|
|
|
233
|
+
### Umbrella Chart Example
|
|
234
|
+
|
|
235
|
+
See `examples/wordpress-umbrella/` for a complete umbrella chart implementation that
|
|
236
|
+
separates MySQL and WordPress into individual subcharts with proper dependencies,
|
|
237
|
+
shared values, and multi-environment support.
|
|
238
|
+
|
|
173
239
|
- `valuesRef(path)`: returns a Helm placeholder string for `.Values.*`.
|
|
174
240
|
- You can pass these strings directly into cdk8s constructs; they are preserved in the YAML.
|
|
175
241
|
- `template(name, ctx='.')` and `include(name, ctx='.')`: inject calls to helpers defined in `_helpers.tpl`.
|
package/dist/cli.js
CHANGED
|
@@ -53,11 +53,17 @@ function usageAndExit(msg) {
|
|
|
53
53
|
' tl deploy <projectDir> <release> Synth and deploy with helm install/upgrade',
|
|
54
54
|
' tl package <chartDir> [outDir] Run `helm package` into outDir (requires Helm)',
|
|
55
55
|
'',
|
|
56
|
+
'Umbrella Charts:',
|
|
57
|
+
' tl umbrella init <name> Create umbrella chart structure',
|
|
58
|
+
' tl umbrella add <subchart> Add subchart to umbrella',
|
|
59
|
+
' tl umbrella synth [outDir] Generate umbrella chart',
|
|
60
|
+
'',
|
|
56
61
|
'Flags:',
|
|
57
62
|
' --dry-run Show what would be done without executing',
|
|
58
63
|
' --silent Suppress output (useful for CI)',
|
|
59
64
|
' --env <environment> Use environment-specific values',
|
|
60
65
|
' --set <key=value> Override values (can be used multiple times)',
|
|
66
|
+
' --version, -v Show version information',
|
|
61
67
|
'',
|
|
62
68
|
'Examples:',
|
|
63
69
|
' tl init my-app',
|
|
@@ -159,8 +165,15 @@ async function cmdSynth(projectDir, out, flags) {
|
|
|
159
165
|
moduleResolution: 'node',
|
|
160
166
|
},
|
|
161
167
|
});
|
|
168
|
+
// Validate module path to prevent code injection
|
|
169
|
+
const allowedPaths = [process.cwd()];
|
|
170
|
+
const resolvedPath = path.resolve(chartTs);
|
|
171
|
+
if (!allowedPaths.some((allowedPath) => resolvedPath.startsWith(allowedPath))) {
|
|
172
|
+
console.error('Module path must be within current working directory');
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
162
175
|
// eslint-disable-next-line security/detect-non-literal-require -- CLI tool needs dynamic module loading
|
|
163
|
-
const mod = require(
|
|
176
|
+
const mod = require(resolvedPath);
|
|
164
177
|
const runner = mod.default || mod.run || mod.synth;
|
|
165
178
|
if (typeof runner !== 'function') {
|
|
166
179
|
console.error('chart.ts must export a default/run/synth function');
|
|
@@ -261,6 +274,125 @@ async function cmdDeploy(projectDir, releaseName, flags) {
|
|
|
261
274
|
}
|
|
262
275
|
}
|
|
263
276
|
}
|
|
277
|
+
async function cmdUmbrella(subcommand, args, flags) {
|
|
278
|
+
const UMBRELLA_USAGE_MSG = 'Missing umbrella subcommand (init|add|synth)';
|
|
279
|
+
if (!subcommand)
|
|
280
|
+
usageAndExit(UMBRELLA_USAGE_MSG);
|
|
281
|
+
switch (subcommand) {
|
|
282
|
+
case 'init':
|
|
283
|
+
await cmdUmbrellaInit(args?.[0], flags?.silent);
|
|
284
|
+
break;
|
|
285
|
+
case 'add':
|
|
286
|
+
await cmdUmbrellaAdd(args?.[0], flags?.silent);
|
|
287
|
+
break;
|
|
288
|
+
case 'synth':
|
|
289
|
+
await cmdUmbrellaSynth(args?.[0], flags);
|
|
290
|
+
break;
|
|
291
|
+
default:
|
|
292
|
+
usageAndExit(`Unknown umbrella subcommand: ${subcommand}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
const UMBRELLA_CONFIG_FILE = 'umbrella.config.json';
|
|
296
|
+
async function cmdUmbrellaInit(name, silent = false) {
|
|
297
|
+
const MISSING_NAME_MSG = 'Missing umbrella chart name';
|
|
298
|
+
if (!name)
|
|
299
|
+
usageAndExit(MISSING_NAME_MSG);
|
|
300
|
+
const base = path.join(process.cwd(), name);
|
|
301
|
+
const umbrellaFile = path.join(base, 'umbrella.ts');
|
|
302
|
+
const configFile = path.join(base, UMBRELLA_CONFIG_FILE);
|
|
303
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
304
|
+
fs.mkdirSync(base, { recursive: true });
|
|
305
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
306
|
+
fs.mkdirSync(path.join(base, 'charts'), { recursive: true });
|
|
307
|
+
// Create umbrella.ts
|
|
308
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
309
|
+
fs.writeFileSync(umbrellaFile, exampleUmbrellaTs(name));
|
|
310
|
+
// Create config file
|
|
311
|
+
const config = {
|
|
312
|
+
name,
|
|
313
|
+
version: '0.1.0',
|
|
314
|
+
description: `${name} umbrella chart`,
|
|
315
|
+
subcharts: [],
|
|
316
|
+
};
|
|
317
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
318
|
+
fs.writeFileSync(configFile, JSON.stringify(config, null, 2));
|
|
319
|
+
log(`Umbrella chart structure created at ${base}`, silent);
|
|
320
|
+
log(`Add subcharts with: tl umbrella add <subchart-name>`, silent);
|
|
321
|
+
}
|
|
322
|
+
async function cmdUmbrellaAdd(subchartName, silent = false) {
|
|
323
|
+
const MISSING_SUBCHART_MSG = 'Missing subchart name';
|
|
324
|
+
if (!subchartName)
|
|
325
|
+
usageAndExit(MISSING_SUBCHART_MSG);
|
|
326
|
+
const configFile = path.join(process.cwd(), UMBRELLA_CONFIG_FILE);
|
|
327
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
328
|
+
if (!fs.existsSync(configFile)) {
|
|
329
|
+
console.error(`${UMBRELLA_CONFIG_FILE} not found. Run \`tl umbrella init\` first.`);
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
332
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
333
|
+
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
|
|
334
|
+
// Create subchart directory and scaffold
|
|
335
|
+
const subchartDir = path.join(process.cwd(), 'charts', subchartName);
|
|
336
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
337
|
+
fs.mkdirSync(subchartDir, { recursive: true });
|
|
338
|
+
const chartFile = path.join(subchartDir, 'chart.ts');
|
|
339
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
340
|
+
fs.writeFileSync(chartFile, exampleSubchartTs(subchartName));
|
|
341
|
+
// Update config
|
|
342
|
+
config.subcharts.push({
|
|
343
|
+
name: subchartName,
|
|
344
|
+
version: '0.1.0',
|
|
345
|
+
path: `./charts/${subchartName}/chart.ts`,
|
|
346
|
+
});
|
|
347
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
348
|
+
fs.writeFileSync(configFile, JSON.stringify(config, null, 2));
|
|
349
|
+
log(`Subchart ${subchartName} added to umbrella`, silent);
|
|
350
|
+
}
|
|
351
|
+
async function cmdUmbrellaSynth(outDir, flags) {
|
|
352
|
+
const configFile = path.join(process.cwd(), UMBRELLA_CONFIG_FILE);
|
|
353
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
354
|
+
if (!fs.existsSync(configFile)) {
|
|
355
|
+
console.error(`${UMBRELLA_CONFIG_FILE} not found. Run \`tl umbrella init\` first.`);
|
|
356
|
+
process.exit(1);
|
|
357
|
+
}
|
|
358
|
+
const umbrellaFile = path.join(process.cwd(), 'umbrella.ts');
|
|
359
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
360
|
+
if (!fs.existsSync(umbrellaFile)) {
|
|
361
|
+
console.error('umbrella.ts not found.');
|
|
362
|
+
process.exit(1);
|
|
363
|
+
}
|
|
364
|
+
// Enable TS runtime
|
|
365
|
+
require('ts-node').register({
|
|
366
|
+
transpileOnly: true,
|
|
367
|
+
compilerOptions: {
|
|
368
|
+
module: 'CommonJS',
|
|
369
|
+
moduleResolution: 'node',
|
|
370
|
+
},
|
|
371
|
+
});
|
|
372
|
+
// Validate module path to prevent code injection
|
|
373
|
+
const allowedPaths = [process.cwd()];
|
|
374
|
+
const resolvedPath = path.resolve(umbrellaFile);
|
|
375
|
+
if (!allowedPaths.some((allowedPath) => resolvedPath.startsWith(allowedPath))) {
|
|
376
|
+
console.error('Module path must be within current working directory');
|
|
377
|
+
process.exit(1);
|
|
378
|
+
}
|
|
379
|
+
// eslint-disable-next-line security/detect-non-literal-require -- CLI tool needs dynamic module loading
|
|
380
|
+
const mod = require(resolvedPath);
|
|
381
|
+
const runner = mod.default || mod.run || mod.synth;
|
|
382
|
+
if (typeof runner !== 'function') {
|
|
383
|
+
console.error('umbrella.ts must export a default/run/synth function');
|
|
384
|
+
process.exit(1);
|
|
385
|
+
}
|
|
386
|
+
const output = outDir || path.join(process.cwd(), 'dist');
|
|
387
|
+
if (flags?.dryRun) {
|
|
388
|
+
log(`[DRY RUN] Would write umbrella chart to ${output}`, flags.silent);
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI tool needs dynamic paths
|
|
392
|
+
fs.mkdirSync(output, { recursive: true });
|
|
393
|
+
await Promise.resolve(runner(output));
|
|
394
|
+
log(`Umbrella chart written to ${output}`, flags?.silent);
|
|
395
|
+
}
|
|
264
396
|
async function cmdPackage(chartDir, out, silent = false) {
|
|
265
397
|
if (!chartDir)
|
|
266
398
|
usageAndExit('Missing <chartDir>');
|
|
@@ -288,6 +420,88 @@ async function cmdPackage(chartDir, out, silent = false) {
|
|
|
288
420
|
process.exit(res.status ?? 1);
|
|
289
421
|
}
|
|
290
422
|
}
|
|
423
|
+
function exampleUmbrellaTs(name) {
|
|
424
|
+
return `import { createUmbrella } from 'timonel';
|
|
425
|
+
import { Rutter } from 'timonel';
|
|
426
|
+
|
|
427
|
+
// Import subcharts (these will be created with 'tl umbrella add')
|
|
428
|
+
// import { rutter as fluentBit } from './charts/fluent-bit/chart';
|
|
429
|
+
// import { rutter as openObserve } from './charts/openobserve/chart';
|
|
430
|
+
|
|
431
|
+
// Create umbrella chart
|
|
432
|
+
const umbrella = createUmbrella({
|
|
433
|
+
meta: {
|
|
434
|
+
name: '${name}',
|
|
435
|
+
version: '0.1.0',
|
|
436
|
+
description: '${name} umbrella chart',
|
|
437
|
+
appVersion: '1.0.0',
|
|
438
|
+
},
|
|
439
|
+
subcharts: [
|
|
440
|
+
// Add your subcharts here:
|
|
441
|
+
// { name: 'fluent-bit', rutter: fluentBit },
|
|
442
|
+
// { name: 'openobserve', rutter: openObserve },
|
|
443
|
+
],
|
|
444
|
+
defaultValues: {
|
|
445
|
+
global: {
|
|
446
|
+
// Global values shared across subcharts
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
envValues: {
|
|
450
|
+
dev: {
|
|
451
|
+
// Development environment overrides
|
|
452
|
+
},
|
|
453
|
+
prod: {
|
|
454
|
+
// Production environment overrides
|
|
455
|
+
},
|
|
456
|
+
},
|
|
457
|
+
});
|
|
458
|
+
|
|
459
|
+
export default function run(outDir: string) {
|
|
460
|
+
umbrella.write(outDir);
|
|
461
|
+
}
|
|
462
|
+
`;
|
|
463
|
+
}
|
|
464
|
+
function exampleSubchartTs(name) {
|
|
465
|
+
return `import { Rutter } from '../../../src';
|
|
466
|
+
import { valuesRef } from '../../../src/lib/helm';
|
|
467
|
+
|
|
468
|
+
// Define subchart
|
|
469
|
+
const rutter = new Rutter({
|
|
470
|
+
meta: {
|
|
471
|
+
name: '${name}',
|
|
472
|
+
version: '0.1.0',
|
|
473
|
+
description: '${name} subchart',
|
|
474
|
+
appVersion: '1.0.0',
|
|
475
|
+
},
|
|
476
|
+
defaultValues: {
|
|
477
|
+
image: { repository: 'nginx', tag: '1.27' },
|
|
478
|
+
replicas: 1,
|
|
479
|
+
service: { port: 80 },
|
|
480
|
+
},
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
// Add resources
|
|
484
|
+
rutter.addDeployment({
|
|
485
|
+
name: '${name}',
|
|
486
|
+
image: String(valuesRef('image.repository')) + ':' + String(valuesRef('image.tag')),
|
|
487
|
+
replicas: 1,
|
|
488
|
+
containerPort: 80,
|
|
489
|
+
});
|
|
490
|
+
|
|
491
|
+
rutter.addService({
|
|
492
|
+
name: '${name}',
|
|
493
|
+
ports: [{ port: 80, targetPort: 80 }],
|
|
494
|
+
selector: { app: '${name}' },
|
|
495
|
+
});
|
|
496
|
+
|
|
497
|
+
export default function run(outDir: string) {
|
|
498
|
+
rutter.write(outDir);
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// Export rutter for umbrella chart
|
|
502
|
+
export { rutter };
|
|
503
|
+
`;
|
|
504
|
+
}
|
|
291
505
|
function exampleChartTs(name) {
|
|
292
506
|
return `import { Rutter } from '../../src';
|
|
293
507
|
import { valuesRef, helm } from '../../src/lib/helm';
|
|
@@ -391,6 +605,10 @@ function parseArgs() {
|
|
|
391
605
|
}
|
|
392
606
|
}
|
|
393
607
|
}
|
|
608
|
+
else if (arg === '--version' || arg === '-v') {
|
|
609
|
+
showVersion();
|
|
610
|
+
process.exit(0);
|
|
611
|
+
}
|
|
394
612
|
else if (arg && !arg.startsWith('--')) {
|
|
395
613
|
if (!cmd) {
|
|
396
614
|
cmd = arg;
|
|
@@ -403,6 +621,18 @@ function parseArgs() {
|
|
|
403
621
|
/* eslint-enable security/detect-object-injection */
|
|
404
622
|
return { cmd, args, flags };
|
|
405
623
|
}
|
|
624
|
+
function showVersion() {
|
|
625
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI needs to read package.json
|
|
626
|
+
const packagePath = path.join(__dirname, '..', 'package.json');
|
|
627
|
+
try {
|
|
628
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- CLI needs to read package.json
|
|
629
|
+
const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
630
|
+
console.log(`timonel v${packageJson.version}`);
|
|
631
|
+
}
|
|
632
|
+
catch {
|
|
633
|
+
console.log('timonel (version unknown)');
|
|
634
|
+
}
|
|
635
|
+
}
|
|
406
636
|
function log(message, silent = false) {
|
|
407
637
|
if (!silent) {
|
|
408
638
|
console.log(message);
|
|
@@ -429,6 +659,14 @@ async function main() {
|
|
|
429
659
|
case 'package':
|
|
430
660
|
await cmdPackage(args[0], args[1], flags.silent);
|
|
431
661
|
break;
|
|
662
|
+
case 'umbrella':
|
|
663
|
+
await cmdUmbrella(args[0], args.slice(1), flags);
|
|
664
|
+
break;
|
|
665
|
+
case 'version':
|
|
666
|
+
case '-v':
|
|
667
|
+
case '--version':
|
|
668
|
+
showVersion();
|
|
669
|
+
break;
|
|
432
670
|
case '-h':
|
|
433
671
|
case '--help':
|
|
434
672
|
default:
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./lib/Rutter"), exports);
|
|
18
18
|
__exportStar(require("./lib/HelmChartWriter"), exports);
|
|
19
19
|
__exportStar(require("./lib/helm"), exports);
|
|
20
|
+
__exportStar(require("./lib/umbrella"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,wDAAsC;AACtC,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,wDAAsC;AACtC,6CAA2B;AAC3B,iDAA+B"}
|
|
@@ -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":"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"}
|
|
@@ -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.3.0",
|
|
4
4
|
"description": "Timonel: programmatic Helm chart generator using cdk8s (TypeScript)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"timonel": "dist/cli.js",
|
|
@@ -76,30 +76,29 @@
|
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"cdk8s": "^2.
|
|
80
|
-
"
|
|
81
|
-
"yaml": "^2.
|
|
82
|
-
"ts-node": "^10.9.2"
|
|
79
|
+
"cdk8s": "^2.70.11",
|
|
80
|
+
"ts-node": "^10.9.2",
|
|
81
|
+
"yaml": "^2.8.1"
|
|
83
82
|
},
|
|
84
83
|
"devDependencies": {
|
|
85
|
-
"@commitlint/cli": "^19.
|
|
86
|
-
"@commitlint/config-conventional": "^19.
|
|
84
|
+
"@commitlint/cli": "^19.8.1",
|
|
85
|
+
"@commitlint/config-conventional": "^19.8.1",
|
|
87
86
|
"@types/node": "^24.3.0",
|
|
88
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
89
|
-
"@typescript-eslint/parser": "^7.
|
|
90
|
-
"eslint": "^8.57.
|
|
87
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
88
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
89
|
+
"eslint": "^8.57.1",
|
|
91
90
|
"eslint-config-prettier": "^10.1.8",
|
|
92
91
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
93
|
-
"eslint-plugin-import": "^2.
|
|
92
|
+
"eslint-plugin-import": "^2.32.0",
|
|
94
93
|
"eslint-plugin-security": "^3.0.1",
|
|
95
94
|
"eslint-plugin-sonarjs": "^3.0.5",
|
|
96
95
|
"eslint-plugin-unused-imports": "^4.2.0",
|
|
97
96
|
"husky": "^9.1.7",
|
|
98
|
-
"lint-staged": "^16.1.
|
|
97
|
+
"lint-staged": "^16.1.6",
|
|
99
98
|
"markdownlint": "^0.38.0",
|
|
100
99
|
"markdownlint-cli": "^0.45.0",
|
|
101
|
-
"prettier": "^3.
|
|
102
|
-
"typescript": "^5.
|
|
100
|
+
"prettier": "^3.6.2",
|
|
101
|
+
"typescript": "^5.9.2"
|
|
103
102
|
},
|
|
104
103
|
"files": [
|
|
105
104
|
"dist",
|