gitops-ai 1.0.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 (47) hide show
  1. package/README.md +155 -0
  2. package/dist/commands/bootstrap.d.ts +2 -0
  3. package/dist/commands/bootstrap.js +721 -0
  4. package/dist/commands/bootstrap.js.map +1 -0
  5. package/dist/commands/sops.d.ts +1 -0
  6. package/dist/commands/sops.js +300 -0
  7. package/dist/commands/sops.js.map +1 -0
  8. package/dist/core/bootstrap-runner.d.ts +13 -0
  9. package/dist/core/bootstrap-runner.js +194 -0
  10. package/dist/core/bootstrap-runner.js.map +1 -0
  11. package/dist/core/dependencies.d.ts +3 -0
  12. package/dist/core/dependencies.js +134 -0
  13. package/dist/core/dependencies.js.map +1 -0
  14. package/dist/core/encryption.d.ts +25 -0
  15. package/dist/core/encryption.js +209 -0
  16. package/dist/core/encryption.js.map +1 -0
  17. package/dist/core/flux.d.ts +6 -0
  18. package/dist/core/flux.js +60 -0
  19. package/dist/core/flux.js.map +1 -0
  20. package/dist/core/gitlab.d.ts +10 -0
  21. package/dist/core/gitlab.js +65 -0
  22. package/dist/core/gitlab.js.map +1 -0
  23. package/dist/core/kubernetes.d.ts +10 -0
  24. package/dist/core/kubernetes.js +81 -0
  25. package/dist/core/kubernetes.js.map +1 -0
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.js +49 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/schemas.d.ts +50 -0
  30. package/dist/schemas.js +56 -0
  31. package/dist/schemas.js.map +1 -0
  32. package/dist/utils/config.d.ts +3 -0
  33. package/dist/utils/config.js +26 -0
  34. package/dist/utils/config.js.map +1 -0
  35. package/dist/utils/log.d.ts +31 -0
  36. package/dist/utils/log.js +96 -0
  37. package/dist/utils/log.js.map +1 -0
  38. package/dist/utils/platform.d.ts +7 -0
  39. package/dist/utils/platform.js +21 -0
  40. package/dist/utils/platform.js.map +1 -0
  41. package/dist/utils/shell.d.ts +41 -0
  42. package/dist/utils/shell.js +86 -0
  43. package/dist/utils/shell.js.map +1 -0
  44. package/dist/utils/wizard.d.ts +16 -0
  45. package/dist/utils/wizard.js +117 -0
  46. package/dist/utils/wizard.js.map +1 -0
  47. package/package.json +32 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function sops(subcommand?: string, targetFile?: string): Promise<void>;
