@r8s/cli 0.3.3 → 0.3.4

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/dist/flux.js ADDED
@@ -0,0 +1,342 @@
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.writeFluxRecipe = writeFluxRecipe;
37
+ /**
38
+ * `r8s flux` — emit the two-Kustomization stack recipe for a fresh cluster.
39
+ *
40
+ * The stateless-install promise as an artifact: an operators Kustomization
41
+ * (HelmRepository + HelmRelease per declared operator — CRDs installed,
42
+ * operator Ready) and a stack Kustomization carrying the package resources,
43
+ * wired together with dependsOn + wait + healthChecks so Flux reconciles
44
+ * them in order (operators first, stack only once the operators are Ready).
45
+ *
46
+ * Rendered layout (output dir, default mode):
47
+ * stacks/<name>/operators/kustomization.yaml + manifests.yaml
48
+ * stacks/<name>/stack/kustomization.yaml + manifests.yaml
49
+ * clusters/<cluster>/stacks/<name>.yaml # the two Flux Kustomizations
50
+ *
51
+ * Two composable single-layer modes for full-catalog installs, where ~20
52
+ * package stacks would otherwise collide per-stack on HelmRelease names
53
+ * under prune — so ONE shared operators layer is emitted once and every
54
+ * package stack dependsOn it:
55
+ * --operators-only only the operators layer + the single
56
+ * <name>-operators Kustomization CR
57
+ * --shared-operators <kustomization-name>
58
+ * only the stack layer + the single
59
+ * <name>-stack CR depending on <name>
60
+ * instead of <name>-operators
61
+ */
62
+ const yaml = __importStar(require("js-yaml"));
63
+ const fs_1 = require("fs");
64
+ const path_1 = require("path");
65
+ const core_1 = require("@r8s/core");
66
+ const renderer_1 = require("./renderer");
67
+ const RECONCILE_INTERVAL = '5m';
68
+ const OPERATORS_TIMEOUT = '8m';
69
+ const STACK_TIMEOUT = '12m';
70
+ const MAX_HEALTH_CHECKS = 5;
71
+ const DNS_LABEL_RE = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
72
+ /**
73
+ * HelmRepository + HelmRelease per declared helm operator — the Flux
74
+ * translation of the operator's `source: { type: 'helm', ... }` shape.
75
+ * The operator name doubles as the repo/release name; OCI repositories
76
+ * carry the `type: oci` marker, plain HTTP ones do not.
77
+ */
78
+ function helmOperatorDocs(operators, fallbackNamespace) {
79
+ const docs = [];
80
+ for (const op of operators) {
81
+ if (op.source.type !== 'helm')
82
+ continue;
83
+ // Helm resources must land in a namespace — the operator's declared
84
+ // one, or the caller's default. (source-controller requires it.)
85
+ const namespace = op.source.namespace ?? fallbackNamespace ?? 'default';
86
+ const isOci = op.source.repository.startsWith('oci://');
87
+ docs.push({
88
+ apiVersion: 'source.toolkit.fluxcd.io/v1',
89
+ kind: 'HelmRepository',
90
+ metadata: { name: op.name, namespace },
91
+ spec: {
92
+ // OCI repos need type: oci so source-controller authenticates
93
+ // against the registry instead of fetching a Helm index.
94
+ ...(isOci ? { type: 'oci' } : {}),
95
+ url: op.source.repository,
96
+ interval: RECONCILE_INTERVAL,
97
+ },
98
+ });
99
+ docs.push({
100
+ apiVersion: 'helm.toolkit.fluxcd.io/v2',
101
+ kind: 'HelmRelease',
102
+ metadata: { name: op.name, namespace },
103
+ spec: {
104
+ interval: RECONCILE_INTERVAL,
105
+ chart: {
106
+ spec: {
107
+ chart: op.source.chart,
108
+ version: op.source.version,
109
+ sourceRef: { kind: 'HelmRepository', name: op.name, namespace },
110
+ },
111
+ },
112
+ ...(op.source.values ? { values: op.source.values } : {}),
113
+ },
114
+ });
115
+ }
116
+ return docs;
117
+ }
118
+ /**
119
+ * healthChecks for the stack Kustomization: one apps/v1 ref per distinct
120
+ * Deployment/StatefulSet in the rendered resources, capped — the CR stays
121
+ * readable and Flux health assessment stays targeted. Empty when the
122
+ * package renders no long-running workloads.
123
+ */
124
+ function pickHealthChecks(resources) {
125
+ const seen = new Map();
126
+ for (const r of resources) {
127
+ if (r?.kind !== 'Deployment' && r?.kind !== 'StatefulSet')
128
+ continue;
129
+ if (!r?.metadata?.name)
130
+ continue;
131
+ const ns = r.metadata.namespace;
132
+ const key = `${ns ?? ''}/${r.kind}/${r.metadata.name}`;
133
+ if (!seen.has(key)) {
134
+ seen.set(key, {
135
+ apiVersion: 'apps/v1',
136
+ kind: r.kind,
137
+ name: r.metadata.name,
138
+ ...(ns ? { namespace: ns } : {}),
139
+ });
140
+ }
141
+ if (seen.size >= MAX_HEALTH_CHECKS)
142
+ break;
143
+ }
144
+ return Array.from(seen.values());
145
+ }
146
+ /**
147
+ * The Flux Kustomization CRs per mode. Default: the `<name>-operators` /
148
+ * `<name>-stack` pair wired with dependsOn. Operators-only: just the
149
+ * `<name>-operators` CR — the shared layer every package stack points at
150
+ * with `--shared-operators <name>-operators`. Shared-operators: just the
151
+ * `<name>-stack` CR, depending on the named shared operators Kustomization
152
+ * instead of the per-stack one.
153
+ */
154
+ function fluxKustomizationDocs(name, options, mode, sharedOperatorsName, healthChecks = []) {
155
+ const sourceNamespace = options.sourceNamespace ?? 'flux-system';
156
+ const sourceRef = {
157
+ kind: 'GitRepository',
158
+ name: options.source ?? 'flux-system',
159
+ namespace: sourceNamespace,
160
+ };
161
+ const shared = {
162
+ interval: RECONCILE_INTERVAL,
163
+ prune: true,
164
+ wait: true,
165
+ sourceRef,
166
+ };
167
+ const operatorsDoc = {
168
+ apiVersion: 'kustomize.toolkit.fluxcd.io/v1',
169
+ kind: 'Kustomization',
170
+ metadata: { name: `${name}-operators`, namespace: sourceNamespace },
171
+ spec: { ...shared, path: `stacks/${name}/operators`, timeout: OPERATORS_TIMEOUT },
172
+ };
173
+ const dependsOnName = mode === 'shared-operators' ? sharedOperatorsName : `${name}-operators`;
174
+ const stackDoc = {
175
+ apiVersion: 'kustomize.toolkit.fluxcd.io/v1',
176
+ kind: 'Kustomization',
177
+ metadata: { name: `${name}-stack`, namespace: sourceNamespace },
178
+ spec: {
179
+ ...shared,
180
+ path: `stacks/${name}/stack`,
181
+ timeout: STACK_TIMEOUT,
182
+ // The shared operators Kustomization is emitted by a separate r8s
183
+ // flux run — make the namespace explicit so the reference is
184
+ // self-describing (Flux resolves dependsOn in the referencing CR's
185
+ // namespace by default; emit the shared layer and the package stacks
186
+ // with the same --source-namespace). The default mode's pair is
187
+ // always co-located from one run, so it keeps the bare name.
188
+ dependsOn: [
189
+ mode === 'shared-operators'
190
+ ? { name: dependsOnName, namespace: sourceNamespace }
191
+ : { name: dependsOnName },
192
+ ],
193
+ ...(healthChecks.length > 0 ? { healthChecks } : {}),
194
+ },
195
+ };
196
+ if (mode === 'operators-only')
197
+ return [operatorsDoc];
198
+ if (mode === 'shared-operators')
199
+ return [stackDoc];
200
+ return [operatorsDoc, stackDoc];
201
+ }
202
+ function dumpDocs(docs) {
203
+ return docs
204
+ .map((doc) => yaml.dump(doc, {
205
+ sortKeys: false,
206
+ noRefs: true,
207
+ lineWidth: -1,
208
+ }))
209
+ .join('---\n');
210
+ }
211
+ /**
212
+ * Render `<entryFile>` and write the full Flux stack recipe under
213
+ * `options.out`. Exported for tests — the CLI wraps it with arg parsing.
214
+ */
215
+ async function writeFluxRecipe(entryFile, options) {
216
+ if (options.operatorsOnly && options.sharedOperators) {
217
+ throw new Error('--operators-only and --shared-operators are mutually exclusive — ' +
218
+ 'emit the shared operators layer as its own stack (one r8s flux run ' +
219
+ 'with --operators-only), then point each package stack at it with --shared-operators.');
220
+ }
221
+ if (options.sharedOperators && !DNS_LABEL_RE.test(options.sharedOperators)) {
222
+ throw new Error(`Invalid --shared-operators name "${options.sharedOperators}" — must be a DNS label ` +
223
+ `(lowercase alphanumerics and '-'). It is the Kustomization CR name the stack dependsOn.`);
224
+ }
225
+ const mode = options.operatorsOnly
226
+ ? 'operators-only'
227
+ : options.sharedOperators
228
+ ? 'shared-operators'
229
+ : 'default';
230
+ const outDir = (0, path_1.resolve)(options.out);
231
+ const cluster = options.cluster ?? 'default';
232
+ const name = options.name ?? (0, path_1.basename)(entryFile).replace(/\.(tsx|ts|jsx|js)$/, '');
233
+ if (!DNS_LABEL_RE.test(name)) {
234
+ throw new Error(`Invalid stack name "${name}" — must be a DNS label (lowercase alphanumerics and '-'). Pass --name <name>.`);
235
+ }
236
+ const renderResult = await (0, renderer_1.bundleAndRender)(entryFile);
237
+ // A synthetic shared-operators entry may declare only operators, so the
238
+ // no-resources requirement applies to stack-carrying modes only.
239
+ if (mode !== 'operators-only' && renderResult.resources.length === 0) {
240
+ throw new Error(`No Kubernetes resources rendered from ${entryFile}. ` +
241
+ `Ensure your component returns resources with 'apiVersion' and 'kind'.`);
242
+ }
243
+ // Operators-only IS the shared operators layer — nothing to reconcile
244
+ // unless the entry declares operators a stack can depend on.
245
+ if (mode === 'operators-only' &&
246
+ !renderResult.operators.some((op) => op.source.type === 'helm' || op.source.type === 'manifest')) {
247
+ throw new Error(`No operators declared in ${entryFile}. ` +
248
+ `--operators-only emits the shared operators layer, so the entry must declare operators (helm or manifest sources).`);
249
+ }
250
+ const emitOperatorsLayer = mode !== 'shared-operators';
251
+ const emitStackLayer = mode !== 'operators-only';
252
+ const operatorDocs = emitOperatorsLayer
253
+ ? helmOperatorDocs(renderResult.operators, options.namespace)
254
+ : [];
255
+ if (emitOperatorsLayer) {
256
+ // Helm operators translate to HelmRepository + HelmRelease above. Raw
257
+ // (manifest) operators keep the existing fetch-at-render path — their
258
+ // manifests are committed into the operators layer next to the Flux
259
+ // docs. OLM/flux-source operators have no recipe translation yet; say
260
+ // so instead of silently dropping them.
261
+ const unsupported = renderResult.operators.filter((op) => op.source.type !== 'helm' && op.source.type !== 'manifest');
262
+ for (const op of unsupported) {
263
+ console.error(`⚠️ Operator "${op.name}" declares source type "${op.source.type}" — not supported by the flux recipe yet, skipped.`);
264
+ }
265
+ }
266
+ else {
267
+ // package stack pointing at the shared layer: the shared operators
268
+ // layer owns operator installation — anything declared here would
269
+ // collide with it under prune (same HelmRelease names). Name them,
270
+ // skip them.
271
+ if (renderResult.operators.length > 0) {
272
+ const declared = renderResult.operators.map((op) => op.name).join(', ');
273
+ console.error(`⚠️ --shared-operators "${options.sharedOperators}": operators [${declared}] declared in the entry are skipped — the shared operators layer owns operator installation.`);
274
+ }
275
+ }
276
+ // Symmetric signal to the skipped-operators warning above: passing a
277
+ // real package entry (with resources) instead of the synthetic
278
+ // operators-only entry would silently lose those resources.
279
+ if (mode === 'operators-only' && renderResult.resources.length > 0) {
280
+ console.error(`⚠️ ${renderResult.resources.length} resources rendered are dropped in --operators-only mode (it emits only the shared operators layer — stack resources belong to a package stack, r8s flux <entry> --shared-operators ${name}-operators).`);
281
+ }
282
+ const fetchedManifests = emitOperatorsLayer &&
283
+ renderResult.operators.some((op) => op.source.type === 'manifest') === true
284
+ ? await (0, core_1.fetchOperatorManifests)(renderResult.operators)
285
+ : [];
286
+ // Guardrails run over BOTH layers before anything is serialized — the
287
+ // stack resources and the helm chart values inside the HelmReleases
288
+ // (plain fetched operator manifests are external content, same policy
289
+ // as `r8s operators`). Per mode, only over the layers being emitted.
290
+ if (emitOperatorsLayer)
291
+ (0, renderer_1.enforceSecretGuardrails)(operatorDocs, options);
292
+ if (emitStackLayer)
293
+ (0, renderer_1.enforceSecretGuardrails)(renderResult.resources, options);
294
+ const redact = (docs) => options.redactSecrets ? docs.map((doc) => (0, core_1.maskSecretValues)(doc)) : docs;
295
+ const operatorYaml = [dumpDocs(redact(operatorDocs)), ...fetchedManifests]
296
+ .filter(Boolean)
297
+ .join('---\n');
298
+ const sourceNamespace = options.sourceNamespace ?? 'flux-system';
299
+ const kustomizationDocs = fluxKustomizationDocs(name, { ...options, sourceNamespace }, mode, options.sharedOperators, emitStackLayer ? pickHealthChecks(renderResult.resources) : []);
300
+ const layerKustomization = (hasManifests) => ({
301
+ apiVersion: 'kustomize.config.k8s.io/v1beta1',
302
+ kind: 'Kustomization',
303
+ // An empty operators layer (stack declares no operators) builds to an
304
+ // empty set — valid kustomize, Flux reconciles it to Ready at once.
305
+ ...(hasManifests ? { resources: ['manifests.yaml'] } : {}),
306
+ });
307
+ const files = [];
308
+ const write = (relPath, content) => {
309
+ const absolute = (0, path_1.join)(outDir, relPath);
310
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(absolute), { recursive: true });
311
+ (0, fs_1.writeFileSync)(absolute, content, 'utf-8');
312
+ files.push(relPath);
313
+ };
314
+ if (emitOperatorsLayer) {
315
+ write(`stacks/${name}/operators/kustomization.yaml`, dumpDocs([layerKustomization(operatorYaml.length > 0)]));
316
+ write(`stacks/${name}/operators/manifests.yaml`, operatorYaml);
317
+ }
318
+ if (emitStackLayer) {
319
+ write(`stacks/${name}/stack/kustomization.yaml`, dumpDocs([layerKustomization(renderResult.resources.length > 0)]));
320
+ write(`stacks/${name}/stack/manifests.yaml`, dumpDocs(redact(renderResult.resources)));
321
+ }
322
+ write(`clusters/${cluster}/stacks/${name}.yaml`, dumpDocs(kustomizationDocs));
323
+ const repoName = options.source ?? 'flux-system';
324
+ const recipeLabel = mode === 'operators-only'
325
+ ? 'r8s flux shared operators recipe'
326
+ : mode === 'shared-operators'
327
+ ? 'r8s flux package stack recipe'
328
+ : 'r8s flux recipe';
329
+ console.log(`\n${recipeLabel}: ${name} (cluster: ${cluster})`);
330
+ for (const relPath of files)
331
+ console.log(` ${relPath}`);
332
+ console.log(`\nApply to a fresh cluster (Flux bootstrapped, GitRepository "${repoName}" in ${sourceNamespace}):`);
333
+ console.log(` kubectl apply -f clusters/${cluster}/stacks/${name}.yaml`);
334
+ if (mode === 'operators-only') {
335
+ console.log(`\nPackage stacks point at this layer with: r8s flux <entry.tsx> --out <dir> --shared-operators ${name}-operators`);
336
+ }
337
+ else if (mode === 'shared-operators') {
338
+ console.log(`The stack reconciles only once the "${options.sharedOperators}" Kustomization is Ready (dependsOn + wait).`);
339
+ }
340
+ return { name, cluster, files };
341
+ }
342
+ //# sourceMappingURL=flux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flux.js","sourceRoot":"","sources":["../src/flux.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,4 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderToYaml = void 0;
4
4
  var renderer_1 = require("./renderer");
