kustodian 1.0.2 → 1.2.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.
Files changed (69) hide show
  1. package/dist/cli/bin.js +48 -24
  2. package/dist/cli/bin.js.map +1 -1
  3. package/dist/cli/commands/apply.d.ts.map +1 -1
  4. package/dist/cli/commands/apply.js +416 -380
  5. package/dist/cli/commands/apply.js.map +1 -1
  6. package/dist/cli/commands/preview.d.ts +5 -0
  7. package/dist/cli/commands/preview.d.ts.map +1 -0
  8. package/dist/cli/commands/preview.js +275 -0
  9. package/dist/cli/commands/preview.js.map +1 -0
  10. package/dist/cli/commands/update.d.ts.map +1 -1
  11. package/dist/cli/commands/update.js +238 -206
  12. package/dist/cli/commands/update.js.map +1 -1
  13. package/dist/cli/commands/validate.d.ts.map +1 -1
  14. package/dist/cli/commands/validate.js +73 -3
  15. package/dist/cli/commands/validate.js.map +1 -1
  16. package/dist/cli/index.d.ts +1 -0
  17. package/dist/cli/index.d.ts.map +1 -1
  18. package/dist/cli/index.js +1 -0
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/runner.d.ts +5 -1
  21. package/dist/cli/runner.d.ts.map +1 -1
  22. package/dist/cli/runner.js +101 -5
  23. package/dist/cli/runner.js.map +1 -1
  24. package/dist/cli/utils/confirm.d.ts +6 -0
  25. package/dist/cli/utils/confirm.d.ts.map +1 -0
  26. package/dist/cli/utils/confirm.js +18 -0
  27. package/dist/cli/utils/confirm.js.map +1 -0
  28. package/dist/generator/generator.d.ts.map +1 -1
  29. package/dist/generator/generator.js +4 -1
  30. package/dist/generator/generator.js.map +1 -1
  31. package/dist/generator/validation/cross-reference.d.ts +40 -0
  32. package/dist/generator/validation/cross-reference.d.ts.map +1 -0
  33. package/dist/generator/validation/cross-reference.js +126 -0
  34. package/dist/generator/validation/cross-reference.js.map +1 -0
  35. package/dist/generator/validation/index.d.ts +4 -0
  36. package/dist/generator/validation/index.d.ts.map +1 -1
  37. package/dist/generator/validation/index.js +2 -0
  38. package/dist/generator/validation/index.js.map +1 -1
  39. package/dist/generator/validation/semantic.d.ts +70 -0
  40. package/dist/generator/validation/semantic.d.ts.map +1 -0
  41. package/dist/generator/validation/semantic.js +494 -0
  42. package/dist/generator/validation/semantic.js.map +1 -0
  43. package/dist/k8s/kubectl.d.ts +4 -0
  44. package/dist/k8s/kubectl.d.ts.map +1 -1
  45. package/dist/k8s/kubectl.js +37 -1
  46. package/dist/k8s/kubectl.js.map +1 -1
  47. package/dist/loader/project.d.ts +10 -0
  48. package/dist/loader/project.d.ts.map +1 -1
  49. package/dist/loader/project.js +15 -0
  50. package/dist/loader/project.js.map +1 -1
  51. package/dist/nodes/kubectl-labeler.d.ts.map +1 -1
  52. package/dist/nodes/kubectl-labeler.js +54 -20
  53. package/dist/nodes/kubectl-labeler.js.map +1 -1
  54. package/dist/nodes/types.d.ts +1 -0
  55. package/dist/nodes/types.d.ts.map +1 -1
  56. package/dist/nodes/types.js.map +1 -1
  57. package/dist/plugins/types.d.ts +8 -0
  58. package/dist/plugins/types.d.ts.map +1 -1
  59. package/dist/plugins/types.js.map +1 -1
  60. package/dist/schema/cluster.d.ts +106 -189
  61. package/dist/schema/cluster.d.ts.map +1 -1
  62. package/dist/schema/cluster.js +13 -4
  63. package/dist/schema/cluster.js.map +1 -1
  64. package/dist/schema/node-list.d.ts +36 -16
  65. package/dist/schema/node-list.d.ts.map +1 -1
  66. package/dist/schema/node-list.js +1 -0
  67. package/dist/schema/node-list.js.map +1 -1
  68. package/dist/schema/profile.d.ts +12 -12
  69. package/package.json +1 -1
package/dist/cli/bin.js CHANGED
@@ -4,14 +4,23 @@ import { dirname, join } from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { apply_command } from './commands/apply.js';
6
6
  import { init_command } from './commands/init.js';
