@caelo-cms/provisioning 0.10.46 → 0.10.48

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 (342) hide show
  1. package/dist/adc-impersonation.d.ts.map +1 -1
  2. package/dist/adc-impersonation.js +23 -1
  3. package/dist/adc-impersonation.js.map +1 -1
  4. package/dist/agent/apply.d.ts +45 -0
  5. package/dist/agent/apply.d.ts.map +1 -0
  6. package/dist/agent/apply.js +83 -0
  7. package/dist/agent/apply.js.map +1 -0
  8. package/dist/agent/cli-provenance.d.ts +42 -0
  9. package/dist/agent/cli-provenance.d.ts.map +1 -0
  10. package/dist/agent/cli-provenance.js +138 -0
  11. package/dist/agent/cli-provenance.js.map +1 -0
  12. package/dist/agent/command.d.ts +79 -0
  13. package/dist/agent/command.d.ts.map +1 -0
  14. package/dist/agent/command.js +454 -0
  15. package/dist/agent/command.js.map +1 -0
  16. package/dist/agent/config.d.ts +30 -0
  17. package/dist/agent/config.d.ts.map +1 -0
  18. package/dist/agent/config.js +60 -0
  19. package/dist/agent/config.js.map +1 -0
  20. package/dist/agent/lock.d.ts +13 -0
  21. package/dist/agent/lock.d.ts.map +1 -0
  22. package/dist/agent/lock.js +100 -0
  23. package/dist/agent/lock.js.map +1 -0
  24. package/dist/agent/queue.d.ts +35 -0
  25. package/dist/agent/queue.d.ts.map +1 -0
  26. package/dist/agent/queue.js +50 -0
  27. package/dist/agent/queue.js.map +1 -0
  28. package/dist/agent/run.d.ts +97 -0
  29. package/dist/agent/run.d.ts.map +1 -0
  30. package/dist/agent/run.js +198 -0
  31. package/dist/agent/run.js.map +1 -0
  32. package/dist/agent/systemd.d.ts +55 -0
  33. package/dist/agent/systemd.d.ts.map +1 -0
  34. package/dist/agent/systemd.js +171 -0
  35. package/dist/agent/systemd.js.map +1 -0
  36. package/dist/agent/units.d.ts +44 -0
  37. package/dist/agent/units.d.ts.map +1 -0
  38. package/dist/agent/units.js +127 -0
  39. package/dist/agent/units.js.map +1 -0
  40. package/dist/agent-db.js +18362 -0
  41. package/dist/cli.js +122 -16
  42. package/dist/cli.js.map +1 -1
  43. package/dist/cloudsql-iam-user.d.ts +39 -0
  44. package/dist/cloudsql-iam-user.d.ts.map +1 -0
  45. package/dist/cloudsql-iam-user.js +119 -0
  46. package/dist/cloudsql-iam-user.js.map +1 -0
  47. package/dist/compose.d.ts +16 -0
  48. package/dist/compose.d.ts.map +1 -1
  49. package/dist/compose.js +26 -1
  50. package/dist/compose.js.map +1 -1
  51. package/dist/dns/index.d.ts +2 -0
  52. package/dist/dns/index.d.ts.map +1 -1
  53. package/dist/dns/index.js +3 -2
  54. package/dist/dns/index.js.map +1 -1
  55. package/dist/dns/manual.d.ts +5 -0
  56. package/dist/dns/manual.d.ts.map +1 -1
  57. package/dist/dns/manual.js +28 -12
  58. package/dist/dns/manual.js.map +1 -1
  59. package/dist/gcloud.d.ts +2 -0
  60. package/dist/gcloud.d.ts.map +1 -1
  61. package/dist/gcloud.js +1 -1
  62. package/dist/gcloud.js.map +1 -1
  63. package/dist/gcp-names.d.ts +15 -0
  64. package/dist/gcp-names.d.ts.map +1 -1
  65. package/dist/gcp-names.js +23 -0
  66. package/dist/gcp-names.js.map +1 -1
  67. package/dist/index.d.ts +6 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +4 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/infra-contract.d.ts +1 -1
  72. package/dist/infra-contract.js +7 -1
  73. package/dist/infra-contract.js.map +1 -1
  74. package/dist/install-job-runner.d.ts +13 -0
  75. package/dist/install-job-runner.d.ts.map +1 -0
  76. package/dist/install-job-runner.js +155 -0
  77. package/dist/install-job-runner.js.map +1 -0
  78. package/dist/install-job.d.ts +210 -0
  79. package/dist/install-job.d.ts.map +1 -0
  80. package/dist/install-job.js +449 -0
  81. package/dist/install-job.js.map +1 -0
  82. package/dist/install-state.d.ts +19 -1
  83. package/dist/install-state.d.ts.map +1 -1
  84. package/dist/install-state.js +31 -3
  85. package/dist/install-state.js.map +1 -1
  86. package/dist/lifecycle.d.ts.map +1 -1
  87. package/dist/lifecycle.js +24 -5
  88. package/dist/lifecycle.js.map +1 -1
  89. package/dist/migration-runner.d.ts +5 -0
  90. package/dist/migration-runner.d.ts.map +1 -1
  91. package/dist/migration-runner.js +1 -1
  92. package/dist/migration-runner.js.map +1 -1
  93. package/dist/operator-access.d.ts +14 -8
  94. package/dist/operator-access.d.ts.map +1 -1
  95. package/dist/operator-access.js +16 -102
  96. package/dist/operator-access.js.map +1 -1
  97. package/dist/run-mode.d.ts +27 -0
  98. package/dist/run-mode.d.ts.map +1 -0
  99. package/dist/run-mode.js +22 -0
  100. package/dist/run-mode.js.map +1 -0
  101. package/dist/runtime-secrets.d.ts +19 -0
  102. package/dist/runtime-secrets.d.ts.map +1 -1
  103. package/dist/runtime-secrets.js +44 -0
  104. package/dist/runtime-secrets.js.map +1 -1
  105. package/dist/self-hosted-roles.d.ts +22 -1
  106. package/dist/self-hosted-roles.d.ts.map +1 -1
  107. package/dist/self-hosted-roles.js +81 -12
  108. package/dist/self-hosted-roles.js.map +1 -1
  109. package/dist/self-hosted-upgrade.d.ts +17 -0
  110. package/dist/self-hosted-upgrade.d.ts.map +1 -1
  111. package/dist/self-hosted-upgrade.js +16 -1
  112. package/dist/self-hosted-upgrade.js.map +1 -1
  113. package/dist/stack-contract.d.ts +6 -0
  114. package/dist/stack-contract.d.ts.map +1 -1
  115. package/dist/stack-contract.js +10 -1
  116. package/dist/stack-contract.js.map +1 -1
  117. package/dist/state-attach.d.ts +23 -0
  118. package/dist/state-attach.d.ts.map +1 -0
  119. package/dist/state-attach.js +112 -0
  120. package/dist/state-attach.js.map +1 -0
  121. package/dist/state-backend.d.ts +11 -0
  122. package/dist/state-backend.d.ts.map +1 -1
  123. package/dist/state-backend.js +20 -0
  124. package/dist/state-backend.js.map +1 -1
  125. package/dist/state-command.d.ts +20 -0
  126. package/dist/state-command.d.ts.map +1 -0
  127. package/dist/state-command.js +237 -0
  128. package/dist/state-command.js.map +1 -0
  129. package/dist/state-migrate.d.ts +121 -0
  130. package/dist/state-migrate.d.ts.map +1 -0
  131. package/dist/state-migrate.js +290 -0
  132. package/dist/state-migrate.js.map +1 -0
  133. package/dist/state-pulumi.d.ts +17 -0
  134. package/dist/state-pulumi.d.ts.map +1 -0
  135. package/dist/state-pulumi.js +218 -0
  136. package/dist/state-pulumi.js.map +1 -0
  137. package/dist/state-store.d.ts +27 -0
  138. package/dist/state-store.d.ts.map +1 -1
  139. package/dist/state-store.js +65 -0
  140. package/dist/state-store.js.map +1 -1
  141. package/dist/upgrade/converge.d.ts +6 -0
  142. package/dist/upgrade/converge.d.ts.map +1 -1
  143. package/dist/upgrade/converge.js +59 -2
  144. package/dist/upgrade/converge.js.map +1 -1
  145. package/dist/upgrade/gcp-lookup.d.ts +6 -0
  146. package/dist/upgrade/gcp-lookup.d.ts.map +1 -1
  147. package/dist/upgrade/gcp-lookup.js +25 -0
  148. package/dist/upgrade/gcp-lookup.js.map +1 -1
  149. package/dist/upgrade/release-images.d.ts +12 -0
  150. package/dist/upgrade/release-images.d.ts.map +1 -1
  151. package/dist/upgrade/release-images.js +31 -0
  152. package/dist/upgrade/release-images.js.map +1 -1
  153. package/dist/upgrade/upgrade.d.ts +5 -0
  154. package/dist/upgrade/upgrade.d.ts.map +1 -1
  155. package/dist/upgrade/upgrade.js +28 -1
  156. package/dist/upgrade/upgrade.js.map +1 -1
  157. package/dist/upgrader-assess.d.ts +82 -0
  158. package/dist/upgrader-assess.d.ts.map +1 -0
  159. package/dist/upgrader-assess.js +116 -0
  160. package/dist/upgrader-assess.js.map +1 -0
  161. package/dist/upgrader-gcp.d.ts +17 -0
  162. package/dist/upgrader-gcp.d.ts.map +1 -0
  163. package/dist/upgrader-gcp.js +87 -0
  164. package/dist/upgrader-gcp.js.map +1 -0
  165. package/dist/upgrader-job.d.ts +131 -0
  166. package/dist/upgrader-job.d.ts.map +1 -0
  167. package/dist/upgrader-job.js +259 -0
  168. package/dist/upgrader-job.js.map +1 -0
  169. package/dist/upgrader-reporter.d.ts +35 -0
  170. package/dist/upgrader-reporter.d.ts.map +1 -0
  171. package/dist/upgrader-reporter.js +79 -0
  172. package/dist/upgrader-reporter.js.map +1 -0
  173. package/dist/upgrader-setup.d.ts +59 -0
  174. package/dist/upgrader-setup.d.ts.map +1 -0
  175. package/dist/upgrader-setup.js +308 -0
  176. package/dist/upgrader-setup.js.map +1 -0
  177. package/dist/wizard.d.ts +6 -0
  178. package/dist/wizard.d.ts.map +1 -1
  179. package/dist/wizard.js +32 -4
  180. package/dist/wizard.js.map +1 -1
  181. package/dist/wizards/gcp-firebase.d.ts +3 -0
  182. package/dist/wizards/gcp-firebase.d.ts.map +1 -1
  183. package/dist/wizards/gcp-firebase.js +1 -0
  184. package/dist/wizards/gcp-firebase.js.map +1 -1
  185. package/dist/wizards/gcp-install-job.d.ts +74 -0
  186. package/dist/wizards/gcp-install-job.d.ts.map +1 -0
  187. package/dist/wizards/gcp-install-job.js +398 -0
  188. package/dist/wizards/gcp-install-job.js.map +1 -0
  189. package/dist/wizards/gcp-prompts.d.ts +3 -0
  190. package/dist/wizards/gcp-prompts.d.ts.map +1 -0
  191. package/dist/wizards/gcp-prompts.js +25 -0
  192. package/dist/wizards/gcp-prompts.js.map +1 -0
  193. package/dist/wizards/gcp-pulumi.d.ts +9 -2
  194. package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
  195. package/dist/wizards/gcp-pulumi.js +8 -6
  196. package/dist/wizards/gcp-pulumi.js.map +1 -1
  197. package/dist/wizards/gcp.d.ts +40 -0
  198. package/dist/wizards/gcp.d.ts.map +1 -1
  199. package/dist/wizards/gcp.js +291 -83
  200. package/dist/wizards/gcp.js.map +1 -1
  201. package/package.json +6 -4
  202. package/src/adapter.ts +97 -0
  203. package/src/adc-impersonation.ts +176 -0
  204. package/src/admin-domain.test.ts +254 -0
  205. package/src/admin-domain.ts +245 -0
  206. package/src/admin-memory.test.ts +151 -0
  207. package/src/agent/apply.test.ts +185 -0
  208. package/src/agent/apply.ts +124 -0
  209. package/src/agent/cli-provenance.test.ts +159 -0
  210. package/src/agent/cli-provenance.ts +191 -0
  211. package/src/agent/command.test.ts +77 -0
  212. package/src/agent/command.ts +564 -0
  213. package/src/agent/config.ts +86 -0
  214. package/src/agent/lock-config.test.ts +97 -0
  215. package/src/agent/lock.ts +110 -0
  216. package/src/agent/queue.test.ts +10 -0
  217. package/src/agent/queue.ts +91 -0
  218. package/src/agent/run.test.ts +382 -0
  219. package/src/agent/run.ts +295 -0
  220. package/src/agent/systemd.ts +209 -0
  221. package/src/agent/units.test.ts +223 -0
  222. package/src/agent/units.ts +163 -0
  223. package/src/azure-front-door.test.ts +119 -0
  224. package/src/azure-front-door.ts +56 -0
  225. package/src/bootstrap-token.ts +20 -0
  226. package/src/caddy.ts +112 -0
  227. package/src/cdn-copy.ts +91 -0
  228. package/src/cert-wait.test.ts +194 -0
  229. package/src/cert-wait.ts +163 -0
  230. package/src/checkpoint-secrets.test.ts +380 -0
  231. package/src/checkpoint-secrets.ts +283 -0
  232. package/src/cli-routing.test.ts +45 -0
  233. package/src/cli-routing.ts +43 -0
  234. package/src/cli.ts +1491 -0
  235. package/src/cloudsql-iam-user.ts +147 -0
  236. package/src/compose.ts +334 -0
  237. package/src/default-firewall.test.ts +411 -0
  238. package/src/default-firewall.ts +342 -0
  239. package/src/deployed-release.test.ts +231 -0
  240. package/src/deployed-release.ts +220 -0
  241. package/src/dns/cloudflare.ts +182 -0
  242. package/src/dns/groups.test.ts +76 -0
  243. package/src/dns/groups.ts +86 -0
  244. package/src/dns/index.ts +56 -0
  245. package/src/dns/manual.ts +130 -0
  246. package/src/dns/types.ts +27 -0
  247. package/src/gateway-credentials.test.ts +180 -0
  248. package/src/gateway-credentials.ts +144 -0
  249. package/src/gcloud-components.test.ts +76 -0
  250. package/src/gcloud-components.ts +85 -0
  251. package/src/gcloud-retry.ts +41 -0
  252. package/src/gcloud-runner.test.ts +61 -0
  253. package/src/gcloud.test.ts +99 -0
  254. package/src/gcloud.ts +322 -0
  255. package/src/gcp-names.ts +135 -0
  256. package/src/index.test.ts +332 -0
  257. package/src/index.ts +114 -0
  258. package/src/infra-contract.ts +32 -0
  259. package/src/install-job-runner.ts +166 -0
  260. package/src/install-job.test.ts +566 -0
  261. package/src/install-job.ts +542 -0
  262. package/src/install-state.test.ts +239 -0
  263. package/src/install-state.ts +583 -0
  264. package/src/internal-token.ts +35 -0
  265. package/src/lifecycle.ts +900 -0
  266. package/src/mcp-iap-stacks.test.ts +58 -0
  267. package/src/mcp-iap.test.ts +149 -0
  268. package/src/mcp-iap.ts +131 -0
  269. package/src/media-volume.test.ts +296 -0
  270. package/src/migration-runner.ts +365 -0
  271. package/src/operator-access-stacks.test.ts +55 -0
  272. package/src/operator-access.test.ts +332 -0
  273. package/src/operator-access.ts +554 -0
  274. package/src/ops-backend.test.ts +320 -0
  275. package/src/ops-backend.ts +414 -0
  276. package/src/provisioner-identity.test.ts +482 -0
  277. package/src/provisioner-identity.ts +407 -0
  278. package/src/redirects-emit.ts +175 -0
  279. package/src/region-data.ts +428 -0
  280. package/src/regions.test.ts +277 -0
  281. package/src/regions.ts +370 -0
  282. package/src/release-contract.ts +57 -0
  283. package/src/release-manifest.test.ts +293 -0
  284. package/src/release-manifest.ts +430 -0
  285. package/src/run-mode.ts +40 -0
  286. package/src/runtime-secrets.test.ts +627 -0
  287. package/src/runtime-secrets.ts +754 -0
  288. package/src/self-command.test.ts +14 -0
  289. package/src/self-command.ts +21 -0
  290. package/src/self-hosted-compose.test.ts +177 -0
  291. package/src/self-hosted-release.ts +240 -0
  292. package/src/self-hosted-roles.integration.test.ts +161 -0
  293. package/src/self-hosted-roles.test.ts +124 -0
  294. package/src/self-hosted-roles.ts +203 -0
  295. package/src/self-hosted-upgrade.test.ts +394 -0
  296. package/src/self-hosted-upgrade.ts +548 -0
  297. package/src/stack-contract-parity.test.ts +199 -0
  298. package/src/stack-contract.test.ts +391 -0
  299. package/src/stack-contract.ts +888 -0
  300. package/src/stack-converge-secrets.test.ts +421 -0
  301. package/src/stack-converge.test.ts +833 -0
  302. package/src/stack-converge.ts +909 -0
  303. package/src/staging-admin.test.ts +246 -0
  304. package/src/staging-admin.ts +324 -0
  305. package/src/state-attach.test.ts +211 -0
  306. package/src/state-attach.ts +132 -0
  307. package/src/state-backend.test.ts +145 -0
  308. package/src/state-backend.ts +262 -0
  309. package/src/state-command.ts +293 -0
  310. package/src/state-migrate.test.ts +479 -0
  311. package/src/state-migrate.ts +434 -0
  312. package/src/state-pulumi.ts +289 -0
  313. package/src/state-store.test.ts +212 -0
  314. package/src/state-store.ts +243 -0
  315. package/src/upgrade/app-roll.ts +486 -0
  316. package/src/upgrade/backup.ts +109 -0
  317. package/src/upgrade/converge.ts +437 -0
  318. package/src/upgrade/gcp-lookup.ts +167 -0
  319. package/src/upgrade/health.test.ts +279 -0
  320. package/src/upgrade/health.ts +305 -0
  321. package/src/upgrade/release-images.test.ts +119 -0
  322. package/src/upgrade/release-images.ts +391 -0
  323. package/src/upgrade/reporter.ts +46 -0
  324. package/src/upgrade/upgrade.test.ts +626 -0
  325. package/src/upgrade/upgrade.ts +249 -0
  326. package/src/upgrader-assess.test.ts +265 -0
  327. package/src/upgrader-assess.ts +233 -0
  328. package/src/upgrader-gcp.ts +123 -0
  329. package/src/upgrader-job.test.ts +408 -0
  330. package/src/upgrader-job.ts +499 -0
  331. package/src/upgrader-reporter.test.ts +46 -0
  332. package/src/upgrader-reporter.ts +105 -0
  333. package/src/upgrader-setup.test.ts +169 -0
  334. package/src/upgrader-setup.ts +355 -0
  335. package/src/wizard.ts +425 -0
  336. package/src/wizards/gcp-cost.ts +188 -0
  337. package/src/wizards/gcp-firebase.ts +72 -0
  338. package/src/wizards/gcp-install-job.ts +506 -0
  339. package/src/wizards/gcp-prompts.ts +26 -0
  340. package/src/wizards/gcp-pulumi.test.ts +246 -0
  341. package/src/wizards/gcp-pulumi.ts +516 -0
  342. package/src/wizards/gcp.ts +1935 -0
