@codiac.io/codiac-cli 1.3.230 → 1.3.232

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.
@@ -12,6 +12,8 @@ export default class AssetCreate extends CommandBaseExec<AssetCreateRequest> {
12
12
  kit: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
13
13
  image: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
14
  registry: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
15
+ chart: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
+ "chart-repo": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
15
17
  name: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
18
  code: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
17
19
  enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
@@ -115,10 +115,19 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
115
115
  partial.regInput.url = flags.registry;
116
116
  // regRef.scope = undefined;
117
117
  }
118
+ // For helm assets the chart repository takes the place of the container registry; it is
119
+ // referenced by its Codiac registry code (resolved in buildCandidate_silently).
120
+ if (flags['chart-repo']) {
121
+ partial.regInput.code = flags['chart-repo'];
122
+ }
118
123
  partial.imgInput = { registry: partial.regInput };
119
124
  if (flags.image !== undefined) {
120
125
  partial.imgInput.name = flags.image;
121
126
  }
127
+ // For helm assets the chart name takes the place of the container image name.
128
+ if (flags.chart !== undefined) {
129
+ partial.imgInput.name = flags.chart;
130
+ }
122
131
  if (flags['deploy-condition']) {
123
132
  partial.deployCondition = { expr: flags['deploy-condition'], because: flags['deploy-condition-because'] };
124
133
  }
@@ -130,7 +139,7 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
130
139
  });
131
140
  }