7
+ import { preview_command } from './commands/preview.js';
7
8
  import { sources_command } from './commands/sources.js';
8
9
  import { update_command } from './commands/update.js';
9
10
  import { validate_command } from './commands/validate.js';
10
11
  import { create_container } from './container.js';
11
- import { create_cli } from './runner.js';
12
+ import { create_cli, format_command_help, format_help } from './runner.js';
12
13
  const __dirname = dirname(fileURLToPath(import.meta.url));
13
14
  const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf-8'));
14
15
  const VERSION = pkg.version;
16
+ const all_commands = [
17
+ init_command,
18
+ validate_command,
19
+ preview_command,
20
+ apply_command,
21
+ update_command,
22
+ sources_command,
23
+ ];
15
24
  async function main() {
16
25
  const args = process.argv.slice(2);
17
26
  // Handle --version
@@ -19,26 +28,43 @@ async function main() {
19
28
  console.log(`kustodian v${VERSION}`);
20
29
  process.exit(0);
21
30
  }
22
- // Handle --help or no args
23
- if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
24
- console.log(`kustodian v${VERSION}`);
25
- console.log('A GitOps templating framework for Kubernetes with Flux CD\n');
26
- console.log('Usage: kustodian <command> [options]\n');
27
- console.log('Commands:');
28
- console.log(' init <name> Initialize a new Kustodian project');
29
- console.log(' validate Validate cluster and template configurations');
30
- console.log(' apply Apply full cluster configuration (generates, pushes OCI, deploys)');
31
- console.log(' update Check and update image version substitutions');
32
- console.log(' sources Manage template sources (fetch, list, cache)\n');
33
- console.log('Options:');
34
- console.log(' --help, -h Show help');
35
- console.log(' --version, -v Show version\n');
36
- console.log('Examples:');
37
- console.log(' kustodian init my-project');
38
- console.log(' kustodian validate');
39
- console.log(' kustodian apply --cluster production');
31
+ // Handle --help or no args (top-level)
32
+ if (args.length === 0 || (args.length === 1 && (args[0] === '--help' || args[0] === '-h'))) {
33
+ const config = {
34
+ name: 'kustodian',
35
+ version: VERSION,
36
+ description: 'A GitOps templating framework for Kubernetes with Flux CD',
37
+ };
38
+ console.log(format_help(config, all_commands));
40
39
  process.exit(0);
41
40
  }
41
+ // Handle per-command --help (e.g., kustodian apply --help, kustodian sources cache --help)
42
+ if (args.includes('--help') || args.includes('-h')) {
43
+ const non_help_args = args.filter((a) => a !== '--help' && a !== '-h');
44
+ const command = all_commands.find((c) => c.name === non_help_args[0]);
45
+ if (command) {
46
+ // Check for subcommand help (e.g., kustodian sources fetch --help)
47
+ const sub_name = non_help_args[1];
48
+ if (sub_name && command.subcommands) {
49
+ const sub = command.subcommands.find((s) => s.name === sub_name);
50
+ if (sub) {
51
+ // Check for nested subcommand (e.g., kustodian sources cache info --help)
52
+ const nested_name = non_help_args[2];
53
+ if (nested_name && sub.subcommands) {
54
+ const nested = sub.subcommands.find((n) => n.name === nested_name);
55
+ if (nested) {
56
+ console.log(format_command_help('kustodian', nested, `${command.name} ${sub.name}`));
57
+ process.exit(0);
58
+ }
59
+ }
60
+ console.log(format_command_help('kustodian', sub, command.name));
61
+ process.exit(0);
62
+ }
63
+ }
64
+ console.log(format_command_help('kustodian', command));
65
+ process.exit(0);
66
+ }
67
+ }
42
68
  // Create CLI
43
69
  const cli = create_cli({
44
70
  name: 'kustodian',
@@ -46,11 +72,9 @@ async function main() {
46
72
  description: 'A GitOps templating framework for Kubernetes with Flux CD',
47
73
  });
48
74
  // Register commands
49
- cli.command(init_command);
50
- cli.command(validate_command);
51
- cli.command(apply_command);
52
- cli.command(update_command);
53
- cli.command(sources_command);
75
+ for (const cmd of all_commands) {
76
+ cli.command(cmd);
77
+ }
54
78
  // Create container
55
79
  const container = create_container();
56
80
  // Run CLI
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,qCAyfxB,CAAC"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AA6BA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,qCAqkBxB,CAAC"}