gitops-ai 1.2.0 → 1.2.2

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.
@@ -1,4 +1,5 @@
1
- import { existsSync, readdirSync, readFileSync, writeFileSync, cpSync, mkdirSync, rmSync, } from "node:fs";
1
+ import { existsSync, readdirSync, readFileSync, writeFileSync, cpSync, mkdirSync, realpathSync, rmSync, } from "node:fs";
2
+ import { resolve as resolvePath } from "node:path";
2
3
  import { isMacOS, isCI } from "../utils/platform.js";
3
4
  import { log, withSpinner } from "../utils/log.js";
4
5
  import { exec, execAsync, execSafe } from "../utils/shell.js";
@@ -7,7 +8,7 @@ import { getProvider } from "./git-provider.js";
7
8
  import * as k8s from "./kubernetes.js";
8
9
  import * as flux from "./flux.js";
9
10
  import * as encryption from "./encryption.js";
10
- import { COMPONENTS, defaultSopsConfig, shouldUseSshDeployKey, SOURCE_GITLAB_HOST, SOURCE_PROJECT_PATH, } from "../schemas.js";
11
+ import { COMPONENTS, defaultSopsConfig, httpsGitCredentialUsername, shouldUseSshDeployKey, SOURCE_TEMPLATE_HOST, SOURCE_PROJECT_PATH, } from "../schemas.js";
11
12
  import { createGitHubDeployKey } from "./github.js";
12
13
  /**
13
14
  * Non-interactive bootstrap execution — shared between the CLI wizard
@@ -17,17 +18,28 @@ import { createGitHubDeployKey } from "./github.js";
17
18
  * If the template repo hasn't been cloned yet, it will be fetched
18
19
  * automatically from the source project.
19
20
  */