@@ -0,0 +1,398 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ /**
3
+ * The operator's side of a job-mode GCP install (epic #696, Phase 3;
4
+ * install-job.ts has the design): start the install job after the
5
+ * identity-bound bootstrap, attach to one that runs, or show one that
6
+ * finished — and tail it until it is done.
7
+ *
8
+ * Runs in the operator's terminal with the operator's gcloud login; never
9
+ * in the job itself.
10
+ */
11
+ import { CAELO_VERSION } from "@caelo-cms/shared";
12
+ import { cancel, confirm, isCancel, log, note } from "@clack/prompts";
13
+ import { bold, cyan, dim, green, red, yellow } from "kleur/colors";
14
+ import { formatDnsRecordGroups, groupDnsRecords } from "../dns/groups.js";
15
+ import { activeAccount, gcloud } from "../gcloud.js";
16
+ import { realSleep } from "../gcloud-retry.js";
17
+ import { acquireLaunchLock, claimInstallJobStatus, decideInstallJob, describeExecution, INSTALL_CLOUDFLARE_TOKEN_SECRET, INSTALL_JOB_NAME, INSTALL_SETUP_LINK_SECRET, opsImageRef, readExecutionLogs, readInstallJobStatus, readSetupLink, startInstallJob, storeInstallSecretValue, } from "../install-job.js";
18
+ import { currentMetadata, installRoot, isStepDone, readLocalMetadata, readMetadata, recordedImageDigests, recordImageDigests, } from "../install-state.js";
19
+ import { fetchVerifiedReleaseManifest } from "../release-manifest.js";
20
+ import { selfCommand } from "../self-command.js";
21
+ import { attachInstall } from "../state-attach.js";
22
+ import { hasLocalPulumiState, opsBucketName } from "../state-backend.js";
23
+ import { GcsStateStore, realSyncGcloud } from "../state-store.js";
24
+ import { promptProjectId } from "./gcp-prompts.js";
25
+ const realTailDeps = {
26
+ run: gcloud,
27
+ syncRun: realSyncGcloud,
28
+ sleep: realSleep,
29
+ print: (line) => process.stdout.write(`${line}\n`),
30
+ intervalMs: 5_000,
31
+ };
32
+ /** Read the bucket's status and the execution's live state, then decide. */
33
+ async function decide(run, syncRun, target) {
34
+ const status = readInstallJobStatus(opsBucketName(target.projectId), syncRun);
35
+ const live = status && status.state === "running"
36
+ ? await describeExecution(run, { ...target, execution: status.execution })
37
+ : null;
38
+ const decision = decideInstallJob(status, live);
39
+ // A finished install whose setup link is gone from Secret Manager (deleted
40
+ // or disabled since) runs again: the job's last step stores it anew.
41
+ if (decision.kind === "done" && (await readSetupLink(run, target.projectId)) === null) {
42
+ return {
43
+ kind: "start",
44
+ previous: decision.status,
45
+ why: `the install finished, but its Owner setup link is no longer in Secret Manager (${INSTALL_SETUP_LINK_SECRET}); a new run stores it again`,
46
+ };
47
+ }
48
+ return decision;
49
+ }
50
+ /** At most this many polls after the job finished, to catch late log lines. */
51
+ const DRAIN_POLLS = 12;
52
+ /** ...stopping early after this many polls in a row brought nothing new. */
53
+ const DRAIN_QUIET_POLLS = 3;
54
+ /**
55
+ * Follow one execution: print its log lines as Cloud Logging receives
56
+ * them and each phase change from the status document, until the job
57
+ * records `succeeded` / `failed` or the execution ends without doing so.
58
+ */
59
+ export async function tailInstallJob(target, deps = realTailDeps) {
60
+ const bucket = opsBucketName(target.projectId);
61
+ const seen = new Set();
62
+ let cursor = null;
63
+ let lastPhase = "";
64
+ const flush = async () => {
65
+ const logs = await readExecutionLogs(deps.run, target, cursor, seen);
66
+ cursor = logs.cursor;
67
+ for (const line of logs.lines)
68
+ deps.print(line);
69
+ return logs.lines.length;
70
+ };
71
+ // Cloud Logging ingests asynchronously: the bucket can say "done" before
72
+ // the job's last lines (its summary, the go-live DNS records) are
73
+ // queryable. Keep reading until a few polls in a row bring nothing new,
74
+ // for at most DRAIN_POLLS polls.
75
+ const drain = async () => {
76
+ let quiet = 0;
77
+ for (let i = 0; i < DRAIN_POLLS && quiet < DRAIN_QUIET_POLLS; i++) {
78
+ await deps.sleep(deps.intervalMs);
79
+ quiet = (await flush()) === 0 ? quiet + 1 : 0;
80
+ }
81
+ };
82
+ for (let tick = 0;; tick++) {
83
+ await flush();
84
+ const status = readInstallJobStatus(bucket, deps.syncRun);
85
+ const ours = status?.execution === target.execution ? status : null;
86
+ if (ours && ours.phase !== lastPhase) {
87
+ lastPhase = ours.phase;
88
+ deps.print(bold(cyan(`==> ${ours.phase}`)) + (ours.detail ? `\n ${ours.detail}` : ""));
89
+ }
90
+ if (ours?.state === "succeeded") {
91
+ await drain();
92
+ return { kind: "succeeded" };
93
+ }
94
+ if (ours?.state === "failed") {
95
+ await drain();
96
+ return { kind: "failed", status: ours, why: ours.detail ?? `stopped at "${ours.phase}"` };
97
+ }
98
+ // The job writes its status as it goes; an execution that died (out of
99
+ // memory, task timeout, cancelled) can't. Check it every few polls.
100
+ if (tick % 6 === 5) {
101
+ const live = await describeExecution(deps.run, target);
102
+ if (live !== "running") {
103
+ await drain();
104
+ const final = readInstallJobStatus(bucket, deps.syncRun);
105
+ if (final?.execution === target.execution && final.state === "succeeded") {
106
+ return { kind: "succeeded" };
107
+ }
108
+ return {
109
+ kind: "failed",
110
+ status: final,
111
+ why: final?.execution === target.execution && final.state === "failed"
112
+ ? (final.detail ?? `stopped at "${final.phase}"`)
113
+ : `execution ${target.execution} ended (${live}) without recording a result`,
114
+ };
115
+ }
116
+ }
117
+ await deps.sleep(deps.intervalMs);
118
+ }
119
+ }
120
+ /** Where the job's full logs are, for every message that sends the operator there. */
121
+ function logsHint(projectId, region) {
122
+ return `gcloud run jobs executions list --job=${INSTALL_JOB_NAME} --region=${region} --project=${projectId}`;
123
+ }
124
+ /** Print that closing the tab is fine; exit 130 on Ctrl-C with the re-attach hint. */
125
+ function announceDetachable(projectId, execution) {
126
+ log.info([
127
+ `The install runs in your project as Cloud Run job ${bold(INSTALL_JOB_NAME)} (execution ${dim(execution)}).`,
128
+ dim("Closing this tab, Ctrl-C or Cloud Shell's idle timeout does not stop it. To follow it again, re-open the"),
129
+ dim(`"Open in Cloud Shell" link (or re-run the same command) and pick project ${projectId}.`),
130
+ ].join("\n"));
131
+ process.once("SIGINT", () => {
132
+ process.stdout.write(`\nStopped following. The install keeps running in ${projectId}; re-run to attach again.\n`);
133
+ process.exit(130);
134
+ });
135
+ }
136
+ /** Tail `execution` and finish the terminal side: the result, or a failure that says what next. */
137
+ async function followToTheEnd(meta, execution) {
138
+ const projectId = meta.projectId ?? "";
139
+ const region = meta.region ?? "";
140
+ announceDetachable(projectId, execution);
141
+ const outcome = await tailInstallJob({ projectId, region, execution });
142
+ if (outcome.kind === "succeeded") {
143
+ await showResult(meta);
144
+ return;
145
+ }
146
+ log.error(red(`The install job failed: ${outcome.why}`));
147
+ log.warn([
148
+ `Fix the cause, then run the installer again — it starts a new run that resumes where this one stopped.`,
149
+ `Full logs: ${logsHint(projectId, region)}`,
150
+ ].join("\n"));
151
+ cancel("Install not finished.");
152
+ process.exit(1);
153
+ }
154
+ /** The finished install: the Owner setup link (from Secret Manager) and next steps. */
155
+ async function showResult(meta) {
156
+ const projectId = meta.projectId ?? "";
157
+ const link = await readSetupLink(gcloud, projectId);
158
+ if (!link) {
159
+ // decide() starts a new run when the link is missing; getting here means
160
+ // it vanished in between.
161
+ cancel(`The Owner setup link disappeared from Secret Manager (${INSTALL_SETUP_LINK_SECRET} in ${projectId}) just now. Run the installer again; it runs the job once more to store it.`);
162
+ process.exit(1);
163
+ }
164
+ const adminBase = new URL(link).origin;
165
+ // The records from the stack's outputs, as the pulumi-up step recorded
166
+ // them — not from the log, which a re-run after the install no longer shows.
167
+ // Uncached: this process may hold progress.json from before the job ran.
168
+ const progressText = new GcsStateStore(opsBucketName(projectId), installRoot(meta.installId), realSyncGcloud).peek("progress.json");
169
+ const progress = progressText
170
+ ? JSON.parse(progressText)
171
+ : {};
172
+ const pulumiUp = progress.steps?.[`pulumi-up-${projectId}`];
173
+ const outputs = pulumiUp?.outputs ?? {};
174
+ const records = Array.isArray(outputs.dnsRecordsRequiredOut)
175
+ ? outputs.dnsRecordsRequiredOut
176
+ : [];
177
+ const dnsLines = records.length > 0
178
+ ? [
179
+ "",
180
+ bold(`DNS records for ${meta.domain}:`),
181
+ ...formatDnsRecordGroups(groupDnsRecords(records, meta.domain), meta.domain).map((l) => ` ${l}`),
182
+ ]
183
+ : [];
184
+ note([
185
+ green(`✓ ${meta.domain} is installed.`),
186
+ ...dnsLines,
187
+ "",
188
+ bold("Next steps:"),
189
+ ` 1. Owner setup — open in your browser (sign in with ${meta.ownerEmail}):`,
190
+ ` ${cyan(link)}`,
191
+ ` 2. AI provider — visit ${cyan(`${adminBase}/settings/ai`)} and paste your Anthropic API key.`,
192
+ ` 3. Set the go-live DNS records above once your new site is published`,
193
+ ` (the admin lists them too, at ${cyan(`${adminBase}/settings/domains`)}).`,
194
+ "",
195
+ bold("Later:"),
196
+ ` New releases: ${cyan(`${adminBase}/settings/updates`)} shows how to install them.`,
197
+ ` Manage the install from any machine: ${dim(selfCommand("attach", "--project", projectId))}`,
198
+ ].join("\n"), "Done");
199
+ }
200
+ /**
201
+ * After the bootstrap (gcp.ts, job mode): pin the release, start the job —
202
+ * or attach to / show the one already there — and follow it.
203
+ */
204
+ export async function launchInstallJob(opts) {
205
+ const { installId, projectId, region } = opts;
206
+ const meta = readMetadata(installId);
207
+ if (!meta)
208
+ throw new Error(`No install.json for install '${installId}'.`);
209
+ const decision = await decide(gcloud, realSyncGcloud, { projectId, region });
210
+ if (decision.kind === "attach") {
211
+ await followToTheEnd(meta, decision.status.execution);
212
+ return;
213
+ }
214
+ if (decision.kind === "done") {
215
+ await showResult(meta);
216
+ return;
217
+ }
218
+ if (decision.previous) {
219
+ log.warn(yellow(`An earlier install run did not finish: ${decision.why}.`));
220
+ if (!opts.nonInteractive) {
221
+ const again = await confirm({
222
+ message: "Start the install job again? It resumes where the last run stopped.",
223
+ initialValue: true,
224
+ });
225
+ if (isCancel(again) || !again) {
226
+ cancel("Not started.");
227
+ process.exit(0);
228
+ }
229
+ }
230
+ }
231
+ // The release this CLI belongs to, verified against Caelo's release
232
+ // workflow identity: its manifest pins the ops image the job runs and,
233
+ // for a new install, the admin + gateway images it deploys.
234
+ const verified = await fetchVerifiedReleaseManifest(CAELO_VERSION);
235
+ if (!verified.ok) {
236
+ cancel(`Could not verify release v${CAELO_VERSION}: ${verified.error.message}`);
237
+ process.exit(1);
238
+ }
239
+ const { digests } = verified.manifest;
240
+ if (!isStepDone(installId, `pulumi-up-${projectId}`) && !recordedImageDigests(meta)) {
241
+ recordImageDigests(installId, { admin: digests.admin, gateway: digests.gateway });
242
+ }
243
+ // One launcher at a time decides and starts: two terminals resuming the
244
+ // same install would otherwise both start an execution before either
245
+ // recorded it. Under the lock the decision is taken again.
246
+ const bucket = opsBucketName(projectId);
247
+ let release;
248
+ try {
249
+ release = acquireLaunchLock(bucket, realSyncGcloud);
250
+ }
251
+ catch (e) {
252
+ cancel(e instanceof Error ? e.message : String(e));
253
+ process.exit(1);
254
+ }
255
+ let execution;
256
+ try {
257
+ const now = await decide(gcloud, realSyncGcloud, { projectId, region });
258
+ if (now.kind !== "start") {
259
+ release();
260
+ if (now.kind === "attach")
261
+ await followToTheEnd(meta, now.status.execution);
262
+ else
263
+ await showResult(meta);
264
+ return;
265
+ }
266
+ // Automatic DNS in the job (dns/cloudflare.ts) when this shell has a
267
+ // Cloudflare token: it goes to Secret Manager and is mounted into the
268
+ // job as CLOUDFLARE_API_TOKEN — never into the job definition or args.
269
+ const cloudflareToken = process.env.CLOUDFLARE_API_TOKEN ?? "";
270
+ if (cloudflareToken !== "") {
271
+ const stored = await storeInstallSecretValue(gcloud, { projectId, region }, INSTALL_CLOUDFLARE_TOKEN_SECRET, cloudflareToken);
272
+ if (!stored.ok) {
273
+ release();
274
+ cancel(`Could not hand CLOUDFLARE_API_TOKEN to the install job: ${stored.error}`);
275
+ process.exit(1);
276
+ }
277
+ log.info(`DNS: the job sets the records through Cloudflare (token stored in Secret Manager as ${INSTALL_CLOUDFLARE_TOKEN_SECRET}).`);
278
+ }
279
+ const started = await startInstallJob(gcloud, {
280
+ projectId,
281
+ region,
282
+ serviceAccount: opts.provisionerEmail,
283
+ image: opsImageRef(digests.ops),
284
+ cloudflareToken: cloudflareToken !== "",
285
+ });
286
+ if (!started.ok) {
287
+ release();
288
+ cancel(`Could not start the install job: ${started.error}`);
289
+ process.exit(1);
290
+ }
291
+ execution = started.execution;
292
+ const at = new Date().toISOString();
293
+ // The execution is already running and writes its own status; this
294
+ // record only lands if it hasn't yet (claimInstallJobStatus).
295
+ claimInstallJobStatus(bucket, {
296
+ statusVersion: 1,
297
+ installId,
298
+ execution,
299
+ state: "running",
300
+ phase: "Starting the install job",
301
+ caeloVersion: CAELO_VERSION,
302
+ startedAt: at,
303
+ updatedAt: at,
304
+ }, realSyncGcloud);
305
+ }
306
+ catch (e) {
307
+ release();
308
+ throw e;
309
+ }
310
+ release();
311
+ await followToTheEnd(meta, execution);
312
+ }
313
+ /**
314
+ * Before any other prompt in job mode: the project comes first, because a
315
+ * Cloud Shell session opened by the button starts with an empty home
316
+ * directory — everything known about an install is in its project. An
317
+ * install whose state is there is attached; one whose job is running is
318
+ * followed and one whose job finished is shown, without re-running the
319
+ * bootstrap. Otherwise the wizard continues (new install, or a re-run of an
320
+ * unfinished bootstrap).
321
+ */
322
+ export async function prepareJobModeInstall(opts) {
323
+ const account = await activeAccount();
324
+ if (!account) {
325
+ cancel("No active gcloud account. Run `gcloud auth login` (in Cloud Shell: the first step of the tutorial), then re-run.");
326
+ process.exit(2);
327
+ }
328
+ log.info(`gcloud auth: ${bold(account)}`);
329
+ const projectId = opts.projectId ?? (await promptProjectId("my-caelo-site"));
330
+ const bucket = opsBucketName(projectId);
331
+ let existing;
332
+ try {
333
+ existing = new GcsStateStore(bucket, "/nonexistent", realSyncGcloud).peek("install.json");
334
+ }
335
+ catch (e) {
336
+ cancel(e instanceof Error ? e.message : String(e));
337
+ process.exit(1);
338
+ }
339
+ if (existing === null)
340
+ return { kind: "new", projectId };
341
+ const attached = attachInstall(projectId, {
342
+ run: realSyncGcloud,
343
+ rootFor: installRoot,
344
+ hasLocalState: hasLocalPulumiState,
345
+ });
346
+ if (!attached.ok) {
347
+ cancel(attached.error);
348
+ process.exit(1);
349
+ }
350
+ const local = readLocalMetadata(attached.installId);
351
+ if (!local)
352
+ throw new Error(`attach wrote no install.json for ${attached.installId}`);
353
+ const meta = currentMetadata(local);
354
+ log.success(`Found install ${bold(meta.installId)} (${meta.domain}) in ${projectId}.`);
355
+ if (!meta.region)
356
+ return { kind: "existing", meta };
357
+ const decision = await decide(gcloud, realSyncGcloud, { projectId, region: meta.region });
358
+ if (decision.kind === "attach") {
359
+ await followToTheEnd(meta, decision.status.execution);
360
+ return { kind: "handled" };
361
+ }
362
+ if (decision.kind === "done") {
363
+ await showResult(meta);
364
+ return { kind: "handled" };
365
+ }
366
+ return { kind: "existing", meta };
367
+ }
368
+ /**
369
+ * `status`'s view of the install job: what the bucket records and, for a
370
+ * run that claims to be running, whether its execution still is. Empty
371
+ * when the install never used the job.
372
+ */
373
+ export async function installJobStatusLines(meta, deps = { run: gcloud, syncRun: realSyncGcloud }) {
374
+ if (!meta.projectId || !meta.region)
375
+ return [];
376
+ const status = readInstallJobStatus(opsBucketName(meta.projectId), deps.syncRun);
377
+ if (!status)
378
+ return [];
379
+ const decision = decideInstallJob(status, status.state === "running"
380
+ ? await describeExecution(deps.run, {
381
+ projectId: meta.projectId,
382
+ region: meta.region,
383
+ execution: status.execution,
384
+ })
385
+ : null);
386
+ const head = `Install job: ${status.state} — ${status.phase} ${dim(`(v${status.caeloVersion}, execution ${status.execution}, updated ${status.updatedAt})`)}`;
387
+ const lines = [head];
388
+ if (status.detail)
389
+ lines.push(` ${status.detail}`);
390
+ if (decision.kind === "attach") {
391
+ lines.push(` Follow it: re-run the installer for project ${meta.projectId} (it attaches).`);
392
+ }
393
+ else if (decision.kind === "start") {
394
+ lines.push(` Not finished (${decision.why}). Re-run the installer for project ${meta.projectId}; it resumes where this run stopped.`);
395
+ }
396
+ return lines;
397
+ }
398
+ //# sourceMappingURL=gcp-install-job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp-install-job.js","sourceRoot":"","sources":["../../src/wizards/gcp-install-job.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Ask for the GCP project id (created if absent), validated like GCP does. */
2
+ export declare function promptProjectId(guess: string): Promise<string>;
3
+ //# sourceMappingURL=gcp-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp-prompts.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-prompts.ts"],"names":[],"mappings":"AAIA,+EAA+E;AAC/E,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBpE"}
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: MPL-2.0
2
+ import { cancel, isCancel, text } from "@clack/prompts";
3
+ /** Ask for the GCP project id (created if absent), validated like GCP does. */
4
+ export async function promptProjectId(guess) {
5
+ const value = await text({
6
+ message: "GCP project id (will be created if absent)",
7
+ placeholder: guess,
8
+ defaultValue: guess,
9
+ validate: (v) => {
10
+ if (!v || v.length < 6 || v.length > 30) {
11
+ return "GCP project id must be 6–30 chars";
12
+ }
13
+ if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(v)) {
14
+ return "GCP project id: lowercase letters, digits, hyphens; start with letter; no trailing hyphen";
15
+ }
16
+ return undefined;
17
+ },
18
+ });
19
+ if (isCancel(value)) {
20
+ cancel("Cancelled.");
21
+ process.exit(0);
22
+ }
23
+ return value;
24
+ }
25
+ //# sourceMappingURL=gcp-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcp-prompts.js","sourceRoot":"","sources":["../../src/wizards/gcp-prompts.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAExD,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAa;IACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,4CAA4C;QACrD,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACxC,OAAO,mCAAmC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,2FAA2F,CAAC;YACrG,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,YAAY,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC"}
@@ -27,11 +27,18 @@ export interface PulumiUpInputs {
27
27
  /**
28
28
  * #696 — the service account Pulumi's GCP provider impersonates
29
29
  * (`caelo-provisioner@<project>`), with the operator's Application Default
30
- * Credentials as the source. No key file.
30
+ * Credentials as the source. No key file. Null when this process runs AS
31
+ * the provisioner (the install job, install-job.ts): its ambient
32
+ * metadata-server credentials are the provisioner's own.
31
33
  */
32
- impersonateServiceAccount: string;
34
+ impersonateServiceAccount: string | null;
33
35
  /** #696 — where the stack's state lives (state-backend.ts resolveBackend). */
34
36
  backend: ResolvedBackend;
37
+ /**
38
+ * #696 — the install is deployed, so its stack must already be in
39
+ * `backend`; never create an empty one in its place.
40
+ */
41
+ stackMustExist?: boolean;
35
42
  cloudSqlTier: string;
36
43
  cloudSqlHa: boolean;
37
44
  adminMinInstances: number;
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAOxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;CAO1B,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,8EAA8E;IAC9E,OAAO,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;yEAEqE;IACrE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,GAAE,KAAK,GAAG,cAAsB,GAAG,MAAM,CAMhF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,KAAK,GAAG,cAAc,EAChC,OAAO,EAAE,YAAY,GACpB,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAOnC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,cAAc,CAAC;IACjC,OAAO,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAO1C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,KAAK,GAAG,cAAc,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,OAAO,CAAC,CAInB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAC9B,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,iBAAiB,CAAC,GACzD,MAAM,CAAC,aAAa,GAAG,IAAI,CAkB7B;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,KAAK,GAAG,cAAc,GAC/B,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK9F;AAED,oDAAoD;AACpD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,KAAK,GAAG,cAAc,GAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAMvB;AAUD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,aAAa,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAClF,MAAM,GAAG,UAAU,CAWrB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,MAAM,GAAG,IAAI,CAa1F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAMlF;AAED,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,EACZ,WAAW,GACX,QAAQ,GACR,eAAe,GACf,YAAY,GACZ,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,qBAAqB,GACrB,uBAAuB,GACvB,cAAc,GACd,cAAc,CACjB,GAAG;IAAE,QAAQ,EAAE,KAAK,GAAG,cAAc,CAAA;CAAE,CAAC;AAEzC;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,iBAAiB,EACzB,cAAc,EAAE,aAAa,CAAC,aAAa,CAAC,GAC3C,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAqC9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,2BAA2B,CAAC,GACpE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,cAAc,CAAC,CA+EzB"}
@@ -275,7 +275,7 @@ export function pulumiGcpEnv(base, inputs) {
275
275
  return {
276
276
  ...withoutAmbientGoogleCredentials(base),
277
277
  ...Object.fromEntries(AMBIENT_GOOGLE_CREDENTIAL_ENV.map((k) => [k, ""])),
278
- GOOGLE_IMPERSONATE_SERVICE_ACCOUNT: inputs.impersonateServiceAccount,
278
+ GOOGLE_IMPERSONATE_SERVICE_ACCOUNT: inputs.impersonateServiceAccount ?? "",
279
279
  ...inputs.backend.envVars,
280
280
  };
281
281
  }
@@ -290,15 +290,17 @@ export async function pulumiUpGcp(inputs, onEvent) {
290
290
  const stackName = GCP_STACK_ENV;
291
291
  const workDir = gcpStackWorkDir(provider);
292
292
  await alignStackSettingsFile(inputs.backend, provider);
293
- const stack = await pulumi.LocalWorkspace.createOrSelectStack({
294
- stackName,
295
- workDir,
296
- }, {
293
+ const workspaceOpts = {
297
294
  envVars: env,
298
295
  // Used when the stack is created: a new install's secrets are
299
296
  // encrypted with its own KMS key (or a local install's passphrase).
300
297
  secretsProvider: inputs.backend.secretsProvider,
301
- });
298
+ };
299
+ const stack = inputs.stackMustExist
300
+ ? await pulumi.LocalWorkspace.selectStack({ stackName, workDir }, workspaceOpts).catch((e) => {
301
+ throw new Error(`the install is deployed but its stack is not in ${inputs.backend.url} (${String(e).split("\n")[0]}). Its state may have moved (state migrate) or been lost; nothing was changed.`);
302
+ })
303
+ : await pulumi.LocalWorkspace.createOrSelectStack({ stackName, workDir }, workspaceOpts);
302
304
  const stateResources = ((await stack.exportStack()).deployment?.resources ??
303
305
  []);
304
306
  assertStackRegion(deployedStackRegion(stateResources), inputs.region);
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-pulumi.js","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcp-pulumi.js","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import type { RunMode } from "../run-mode.js";
2
+ import { type ResolvedBackend } from "../state-backend.js";
1
3
  export interface GcpWizardOpts {
2
4
  installId: string;
3
5
  domain: string;
@@ -13,6 +15,44 @@ export interface GcpWizardOpts {
13
15
  * enablement, Search Console verification prompts).
14
16
  */
15
17
  provider?: "gcp" | "gcp-firebase";
18
+ /**
19
+ * #696 — where `pulumi up` and the rest run (run-mode.ts): here, or in the
20
+ * install job in the project. Default `local`.
21
+ */
22
+ runMode?: RunMode;
16
23
  }
17
24
  export declare function runGcpWizard(opts: GcpWizardOpts): Promise<void>;
25
+ /** Inputs of {@link runGcpConverge}. */
26
+ export interface GcpConvergeOpts {
27
+ readonly installId: string;
28
+ readonly projectId: string;
29
+ readonly region: string;
30
+ readonly provider: "gcp" | "gcp-firebase";
31
+ /**
32
+ * The service account Pulumi's GCP provider impersonates (the operator's
33
+ * terminal), or null when this process already runs AS the provisioner
34
+ * (the install job, whose runtime service account it is).
35
+ */
36
+ readonly impersonateServiceAccount: string | null;
37
+ readonly backend: ResolvedBackend;
38
+ /** No prompts: the DNS step polls without asking (the install job). */
39
+ readonly nonInteractive: boolean;
40
+ /**
41
+ * `print`: show the Owner setup link (the operator's terminal).
42
+ * `secret`: store it in Secret Manager for the operator's terminal to
43
+ * read — the install job, whose output lands in Cloud Logging (#656).
44
+ */
45
+ readonly setupLink: "print" | "secret";
46
+ /** Called as each step starts — the install job records it in the bucket. */
47
+ readonly onPhase?: (phase: string, detail?: string) => void;
48
+ }
49
+ /**
50
+ * The half of an install that needs no operator identity: image digests,
51
+ * `pulumi up`, DNS + certificate waits, migrations, database logins, the
52
+ * operator-access job, the placeholder page and the summary. Runs in the
53
+ * operator's terminal (local mode) or in the install job (install-job.ts).
54
+ * Every step is idempotent or checkpointed in progress.json, so a re-run —
55
+ * or a new job execution — resumes where the last one stopped.
56
+ */
57
+ export declare function runGcpConverge(opts: GcpConvergeOpts): Promise<void>;
18
58
  //# sourceMappingURL=gcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"AA2GA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;CACnC;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwPrE"}
1
+ {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp.ts"],"names":[],"mappings":"AAsGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAOL,KAAK,eAAe,EAErB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HrE;AAKD,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,cAAc,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAC;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+LzE"}