5
5
  Object.defineProperty(exports, "renderToYaml", { enumerable: true, get: function () { return renderer_1.renderToYaml; } });
6
+ /**
7
+ * dist/index.js is the library export of @r8s/cli — executing it directly
8
+ * does nothing and exits 0, which reads as "the CLI is broken". The real
9
+ * binary is dist/cli.js (the package's `bin`), normally invoked as
10
+ * `npx r8s <command>`. The typeof guards keep this module importable under
11
+ * ESM/test runners where the CJS globals don't exist.
12
+ */
13
+ if (typeof require !== 'undefined' && typeof module !== 'undefined' && require.main === module) {
14
+ console.error('This file is the @r8s/cli library export — there is nothing to run here.');
15
+ console.error('The CLI binary is dist/cli.js — invoke it as `npx r8s <command>`.');
16
+ process.exit(1);
17
+ }
6
18
  //# 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,uCAAyC;AAAhC,wGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AAAhC,wGAAA,YAAY,OAAA;AAErB;;;;;;GAMG;AACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC/F,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;IACzF,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;IAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { render } from '@r8s/core';
1
2
  export interface RenderOptions {
2
3
  includeOperators?: boolean;
3
4
  operatorsOnly?: boolean;
@@ -16,6 +17,16 @@ export interface RenderOptions {
16
17
  redactSecrets?: boolean;
17
18
  }
18
19
  export declare function bundleAndRender(entryFile: string): Promise<import("@r8s/core").RenderResult>;
20
+ /**
21
+ * Enforce the no-plaintext-secrets guardrail on rendered resources.
22
+ * Runs by default so plaintext credentials can never reach rendered YAML,
23
+ * files, or logs. Passing `skipSecretGuardrails` bypasses it —
24
+ * every caller must make that an explicit, user-visible decision.
25
+ *
26
+ * Exported so other render paths (`r8s flux`) enforce the same guardrail
27
+ * over their own manifests before anything is serialized.
28
+ */
29
+ export declare function enforceSecretGuardrails(resources: ReturnType<typeof render>['resources'], options: RenderOptions): void;
19
30
  export declare function renderToYaml(entryFile: string, options?: RenderOptions): Promise<string>;
20
31
  export declare function renderToOperatorsYaml(entryFile: string): Promise<string>;
21
32
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAyBD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,6CAuDtD;AA8CD,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMP,MAAM,WAAW,CAAA;AASlB,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAyBD,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,6CAuDtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,WAAW,CAAC,EACjD,OAAO,EAAE,aAAa,GACrB,IAAI,CAiCN;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9E"}
package/dist/renderer.js CHANGED
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.bundleAndRender = bundleAndRender;
37
+ exports.enforceSecretGuardrails = enforceSecretGuardrails;
37
38
  exports.renderToYaml = renderToYaml;
38
39
  exports.renderToOperatorsYaml = renderToOperatorsYaml;
39
40
  const core_1 = require("@r8s/core");
@@ -112,8 +113,11 @@ async function bundleAndRender(entryFile) {
112
113
  /**
113
114
  * Enforce the no-plaintext-secrets guardrail on rendered resources.
114
115
  * Runs by default so plaintext credentials can never reach rendered YAML,
115
- * CI logs, or cluster state. Passing `skipSecretGuardrails` bypasses it —
116
+ * files, or logs. Passing `skipSecretGuardrails` bypasses it —
116
117
  * every caller must make that an explicit, user-visible decision.
118
+ *
119
+ * Exported so other render paths (`r8s flux`) enforce the same guardrail
120
+ * over their own manifests before anything is serialized.
117
121
  */
118
122
  function enforceSecretGuardrails(resources, options) {
119
123
  if (options.skipSecretGuardrails) {
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@r8s/cli",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "CLI for rendering r8s TSX to Kubernetes YAML",
5
5
  "license": "MIT",
6
6
  "author": "Berget AI AB",