@caelo-cms/provisioning 0.10.61 → 0.10.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/caddy/Caddyfile.production +7 -0
- package/caddy/Caddyfile.staging +7 -0
- package/dist/admin-internal-answer.d.ts +12 -0
- package/dist/admin-internal-answer.d.ts.map +1 -0
- package/dist/admin-internal-answer.js +32 -0
- package/dist/admin-internal-answer.js.map +1 -0
- package/dist/admin-internal-google.d.ts +4 -0
- package/dist/admin-internal-google.d.ts.map +1 -0
- package/dist/admin-internal-google.js +161 -0
- package/dist/admin-internal-google.js.map +1 -0
- package/dist/admin-internal-self-hosted.d.ts +30 -0
- package/dist/admin-internal-self-hosted.d.ts.map +1 -0
- package/dist/admin-internal-self-hosted.js +92 -0
- package/dist/admin-internal-self-hosted.js.map +1 -0
- package/dist/admin-internal.d.ts +33 -12
- package/dist/admin-internal.d.ts.map +1 -1
- package/dist/admin-internal.js +27 -159
- package/dist/admin-internal.js.map +1 -1
- package/dist/agent/command.d.ts +7 -0
- package/dist/agent/command.d.ts.map +1 -1
- package/dist/agent/command.js +1 -0
- package/dist/agent/command.js.map +1 -1
- package/dist/agent/lock.d.ts +13 -1
- package/dist/agent/lock.d.ts.map +1 -1
- package/dist/agent/lock.js +62 -5
- package/dist/agent/lock.js.map +1 -1
- package/dist/agent/run.d.ts +5 -1
- package/dist/agent/run.d.ts.map +1 -1
- package/dist/agent/run.js +8 -1
- package/dist/agent/run.js.map +1 -1
- package/dist/agent-db.js +192 -90
- package/dist/caddy.d.ts.map +1 -1
- package/dist/caddy.js +11 -1
- package/dist/caddy.js.map +1 -1
- package/dist/cli-routing.js +1 -1
- package/dist/cli-routing.js.map +1 -1
- package/dist/cli.js +95 -38
- package/dist/cli.js.map +1 -1
- package/dist/compose.d.ts +7 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +5 -0
- package/dist/compose.js.map +1 -1
- package/dist/converge-job-gcp.d.ts.map +1 -1
- package/dist/converge-job-gcp.js +10 -7
- package/dist/converge-job-gcp.js.map +1 -1
- package/dist/converge-job-preflight.d.ts +21 -0
- package/dist/converge-job-preflight.d.ts.map +1 -0
- package/dist/converge-job-preflight.js +111 -0
- package/dist/converge-job-preflight.js.map +1 -0
- package/dist/converge-job.d.ts +8 -2
- package/dist/converge-job.d.ts.map +1 -1
- package/dist/converge-job.js +14 -0
- package/dist/converge-job.js.map +1 -1
- package/dist/gateway-credentials.d.ts +5 -3
- package/dist/gateway-credentials.d.ts.map +1 -1
- package/dist/gateway-credentials.js +5 -8
- package/dist/gateway-credentials.js.map +1 -1
- package/dist/gcloud.d.ts +29 -0
- package/dist/gcloud.d.ts.map +1 -1
- package/dist/gcloud.js +66 -0
- package/dist/gcloud.js.map +1 -1
- package/dist/infra-contract.d.ts +1 -1
- package/dist/infra-contract.d.ts.map +1 -1
- package/dist/infra-contract.js +10 -1
- package/dist/infra-contract.js.map +1 -1
- package/dist/install-job.d.ts +3 -1
- package/dist/install-job.d.ts.map +1 -1
- package/dist/install-job.js.map +1 -1
- package/dist/install-state.d.ts +10 -0
- package/dist/install-state.d.ts.map +1 -1
- package/dist/install-state.js +12 -0
- package/dist/install-state.js.map +1 -1
- package/dist/lifecycle.d.ts +12 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +113 -28
- package/dist/lifecycle.js.map +1 -1
- package/dist/mcp-iap.d.ts +2 -0
- package/dist/mcp-iap.d.ts.map +1 -1
- package/dist/mcp-iap.js +50 -17
- package/dist/mcp-iap.js.map +1 -1
- package/dist/owner-reset.d.ts +16 -19
- package/dist/owner-reset.d.ts.map +1 -1
- package/dist/owner-reset.js +92 -19
- package/dist/owner-reset.js.map +1 -1
- package/dist/preview-plan.d.ts +71 -0
- package/dist/preview-plan.d.ts.map +1 -0
- package/dist/preview-plan.js +168 -0
- package/dist/preview-plan.js.map +1 -0
- package/dist/public-role-isolation.d.ts +2 -0
- package/dist/public-role-isolation.d.ts.map +1 -1
- package/dist/public-role-isolation.js +9 -3
- package/dist/public-role-isolation.js.map +1 -1
- package/dist/release-contract.d.ts.map +1 -1
- package/dist/release-contract.js +4 -0
- package/dist/release-contract.js.map +1 -1
- package/dist/self-hosted-internal-secret.d.ts +27 -0
- package/dist/self-hosted-internal-secret.d.ts.map +1 -0
- package/dist/self-hosted-internal-secret.js +69 -0
- package/dist/self-hosted-internal-secret.js.map +1 -0
- package/dist/self-hosted-release.d.ts +3 -1
- package/dist/self-hosted-release.d.ts.map +1 -1
- package/dist/self-hosted-release.js +6 -2
- package/dist/self-hosted-release.js.map +1 -1
- package/dist/self-hosted-upgrade.d.ts +13 -1
- package/dist/self-hosted-upgrade.d.ts.map +1 -1
- package/dist/self-hosted-upgrade.js +26 -2
- package/dist/self-hosted-upgrade.js.map +1 -1
- package/dist/stack-converge.d.ts +5 -2
- package/dist/stack-converge.d.ts.map +1 -1
- package/dist/stack-converge.js +73 -8
- package/dist/stack-converge.js.map +1 -1
- package/dist/staging-admin.d.ts +4 -1
- package/dist/staging-admin.d.ts.map +1 -1
- package/dist/staging-admin.js.map +1 -1
- package/dist/state-backend.d.ts +3 -2
- package/dist/state-backend.d.ts.map +1 -1
- package/dist/state-backend.js +3 -2
- package/dist/state-backend.js.map +1 -1
- package/dist/state-command.d.ts +17 -0
- package/dist/state-command.d.ts.map +1 -1
- package/dist/state-command.js +34 -5
- package/dist/state-command.js.map +1 -1
- package/dist/state-migrate.d.ts +14 -3
- package/dist/state-migrate.d.ts.map +1 -1
- package/dist/state-migrate.js +31 -7
- package/dist/state-migrate.js.map +1 -1
- package/dist/state-pulumi.d.ts +0 -2
- package/dist/state-pulumi.d.ts.map +1 -1
- package/dist/state-pulumi.js +19 -20
- package/dist/state-pulumi.js.map +1 -1
- package/dist/static-security-headers.d.ts +86 -0
- package/dist/static-security-headers.d.ts.map +1 -0
- package/dist/static-security-headers.js +126 -0
- package/dist/static-security-headers.js.map +1 -0
- package/dist/static-svg-gcp.d.ts +28 -0
- package/dist/static-svg-gcp.d.ts.map +1 -0
- package/dist/static-svg-gcp.js +106 -0
- package/dist/static-svg-gcp.js.map +1 -0
- package/dist/upgrade/app-roll.d.ts +3 -0
- package/dist/upgrade/app-roll.d.ts.map +1 -1
- package/dist/upgrade/app-roll.js +12 -5
- package/dist/upgrade/app-roll.js.map +1 -1
- package/dist/upgrade/backup.d.ts +2 -0
- package/dist/upgrade/backup.d.ts.map +1 -1
- package/dist/upgrade/backup.js +5 -4
- package/dist/upgrade/backup.js.map +1 -1
- package/dist/upgrade/converge.d.ts +7 -0
- package/dist/upgrade/converge.d.ts.map +1 -1
- package/dist/upgrade/converge.js +19 -7
- package/dist/upgrade/converge.js.map +1 -1
- package/dist/upgrade/gcp-lookup.d.ts +38 -3
- package/dist/upgrade/gcp-lookup.d.ts.map +1 -1
- package/dist/upgrade/gcp-lookup.js +31 -9
- package/dist/upgrade/gcp-lookup.js.map +1 -1
- package/dist/upgrade/health.d.ts +31 -5
- package/dist/upgrade/health.d.ts.map +1 -1
- package/dist/upgrade/health.js +114 -25
- package/dist/upgrade/health.js.map +1 -1
- package/dist/upgrade/release-images.d.ts +17 -0
- package/dist/upgrade/release-images.d.ts.map +1 -1
- package/dist/upgrade/release-images.js +23 -12
- package/dist/upgrade/release-images.js.map +1 -1
- package/dist/upgrade/reporter.d.ts +2 -0
- package/dist/upgrade/reporter.d.ts.map +1 -1
- package/dist/upgrade/reporter.js +1 -0
- package/dist/upgrade/reporter.js.map +1 -1
- package/dist/upgrade/upgrade.d.ts +11 -1
- package/dist/upgrade/upgrade.d.ts.map +1 -1
- package/dist/upgrade/upgrade.js +5 -2
- package/dist/upgrade/upgrade.js.map +1 -1
- package/dist/upgrader-gcp.d.ts +12 -2
- package/dist/upgrader-gcp.d.ts.map +1 -1
- package/dist/upgrader-gcp.js +22 -13
- package/dist/upgrader-gcp.js.map +1 -1
- package/dist/upgrader-iam-preflight.d.ts +16 -3
- package/dist/upgrader-iam-preflight.d.ts.map +1 -1
- package/dist/upgrader-iam-preflight.js +9 -4
- package/dist/upgrader-iam-preflight.js.map +1 -1
- package/dist/upgrader-job.d.ts.map +1 -1
- package/dist/upgrader-job.js +10 -8
- package/dist/upgrader-job.js.map +1 -1
- package/dist/upgrader-reporter.d.ts.map +1 -1
- package/dist/upgrader-reporter.js +1 -0
- package/dist/upgrader-reporter.js.map +1 -1
- package/dist/wizards/gcp-pulumi.d.ts +70 -23
- package/dist/wizards/gcp-pulumi.d.ts.map +1 -1
- package/dist/wizards/gcp-pulumi.js +118 -39
- package/dist/wizards/gcp-pulumi.js.map +1 -1
- package/dist/wizards/gcp.d.ts.map +1 -1
- package/dist/wizards/gcp.js +67 -11
- package/dist/wizards/gcp.js.map +1 -1
- package/package.json +2 -2
- package/src/admin-internal-answer.ts +43 -0
- package/src/admin-internal-google.ts +187 -0
- package/src/admin-internal-self-hosted.test.ts +70 -0
- package/src/admin-internal-self-hosted.ts +128 -0
- package/src/admin-internal.ts +59 -174
- package/src/admin-memory.test.ts +1 -0
- package/src/agent/command.ts +3 -0
- package/src/agent/lock-config.test.ts +57 -2
- package/src/agent/lock.ts +68 -5
- package/src/agent/run.test.ts +18 -1
- package/src/agent/run.ts +17 -6
- package/src/caddy-redirects.test.ts +1 -0
- package/src/caddy.ts +12 -0
- package/src/cli-routing.ts +1 -1
- package/src/cli.ts +102 -44
- package/src/compose.ts +12 -0
- package/src/converge-job-gcp.ts +16 -11
- package/src/converge-job-preflight.test.ts +108 -0
- package/src/converge-job-preflight.ts +124 -0
- package/src/converge-job.test.ts +50 -0
- package/src/converge-job.ts +38 -2
- package/src/gateway-credentials.test.ts +4 -3
- package/src/gateway-credentials.ts +6 -10
- package/src/gateway-env-isolation.test.ts +1 -0
- package/src/gcloud.test.ts +93 -1
- package/src/gcloud.ts +82 -0
- package/src/index.test.ts +38 -1
- package/src/infra-contract.test.ts +4 -3
- package/src/infra-contract.ts +10 -1
- package/src/install-job.ts +5 -2
- package/src/install-state.ts +13 -0
- package/src/lifecycle.ts +134 -28
- package/src/mcp-iap.test.ts +66 -5
- package/src/mcp-iap.ts +55 -17
- package/src/owner-reset-providers.test.ts +370 -0
- package/src/owner-reset.test.ts +2 -2
- package/src/owner-reset.ts +108 -19
- package/src/preview-plan.test.ts +233 -0
- package/src/preview-plan.ts +226 -0
- package/src/public-role-isolation.test.ts +13 -2
- package/src/public-role-isolation.ts +14 -4
- package/src/release-contract.ts +4 -0
- package/src/self-hosted-compose.test.ts +25 -0
- package/src/self-hosted-internal-secret.test.ts +61 -0
- package/src/self-hosted-internal-secret.ts +80 -0
- package/src/self-hosted-release.ts +10 -3
- package/src/self-hosted-upgrade.test.ts +35 -1
- package/src/self-hosted-upgrade.ts +40 -3
- package/src/stack-contract.test.ts +1 -0
- package/src/stack-converge.test.ts +89 -5
- package/src/stack-converge.ts +81 -8
- package/src/staging-admin.test.ts +1 -1
- package/src/staging-admin.ts +2 -1
- package/src/state-backend.ts +3 -2
- package/src/state-command.test.ts +31 -0
- package/src/state-command.ts +35 -8
- package/src/state-migrate.test.ts +58 -7
- package/src/state-migrate.ts +48 -10
- package/src/state-pulumi.ts +20 -21
- package/src/static-security-headers.test.ts +124 -0
- package/src/static-security-headers.ts +154 -0
- package/src/static-svg-gcp.test.ts +133 -0
- package/src/static-svg-gcp.ts +140 -0
- package/src/upgrade/app-roll.ts +18 -7
- package/src/upgrade/backup.ts +14 -5
- package/src/upgrade/converge.ts +25 -7
- package/src/upgrade/gcp-lookup.test.ts +80 -1
- package/src/upgrade/gcp-lookup.ts +61 -11
- package/src/upgrade/health.test.ts +132 -8
- package/src/upgrade/health.ts +169 -31
- package/src/upgrade/release-images.test.ts +17 -0
- package/src/upgrade/release-images.ts +26 -14
- package/src/upgrade/reporter.ts +3 -0
- package/src/upgrade/upgrade.test.ts +137 -8
- package/src/upgrade/upgrade.ts +14 -2
- package/src/upgrader-gcp.ts +28 -13
- package/src/upgrader-iam-preflight.test.ts +6 -3
- package/src/upgrader-iam-preflight.ts +26 -5
- package/src/upgrader-job.ts +14 -6
- package/src/upgrader-reporter.ts +1 -0
- package/src/wizards/gcp-pulumi.test.ts +1 -1
- package/src/wizards/gcp-pulumi.ts +147 -38
- package/src/wizards/gcp.ts +89 -9
- package/src/wizards/stack-work-dir.test.ts +175 -0
- package/stacks/aws/index.ts +40 -0
- package/stacks/azure/index.ts +22 -1
- package/stacks/gcp/README.md +4 -0
- package/stacks/gcp/index.ts +6 -2
- package/stacks/gcp/Pulumi.production.yaml +0 -16
package/dist/upgrader-job.js
CHANGED
|
@@ -3,10 +3,10 @@ import { gcpNamePrefix, upgraderJobName } from "./gcp-names.js";
|
|
|
3
3
|
import { StateLockHeldError } from "./state-store.js";
|
|
4
4
|
import { executeAppRoll, planAppRoll, } from "./upgrade/app-roll.js";
|
|
5
5
|
import { restoreCommand, takeSqlBackup } from "./upgrade/backup.js";
|
|
6
|
-
import { findServingImage, resolveGcpResourceName, servingImageDigests, } from "./upgrade/gcp-lookup.js";
|
|
6
|
+
import { findServingImage, lookupFailure, resolveGcpResourceName, servingImageDigests, } from "./upgrade/gcp-lookup.js";
|
|
7
7
|
import { releaseImageRef } from "./upgrade/release-images.js";
|
|
8
8
|
import { assessUpgradeRequest } from "./upgrader-assess.js";
|
|
9
|
-
import { preflightErrorReason, preflightMissingReason, runIamPreflight, upgraderAccessChecks, } from "./upgrader-iam-preflight.js";
|
|
9
|
+
import { preflightErrorReason, preflightMissingReason, runIamPreflight, UPGRADER_PREFLIGHT_VOICE, upgraderAccessChecks, } from "./upgrader-iam-preflight.js";
|
|
10
10
|
import { findServingRelease, recordMatchesServing, } from "./upgrader-records.js";
|
|
11
11
|
import { eventReporter } from "./upgrader-reporter.js";
|
|
12
12
|
const ROLLED_PHASES = new Set(["roll", "health"]);
|
|
@@ -240,10 +240,10 @@ export async function runUpgraderJob(deps) {
|
|
|
240
240
|
// cannot match (#799) ends the run here, all of them named, not halfway.
|
|
241
241
|
const access = await runIamPreflight(upgraderAccessChecks({ projectId: deps.projectId, region: deps.region, env: deps.env }), deps.iam);
|
|
242
242
|
if (access.kind === "missing") {
|
|
243
|
-
return stopWith("needs_cloud_shell", ["iam-preflight"], preflightMissingReason(access.missing));
|
|
243
|
+
return stopWith("needs_cloud_shell", ["iam-preflight"], preflightMissingReason(access.missing, UPGRADER_PREFLIGHT_VOICE));
|
|
244
244
|
}
|
|
245
245
|
if (access.kind === "error") {
|
|
246
|
-
return stopWith("failed", ["iam-preflight"], preflightErrorReason(access.errors));
|
|
246
|
+
return stopWith("failed", ["iam-preflight"], preflightErrorReason(access.errors, UPGRADER_PREFLIGHT_VOICE));
|
|
247
247
|
}
|
|
248
248
|
r.info("The upgrader has every permission this update needs.");
|
|
249
249
|
const m = decision.manifest;
|
|
@@ -261,6 +261,7 @@ export async function runUpgraderJob(deps) {
|
|
|
261
261
|
env: deps.env,
|
|
262
262
|
domain: meta.domain,
|
|
263
263
|
stagingHost: meta.stagingDomain ?? `staging.${meta.domain}`,
|
|
264
|
+
credentials: "job",
|
|
264
265
|
}, images, deps.run);
|
|
265
266
|
if (!planned.ok) {
|
|
266
267
|
return stopWith("failed", ["plan"], `Nothing was changed: ${planned.error}.`);
|
|
@@ -275,7 +276,7 @@ export async function runUpgraderJob(deps) {
|
|
|
275
276
|
// 5. No backup, no change.
|
|
276
277
|
r.phase("backup");
|
|
277
278
|
const sBak = r.step("Backing up the database before anything changes...");
|
|
278
|
-
const backup = await takeSqlBackup(deps.run, { projectId: deps.projectId, env: deps.env }, `pre-upgrade to ${m.version}`, deps.now);
|
|
279
|
+
const backup = await takeSqlBackup(deps.run, { projectId: deps.projectId, env: deps.env, credentials: "job" }, `pre-upgrade to ${m.version}`, deps.now);
|
|
279
280
|
if (!backup.ok) {
|
|
280
281
|
sBak.failed(`Backup failed: ${backup.error}`);
|
|
281
282
|
return stopWith("failed", ["backup"], `The pre-upgrade database backup failed, so nothing was changed (${backup.error}). Try again later.`);
|
|
@@ -381,9 +382,10 @@ async function servingDigests(deps) {
|
|
|
381
382
|
for (const slug of ["admin", "gateway"]) {
|
|
382
383
|
const prefix = `${gcpNamePrefix(deps.env)}-${slug}`;
|
|
383
384
|
const service = await resolveGcpResourceName(deps.run, "run-service", prefix, deps.projectId, deps.region);
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
385
|
+
if (service.status !== "found") {
|
|
386
|
+
return { ok: false, error: lookupFailure(service, `${prefix}* Cloud Run service`, "job") };
|
|
387
|
+
}
|
|
388
|
+
const image = await findServingImage(deps.run, deps.projectId, deps.region, service.name);
|
|
387
389
|
if (!image)
|
|
388
390
|
return { ok: false, error: `could not read which image the ${slug} serves` };
|
|
389
391
|
digests[slug] = servingImageDigests(image);
|
package/dist/upgrader-job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader-job.js","sourceRoot":"","sources":["../src/upgrader-job.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrader-job.js","sourceRoot":"","sources":["../src/upgrader-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader-reporter.d.ts","sourceRoot":"","sources":["../src/upgrader-reporter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzE,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,yCAAyC;AACzC,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC,KAAK,IAAI,CAAC;AAEX,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,sEAAsE;IACtE,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,gDAAgD;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAUrE;AASD,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"upgrader-reporter.d.ts","sourceRoot":"","sources":["../src/upgrader-reporter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzE,4DAA4D;AAC5D,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,yCAAyC;AACzC,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC,KAAK,IAAI,CAAC;AAEX,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,sEAAsE;IACtE,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,gDAAgD;IAChD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAUrE;AASD,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CA2C5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader-reporter.js","sourceRoot":"","sources":["../src/upgrader-reporter.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,GAG1B,MAAM,mBAAmB,CAAC;AAwB3B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,sEAAsE;IACtE,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9D,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACrE,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,YAAY,CAAC;IACpE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,QAAQ,GAAmE;IAC/E,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,GAAW,EAAE,SAAiB;IAC3E,IAAI,OAAO,GAAwB,OAAO,CAAC;IAC3C,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,KAA+B,EAAE,OAAe,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,IAAI,cAAc,CAAC;QAClF,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACtB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YAC5C,GAAG,CAAC;gBACF,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,sCAAsC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC3F,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,CAAC;YACL,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK;YACR,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC;gBAAE,OAAO,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrader-reporter.js","sourceRoot":"","sources":["../src/upgrader-reporter.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;GAUG;AAEH,OAAO,EACL,yBAAyB,GAG1B,MAAM,mBAAmB,CAAC;AAwB3B;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,sEAAsE;IACtE,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9D,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IACrE,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC5E,IAAI,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,YAAY,CAAC;IACpE,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,QAAQ,GAAmE;IAC/E,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,0CAA0C;AAC1C,MAAM,UAAU,aAAa,CAAC,IAAe,EAAE,GAAW,EAAE,SAAiB;IAC3E,IAAI,OAAO,GAAwB,OAAO,CAAC;IAC3C,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,KAA+B,EAAE,OAAe,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,IAAI,cAAc,CAAC;QAClF,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CACtB,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;YAC5C,GAAG,CAAC;gBACF,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,sCAAsC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC3F,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,KAAK,CAAC,CAAC;YACL,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK;YACR,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC;gBAAE,OAAO,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;aACjC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACV,iEAAiE;YACjE,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC;gBAAE,OAAO,GAAG,UAAU,CAAC;YACvD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi/automation";
|
|
2
|
-
import type
|
|
2
|
+
import { type ImageDigests } from "../install-state.js";
|
|
3
|
+
import { type PlannedStep } from "../preview-plan.js";
|
|
3
4
|
import type { ResolvedBackend } from "../state-backend.js";
|
|
4
5
|
/**
|
|
5
6
|
* The §11.B knobs every wizard run sets (and the cost table prices). One
|
|
@@ -79,11 +80,44 @@ export interface PulumiUpResult {
|
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
83
|
+
* The stack program shipped in the package (`stacks/<provider>/`: its
|
|
84
|
+
* Pulumi.yaml and index.ts), whether the CLI runs from source or from the
|
|
85
|
+
* published tarball. Read-only at runtime: Pulumi runs in the install's own
|
|
86
|
+
* work dir (install-state.ts `stackWorkDir`, {@link prepareStackWorkDir}),
|
|
87
|
+
* never here.
|
|
85
88
|
*/
|
|
86
|
-
export declare function
|
|
89
|
+
export declare function packageStackDir(provider: "gcp" | "gcp-firebase"): string;
|
|
90
|
+
/**
|
|
91
|
+
* The package's project file with `main` pointing from `workDir` at the
|
|
92
|
+
* package's stack program, so Pulumi runs that program (its relative
|
|
93
|
+
* imports, tsconfig and node_modules resolve from the package) while the
|
|
94
|
+
* stack settings file stays in `workDir`. Pulumi joins `main` to the
|
|
95
|
+
* project dir, so it must be relative — and computed between real paths:
|
|
96
|
+
* Pulumi resolves the project dir through symlinks (macOS `/var` →
|
|
97
|
+
* `/private/var`, a symlinked home or package cache), so a path relative to
|
|
98
|
+
* the symlinked spelling points nowhere.
|
|
99
|
+
*
|
|
100
|
+
* @param programDir the package's stack dir, symlinks resolved
|
|
101
|
+
* @param workDir the install's work dir, symlinks resolved
|
|
102
|
+
*/
|
|
103
|
+
export declare function workDirProjectFile(projectYaml: string, programDir: string, workDir: string): string;
|
|
104
|
+
/**
|
|
105
|
+
* Create or refresh the install's stack work dir (install-state.ts
|
|
106
|
+
* `stackWorkDir`) and
|
|
107
|
+
* return it. The project file is rewritten on every run: each `bunx`
|
|
108
|
+
* version unpacks the package somewhere else. The settings file is left as
|
|
109
|
+
* it is (it is the install's own). Atomic (temp file + rename), so two runs
|
|
110
|
+
* for the same install never leave a half-written project file.
|
|
111
|
+
*/
|
|
112
|
+
export declare function prepareStackWorkDir(installRoot: string, provider: "gcp" | "gcp-firebase", programDir?: string): string;
|
|
113
|
+
/**
|
|
114
|
+
* Refuse to run Pulumi when the stack config names another project than
|
|
115
|
+
* the install's (#736, CLAUDE.md §2): a preview or `up` would plan the
|
|
116
|
+
* install's state against another install's project — replacing its
|
|
117
|
+
* Firebase site, buckets and IAM members. Defense in depth: each install
|
|
118
|
+
* has its own work dir, so nothing should ever put another project there.
|
|
119
|
+
*/
|
|
120
|
+
export declare function assertStackProject(stack: pulumi.Stack, provider: "gcp" | "gcp-firebase", projectId: string): Promise<void>;
|
|
87
121
|
/**
|
|
88
122
|
* The stack config keys that pin each Cloud Run service's image
|
|
89
123
|
* (`<ns>:image-digest-<service>`, read by `imageRef` / `imageTag` in the
|
|
@@ -105,6 +139,7 @@ export declare function imageDigestConfig(provider: "gcp" | "gcp-firebase", dige
|
|
|
105
139
|
* @returns the override keys it removed.
|
|
106
140
|
*/
|
|
107
141
|
export declare function writeImageDigestsToStack(inputs: {
|
|
142
|
+
installRoot: string;
|
|
108
143
|
backend: ResolvedBackend;
|
|
109
144
|
provider: "gcp" | "gcp-firebase";
|
|
110
145
|
digests: ImageDigests;
|
|
@@ -125,19 +160,19 @@ export declare function presentImageOverrides(provider: "gcp" | "gcp-firebase",
|
|
|
125
160
|
* @returns the output's value, or undefined when the stack has no such output
|
|
126
161
|
*/
|
|
127
162
|
export declare function readStackOutput(inputs: {
|
|
163
|
+
installRoot: string;
|
|
128
164
|
backend: ResolvedBackend;
|
|
129
165
|
provider: "gcp" | "gcp-firebase";
|
|
130
166
|
name: string;
|
|
131
167
|
}): Promise<unknown>;
|
|
132
168
|
/**
|
|
133
|
-
* The
|
|
134
|
-
*
|
|
135
|
-
* already fine (#696).
|
|
169
|
+
* The install's stack settings file with secrets settings that can't
|
|
170
|
+
* contradict its state, or null when it is already fine (#696).
|
|
136
171
|
*
|
|
137
|
-
* That file (`Pulumi.production.yaml
|
|
138
|
-
* state:
|
|
139
|
-
* provider
|
|
140
|
-
*
|
|
172
|
+
* That file (`Pulumi.production.yaml`, in the install's work dir) is not
|
|
173
|
+
* the state: `state migrate` moves the state to another backend and secrets
|
|
174
|
+
* provider, and the file can still name the old passphrase salt or KMS key.
|
|
175
|
+
* A file naming anything but the install's own
|
|
141
176
|
* KMS key loses its secrets-provider fields and the `secure:` values
|
|
142
177
|
* encrypted under them (no stack config the CLI sets is secret);
|
|
143
178
|
* `PULUMI_FALLBACK_TO_STATE_SECRETS_MANAGER` (resolveBackend) then makes
|
|
@@ -148,10 +183,12 @@ export declare function readStackOutput(inputs: {
|
|
|
148
183
|
*/
|
|
149
184
|
export declare function alignedStackSettings(settings: pulumi.StackSettings, backend: Pick<ResolvedBackend, "kind" | "secretsProvider">): pulumi.StackSettings | null;
|
|
150
185
|
/**
|
|
151
|
-
* Bring the
|
|
186
|
+
* Bring the install's stack settings file in line with its backend
|
|
152
187
|
* ({@link alignedStackSettings}) before Pulumi reads it.
|
|
188
|
+
*
|
|
189
|
+
* @param workDir the install's prepared work dir ({@link prepareStackWorkDir})
|
|
153
190
|
*/
|
|
154
|
-
export declare function alignStackSettingsFile(
|
|
191
|
+
export declare function alignStackSettingsFile(workDir: string, backend: ResolvedBackend): Promise<void>;
|
|
155
192
|
/**
|
|
156
193
|
* The environment for a Pulumi call that only touches the stack's state
|
|
157
194
|
* (select, config, outputs): the backend's variables, with ambient Google
|
|
@@ -160,8 +197,8 @@ export declare function alignStackSettingsFile(backend: ResolvedBackend, provide
|
|
|
160
197
|
* not a stray key file in the shell.
|
|
161
198
|
*/
|
|
162
199
|
export declare function stateOnlyEnv(backend: Pick<ResolvedBackend, "envVars">): Record<string, string>;
|
|
163
|
-
/** The install's existing stack, on its backend. */
|
|
164
|
-
export declare function selectInstallStack(backend: ResolvedBackend, provider: "gcp" | "gcp-firebase"): Promise<pulumi.Stack>;
|
|
200
|
+
/** The install's existing stack, on its backend, in its own work dir. */
|
|
201
|
+
export declare function selectInstallStack(installRoot: string, backend: ResolvedBackend, provider: "gcp" | "gcp-firebase"): Promise<pulumi.Stack>;
|
|
165
202
|
/**
|
|
166
203
|
* Pick the stack's `secretReplication` (see stacks/<provider>/index.ts).
|
|
167
204
|
* A value already in config wins. Otherwise secrets that already exist
|
|
@@ -181,8 +218,8 @@ export interface StateResource {
|
|
|
181
218
|
/**
|
|
182
219
|
* The region an existing stack was deployed in, read from its state (the
|
|
183
220
|
* stacks' explicit `gcp.Provider` carries it), or null for a stack with
|
|
184
|
-
* nothing deployed. State, not stack config: the
|
|
185
|
-
*
|
|
221
|
+
* nothing deployed. State, not stack config: the state is authoritative,
|
|
222
|
+
* and the settings file of an install from before #736 starts empty.
|
|
186
223
|
*/
|
|
187
224
|
export declare function deployedStackRegion(resources: ReadonlyArray<StateResource>): string | null;
|
|
188
225
|
/**
|
|
@@ -196,10 +233,10 @@ export type StackConfigInputs = Pick<PulumiUpInputs, "projectId" | "domain" | "s
|
|
|
196
233
|
};
|
|
197
234
|
/**
|
|
198
235
|
* Set every config value the stack reads, then its `secretReplication`
|
|
199
|
-
* ({@link resolveSecretReplication}). The
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
236
|
+
* ({@link resolveSecretReplication}). The wizard sets all of it before every
|
|
237
|
+
* `up`, so install.json stays the source of truth; `state migrate` sets it
|
|
238
|
+
* before the previews that prove a migration changed nothing (#696) when
|
|
239
|
+
* the install's settings file does not hold it yet.
|
|
203
240
|
*
|
|
204
241
|
* @returns the secret replication now configured
|
|
205
242
|
*/
|
|
@@ -224,10 +261,20 @@ export declare function applyStackConfig(stack: pulumi.Stack, inputs: StackConfi
|
|
|
224
261
|
* GCP provider plugin, not by the backend.
|
|
225
262
|
*/
|
|
226
263
|
export declare function pulumiGcpEnv(base: NodeJS.ProcessEnv, inputs: Pick<PulumiUpInputs, "backend" | "impersonateServiceAccount">): Record<string, string>;
|
|
264
|
+
/** Thrown when the review (preview-plan.ts planGate) stops `pulumi up` after the preview. */
|
|
265
|
+
export declare class PulumiUpDeclinedError extends Error {
|
|
266
|
+
readonly name = "PulumiUpDeclinedError";
|
|
267
|
+
}
|
|
227
268
|
/**
|
|
228
269
|
* Run `pulumi up` against the GCP stack via the Automation SDK.
|
|
229
270
|
* Streams resource-create events to the supplied onEvent callback so
|
|
230
271
|
* the wizard can render a live progress bar.
|
|
272
|
+
*
|
|
273
|
+
* On a stack that already holds resources, a preview runs first (#737) and
|
|
274
|
+
* `review` sees its planned steps: it lists them and decides (planGate)
|
|
275
|
+
* whether `up` may apply them. Nothing is applied when it says no.
|
|
276
|
+
*
|
|
277
|
+
* @throws PulumiUpDeclinedError when `review` declines the plan
|
|
231
278
|
*/
|
|
232
|
-
export declare function pulumiUpGcp(inputs: PulumiUpInputs, onEvent: (kind: "resource" | "error" | "log", message: string) => void): Promise<PulumiUpResult>;
|
|
279
|
+
export declare function pulumiUpGcp(inputs: PulumiUpInputs, onEvent: (kind: "resource" | "error" | "log", message: string) => void, review: (steps: readonly PlannedStep[]) => Promise<boolean>): Promise<PulumiUpResult>;
|
|
233
280
|
//# sourceMappingURL=gcp-pulumi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gcp-pulumi.d.ts","sourceRoot":"","sources":["../../src/wizards/gcp-pulumi.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,14 @@
|
|
|
9
9
|
* bucket + KMS key, or the local dir + passphrase of an older install),
|
|
10
10
|
* config and up; failures surface inline with provider errors.
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { mkdirSync, readFileSync, realpathSync, renameSync, writeFileSync } from "node:fs";
|
|
13
|
+
import { join, relative, resolve as resolvePath } from "node:path";
|
|
13
14
|
import * as pulumi from "@pulumi/pulumi/automation";
|
|
14
15
|
import { AUDIT_PARALLELISM_DEFAULT } from "../audit-job-setup.js";
|
|
15
16
|
import { checkpointableOutputs } from "../checkpoint-secrets.js";
|
|
16
17
|
import { GCP_STACK_ENV } from "../gcp-names.js";
|
|
18
|
+
import { stackWorkDir } from "../install-state.js";
|
|
19
|
+
import { collectPreviewSteps } from "../preview-plan.js";
|
|
17
20
|
import { AMBIENT_GOOGLE_CREDENTIAL_ENV, withoutAmbientGoogleCredentials, } from "../provisioner-identity.js";
|
|
18
21
|
import { ensureGeneratedSecrets, stackSecretReplication } from "../runtime-secrets.js";
|
|
19
22
|
import { ADMIN_MEMORY_DEFAULT } from "../stack-contract.js";
|
|
@@ -37,17 +40,73 @@ export const GCP_STACK_KNOB_DEFAULTS = {
|
|
|
37
40
|
auditParallelism: AUDIT_PARALLELISM_DEFAULT,
|
|
38
41
|
};
|
|
39
42
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
+
* The stack program shipped in the package (`stacks/<provider>/`: its
|
|
44
|
+
* Pulumi.yaml and index.ts), whether the CLI runs from source or from the
|
|
45
|
+
* published tarball. Read-only at runtime: Pulumi runs in the install's own
|
|
46
|
+
* work dir (install-state.ts `stackWorkDir`, {@link prepareStackWorkDir}),
|
|
47
|
+
* never here.
|
|
43
48
|
*/
|
|
44
|
-
export function
|
|
45
|
-
//
|
|
46
|
-
// tarball under `stacks/<provider>/`. From this file's location at
|
|
47
|
-
// runtime (dist/wizards/gcp-pulumi.js), the stack dir is two
|
|
48
|
-
// levels up + into the provider-specific stack folder.
|
|
49
|
+
export function packageStackDir(provider) {
|
|
50
|
+
// From this file at runtime (src/ or dist/wizards/), two levels up.
|
|
49
51
|
return resolvePath(import.meta.dir, `../../stacks/${provider}`);
|
|
50
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* The package's project file with `main` pointing from `workDir` at the
|
|
55
|
+
* package's stack program, so Pulumi runs that program (its relative
|
|
56
|
+
* imports, tsconfig and node_modules resolve from the package) while the
|
|
57
|
+
* stack settings file stays in `workDir`. Pulumi joins `main` to the
|
|
58
|
+
* project dir, so it must be relative — and computed between real paths:
|
|
59
|
+
* Pulumi resolves the project dir through symlinks (macOS `/var` →
|
|
60
|
+
* `/private/var`, a symlinked home or package cache), so a path relative to
|
|
61
|
+
* the symlinked spelling points nowhere.
|
|
62
|
+
*
|
|
63
|
+
* @param programDir the package's stack dir, symlinks resolved
|
|
64
|
+
* @param workDir the install's work dir, symlinks resolved
|
|
65
|
+
*/
|
|
66
|
+
export function workDirProjectFile(projectYaml, programDir, workDir) {
|
|
67
|
+
const mains = [...projectYaml.matchAll(/^main:\s*(\S+)\s*$/gm)];
|
|
68
|
+
if (mains.length !== 1) {
|
|
69
|
+
throw new Error(`${join(programDir, "Pulumi.yaml")} must name its program in exactly one top-level "main:" line (found ${mains.length}); the CLI points the install's stack work dir at it.`);
|
|
70
|
+
}
|
|
71
|
+
const program = resolvePath(programDir, mains[0][1]);
|
|
72
|
+
return projectYaml.replace(/^main:\s*\S+\s*$/m, `main: ${relative(workDir, program)}`);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create or refresh the install's stack work dir (install-state.ts
|
|
76
|
+
* `stackWorkDir`) and
|
|
77
|
+
* return it. The project file is rewritten on every run: each `bunx`
|
|
78
|
+
* version unpacks the package somewhere else. The settings file is left as
|
|
79
|
+
* it is (it is the install's own). Atomic (temp file + rename), so two runs
|
|
80
|
+
* for the same install never leave a half-written project file.
|
|
81
|
+
*/
|
|
82
|
+
export function prepareStackWorkDir(installRoot, provider, programDir = packageStackDir(provider)) {
|
|
83
|
+
const workDir = stackWorkDir(installRoot, provider);
|
|
84
|
+
mkdirSync(workDir, { recursive: true, mode: 0o700 });
|
|
85
|
+
const project = workDirProjectFile(readFileSync(join(programDir, "Pulumi.yaml"), "utf8"), realpathSync(programDir), realpathSync(workDir));
|
|
86
|
+
const target = join(workDir, "Pulumi.yaml");
|
|
87
|
+
const tmp = `${target}.${process.pid}.tmp`;
|
|
88
|
+
writeFileSync(tmp, project, { mode: 0o600 });
|
|
89
|
+
renameSync(tmp, target);
|
|
90
|
+
return workDir;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Refuse to run Pulumi when the stack config names another project than
|
|
94
|
+
* the install's (#736, CLAUDE.md §2): a preview or `up` would plan the
|
|
95
|
+
* install's state against another install's project — replacing its
|
|
96
|
+
* Firebase site, buckets and IAM members. Defense in depth: each install
|
|
97
|
+
* has its own work dir, so nothing should ever put another project there.
|
|
98
|
+
*/
|
|
99
|
+
export async function assertStackProject(stack, provider, projectId) {
|
|
100
|
+
const key = `caelo-${provider}:project`;
|
|
101
|
+
const configured = await stack.getConfig(key).then((v) => v.value, (e) => {
|
|
102
|
+
if (/not found/i.test(String(e)))
|
|
103
|
+
return undefined;
|
|
104
|
+
throw e;
|
|
105
|
+
});
|
|
106
|
+
if (configured !== projectId) {
|
|
107
|
+
throw new Error(`the stack config ${join(stack.workspace.workDir, `Pulumi.${GCP_STACK_ENV}.yaml`)} names project ${configured ?? "(none)"}, but this install is ${projectId}. Nothing was run. Delete that file and re-run: the CLI writes the install's config again.`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
51
110
|
/**
|
|
52
111
|
* The stack config keys that pin each Cloud Run service's image
|
|
53
112
|
* (`<ns>:image-digest-<service>`, read by `imageRef` / `imageTag` in the
|
|
@@ -72,12 +131,12 @@ export function imageDigestConfig(provider, digests) {
|
|
|
72
131
|
* @returns the override keys it removed.
|
|
73
132
|
*/
|
|
74
133
|
export async function writeImageDigestsToStack(inputs) {
|
|
75
|
-
const stack = await selectInstallStack(inputs.backend, inputs.provider);
|
|
134
|
+
const stack = await selectInstallStack(inputs.installRoot, inputs.backend, inputs.provider);
|
|
76
135
|
await stack.setAllConfig(imageDigestConfig(inputs.provider, inputs.digests));
|
|
77
136
|
// Read the settings file, not `getAllConfig()`: `pulumi config` refuses
|
|
78
137
|
// to list a stack whose required keys (domain, project, …) are unset, and
|
|
79
|
-
//
|
|
80
|
-
//
|
|
138
|
+
// a settings file the installer never wrote (an install from before the
|
|
139
|
+
// per-install work dir, #736) holds only what this call just wrote.
|
|
81
140
|
const settings = await stack.workspace.stackSettings(stack.name);
|
|
82
141
|
const removedOverrides = presentImageOverrides(inputs.provider, settings.config);
|
|
83
142
|
if (removedOverrides.length > 0)
|
|
@@ -100,19 +159,18 @@ export function presentImageOverrides(provider, config) {
|
|
|
100
159
|
* @returns the output's value, or undefined when the stack has no such output
|
|
101
160
|
*/
|
|
102
161
|
export async function readStackOutput(inputs) {
|
|
103
|
-
const stack = await selectInstallStack(inputs.backend, inputs.provider);
|
|
162
|
+
const stack = await selectInstallStack(inputs.installRoot, inputs.backend, inputs.provider);
|
|
104
163
|
const outputs = await stack.outputs();
|
|
105
164
|
return outputs[inputs.name]?.value;
|
|
106
165
|
}
|
|
107
166
|
/**
|
|
108
|
-
* The
|
|
109
|
-
*
|
|
110
|
-
* already fine (#696).
|
|
167
|
+
* The install's stack settings file with secrets settings that can't
|
|
168
|
+
* contradict its state, or null when it is already fine (#696).
|
|
111
169
|
*
|
|
112
|
-
* That file (`Pulumi.production.yaml
|
|
113
|
-
* state:
|
|
114
|
-
* provider
|
|
115
|
-
*
|
|
170
|
+
* That file (`Pulumi.production.yaml`, in the install's work dir) is not
|
|
171
|
+
* the state: `state migrate` moves the state to another backend and secrets
|
|
172
|
+
* provider, and the file can still name the old passphrase salt or KMS key.
|
|
173
|
+
* A file naming anything but the install's own
|
|
116
174
|
* KMS key loses its secrets-provider fields and the `secure:` values
|
|
117
175
|
* encrypted under them (no stack config the CLI sets is secret);
|
|
118
176
|
* `PULUMI_FALLBACK_TO_STATE_SECRETS_MANAGER` (resolveBackend) then makes
|
|
@@ -136,14 +194,13 @@ export function alignedStackSettings(settings, backend) {
|
|
|
136
194
|
return { ...rest, config: kept };
|
|
137
195
|
}
|
|
138
196
|
/**
|
|
139
|
-
* Bring the
|
|
197
|
+
* Bring the install's stack settings file in line with its backend
|
|
140
198
|
* ({@link alignedStackSettings}) before Pulumi reads it.
|
|
199
|
+
*
|
|
200
|
+
* @param workDir the install's prepared work dir ({@link prepareStackWorkDir})
|
|
141
201
|
*/
|
|
142
|
-
export async function alignStackSettingsFile(
|
|
143
|
-
const ws = await pulumi.LocalWorkspace.create({
|
|
144
|
-
workDir: gcpStackWorkDir(provider),
|
|
145
|
-
envVars: stateOnlyEnv(backend),
|
|
146
|
-
});
|
|
202
|
+
export async function alignStackSettingsFile(workDir, backend) {
|
|
203
|
+
const ws = await pulumi.LocalWorkspace.create({ workDir, envVars: stateOnlyEnv(backend) });
|
|
147
204
|
let settings;
|
|
148
205
|
try {
|
|
149
206
|
settings = await ws.stackSettings(GCP_STACK_ENV);
|
|
@@ -170,10 +227,11 @@ export function stateOnlyEnv(backend) {
|
|
|
170
227
|
...backend.envVars,
|
|
171
228
|
};
|
|
172
229
|
}
|
|
173
|
-
/** The install's existing stack, on its backend. */
|
|
174
|
-
export async function selectInstallStack(backend, provider) {
|
|
175
|
-
|
|
176
|
-
|
|
230
|
+
/** The install's existing stack, on its backend, in its own work dir. */
|
|
231
|
+
export async function selectInstallStack(installRoot, backend, provider) {
|
|
232
|
+
const workDir = prepareStackWorkDir(installRoot, provider);
|
|
233
|
+
await alignStackSettingsFile(workDir, backend);
|
|
234
|
+
return pulumi.LocalWorkspace.selectStack({ stackName: GCP_STACK_ENV, workDir }, { envVars: stateOnlyEnv(backend) });
|
|
177
235
|
}
|
|
178
236
|
/**
|
|
179
237
|
* Stack config keys that override the image a service runs, ahead of the
|
|
@@ -205,8 +263,8 @@ export function resolveSecretReplication(configured, stateResources) {
|
|
|
205
263
|
/**
|
|
206
264
|
* The region an existing stack was deployed in, read from its state (the
|
|
207
265
|
* stacks' explicit `gcp.Provider` carries it), or null for a stack with
|
|
208
|
-
* nothing deployed. State, not stack config: the
|
|
209
|
-
*
|
|
266
|
+
* nothing deployed. State, not stack config: the state is authoritative,
|
|
267
|
+
* and the settings file of an install from before #736 starts empty.
|
|
210
268
|
*/
|
|
211
269
|
export function deployedStackRegion(resources) {
|
|
212
270
|
const regions = new Set(resources
|
|
@@ -229,10 +287,10 @@ export function assertStackRegion(deployed, requested) {
|
|
|
229
287
|
}
|
|
230
288
|
/**
|
|
231
289
|
* Set every config value the stack reads, then its `secretReplication`
|
|
232
|
-
* ({@link resolveSecretReplication}). The
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
290
|
+
* ({@link resolveSecretReplication}). The wizard sets all of it before every
|
|
291
|
+
* `up`, so install.json stays the source of truth; `state migrate` sets it
|
|
292
|
+
* before the previews that prove a migration changed nothing (#696) when
|
|
293
|
+
* the install's settings file does not hold it yet.
|
|
236
294
|
*
|
|
237
295
|
* @returns the secret replication now configured
|
|
238
296
|
*/
|
|
@@ -298,17 +356,27 @@ export function pulumiGcpEnv(base, inputs) {
|
|
|
298
356
|
...inputs.backend.envVars,
|
|
299
357
|
};
|
|
300
358
|
}
|
|
359
|
+
/** Thrown when the review (preview-plan.ts planGate) stops `pulumi up` after the preview. */
|
|
360
|
+
export class PulumiUpDeclinedError extends Error {
|
|
361
|
+
name = "PulumiUpDeclinedError";
|
|
362
|
+
}
|
|
301
363
|
/**
|
|
302
364
|
* Run `pulumi up` against the GCP stack via the Automation SDK.
|
|
303
365
|
* Streams resource-create events to the supplied onEvent callback so
|
|
304
366
|
* the wizard can render a live progress bar.
|
|
367
|
+
*
|
|
368
|
+
* On a stack that already holds resources, a preview runs first (#737) and
|
|
369
|
+
* `review` sees its planned steps: it lists them and decides (planGate)
|
|
370
|
+
* whether `up` may apply them. Nothing is applied when it says no.
|
|
371
|
+
*
|
|
372
|
+
* @throws PulumiUpDeclinedError when `review` declines the plan
|
|
305
373
|
*/
|
|
306
|
-
export async function pulumiUpGcp(inputs, onEvent) {
|
|
374
|
+
export async function pulumiUpGcp(inputs, onEvent, review) {
|
|
307
375
|
const env = pulumiGcpEnv(process.env, inputs);
|
|
308
376
|
const provider = inputs.provider ?? "gcp";
|
|
309
377
|
const stackName = GCP_STACK_ENV;
|
|
310
|
-
const workDir =
|
|
311
|
-
await alignStackSettingsFile(inputs.backend
|
|
378
|
+
const workDir = prepareStackWorkDir(inputs.installRoot, provider);
|
|
379
|
+
await alignStackSettingsFile(workDir, inputs.backend);
|
|
312
380
|
const workspaceOpts = {
|
|
313
381
|
envVars: env,
|
|
314
382
|
// Used when the stack is created: a new install's secrets are
|
|
@@ -341,7 +409,18 @@ export async function pulumiUpGcp(inputs, onEvent) {
|
|
|
341
409
|
onEvent("log", `created ${o.id} (${o.detail})\n`);
|
|
342
410
|
}
|
|
343
411
|
// Refresh state first to detect drift from any out-of-band changes.
|
|
412
|
+
await assertStackProject(stack, provider, inputs.projectId);
|
|
344
413
|
await stack.refresh({ onOutput: (msg) => onEvent("log", msg) });
|
|
414
|
+
// #737 — never `up` a deployed stack blind: list what it would change
|
|
415
|
+
// (replaces and deletes first) and let the review stop it. A first run
|
|
416
|
+
// on an empty stack only creates, so it skips the extra preview.
|
|
417
|
+
if (stateResources.length > 0) {
|
|
418
|
+
const collector = collectPreviewSteps();
|
|
419
|
+
await stack.preview({ onEvent: collector.onEvent });
|
|
420
|
+
if (!(await review(collector.steps()))) {
|
|
421
|
+
throw new PulumiUpDeclinedError("pulumi up was not run: the planned changes were declined.");
|
|
422
|
+
}
|
|
423
|
+
}
|
|
345
424
|
// Run `up`. The onEvent callback receives the same JSON-RPC events
|
|
346
425
|
// Pulumi prints to stdout in --json mode.
|
|
347
426
|
const result = await stack.up({
|