@@ -0,0 +1,300 @@
1
+ import { existsSync, chmodSync, mkdirSync, copyFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import * as p from "@clack/prompts";
4
+ import pc from "picocolors";
5
+ import { header, log, summary, finish, handleCancel, } from "../utils/log.js";
6
+ import { commandExists } from "../utils/shell.js";
7
+ import { ensureAll } from "../core/dependencies.js";
8
+ import * as k8s from "../core/kubernetes.js";
9
+ import * as enc from "../core/encryption.js";
10
+ import { defaultSopsConfig } from "../schemas.js";
11
+ function resolveRepoRoot() {
12
+ const scriptDir = new URL(".", import.meta.url).pathname;
13
+ return resolve(scriptDir, "../../../");
14
+ }
15
+ async function ensurePrerequisites() {
16
+ await ensureAll(["sops", "age"]);
17
+ if (!commandExists("kubectl")) {
18
+ throw new Error("kubectl is required but not installed.");
19
+ }
20
+ }
21
+ function ensureAgeKey(cfg) {
22
+ if (!enc.ageKeyExists(cfg)) {
23
+ log.error(`Age key not found at ${cfg.keyFile}`);
24
+ log.error("Run 'sops init' first, or 'sops import' to import an existing key");
25
+ process.exit(1);
26
+ }
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Commands
30
+ // ---------------------------------------------------------------------------
31
+ async function cmdInit(repoRoot, cfg) {
32
+ header("SOPS Initialization", "Age encryption setup for Flux GitOps");
33
+ await ensurePrerequisites();
34
+ if (enc.ageKeyExists(cfg)) {
35
+ const pubKey = enc.getAgePublicKey(cfg);
36
+ log.warn(`Age key already exists at ${cfg.keyFile}`);
37
+ log.info(`Public key: ${pubKey}`);
38
+ const useExisting = await p.confirm({
39
+ message: "Use existing key?",
40
+ initialValue: true,
41
+ });
42
+ if (p.isCancel(useExisting))
43
+ handleCancel();
44
+ if (!useExisting) {
45
+ enc.backupAgeKey(cfg);
46
+ enc.generateAgeKey(cfg);
47
+ }
48
+ }
49
+ else {
50
+ enc.generateAgeKey(cfg);
51
+ }
52
+ const pubKey = enc.getAgePublicKey(cfg);
53
+ enc.createSopsConfig(pubKey, cfg);
54
+ if (k8s.isClusterReachable()) {
55
+ if (k8s.secretExists(cfg.secretName, cfg.namespace)) {
56
+ log.warn(`Secret ${cfg.namespace}/${cfg.secretName} already exists`);
57
+ const overwrite = await p.confirm({
58
+ message: "Overwrite?",
59
+ initialValue: false,
60
+ });
61
+ if (p.isCancel(overwrite))
62
+ handleCancel();
63
+ if (overwrite) {
64
+ await k8s.deleteSecret(cfg.secretName, cfg.namespace);
65
+ await k8s.createSecretFromFile(cfg.secretName, cfg.namespace, "age.agekey", cfg.keyFile);
66
+ }
67
+ }
68
+ else {
69
+ await k8s.createNamespace(cfg.namespace);
70
+ await k8s.createSecretFromFile(cfg.secretName, cfg.namespace, "age.agekey", cfg.keyFile);
71
+ }
72
+ log.success(`Created secret ${cfg.namespace}/${cfg.secretName}`);
73
+ }
74
+ else {
75
+ log.warn("No Kubernetes cluster reachable — skipping K8s secret creation.");
76
+ log.warn("Run 'sops import' when a cluster is available.");
77
+ }
78
+ enc.updateFluxKustomization(repoRoot, cfg.secretName);
79
+ summary("SOPS Initialization Complete", {
80
+ "Age public key": pubKey,
81
+ "Key file": cfg.keyFile,
82
+ "SOPS config": cfg.configFile,
83
+ "K8s secret": `${cfg.namespace}/${cfg.secretName}`,
84
+ });
85
+ finish("SOPS initialized");
86
+ }
87
+ async function cmdEncrypt(repoRoot, cfg, targetFile) {
88
+ header("SOPS Encrypt");
89
+ await ensurePrerequisites();
90
+ ensureAgeKey(cfg);
91
+ if (targetFile) {
92
+ await enc.encryptFile(targetFile, cfg, repoRoot);
93
+ return;
94
+ }
95
+ log.step("Scanning for unencrypted Kubernetes Secrets");
96
+ const result = await enc.encryptAll(cfg, repoRoot);
97
+ log.success(`Done: ${result.encrypted} encrypted, ${result.skipped} skipped, ${result.total} total`);
98
+ }
99
+ async function cmdDecrypt(repoRoot, cfg, targetFile) {
100
+ if (!targetFile) {
101
+ log.error("Usage: sops decrypt <file>");
102
+ return process.exit(1);
103
+ }
104
+ header("SOPS Decrypt");
105
+ await ensurePrerequisites();
106
+ ensureAgeKey(cfg);
107
+ await enc.decryptFile(targetFile, cfg, repoRoot);
108
+ }
109
+ async function cmdEdit(_repoRoot, cfg, targetFile) {
110
+ if (!targetFile) {
111
+ log.error("Usage: sops edit <file>");
112
+ return process.exit(1);
113
+ }
114
+ await ensurePrerequisites();
115
+ ensureAgeKey(cfg);
116
+ enc.editFile(targetFile, cfg);
117
+ }
118
+ async function cmdStatus(repoRoot) {
119
+ header("SOPS Secret Status");
120
+ const statuses = enc.getSecretStatus(repoRoot);
121
+ if (statuses.length === 0) {
122
+ log.success("No Kubernetes Secret files found");
123
+ return;
124
+ }
125
+ const colorMap = {
126
+ encrypted: pc.green,
127
+ template: pc.cyan,
128
+ plaintext: pc.red,
129
+ };
130
+ let encrypted = 0;
131
+ let templates = 0;
132
+ let plaintext = 0;
133
+ p.log.message(` ${pc.bold("STATUS".padEnd(12))} ${pc.bold("FILE")}`);
134
+ for (const { relpath, status } of statuses) {
135
+ const colorFn = colorMap[status];
136
+ const label = status === "plaintext" ? "PLAINTEXT" : status;
137
+ p.log.message(` ${colorFn(label.padEnd(12))} ${relpath}`);
138
+ if (status === "encrypted")
139
+ encrypted++;
140
+ else if (status === "template")
141
+ templates++;
142
+ else
143
+ plaintext++;
144
+ }
145
+ p.log.message("");
146
+ p.log.message(` Total: ${statuses.length} | Encrypted: ${encrypted} | Templates: ${templates} | ${pc.red(`Plaintext: ${plaintext}`)}`);
147
+ if (plaintext > 0) {
148
+ log.warn("Run 'sops encrypt' to encrypt plaintext secrets");
149
+ }
150
+ }
151
+ async function cmdImport(cfg) {
152
+ header("SOPS Key Import");
153
+ if (!enc.ageKeyExists(cfg)) {
154
+ const keyPath = await p.text({
155
+ message: "Enter path to age.agekey file",
156
+ validate: (v) => {
157
+ if (!v)
158
+ return "Required";
159
+ if (!existsSync(v))
160
+ return `File not found: ${v}`;
161
+ },
162
+ });
163
+ if (p.isCancel(keyPath))
164
+ handleCancel();
165
+ mkdirSync(cfg.keyDir, { recursive: true, mode: 0o700 });
166
+ copyFileSync(keyPath, cfg.keyFile);
167
+ chmodSync(cfg.keyFile, 0o600);
168
+ log.success(`Imported key to ${cfg.keyFile}`);
169
+ }
170
+ await ensurePrerequisites();
171
+ if (k8s.secretExists(cfg.secretName, cfg.namespace)) {
172
+ const overwrite = await p.confirm({
173
+ message: `Secret ${cfg.namespace}/${cfg.secretName} exists. Overwrite?`,
174
+ initialValue: false,
175
+ });
176
+ if (p.isCancel(overwrite))
177
+ handleCancel();
178
+ if (overwrite) {
179
+ await k8s.deleteSecret(cfg.secretName, cfg.namespace);
180
+ }
181
+ else {
182
+ log.success("Keeping existing secret");
183
+ return;
184
+ }
185
+ }
186
+ await k8s.createSecretFromFile(cfg.secretName, cfg.namespace, "age.agekey", cfg.keyFile);
187
+ log.success("Age key imported to cluster");
188
+ finish("Import complete");
189
+ }
190
+ async function cmdRotate(repoRoot, cfg) {
191
+ header("SOPS Key Rotation");
192
+ await ensurePrerequisites();
193
+ ensureAgeKey(cfg);
194
+ log.warn("This will:");
195
+ log.warn(" 1. Generate a new age key");
196
+ log.warn(" 2. Re-encrypt all secrets with the new key");
197
+ log.warn(" 3. Update the Kubernetes secret");
198
+ const confirm = await p.confirm({
199
+ message: "Continue with key rotation?",
200
+ initialValue: false,
201
+ });
202
+ if (p.isCancel(confirm) || !confirm) {
203
+ finish("Aborted");
204
+ return;
205
+ }
206
+ const oldPubKey = enc.getAgePublicKey(cfg);
207
+ log.step("Decrypting all secrets with current key");
208
+ const decryptedFiles = await enc.decryptAll(cfg, repoRoot);
209
+ enc.backupAgeKey(cfg);
210
+ enc.generateAgeKey(cfg);
211
+ const newPubKey = enc.getAgePublicKey(cfg);
212
+ enc.createSopsConfig(newPubKey, cfg);
213
+ log.step("Re-encrypting all secrets with new key");
214
+ for (const file of decryptedFiles) {
215
+ await enc.encryptFile(file, cfg, repoRoot);
216
+ }
217
+ if (k8s.isClusterReachable()) {
218
+ if (k8s.secretExists(cfg.secretName, cfg.namespace)) {
219
+ await k8s.deleteSecret(cfg.secretName, cfg.namespace);
220
+ }
221
+ await k8s.createSecretFromFile(cfg.secretName, cfg.namespace, "age.agekey", cfg.keyFile);
222
+ }
223
+ summary("Key Rotation Complete", {
224
+ "Old public key": oldPubKey,
225
+ "New public key": newPubKey,
226
+ });
227
+ log.warn("Commit the updated .sops.yaml and re-encrypted secrets");
228
+ log.warn("Keep the old key backup until all clusters are updated");
229
+ finish("Key rotation complete");
230
+ }
231
+ function showHelp() {
232
+ header("SOPS Secret Manager", "Age encryption for Flux GitOps");
233
+ const commands = [
234
+ ["init", "First-time setup: generate age key, create .sops.yaml & K8s secret"],
235
+ ["encrypt", "Encrypt all unencrypted secret files"],
236
+ ["encrypt <file>", "Encrypt a specific file"],
237
+ ["decrypt <file>", "Decrypt a file for viewing (re-encrypt before commit!)"],
238
+ ["edit <file>", "Open encrypted file in $EDITOR (auto re-encrypts on save)"],
239
+ ["status", "Show encryption status of all secret files"],
240
+ ["import", "Import existing age key to a new cluster"],
241
+ ["rotate", "Rotate to a new age key (re-encrypts everything)"],
242
+ ];
243
+ for (const [cmd, desc] of commands) {
244
+ p.log.message(` ${pc.cyan(cmd.padEnd(20))} ${desc}`);
245
+ }
246
+ p.log.message("");
247
+ p.log.message(pc.dim(" Environment variables:"));
248
+ p.log.message(` ${pc.dim("SOPS_AGE_KEY_DIR")} Directory for age keys (default: ~/.sops)`);
249
+ p.log.message(` ${pc.dim("SOPS_NAMESPACE")} K8s namespace for secret (default: flux-system)`);
250
+ p.log.message(` ${pc.dim("SOPS_SECRET_NAME")} K8s secret name (default: sops-age)`);
251
+ }
252
+ // ---------------------------------------------------------------------------
253
+ // Router
254
+ // ---------------------------------------------------------------------------
255
+ export async function sops(subcommand, targetFile) {
256
+ const repoRoot = resolveRepoRoot();
257
+ const cfg = defaultSopsConfig(repoRoot);
258
+ if (!subcommand) {
259
+ const selected = await p.select({
260
+ message: "Select SOPS operation",
261
+ options: [
262
+ { value: "init", label: "Init", hint: "First-time setup" },
263
+ { value: "encrypt", label: "Encrypt", hint: "Encrypt secret files" },
264
+ { value: "decrypt", label: "Decrypt", hint: "Decrypt a file" },
265
+ { value: "edit", label: "Edit", hint: "Edit encrypted file in $EDITOR" },
266
+ { value: "status", label: "Status", hint: "Show encryption status" },
267
+ { value: "import", label: "Import", hint: "Import age key to cluster" },
268
+ { value: "rotate", label: "Rotate", hint: "Rotate to new age key" },
269
+ ],
270
+ });
271
+ if (p.isCancel(selected))
272
+ handleCancel();
273
+ subcommand = selected;
274
+ }
275
+ switch (subcommand) {
276
+ case "init":
277
+ return cmdInit(repoRoot, cfg);
278
+ case "encrypt":
279
+ return cmdEncrypt(repoRoot, cfg, targetFile);
280
+ case "decrypt":
281
+ return cmdDecrypt(repoRoot, cfg, targetFile);
282
+ case "edit":
283
+ return cmdEdit(repoRoot, cfg, targetFile);
284
+ case "status":
285
+ return cmdStatus(repoRoot);
286
+ case "import":
287
+ return cmdImport(cfg);
288
+ case "rotate":
289
+ return cmdRotate(repoRoot, cfg);
290
+ case "help":
291
+ case "-h":
292
+ case "--help":
293
+ return showHelp();
294
+ default:
295
+ log.error(`Unknown command: ${subcommand}`);
296
+ showHelp();
297
+ process.exit(1);
298
+ }
299
+ }
300
+ //# sourceMappingURL=sops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sops.js","sourceRoot":"","sources":["../../src/commands/sops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type BootstrapConfig } from "../schemas.js";
2
+ export interface RunBootstrapResult {
3
+ fluxInstanceInstalled: boolean;
4
+ }
5
+ /**
6
+ * Non-interactive bootstrap execution — shared between the CLI wizard
7
+ * and the integration test suite.
8
+ *
9
+ * Assumes git credentials and the working branch are already configured.
10
+ * If the template repo hasn't been cloned yet, it will be fetched
11
+ * automatically from the source project.
12
+ */
13
+ export declare function runBootstrap(config: BootstrapConfig, repoRoot: string): Promise<RunBootstrapResult>;
@@ -0,0 +1,194 @@
1
+ import { existsSync, readdirSync, readFileSync, writeFileSync, cpSync, mkdirSync, rmSync, } from "node:fs";
2
+ import { isMacOS, isCI } from "../utils/platform.js";
3
+ import { log, withSpinner } from "../utils/log.js";
4
+ import { exec, execAsync, execSafe } from "../utils/shell.js";
5
+ import { ensureAll } from "./dependencies.js";
6
+ import * as k8s from "./kubernetes.js";
7
+ import * as flux from "./flux.js";
8
+ import * as encryption from "./encryption.js";
9
+ import { COMPONENTS, defaultSopsConfig, SOURCE_GITLAB_HOST, SOURCE_PROJECT_PATH, } from "../schemas.js";
10
+ /**
11
+ * Non-interactive bootstrap execution — shared between the CLI wizard
12
+ * and the integration test suite.
13
+ *
14
+ * Assumes git credentials and the working branch are already configured.
15
+ * If the template repo hasn't been cloned yet, it will be fetched
16
+ * automatically from the source project.
17
+ */
18
+ export async function runBootstrap(config, repoRoot) {
19
+ // ── CLI dependencies ──────────────────────────────────────────────
20
+ const tools = ["git", "kubectl", "helm", "sops", "age"];
21
+ if (isMacOS() || isCI())
22
+ tools.push("k3d");
23
+ log.step("Installing CLI dependencies");
24
+ await ensureAll(tools);
25
+ // ── Git setup ─────────────────────────────────────────────────────
26
+ log.step("Configuring git");
27
+ if (!execSafe("git config user.email", { cwd: repoRoot }).stdout) {
28
+ exec('git config user.email "bootstrap@gitops.local"', { cwd: repoRoot });
29
+ exec('git config user.name "GitOps Bootstrap"', { cwd: repoRoot });
30
+ }
31
+ const { stdout: remoteUrl } = execSafe("git remote get-url origin", { cwd: repoRoot });
32
+ if (remoteUrl) {
33
+ const cleanUrl = remoteUrl.replace(/\/\/[^@]+@/, "//");
34
+ const authedUrl = cleanUrl.replace("//", `//oauth2:${config.gitlabPat}@`);
35
+ exec(`git remote set-url origin "${authedUrl}"`, { cwd: repoRoot });
36
+ }
37
+ const currentBranch = execSafe("git branch --show-current", { cwd: repoRoot }).stdout;
38
+ if (currentBranch !== config.repoBranch) {
39
+ const { exitCode } = execSafe(`git checkout "${config.repoBranch}"`, { cwd: repoRoot });
40
+ if (exitCode !== 0) {
41
+ exec(`git checkout -b "${config.repoBranch}"`, { cwd: repoRoot });
42
+ }
43
+ }
44
+ // ── Kubernetes cluster ─────────────────────────────────────────────
45
+ log.step("Setting up Kubernetes cluster");
46
+ if (isMacOS() || isCI()) {
47
+ await k8s.createK3dCluster(config.clusterName);
48
+ }
49
+ else {
50
+ await k8s.installK3s();
51
+ }
52
+ const kubeconfigPath = k8s.setupKubeconfig(config.clusterName);
53
+ log.success(`Kubeconfig: ${kubeconfigPath}`);
54
+ await k8s.waitForCluster();
55
+ // ── Flux Operator ──────────────────────────────────────────────────
56
+ await flux.installOperator();
57
+ // ── GitLab auth secret ─────────────────────────────────────────────
58
+ log.step("Creating GitLab auth secret");
59
+ await k8s.createSecret("flux-system", "flux-system", {
60
+ username: "git",
61
+ password: config.gitlabPat,
62
+ });
63
+ log.success("flux-system secret created");
64
+ // ── Clone template if not present ─────────────────────────────────
65
+ const templateDir = `${repoRoot}/clusters/_default-template`;
66
+ if (!existsSync(templateDir)) {
67
+ await cloneTemplate(repoRoot);
68
+ }
69
+ // ── Cluster template ──────────────────────────────────────────────
70
+ const clusterDir = `${repoRoot}/clusters/${config.clusterName}`;
71
+ if (existsSync(templateDir)) {
72
+ log.step(`Configuring cluster template for '${config.clusterName}'`);
73
+ mkdirSync(clusterDir, { recursive: true });
74
+ cpSync(templateDir, clusterDir, { recursive: true });
75
+ log.detail(`Copied template → ${clusterDir}`);
76
+ const syncFile = `${clusterDir}/cluster-sync.yaml`;
77
+ if (existsSync(syncFile)) {
78
+ writeFileSync(syncFile, envsubst(readFileSync(syncFile, "utf-8"), {
79
+ CLUSTER_NAME: config.clusterName,
80
+ CLUSTER_DOMAIN: config.clusterDomain,
81
+ CLUSTER_PUBLIC_IP: config.clusterPublicIp,
82
+ LETSENCRYPT_EMAIL: config.letsencryptEmail ?? "",
83
+ INGRESS_NGINX_ALLOWED_IPS: config.ingressAllowedIps,
84
+ }));
85
+ log.detail("Rendered cluster-sync.yaml with cluster vars");
86
+ }
87
+ pruneDisabledComponents(clusterDir, config.selectedComponents);
88
+ }
89
+ // ── SOPS encryption ───────────────────────────────────────────────
90
+ await setupSops(config, repoRoot, clusterDir);
91
+ // ── Git commit & push ─────────────────────────────────────────────
92
+ await withSpinner("Committing and pushing to Git", async () => {
93
+ await execAsync("git add .", { cwd: repoRoot });
94
+ execSafe(`git commit -m "Add ${config.clusterName} cluster with encrypted secrets"`, { cwd: repoRoot });
95
+ await execAsync(`git push -u origin "${config.repoBranch}"`, {
96
+ cwd: repoRoot,
97
+ });
98
+ });
99
+ // ── Flux Instance ─────────────────────────────────────────────────
100
+ let fluxInstanceInstalled = false;
101
+ if (existsSync(`${repoRoot}/flux-instance-values.yaml`)) {
102
+ await flux.installInstance(config, repoRoot);
103
+ await flux.waitForInstance();
104
+ await flux.reconcile();
105
+ fluxInstanceInstalled = true;
106
+ }
107
+ return { fluxInstanceInstalled };
108
+ }
109
+ // ---------------------------------------------------------------------------
110
+ // Internal helpers
111
+ // ---------------------------------------------------------------------------
112
+ async function cloneTemplate(repoRoot) {
113
+ const tmpDir = "/tmp/gitops-template";
114
+ await withSpinner("Cloning template repository", async () => {
115
+ execSafe(`rm -rf "${tmpDir}"`);
116
+ await execAsync(`git clone --quiet "https://${SOURCE_GITLAB_HOST}/${SOURCE_PROJECT_PATH}.git" "${tmpDir}"`);
117
+ for (const entry of readdirSync(tmpDir)) {
118
+ if (entry === ".git")
119
+ continue;
120
+ cpSync(`${tmpDir}/${entry}`, `${repoRoot}/${entry}`, {
121
+ recursive: true,
122
+ force: true,
123
+ });
124
+ }
125
+ execSafe(`rm -rf "${tmpDir}"`);
126
+ });
127
+ }
128
+ function envsubst(content, vars) {
129
+ return Object.entries(vars).reduce((acc, [key, value]) => acc.replaceAll(`\${${key}}`, value), content);
130
+ }
131
+ function pruneDisabledComponents(clusterDir, selectedComponents) {
132
+ const allComponentIds = COMPONENTS.map((c) => c.id);
133
+ const disabled = allComponentIds.filter((id) => !selectedComponents.includes(id));
134
+ for (const id of disabled) {
135
+ const componentPath = `${clusterDir}/components/${id}`;
136
+ if (existsSync(componentPath)) {
137
+ rmSync(componentPath, { recursive: true, force: true });
138
+ log.detail(`Removed disabled component: ${id}`);
139
+ }
140
+ }
141
+ const kustomizationPath = `${clusterDir}/components/kustomization.yaml`;
142
+ if (existsSync(kustomizationPath)) {
143
+ let content = readFileSync(kustomizationPath, "utf-8");
144
+ for (const id of disabled) {
145
+ content = content
146
+ .split("\n")
147
+ .filter((line) => !line.includes(`- ${id}`))
148
+ .join("\n");
149
+ }
150
+ writeFileSync(kustomizationPath, content);
151
+ }
152
+ log.success(`Cluster template configured (${selectedComponents.length} components enabled)`);
153
+ }
154
+ async function setupSops(config, repoRoot, clusterDir) {
155
+ log.step("Setting up SOPS secret encryption");
156
+ const sopsCfg = defaultSopsConfig(repoRoot);
157
+ if (!encryption.ageKeyExists(sopsCfg)) {
158
+ encryption.generateAgeKey(sopsCfg);
159
+ log.detail(`Generated new age key at ${sopsCfg.keyFile}`);
160
+ }
161
+ else {
162
+ log.detail(`Using existing age key at ${sopsCfg.keyFile}`);
163
+ }
164
+ const pubKey = encryption.getAgePublicKey(sopsCfg);
165
+ log.detail(`Age public key: ${pubKey}`);
166
+ encryption.createSopsConfig(pubKey, sopsCfg);
167
+ if (k8s.isClusterReachable()) {
168
+ await k8s.createSecretFromFile(sopsCfg.secretName, sopsCfg.namespace, "age.agekey", sopsCfg.keyFile);
169
+ log.detail(`Created ${sopsCfg.secretName} secret in ${sopsCfg.namespace}`);
170
+ }
171
+ encryption.updateFluxKustomization(repoRoot, sopsCfg.secretName);
172
+ log.step("Encrypting secrets from templates");
173
+ const componentsDir = `${clusterDir}/components`;
174
+ const selected = config.selectedComponents;
175
+ if (selected.includes("cert-manager") && config.cloudflareApiToken) {
176
+ encryption.substituteAndEncrypt(`${componentsDir}/cert-manager/secret-cloudflare.yaml`, { CLOUDFLARE_API_TOKEN: config.cloudflareApiToken }, sopsCfg, repoRoot);
177
+ log.detail("Encrypted: cert-manager/secret-cloudflare.yaml");
178
+ }
179
+ if (selected.includes("external-dns") && config.cloudflareApiToken) {
180
+ encryption.substituteAndEncrypt(`${componentsDir}/external-dns/secret-cloudflare.yaml`, { CLOUDFLARE_API_TOKEN: config.cloudflareApiToken }, sopsCfg, repoRoot);
181
+ log.detail("Encrypted: external-dns/secret-cloudflare.yaml");
182
+ }
183
+ if (selected.includes("openclaw") &&
184
+ config.openaiApiKey &&
185
+ config.openclawGatewayToken) {
186
+ encryption.substituteAndEncrypt(`${componentsDir}/openclaw/secret-openclaw-envs.yaml`, {
187
+ OPENAI_API_KEY: config.openaiApiKey,
188
+ OPENCLAW_GATEWAY_TOKEN: config.openclawGatewayToken,
189
+ }, sopsCfg, repoRoot);
190
+ log.detail("Encrypted: openclaw/secret-openclaw-envs.yaml");
191
+ }
192
+ log.success("All secrets encrypted with SOPS");
193
+ }
194
+ //# sourceMappingURL=bootstrap-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/core/bootstrap-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function ensureDependency(name: string): Promise<void>;
2
+ export declare function ensureAll(names: string[]): Promise<void>;
3
+ export declare function checkPrerequisite(name: string): void;