132
141
  buildCandidate_silently(partial) {
133
- var _a, _b, _c, _d, _e, _f, _g, _h;
142
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
134
143
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
135
144
  // Rough validation for missing args
136
145
  if (!partial.name)
@@ -154,13 +163,14 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
154
163
  // ImageRegistry.code), fall back to the official DockerHub registry record
155
164
  // for the enterprise. The deploy path expects a full registry record (with
156
165
  // url, type, etc.); a bare {url} stub crashes K8sDomainMapper.
157
- const registryHint = (_c = (_b = partial.imgInput.registry) === null || _b === void 0 ? void 0 : _b.url) !== null && _c !== void 0 ? _c : (_d = partial.imgInput.registry) === null || _d === void 0 ? void 0 : _d.code;
166
+ const registryHint = (_c = (_b = partial.imgInput.registry) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : (_d = partial.imgInput.registry) === null || _d === void 0 ? void 0 : _d.url;
167
+ const isHelm = partial.type === contracts_1.AssetTypesEnum.helm;
158
168
  let registry;
159
169
  if (registryHint) {
160
170
  const matches = yield this._codiacApi.ImageRegistry.readMany({ code: { $eq: registryHint } }, { throwNotFound: false });
161
171
  registry = (matches !== null && matches !== void 0 ? matches : [])[0];
162
172
  if (!registry)
163
- throw new Error(`No ImageRegistry was found matching --registry [${registryHint}].`);
173
+ throw new Error(`No ImageRegistry was found matching ${isHelm ? `--chart-repo` : `--registry`} [${registryHint}].`);
164
174
  }
165
175
  else {
166
176
  // Default: DockerHub|official for the tenant
@@ -173,7 +183,8 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
173
183
  }
174
184
  if (!((_e = partial.image) === null || _e === void 0 ? void 0 : _e.name))
175
185
  throw new Error("Asset image name must be set");
176
- if (!partial.port)
186
+ // Helm assets carry no Codiac-managed port; the chart owns its own service definitions.
187
+ if (partial.type !== contracts_1.AssetTypesEnum.helm && !partial.port)
177
188
  throw new Error("Asset port must be set"); // TODO: Consider defaulting to 80 or next available...?
178
189
  // We gotta validate the registry input,
179
190
  // AND we should look it up by csp+name,
@@ -185,10 +196,10 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
185
196
  //
186
197
  // TODO: this.validateImage(partial.image);
187
198
  try {
188
- let candidate = Object.assign({ enterprise: partial.enterprise, code: partial.code, name: partial.name, image: partial.image, port: partial.port, hasIngress: (_f = partial.hasIngress) !== null && _f !== void 0 ? _f : false, routedWithoutName: (_g = partial.routedWithoutName) !== null && _g !== void 0 ? _g : false }, this.createAuditable());
199
+ let candidate = Object.assign({ enterprise: partial.enterprise, code: partial.code, name: partial.name, image: partial.image, port: (_f = partial.port) !== null && _f !== void 0 ? _f : 0, hasIngress: (_g = partial.hasIngress) !== null && _g !== void 0 ? _g : false, routedWithoutName: (_h = partial.routedWithoutName) !== null && _h !== void 0 ? _h : false }, this.createAuditable());
189
200
  candidate.product = partial.product;
190
201
  candidate.reservedFolders = partial.reservedFolders;
191
- candidate.type = (_h = partial.type) !== null && _h !== void 0 ? _h : contracts_1.AssetTypesEnum.service;
202
+ candidate.type = (_j = partial.type) !== null && _j !== void 0 ? _j : contracts_1.AssetTypesEnum.service;
192
203
  if (partial.allowHttp != undefined)
193
204
  candidate.allowHttp = partial.allowHttp;
194
205
  if (partial.disableHttps != undefined)
@@ -307,12 +318,14 @@ class AssetCreate extends command_base_exec_1.CommandBaseExec {
307
318
  cmd.push("--enterprise", candidate.enterprise);
308
319
  cmd.push("--name", candidate.name);
309
320
  cmd.push("--code", candidate.code);
310
- cmd.push("--image", candidate.image.name);
311
- cmd.push("--registry", candidate.image.registry.code);
312
321
  if (candidate.type == contracts_1.AssetTypesEnum.helm) {
313
322
  cmd.push("--helm");
323
+ cmd.push("--chart", candidate.image.name);
324
+ cmd.push("--chart-repo", candidate.image.registry.code);
314
325
  }
315
326
  else {
327
+ cmd.push("--image", candidate.image.name);
328
+ cmd.push("--registry", candidate.image.registry.code);
316
329
  // Ports
317
330
  if (candidate.port != undefined) {
318
331
  if (_.isArray(candidate.port)) {
@@ -402,8 +415,10 @@ AssetCreate.dependsOn = ["image", "registry", "name", "code", "enterprise", "por
402
415
  AssetCreate.flags = {
403
416
  help: core_1.Flags.help({ char: 'h' }),
404
417
  kit: core_1.Flags.string({ char: 'k', required: false, exclusive: ["image", "registry"], description: "The name of the kit (with library prefix, eg: 'library/kitName') to use to create the asset. Use '?' to be prompted for a kit (Optional: used instead of calling for the image)." }),
405
- image: core_1.Flags.string({ char: 'i', required: false, exclusive: ["kit"], description: "The image name including scope prefix if applicable (eg: '@yourCompany/your-api-image')." }),
406
- registry: core_1.Flags.string({ char: 'r', required: false, exclusive: ["kit"], description: "The container registry in which the image exists (defaults to docker hub)." }),
418
+ image: core_1.Flags.string({ char: 'i', required: false, exclusive: ["kit", "chart", "chart-repo"], description: "The image name including scope prefix if applicable (eg: '@yourCompany/your-api-image')." }),
419
+ registry: core_1.Flags.string({ char: 'r', required: false, exclusive: ["kit", "chart", "chart-repo"], description: "The container registry in which the image exists (defaults to docker hub)." }),
420
+ chart: core_1.Flags.string({ required: false, exclusive: ["kit", "image", "registry"], description: "(Helm assets only) Name of the Helm chart to base the asset on, in place of a container image. Use with --helm." }),
421
+ "chart-repo": core_1.Flags.string({ required: false, exclusive: ["kit", "image", "registry"], description: "(Helm assets only) Codiac registry code of the Helm chart repository that publishes the chart. Use with --helm and --chart." }),
407
422
  name: core_1.Flags.string({ char: 'n', required: false, description: "The name to give the enterprise asset (Optional: defaults to the image name without the scope prefix)." }),
408
423
  code: core_1.Flags.string({ char: 'c', required: false, description: "The host name to assign this asset in the domain url. eg: 'myasset' in 'myasset.your-domain.com' (Optional: defaults to the asset name)." }),
409
424
  enterprise: core_1.Flags.string({ char: 'e', required: false, description: 'The name of the enterprise in which to create this asset. (defaults to the current enterprise context)' }),
@@ -427,5 +442,6 @@ AssetCreate.examples = [
427
442
  { description: "Create an asset interactively.", command: "<%= config.bin %> <%= command.id %>" },
428
443
  { description: "Create an asset with a deploy condition so it is skipped on AKS clusters (which include metrics-server natively).", command: "<%= config.bin %> <%= command.id %> -e myEnterprise -n metrics-server --deploy-condition \"cluster.provider != 'azure'\" --deploy-condition-because 'AKS clusters include metrics-server natively.'" },
429
444
  { description: "Create an asset that only deploys to production environments.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise -n my-api --deploy-condition \"environment.name = 'production'\"" },
445
+ { description: "Create a Helm-typed asset from a chart in a captured chart repository.", command: "<%= config.bin %> <%= command.id %> -e myEnterprise -n redis --helm --chart redis --chart-repo bitnami --silent" },
430
446
  ];
431
447
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/asset/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/asset/create.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export default class ImportCluster extends Command {
7
7
  enterprise: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
8
8
  environment: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
9
9
  cluster: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ "subscription-id": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
11
  "generate-cabinet": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
12
  "generate-secret-store": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
13
  "generate-pvcs": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
@@ -28,6 +29,29 @@ export default class ImportCluster extends Command {
28
29
  run(): Promise<void>;
29
30
  private listUserNamespaces;
30
31
  private scanNamespace;
32
+ /** True when the Deployment is owned by one of the named Helm releases (so it must not be imported as a raw asset). */
33
+ private isHelmOwned;
34
+ /** Lists the Helm v3 release storage Secrets in a namespace, keeps the latest revision per release, and decodes
35
+ * each into a HelmRelease. Listing failures (typically missing `secrets` read RBAC) are non-fatal: a warning is
36
+ * emitted and an empty list returned, so the affected Deployments fall back to the raw asset-import path. */
37
+ private scanNamespaceHelmReleases;
38
+ /** Decodes a Helm v3 release storage payload. Helm stores the release as base64(gzip(json)); the Kubernetes API
39
+ * then base64-encodes that string again as the Secret's `release` data value, so two base64 decodes precede the
40
+ * gunzip. Older releases may be stored without gzip, so the gzip magic bytes are checked before inflating. */
41
+ private decodeHelmRelease;
42
+ /** Best-effort recovery of a usable chart repository reference from chart metadata. The Helm release Secret does
43
+ * not record where a chart came from, so only an explicit OCI source can be returned with confidence. */
44
+ private sniffChartRepo;
45
+ /** Renders a human hint (chart home / sources) shown in a comment when the chart repository could not be resolved. */
46
+ private buildRepoHint;
47
+ /** Builds the full block of generated commands for one Helm release: the asset create line, plus enterprise-scoped
48
+ * default values and (when present) cabinet-scoped override values, each delivered via a heredoc to keep the output
49
+ * a single self-contained script stream. */
50
+ private buildHelmReleaseCommands;
51
+ /** Builds a single `codiac config set -t helm` command whose value is the entire values document, supplied via a
52
+ * quoted heredoc so the YAML passes through the shell literally. `--escape-expressions` ensures any third-party
53
+ * `@{...}` tokens in the values are stored as literals rather than evaluated by Codiac at deploy time. */
54
+ private buildHelmValuesConfigBlock;
31
55
  private scanNamespacePvcs;
32
56
  /** Resolves a PVC's FileStoreType using the cluster-wide StorageClass map, falling back to the PV's CSI driver
33
57
  * for statically-bound PVCs (storageClassName empty / spec.volumeName set). Returns undefined when no path resolves. */
@@ -49,7 +73,9 @@ export default class ImportCluster extends Command {
49
73
  private buildSecretRefCommand;
50
74
  /** Builds a codiac config set with -t k8spatch for a fieldRef (Downward API) env var. */
51
75
  private buildFieldRefPatchCommand;
52
- /** Builds a codiac secretStore:capture command. */
76
+ /** Builds a codiac secretStore:capture command. When the import was run with --subscription-id, threads
77
+ * it through so the generated line resolves the Azure tenant context unambiguously when the operator
78
+ * has multiple cached azure subscriptions. */
53
79
  private buildSecretStoreCaptureCommand;
54
80
  private outputCommands;
55
81
  private findServicesForDeployment;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const core_1 = require("@oclif/core");
5
5
  const k8s = require("@kubernetes/client-node");
6
+ const zlib = require("zlib");
7
+ const YAML = require("yaml");
6
8
  const contracts_1 = require("../../apis/codiac-api/contracts");
7
9
  const EXCLUDED_NAMESPACES = new Set([
8
10
  "kube-system",
@@ -41,7 +43,7 @@ class ImportCluster extends core_1.Command {
41
43
  const { flags } = yield this.parse(ImportCluster);
42
44
  if (!flags["run-in-cluster"]) {
43
45
  this.log("The --run-in-cluster flag is required. Interactive mode is not yet supported.");
44
- this.log("Usage: codiac import cluster --run-in-cluster [--enterprise <name>] [--environment <name>] [--cluster <name>] [--generate-cabinet] [--generate-secret-store] [--generate-pvcs] [--generate-volume-mounts] [--keyvault-name <name>] [--include-default]");
46
+ this.log("Usage: codiac import cluster --run-in-cluster [--enterprise <name>] [--environment <name>] [--cluster <name>] [--subscription-id <id>] [--generate-cabinet] [--generate-secret-store] [--generate-pvcs] [--generate-volume-mounts] [--keyvault-name <name>] [--include-default]");
45
47
  return;
46
48
  }
47
49
  // The generated commands all rely on --enterprise. Catch the omission up front rather than emitting broken script lines.
@@ -82,11 +84,13 @@ class ImportCluster extends core_1.Command {
82
84
  }
83
85
  }
84
86
  const allGroups = [];
87
+ const allHelmGroups = [];
85
88
  for (const namespace of namespaces) {
86
- const groups = yield this.scanNamespace(namespace, coreApi, appsApi, networkingApi, storageClassByName, flags);
89
+ const { groups, helmGroups } = yield this.scanNamespace(namespace, coreApi, appsApi, networkingApi, storageClassByName, flags);
87
90
  allGroups.push(...groups);
91
+ allHelmGroups.push(...helmGroups);
88
92
  }
89
- this.outputCommands(allGroups, flags);
93
+ this.outputCommands(allGroups, allHelmGroups, flags);
90
94
  });
91
95
  }
92
96
  // --------------------------------------------------------------------
@@ -115,10 +119,19 @@ class ImportCluster extends core_1.Command {
115
119
  scanNamespace(namespace, coreApi, appsApi, networkingApi, storageClassByName, flags) {
116
120
  var _a, _b;
117
121
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
122
+ // Discover Helm releases first so their owned Deployments can be deduped out of the raw asset path.
123
+ const helmReleases = yield this.scanNamespaceHelmReleases(namespace, coreApi);
124
+ const releaseNames = new Set(helmReleases.map(r => r.name));
125
+ const helmGroups = helmReleases.map(r => ({
126
+ namespace,
127
+ releaseName: r.name,
128
+ lines: this.buildHelmReleaseCommands(r, flags),
129
+ }));
118
130
  const deploymentResult = yield appsApi.listNamespacedDeployment({ namespace });
119
- const deployments = deploymentResult.items.filter(d => { var _a; return !!((_a = d.metadata) === null || _a === void 0 ? void 0 : _a.name); });
131
+ // Skip Deployments owned by a Helm release we successfully imported; they are represented by the helm asset instead.
132
+ const deployments = deploymentResult.items.filter(d => { var _a; return !!((_a = d.metadata) === null || _a === void 0 ? void 0 : _a.name) && !this.isHelmOwned(d, releaseNames); });
120
133
  if (deployments.length === 0)
121
- return [];
134
+ return { groups: [], helmGroups };
122
135
  const services = (yield coreApi.listNamespacedService({ namespace })).items;
123
136
  const ingresses = (yield networkingApi.listNamespacedIngress({ namespace })).items;
124
137
  // Only list PVCs when at least one PVC-related emission flag is set; the API call is per-namespace.
@@ -136,9 +149,6 @@ class ImportCluster extends core_1.Command {
136
149
  volumeMountCommands: [],
137
150
  filestoreBindCommands: [],
138
151
  };
139
- if (i === 0 && flags["generate-cabinet"]) {
140
- group.cabinetCommand = this.buildCabinetCreateCommand(namespace, flags);
141
- }
142
152
  if (needsPvcs && pvcsInNs.size > 0) {
143
153
  const assetName = (_b = (_a = deployment.metadata) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "unnamed";
144
154
  const mounts = this.findPvcMountsForDeployment(deployment, pvcsInNs);
@@ -160,9 +170,157 @@ class ImportCluster extends core_1.Command {
160
170
  }
161
171
  groups.push(group);
162
172
  }
163
- return groups;
173
+ return { groups, helmGroups };
174
+ });
175
+ }
176
+ /** True when the Deployment is owned by one of the named Helm releases (so it must not be imported as a raw asset). */
177
+ isHelmOwned(deployment, releaseNames) {
178
+ var _a, _b;
179
+ const releaseName = (_b = (_a = deployment.metadata) === null || _a === void 0 ? void 0 : _a.annotations) === null || _b === void 0 ? void 0 : _b["meta.helm.sh/release-name"];
180
+ return releaseName != undefined && releaseNames.has(releaseName);
181
+ }
182
+ // --------------------------------------------------------------------
183
+ // Helm Release Discovery
184
+ // --------------------------------------------------------------------
185
+ /** Lists the Helm v3 release storage Secrets in a namespace, keeps the latest revision per release, and decodes
186
+ * each into a HelmRelease. Listing failures (typically missing `secrets` read RBAC) are non-fatal: a warning is
187
+ * emitted and an empty list returned, so the affected Deployments fall back to the raw asset-import path. */
188
+ scanNamespaceHelmReleases(namespace, coreApi) {
189
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
190
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
191
+ let secrets;
192
+ try {
193
+ const list = yield coreApi.listNamespacedSecret({ namespace, fieldSelector: "type=helm.sh/release.v1" });
194
+ secrets = (_a = list.items) !== null && _a !== void 0 ? _a : [];
195
+ }
196
+ catch (err) {
197
+ this.log(`# WARNING: Failed to list Helm release secrets in namespace [${namespace}] (${(_b = err.message) !== null && _b !== void 0 ? _b : err}). Helm releases here will not be imported; their Deployments will be imported individually instead.`);
198
+ return [];
199
+ }
200
+ // Group by release name, keeping only the highest revision Secret per release.
201
+ const latestByName = new Map();
202
+ for (const secret of secrets) {
203
+ const releaseName = (_d = (_c = secret.metadata) === null || _c === void 0 ? void 0 : _c.labels) === null || _d === void 0 ? void 0 : _d["name"];
204
+ if (!releaseName)
205
+ continue;
206
+ const revision = parseInt((_g = (_f = (_e = secret.metadata) === null || _e === void 0 ? void 0 : _e.labels) === null || _f === void 0 ? void 0 : _f["version"]) !== null && _g !== void 0 ? _g : "0", 10) || 0;
207
+ const existing = latestByName.get(releaseName);
208
+ if (!existing || revision > existing.revision)
209
+ latestByName.set(releaseName, { revision, secret });
210
+ }
211
+ const releases = [];
212
+ for (const [releaseName, { secret }] of latestByName) {
213
+ const encoded = (_h = secret.data) === null || _h === void 0 ? void 0 : _h["release"];
214
+ if (!encoded)
215
+ continue;
216
+ try {
217
+ const release = this.decodeHelmRelease(encoded);
218
+ const metadata = (_k = (_j = release === null || release === void 0 ? void 0 : release.chart) === null || _j === void 0 ? void 0 : _j.metadata) !== null && _k !== void 0 ? _k : {};
219
+ releases.push({
220
+ name: (_l = release === null || release === void 0 ? void 0 : release.name) !== null && _l !== void 0 ? _l : releaseName,
221
+ namespace: (_m = release === null || release === void 0 ? void 0 : release.namespace) !== null && _m !== void 0 ? _m : namespace,
222
+ chartName: (_o = metadata.name) !== null && _o !== void 0 ? _o : releaseName,
223
+ chartVersion: metadata.version,
224
+ defaults: (_q = (_p = release === null || release === void 0 ? void 0 : release.chart) === null || _p === void 0 ? void 0 : _p.values) !== null && _q !== void 0 ? _q : {},
225
+ overrides: (_r = release === null || release === void 0 ? void 0 : release.config) !== null && _r !== void 0 ? _r : {},
226
+ repoGuess: this.sniffChartRepo(metadata),
227
+ repoHint: this.buildRepoHint(metadata),
228
+ });
229
+ }
230
+ catch (err) {
231
+ this.log(`# WARNING: Failed to decode Helm release [${namespace}/${releaseName}] (${(_s = err.message) !== null && _s !== void 0 ? _s : err}); skipping.`);
232
+ }
233
+ }
234
+ releases.sort((a, b) => a.name.localeCompare(b.name));
235
+ return releases;
164
236
  });
165
237
  }
238
+ /** Decodes a Helm v3 release storage payload. Helm stores the release as base64(gzip(json)); the Kubernetes API
239
+ * then base64-encodes that string again as the Secret's `release` data value, so two base64 decodes precede the
240
+ * gunzip. Older releases may be stored without gzip, so the gzip magic bytes are checked before inflating. */
241
+ decodeHelmRelease(b64FromK8s) {
242
+ const helmStored = Buffer.from(b64FromK8s, "base64");
243
+ const payload = Buffer.from(helmStored.toString("utf8"), "base64");
244
+ let json;
245
+ if (payload.length >= 2 && payload[0] === 0x1f && payload[1] === 0x8b) {
246
+ json = zlib.gunzipSync(payload);
247
+ }
248
+ else {
249
+ json = payload.length > 0 ? payload : helmStored;
250
+ }
251
+ return JSON.parse(json.toString("utf8"));
252
+ }
253
+ /** Best-effort recovery of a usable chart repository reference from chart metadata. The Helm release Secret does
254
+ * not record where a chart came from, so only an explicit OCI source can be returned with confidence. */
255
+ sniffChartRepo(metadata) {
256
+ const sources = Array.isArray(metadata === null || metadata === void 0 ? void 0 : metadata.sources) ? metadata.sources : [];
257
+ const ociRef = sources.find(s => typeof s === "string" && s.startsWith("oci://"));
258
+ return ociRef;
259
+ }
260
+ /** Renders a human hint (chart home / sources) shown in a comment when the chart repository could not be resolved. */
261
+ buildRepoHint(metadata) {
262
+ const hints = [];
263
+ if (typeof (metadata === null || metadata === void 0 ? void 0 : metadata.home) === "string" && metadata.home)
264
+ hints.push(metadata.home);
265
+ if (Array.isArray(metadata === null || metadata === void 0 ? void 0 : metadata.sources))
266
+ hints.push(...metadata.sources.filter((s) => typeof s === "string"));
267
+ return hints.length > 0 ? hints.join(", ") : undefined;
268
+ }
269
+ // --------------------------------------------------------------------
270
+ // Helm Command Generation
271
+ // --------------------------------------------------------------------
272
+ /** Builds the full block of generated commands for one Helm release: the asset create line, plus enterprise-scoped
273
+ * default values and (when present) cabinet-scoped override values, each delivered via a heredoc to keep the output
274
+ * a single self-contained script stream. */
275
+ buildHelmReleaseCommands(release, flags) {
276
+ const lines = [];
277
+ const versionSuffix = release.chartVersion ? `:${release.chartVersion}` : "";
278
+ lines.push(`# --- Helm release: ${release.namespace}/${release.name} (chart ${release.chartName}${versionSuffix}) ---`);
279
+ // The Codiac asset model has no chart-version field; version is a deploy-time concern, so surface it for the operator.
280
+ if (release.chartVersion) {
281
+ lines.push(`# Chart version at import time: ${release.chartVersion} (set explicitly at deploy time; not stored on the asset).`);
282
+ }
283
+ let repo = release.repoGuess;
284
+ if (!repo) {
285
+ this.todoCount++;
286
+ lines.push(`# TODO: the Helm release secret does not record its chart repository; set --chart-repo to the Codiac registry code for the repo that publishes [${release.chartName}].`);
287
+ if (release.repoHint)
288
+ lines.push(`# hint - chart home/sources: ${release.repoHint}`);
289
+ repo = "<CHART_REPO>";
290
+ }
291
+ const createParts = ["codiac asset create --helm", `--chart ${release.chartName}`, `--chart-repo ${repo}`];
292
+ if (flags.enterprise)
293
+ createParts.push(`--enterprise ${flags.enterprise}`);
294
+ createParts.push(`--name ${release.name}`, "--silent");
295
+ lines.push(createParts.join(" "));
296
+ // Chart defaults define the asset baseline -> enterprise-scoped helm config.
297
+ if (release.defaults && Object.keys(release.defaults).length > 0) {
298
+ lines.push(`# Chart default values for ${release.name}:`);
299
+ lines.push(this.buildHelmValuesConfigBlock(release.name, release.defaults, "enterprise", release.namespace, flags));
300
+ }
301
+ // Operator overrides define per-deployment behavior -> cabinet-scoped helm config.
302
+ if (release.overrides && Object.keys(release.overrides).length > 0) {
303
+ lines.push(`# Release override values for ${release.name} (captured verbatim from the live release; MAY CONTAIN SECRETS - review before running):`);
304
+ lines.push(this.buildHelmValuesConfigBlock(release.name, release.overrides, "cabinet", release.namespace, flags));
305
+ }
306
+ return lines;
307
+ }
308
+ /** Builds a single `codiac config set -t helm` command whose value is the entire values document, supplied via a
309
+ * quoted heredoc so the YAML passes through the shell literally. `--escape-expressions` ensures any third-party
310
+ * `@{...}` tokens in the values are stored as literals rather than evaluated by Codiac at deploy time. */
311
+ buildHelmValuesConfigBlock(assetName, values, scope, namespace, flags) {
312
+ const parts = ["codiac config set --silent"];
313
+ if (flags.enterprise)
314
+ parts.push(`--enterprise ${flags.enterprise}`);
315
+ parts.push(`-a ${assetName}`);
316
+ if (scope === "enterprise")
317
+ parts.push("--enterprise-scope");
318
+ else
319
+ parts.push(`-c ${namespace}`);
320
+ parts.push("-t helm", "--entire-file", "--value-stdin", "--escape-expressions");
321
+ const yamlText = YAML.stringify(values).replace(/\n+$/, "");
322
+ return `${parts.join(" ")} <<'EOF'\n${yamlText}\nEOF`;
323
+ }
166
324
  scanNamespacePvcs(namespace, coreApi) {
167
325
  var _a, _b, _c;
168
326
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -363,16 +521,22 @@ class ImportCluster extends core_1.Command {
363
521
  parts.push(`--value '${shellEscaped}'`);
364
522
  return parts.join(" ");
365
523
  }
366
- /** Builds a codiac secretStore:capture command. */
367
- buildSecretStoreCaptureCommand(storeName) {
368
- return `codiac secretStore:capture --silent --name=${storeName} --provider=azure`;
524
+ /** Builds a codiac secretStore:capture command. When the import was run with --subscription-id, threads
525
+ * it through so the generated line resolves the Azure tenant context unambiguously when the operator
526
+ * has multiple cached azure subscriptions. */
527
+ buildSecretStoreCaptureCommand(storeName, flags) {
528
+ const parts = [`codiac secretStore:capture --silent --name=${storeName} --provider=azure`];
529
+ if (flags["subscription-id"])
530
+ parts.push(`--subscription-id=${flags["subscription-id"]}`);
531
+ return parts.join(" ");
369
532
  }
370
533
  // --------------------------------------------------------------------
371
534
  // Output
372
535
  // --------------------------------------------------------------------
373
- outputCommands(groups, flags) {
374
- if (groups.length === 0) {
375
- this.log("# No deployments found to import.");
536
+ outputCommands(groups, helmGroups, flags) {
537
+ var _a, _b, _c, _d;
538
+ if (groups.length === 0 && helmGroups.length === 0) {
539
+ this.log("# No deployments or Helm releases found to import.");
376
540
  return;
377
541
  }
378
542
  this.log("");
@@ -401,7 +565,7 @@ class ImportCluster extends core_1.Command {
401
565
  this.log("");
402
566
  this.log("# --- Secret Store Capture ---");
403
567
  for (const store of [...this.discoveredStores].sort()) {
404
- this.log(this.buildSecretStoreCaptureCommand(store));
568
+ this.log(this.buildSecretStoreCaptureCommand(store, flags));
405
569
  }
406
570
  }
407
571
  if (flags["generate-pvcs"] && this.discoveredPvcs.size > 0) {
@@ -412,30 +576,43 @@ class ImportCluster extends core_1.Command {
412
576
  this.log(this.discoveredPvcs.get(name));
413
577
  }
414
578
  }
415
- let lastNamespace = "";
579
+ // Group both raw and helm commands by namespace, then iterate the union so a namespace that contains only
580
+ // Helm releases (and no raw Deployments) still gets its own section and cabinet line.
581
+ const groupsByNs = new Map();
416
582
  for (const group of groups) {
417
- if (group.namespace !== lastNamespace) {
583
+ const list = (_a = groupsByNs.get(group.namespace)) !== null && _a !== void 0 ? _a : [];
584
+ list.push(group);
585
+ groupsByNs.set(group.namespace, list);
586
+ }
587
+ const helmByNs = new Map();
588
+ for (const helmGroup of helmGroups) {
589
+ const list = (_b = helmByNs.get(helmGroup.namespace)) !== null && _b !== void 0 ? _b : [];
590
+ list.push(helmGroup);
591
+ helmByNs.set(helmGroup.namespace, list);
592
+ }
593
+ const allNamespaces = [...new Set([...groupsByNs.keys(), ...helmByNs.keys()])].sort();
594
+ for (const namespace of allNamespaces) {
595
+ this.log("");
596
+ this.log(`# --- Namespace: ${namespace} ---`);
597
+ if (flags["generate-cabinet"]) {
418
598
  this.log("");
419
- this.log(`# --- Namespace: ${group.namespace} ---`);
420
- lastNamespace = group.namespace;
599
+ this.log(this.buildCabinetCreateCommand(namespace, flags));
421
600
  }
422
- if (group.cabinetCommand) {
601
+ for (const helmGroup of (_c = helmByNs.get(namespace)) !== null && _c !== void 0 ? _c : []) {
423
602
  this.log("");
424
- this.log(group.cabinetCommand);
603
+ for (const line of helmGroup.lines) {
604
+ this.log(line);
605
+ }
425
606
  }
426
- this.log("");
427
- this.log(group.assetCommand);
428
- if (group.configCommands.length > 0) {
607
+ for (const group of (_d = groupsByNs.get(namespace)) !== null && _d !== void 0 ? _d : []) {
608
+ this.log("");
609
+ this.log(group.assetCommand);
429
610
  for (const cmd of group.configCommands) {
430
611
  this.log(cmd);
431
612
  }
432
- }
433
- if (group.volumeMountCommands.length > 0) {
434
613
  for (const cmd of group.volumeMountCommands) {
435
614
  this.log(cmd);
436
615
  }
437
- }
438
- if (group.filestoreBindCommands.length > 0) {
439
616
  for (const cmd of group.filestoreBindCommands) {
440
617
  this.log(cmd);
441
618
  }
@@ -604,12 +781,14 @@ ImportCluster.examples = [
604
781
  '<%= config.bin %> <%= command.id %> --run-in-cluster',
605
782
  '<%= config.bin %> <%= command.id %> --run-in-cluster --enterprise myco --environment dev --cluster mycluster --generate-cabinet --generate-secret-store',
606
783
  '<%= config.bin %> <%= command.id %> --run-in-cluster --enterprise myco --environment dev --cluster mycluster --generate-pvcs --generate-volume-mounts',
784
+ '<%= config.bin %> <%= command.id %> --run-in-cluster --enterprise myco --environment dev --cluster mycluster --generate-cabinet --generate-secret-store --subscription-id 00000000-0000-0000-0000-000000000000',
607
785
  ];
608
786
  ImportCluster.flags = {
609
787
  "run-in-cluster": core_1.Flags.boolean({ description: 'Run using in-cluster Kubernetes config (service account). Required for headless/pod execution.' }),
610
788
  enterprise: core_1.Flags.string({ description: 'Enterprise code to include in generated commands.' }),
611
789
  environment: core_1.Flags.string({ description: 'Environment name to include in generated commands (required by --generate-cabinet).' }),
612
790
  cluster: core_1.Flags.string({ description: 'Cluster name to include in generated cabinet create commands (required by --generate-cabinet).' }),
791
+ "subscription-id": core_1.Flags.string({ char: 's', description: 'Cloud subscription containing the source cluster; threaded into generated secretStore:capture commands so they run silently in multi-subscription tenants.' }),
613
792
  "generate-cabinet": core_1.Flags.boolean({ description: 'Include codiac cabinet create commands in the output (one per namespace). Requires --enterprise, --environment, and --cluster.' }),
614
793
  "generate-secret-store": core_1.Flags.boolean({ description: 'Include codiac secretStore:capture commands in the output for discovered Azure Key Vaults.' }),
615
794
  "generate-pvcs": core_1.Flags.boolean({ description: 'Include codiac pvc create commands (enterprise-scope) plus codiac config add -t filestore bindings for every PersistentVolumeClaim mounted by a discovered deployment.' }),