20
- export async function runBootstrap(config, repoRoot) {
21
+ export async function runBootstrap(config, repoRootInput) {
21
22
  const provider = await getProvider(config.gitProvider ?? "gitlab");
22
23
  // ── CLI dependencies ──────────────────────────────────────────────
23
- const tools = ["git", "kubectl", "helm", "sops", "age"];
24
+ const tools = ["git", "flux-operator", "sops", "age"];
24
25
  if (isMacOS() || isCI())
25
26
  tools.push("k3d");
26
27
  log.step("Installing CLI dependencies");
27
28
  await ensureAll(tools);
29
+ let repoRoot;
30
+ try {
31
+ repoRoot = realpathSync(resolvePath(repoRootInput));
32
+ }
33
+ catch {
34
+ throw new Error(`Bootstrap repo path does not exist: ${repoRootInput}`);
35
+ }
36
+ if (execSafe("git rev-parse --is-inside-work-tree", { cwd: repoRoot }).exitCode !== 0) {
37
+ throw new Error(`Bootstrap needs a real git clone (with .git), not a source archive. Fix CI checkout (install git before actions/checkout). Offending path: ${repoRoot}`);
38
+ }
28
39
  // ── Git setup ─────────────────────────────────────────────────────
29
40
  log.step("Configuring git");
30
- if (!execSafe("git config user.email", { cwd: repoRoot }).stdout) {
41
+ const emailCfg = execSafe("git config user.email", { cwd: repoRoot });
42
+ if (!emailCfg.stdout.trim()) {
31
43
  exec('git config user.email "bootstrap@gitops.local"', { cwd: repoRoot });
32
44
  exec('git config user.name "GitOps Bootstrap"', { cwd: repoRoot });
33
45
  }
@@ -59,8 +71,7 @@ export async function runBootstrap(config, repoRoot) {
59
71
  const kubeconfigPath = k8s.setupKubeconfig(config.clusterName);
60
72
  log.success(`Kubeconfig: ${kubeconfigPath}`);
61
73
  await k8s.waitForCluster();
62
- // ── Flux Operator ──────────────────────────────────────────────────
63
- await flux.installOperator();
74
+ await k8s.createNamespace("flux-system");
64
75
  // ── Git auth secret ────────────────────────────────────────────────
65
76
  if (shouldUseSshDeployKey(config)) {
66
77
  const gitHost = config.gitHost ?? "github.com";
@@ -73,7 +84,7 @@ export async function runBootstrap(config, repoRoot) {
73
84
  const fluxToken = config.gitFluxToken || config.gitToken;
74
85
  log.step("Creating Git auth secret");
75
86
  await k8s.createSecret("flux-system", "flux-system", {
76
- username: "git",
87
+ username: httpsGitCredentialUsername(config),
77
88
  password: fluxToken,
78
89
  });
79
90
  log.success("flux-system secret created");
@@ -83,6 +94,10 @@ export async function runBootstrap(config, repoRoot) {
83
94
  if (!existsSync(templateDir)) {
84
95
  await cloneTemplate(repoRoot);
85
96
  }
97
+ // Root `flux-instance.yaml` is required for `flux-operator install -f`. A full template
98
+ // clone copies it, but existing repos may already have `clusters/_template` from an older
99
+ // layout without this file — fetch the canonical manifest from the template default branch.
100
+ await ensureFluxInstanceYaml(repoRoot);
86
101
  // ── Cluster template ──────────────────────────────────────────────
87
102
  const clusterDir = `${repoRoot}/clusters/${config.clusterName}`;
88
103
  if (existsSync(templateDir)) {
@@ -107,6 +122,9 @@ export async function runBootstrap(config, repoRoot) {
107
122
  await setupSops(config, repoRoot, clusterDir);
108
123
  // ── Git commit & push ─────────────────────────────────────────────
109
124
  await withSpinner("Committing and pushing to Git", async () => {
125
+ // Never commit workflow changes from the template copy: GitHub rejects pushes that
126
+ // touch `.github/workflows/*` unless the token has `workflows` scope.
127
+ resetLocalWorkflowFiles(repoRoot);
110
128
  await execAsync("git add .", { cwd: repoRoot });
111
129
  execSafe(`git commit -m "Add ${config.clusterName} cluster with encrypted secrets"`, { cwd: repoRoot });
112
130
  await execAsync(`git push -u origin "${config.repoBranch}"`, {
@@ -115,8 +133,8 @@ export async function runBootstrap(config, repoRoot) {
115
133
  });
116
134
  // ── Flux Instance ─────────────────────────────────────────────────
117
135
  let fluxInstanceInstalled = false;
118
- if (existsSync(`${repoRoot}/flux-instance-values.yaml`)) {
119
- await flux.installInstance(config, repoRoot);
136
+ if (existsSync(`${repoRoot}/flux-instance.yaml`)) {
137
+ await flux.installFluxOperatorAndInstance(config, repoRoot);
120
138
  await flux.waitForInstance();
121
139
  await flux.reconcile();
122
140
  fluxInstanceInstalled = true;
@@ -126,13 +144,47 @@ export async function runBootstrap(config, repoRoot) {
126
144
  // ---------------------------------------------------------------------------
127
145
  // Internal helpers
128
146
  // ---------------------------------------------------------------------------
147
+ function resetLocalWorkflowFiles(repoRoot) {
148
+ const wf = `${repoRoot}/.github/workflows`;
149
+ if (!existsSync(wf))
150
+ return;
151
+ execSafe("git checkout HEAD -- .github/workflows", { cwd: repoRoot });
152
+ execSafe("git clean -fd -- .github/workflows", { cwd: repoRoot });
153
+ }
154
+ /** Default branch on GitHub for raw.githubusercontent.com links (template repo). */
155
+ const TEMPLATE_DEFAULT_BRANCH = "main";
156
+ /**
157
+ * Ensure `flux-instance.yaml` exists at the repo root so Flux bootstrap can run.
158
+ * When missing, downloads from the canonical template (same as a full template clone).
159
+ */
160
+ async function ensureFluxInstanceYaml(repoRoot) {
161
+ const dest = `${repoRoot}/flux-instance.yaml`;
162
+ if (existsSync(dest))
163
+ return;
164
+ const rawUrl = `https://raw.githubusercontent.com/${SOURCE_PROJECT_PATH}/${TEMPLATE_DEFAULT_BRANCH}/flux-instance.yaml`;
165
+ try {
166
+ await withSpinner("Fetching flux-instance.yaml from template repository", async () => {
167
+ await execAsync(`curl -fsSL "${rawUrl}" -o "${dest}"`);
168
+ });
169
+ log.success("flux-instance.yaml added from GitOpsAI/gitops-ai-template");
170
+ }
171
+ catch {
172
+ if (existsSync(dest)) {
173
+ rmSync(dest);
174
+ }
175
+ log.warn("Could not download flux-instance.yaml (network or firewall). " +
176
+ "Add flux-instance.yaml at the repo root manually, then re-run bootstrap. " +
177
+ "Skipping Flux installation for this run.");
178
+ }
179
+ }
129
180
  async function cloneTemplate(repoRoot) {
130
181
  const tmpDir = "/tmp/gitops-template";
131
182
  await withSpinner("Cloning template repository", async () => {
132
183
  execSafe(`rm -rf "${tmpDir}"`);
133
- await execAsync(`git clone --quiet "https://${SOURCE_GITLAB_HOST}/${SOURCE_PROJECT_PATH}.git" "${tmpDir}"`);
184
+ await execAsync(`git clone --quiet "https://${SOURCE_TEMPLATE_HOST}/${SOURCE_PROJECT_PATH}.git" "${tmpDir}"`);
185
+ // Never copy `.github` — template CI must not overwrite the target repo (push 403).
134
186
  for (const entry of readdirSync(tmpDir)) {
135
- if (entry === ".git")
187
+ if (entry === ".git" || entry === ".github")
136
188
  continue;
137
189
  cpSync(`${tmpDir}/${entry}`, `${repoRoot}/${entry}`, {
138
190
  recursive: true,
@@ -142,6 +194,26 @@ async function cloneTemplate(repoRoot) {
142
194
  execSafe(`rm -rf "${tmpDir}"`);
143
195
  });
144
196
  }
197
+ /**
198
+ * A full `git clone` of the upstream template includes `.github/workflows`. GitHub rejects
199
+ * pushes that create or update workflow files when the credential is a GitHub OAuth App token
200
+ * without the `workflow` scope. Remove the template’s `.github` tree and commit before the
201
+ * first push to the user’s remote (same intent as skipping `.github` in {@link cloneTemplate}).
202
+ */
203
+ export async function stripTemplateGitHubDirectory(repoRoot) {
204
+ const dotGithub = resolvePath(repoRoot, ".github");
205
+ if (!existsSync(dotGithub))
206
+ return;
207
+ const rmTracked = execSafe(`git rm -r -f -- .github`, { cwd: repoRoot });
208
+ if (rmTracked.exitCode !== 0) {
209
+ rmSync(dotGithub, { recursive: true, force: true });
210
+ await execAsync("git add -A", { cwd: repoRoot });
211
+ }
212
+ const { stdout } = execSafe("git diff --cached --name-only", { cwd: repoRoot });
213
+ if (!stdout.trim())
214
+ return;
215
+ await execAsync(`git -c user.email=bootstrap@gitops.local -c user.name="GitOps Bootstrap" commit --no-gpg-sign -m "chore: remove template .github before push (OAuth workflow scope)"`, { cwd: repoRoot });
216
+ }
145
217
  function envsubst(content, vars) {
146
218
  return Object.entries(vars).reduce((acc, [key, value]) => acc.replaceAll(`\${${key}}`, value), content);
147
219
  }
@@ -181,7 +253,7 @@ async function setupSops(config, repoRoot, clusterDir) {
181
253
  const pubKey = encryption.getAgePublicKey(sopsCfg);
182
254
  log.detail(`Age public key: ${pubKey}`);
183
255
  encryption.createSopsConfig(pubKey, sopsCfg);
184
- if (k8s.isClusterReachable()) {
256
+ if (await k8s.isClusterReachable()) {
185
257
  await k8s.createSecretFromFile(sopsCfg.secretName, sopsCfg.namespace, "age.agekey", sopsCfg.keyFile);
186
258
  log.detail(`Created ${sopsCfg.secretName} secret in ${sopsCfg.namespace}`);
187
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/core/bootstrap-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/core/bootstrap-runner.ts"],"names":[],"mappings":"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"}
@@ -5,34 +5,6 @@ async function runInstall(cmd) {
5
5
  await execAsync(cmd);
6
6
  }
7
7
  const registry = [
8
- {
9
- name: "kubectl",
10
- check: () => commandExists("kubectl"),
11
- installDarwin: () => runInstall("brew install kubectl"),
12
- installLinux: async () => {
13
- const arch = getArch();
14
- const version = await execAsync("curl -sL https://dl.k8s.io/release/stable.txt");
15
- await execAsync(`curl -sL "https://dl.k8s.io/release/${version}/bin/linux/${arch}/kubectl" -o /tmp/kubectl`);
16
- await execAsync("sudo install -o root -g root -m 0755 /tmp/kubectl /usr/local/bin/kubectl");
17
- await execAsync("rm -f /tmp/kubectl");
18
- },
19
- },
20
- {
21
- name: "helm",
22
- check: () => commandExists("helm"),
23
- installDarwin: () => runInstall("brew install helm"),
24
- installLinux: () => runInstall("curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash"),
25
- },
26
- {
27
- name: "k9s",
28
- check: () => commandExists("k9s"),
29
- installDarwin: () => runInstall("brew install derailed/k9s/k9s"),
30
- installLinux: async () => {
31
- await execAsync("wget -qO /tmp/k9s_linux_amd64.deb https://github.com/derailed/k9s/releases/latest/download/k9s_linux_amd64.deb");
32
- await execAsync("sudo DEBIAN_FRONTEND=noninteractive apt install -y /tmp/k9s_linux_amd64.deb");
33
- await execAsync("rm /tmp/k9s_linux_amd64.deb");
34
- },
35
- },
36
8
  {
37
9
  name: "flux-operator",
38
10
  check: () => commandExists("flux-operator"),
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/core/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/core/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AASnD,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,QAAQ,GAAiB;IAC7B;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;QAC3C,aAAa,EAAE,GAAG,EAAE,CAClB,UAAU,CAAC,sDAAsD,CAAC;QACpE,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,SAAS,CAC7B,+HAA+H,CAChI,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,SAAS,CACb,gHAAgH,OAAO,kBAAkB,GAAG,UAAU,IAAI,UAAU,CACrK,CAAC;YACF,MAAM,SAAS,CAAC,0DAA0D,CAAC,CAAC;YAC5E,MAAM,SAAS,CACb,sFAAsF,CACvF,CAAC;YACF,MAAM,SAAS,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QACjC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACnD,YAAY,EAAE,GAAG,EAAE,CACjB,UAAU,CACR,gFAAgF,CACjF;KACJ;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QACjC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACnD,YAAY,EAAE,GAAG,EAAE,CACjB,UAAU,CACR,sIAAsI,CACvI;KACJ;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;QAClC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACpD,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,OAAO,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,SAAS,CAC7B,wGAAwG,CACzG,CAAC;YACF,MAAM,SAAS,CACb,yEAAyE,OAAO,SAAS,OAAO,IAAI,EAAE,IAAI,IAAI,GAAG,CAClH,CAAC;YACF,MAAM,SAAS,CAAC,oDAAoD,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC;QAChE,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACnD,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,SAAS,CAC7B,2GAA2G,CAC5G,CAAC;YACF,MAAM,SAAS,CACb,kFAAkF,OAAO,QAAQ,OAAO,UAAU,IAAI,UAAU,CACjI,CAAC;YACF,MAAM,SAAS,CAAC,kCAAkC,CAAC,CAAC;YACpD,MAAM,SAAS,CACb,sDAAsD,CACvD,CAAC;YACF,MAAM,SAAS,CACb,oEAAoE,CACrE,CAAC;YACF,MAAM,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;KACF;CACF,CAAC;AAEF,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACzD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,2BAA2B,CAAC,CAAC;IACnD,MAAM,WAAW,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;QACrD,IAAI,OAAO,EAAE,EAAE,CAAC;YACd,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAe;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,qBAAqB,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { type BootstrapConfig } from "../schemas.js";
2
- export declare function installOperator(): Promise<void>;
3
- export declare function installInstance(config: BootstrapConfig, repoRoot: string): Promise<void>;
2
+ /**
3
+ * Installs the Flux Operator and a FluxInstance in one step using the official CLI.
4
+ * Requires `flux-system` namespace and the `flux-system` git credentials secret to exist first.
5
+ */
6
+ export declare function installFluxOperatorAndInstance(config: BootstrapConfig, repoRoot: string): Promise<void>;
4
7
  export declare function waitForInstance(): Promise<void>;
5
8
  export declare function reconcile(): Promise<void>;
6
9
  export declare function getStatus(): string;
package/dist/core/flux.js CHANGED
@@ -1,23 +1,16 @@
1
1
  import { readFileSync, writeFileSync, unlinkSync } from "node:fs";
2
- import { exec, execAsync, execSafe } from "../utils/shell.js";
2
+ import { exec, execAsync } from "../utils/shell.js";
3
3
  import { log, withSpinner, p, pc } from "../utils/log.js";
4
4
  import { getProvider } from "./git-provider.js";
5
5
  import { shouldUseSshDeployKey } from "../schemas.js";
6
- export async function installOperator() {
7
- const cmd = [
8
- "helm install flux-operator",
9
- "oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator",
10
- "--namespace flux-system",
11
- "--create-namespace",
12
- "--set web.enabled=false",
13
- "--wait",
14
- ].join(" ");
15
- log.detail(cmd);
16
- await withSpinner("Installing Flux Operator via Helm", () => execAsync(cmd));
17
- }
18
- export async function installInstance(config, repoRoot) {
19
- const templatePath = `${repoRoot}/flux-instance-values.yaml`;
20
- const tmpPath = "/tmp/flux-instance-values.yaml";
6
+ import * as k8sApi from "./k8s-api.js";
7
+ /**
8
+ * Installs the Flux Operator and a FluxInstance in one step using the official CLI.
9
+ * Requires `flux-system` namespace and the `flux-system` git credentials secret to exist first.
10
+ */
11
+ export async function installFluxOperatorAndInstance(config, repoRoot) {
12
+ const templatePath = `${repoRoot}/flux-instance.yaml`;
13
+ const tmpPath = "/tmp/flux-instance.yaml";
21
14
  const provider = await getProvider(config.gitProvider ?? "gitlab");
22
15
  const gitHost = config.gitHost ?? provider.defaultHost;
23
16
  let content = readFileSync(templatePath, "utf-8");
@@ -29,11 +22,9 @@ export async function installInstance(config, repoRoot) {
29
22
  CLUSTER_NAME: config.clusterName,
30
23
  };
31
24
  content = envsubst(content, vars);
32
- // Replace hardcoded gitlab.com URLs in the template with the actual host
33
25
  if (gitHost !== "gitlab.com") {
34
26
  content = content.replaceAll("https://gitlab.com/", `https://${gitHost}/`);
35
27
  }
36
- // SSH deploy key: rewrite HTTPS URL → SSH URL for Flux source-controller
37
28
  if (shouldUseSshDeployKey(config)) {
38
29
  const httpsUrl = `https://${gitHost}/${config.repoOwner}/${config.repoName}.git`;
39
30
  const sshUrl = `ssh://git@${gitHost}/${config.repoOwner}/${config.repoName}.git`;
@@ -41,25 +32,41 @@ export async function installInstance(config, repoRoot) {
41
32
  }
42
33
  writeFileSync(tmpPath, content);
43
34
  const cmd = [
44
- "helm install flux",
45
- "oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance",
46
- "--namespace flux-system",
47
- `--values ${tmpPath}`,
48
- "--wait",
35
+ "flux-operator install",
36
+ "-n flux-system",
37
+ `-f ${tmpPath}`,
38
+ "--timeout 30m",
49
39
  ].join(" ");
50
40
  log.detail(cmd);
51
- await withSpinner("Installing Flux Instance via Helm", () => execAsync(cmd));
41
+ await withSpinner("Installing Flux Operator and Flux instance (flux-operator install)", () => execAsync(cmd));
52
42
  unlinkSync(tmpPath);
53
43
  }
44
+ async function getPodStatusLine() {
45
+ const kc = k8sApi.kubeConfigFromDefault();
46
+ const raw = await k8sApi.listPodsStatusLines(kc, k8sApi.FLUX_SYSTEM_NS);
47
+ if (!raw)
48
+ return "";
49
+ const pods = raw.split("\n").filter(Boolean).map((line) => {
50
+ const parts = line.trim().split(/\t/);
51
+ const name = (parts[0] ?? "").replace(/^(.*?)-[a-f0-9]+-[a-z0-9]+$/, "$1");
52
+ const phase = parts[1] ?? "?";
53
+ const ready = parts[2] === "True";
54
+ const icon = ready ? pc.green("✓") : phase === "Running" ? pc.yellow("●") : pc.dim("○");
55
+ return ` ${icon} ${pc.dim(name)} ${pc.dim(phase)}`;
56
+ });
57
+ return pods.join("\n");
58
+ }
54
59
  export async function waitForInstance() {
55
60
  const s = p.spinner();
56
61
  s.start("Waiting for FluxInstance to be ready");
57
- const waitPromise = execAsync("kubectl -n flux-system wait fluxinstance/flux --for=condition=Ready --timeout=5m");
62
+ const kc = k8sApi.kubeConfigFromDefault();
63
+ const waitPromise = k8sApi.waitForFluxInstanceReady(kc, 300_000);
58
64
  const poll = setInterval(() => {
59
- const status = getPodStatusLine();
60
- if (status) {
61
- s.message(`Waiting for FluxInstance to be ready\n${pc.dim(status)}`);
62
- }
65
+ void getPodStatusLine().then((status) => {
66
+ if (status) {
67
+ s.message(`Waiting for FluxInstance to be ready\n${pc.dim(status)}`);
68
+ }
69
+ });
63
70
  }, 3000);
64
71
  try {
65
72
  await waitPromise;
@@ -73,26 +80,11 @@ export async function waitForInstance() {
73
80
  clearInterval(poll);
74
81
  }
75
82
  }
76
- function getPodStatusLine() {
77
- const { stdout, exitCode } = execSafe(`kubectl get pods -n flux-system --no-headers -o custom-columns="NAME:.metadata.name,STATUS:.status.phase,READY:.status.conditions[?(@.type=='Ready')].status" 2>/dev/null`);
78
- if (exitCode !== 0 || !stdout)
79
- return "";
80
- const pods = stdout.split("\n").filter(Boolean).map((line) => {
81
- const parts = line.trim().split(/\s+/);
82
- const name = (parts[0] ?? "").replace(/^(.*?)-[a-f0-9]+-[a-z0-9]+$/, "$1");
83
- const phase = parts[1] ?? "?";
84
- const ready = parts[2] === "True";
85
- const icon = ready ? pc.green("✓") : phase === "Running" ? pc.yellow("●") : pc.dim("○");
86
- return ` ${icon} ${pc.dim(name)} ${pc.dim(phase)}`;
87
- });
88
- return pods.join("\n");
89
- }
90
83
  export async function reconcile() {
91
84
  await withSpinner("Reconciling Flux", async () => {
92
- const ts = Math.floor(Date.now() / 1000);
93
- await execAsync(`kubectl -n flux-system annotate --overwrite fluxinstance/flux reconcile.fluxcd.io/requestedAt="${ts}"`);
85
+ const kc = k8sApi.kubeConfigFromDefault();
94
86
  log.detail("Waiting for FluxInstance condition=Ready...");
95
- await execAsync("kubectl -n flux-system wait fluxinstance/flux --for=condition=Ready --timeout=5m");
87
+ await k8sApi.reconcileFluxInstance(kc, 300_000);
96
88
  });
97
89
  }
98
90
  export function getStatus() {
@@ -1 +1 @@
1
- {"version":3,"file":"flux.js","sourceRoot":"","sources":["../../src/core/flux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flux.js","sourceRoot":"","sources":["../../src/core/flux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAwB,MAAM,eAAe,CAAC;AAC5E,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,MAAuB,EACvB,QAAgB;IAEhB,MAAM,YAAY,GAAG,GAAG,QAAQ,qBAAqB,CAAC;IACtD,MAAM,OAAO,GAAG,yBAAyB,CAAC;IAE1C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC;IAEvD,IAAI,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAA2B;QACnC,aAAa,EAAE,OAAO;QACtB,mBAAmB,EAAE,MAAM,CAAC,SAAS;QACrC,kBAAkB,EAAE,MAAM,CAAC,QAAQ;QACnC,oBAAoB,EAAE,MAAM,CAAC,UAAU;QACvC,YAAY,EAAE,MAAM,CAAC,WAAW;KACjC,CAAC;IACF,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElC,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,WAAW,OAAO,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,MAAM,CAAC;QACjF,MAAM,MAAM,GAAG,aAAa,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,MAAM,CAAC;QACjF,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG;QACV,uBAAuB;QACvB,gBAAgB;QAChB,MAAM,OAAO,EAAE;QACf,eAAe;KAChB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,WAAW,CAAC,oEAAoE,EAAE,GAAG,EAAE,CAC3F,SAAS,CAAC,GAAG,CAAC,CACf,CAAC;IAEF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxF,OAAO,KAAK,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,KAAK,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACtC,IAAI,MAAM,EAAE,CAAC;gBACX,CAAC,CAAC,OAAO,CAAC,yCAAyC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,IAAI,CAAC;QACH,MAAM,WAAW,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACtD,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,WAAW,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC1C,GAAG,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,6BAA6B,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,OAAe,EACf,IAA4B;IAE5B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,KAAK,CAAC,EAC1D,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import * as k8s from "@kubernetes/client-node";
2
+ export declare const FLUX_SYSTEM_NS = "flux-system";
3
+ export declare const FLUX_INSTANCE_GROUP = "fluxcd.controlplane.io";
4
+ export declare const FLUX_INSTANCE_VERSION = "v1";
5
+ export declare const FLUX_INSTANCE_PLURAL = "fluxinstances";
6
+ export declare function kubeConfigFromDefault(): k8s.KubeConfig;
7
+ export declare function makeClients(kc: k8s.KubeConfig): {
8
+ core: k8s.CoreV1Api;
9
+ apps: k8s.AppsV1Api;
10
+ custom: k8s.CustomObjectsApi;
11
+ };
12
+ export declare function isClusterReachableApi(kc: k8s.KubeConfig): Promise<boolean>;
13
+ export declare function waitForAllNodesReady(kc: k8s.KubeConfig, timeoutMs: number): Promise<void>;
14
+ export declare function createNamespaceApi(kc: k8s.KubeConfig, name: string): Promise<void>;
15
+ export declare function createSecretLiteralsApi(kc: k8s.KubeConfig, name: string, namespace: string, data: Record<string, string>): Promise<void>;
16
+ export declare function secretExistsApi(kc: k8s.KubeConfig, name: string, namespace: string): Promise<boolean>;
17
+ export declare function deleteSecretApi(kc: k8s.KubeConfig, name: string, namespace: string): Promise<void>;
18
+ export declare function createSecretFromFilesApi(kc: k8s.KubeConfig, name: string, namespace: string, files: Record<string, string>): Promise<void>;
19
+ /**
20
+ * Run a command in a pod (by deployment name). Returns captured stdout/stderr.
21
+ */
22
+ export declare function execInDeploymentContainer(kc: k8s.KubeConfig, namespace: string, deploymentName: string, containerName: string, command: string[]): Promise<{
23
+ stdout: string;
24
+ stderr: string;
25
+ exitCode: number;
26
+ }>;
27
+ /**
28
+ * Stream exec to process stdout/stderr (for interactive listing).
29
+ */
30
+ export declare function execInDeploymentContainerTty(kc: k8s.KubeConfig, namespace: string, deploymentName: string, containerName: string, command: string[]): Promise<number>;
31
+ export declare function listPodsStatusLines(kc: k8s.KubeConfig, namespace: string): Promise<string>;
32
+ export declare function waitForFluxInstanceReady(kc: k8s.KubeConfig, timeoutMs: number): Promise<void>;
33
+ export declare function reconcileFluxInstance(kc: k8s.KubeConfig, timeoutMs: number): Promise<void>;