redkite 0.1.7 → 0.1.8

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 (109) hide show
  1. package/README.md +313 -25
  2. package/dist/checks.d.ts.map +1 -1
  3. package/dist/checks.js +4 -0
  4. package/dist/checks.js.map +1 -1
  5. package/dist/cli/agent.d.ts +2 -0
  6. package/dist/cli/agent.d.ts.map +1 -1
  7. package/dist/cli/agent.js +23 -1
  8. package/dist/cli/agent.js.map +1 -1
  9. package/dist/cli/index.d.ts.map +1 -1
  10. package/dist/cli/index.js +98 -30
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +16 -1
  14. package/dist/config.js.map +1 -1
  15. package/dist/deploy.d.ts +4 -1
  16. package/dist/deploy.d.ts.map +1 -1
  17. package/dist/deploy.js +77 -23
  18. package/dist/deploy.js.map +1 -1
  19. package/dist/dockerfile.js +6 -7
  20. package/dist/dockerfile.js.map +1 -1
  21. package/dist/environment.d.ts +5 -0
  22. package/dist/environment.d.ts.map +1 -0
  23. package/dist/environment.js +20 -0
  24. package/dist/environment.js.map +1 -0
  25. package/dist/host.d.ts +2 -0
  26. package/dist/host.d.ts.map +1 -1
  27. package/dist/host.js +6 -0
  28. package/dist/host.js.map +1 -1
  29. package/dist/index.d.ts +4 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +4 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/localHost.d.ts.map +1 -1
  34. package/dist/localHost.js +2 -0
  35. package/dist/localHost.js.map +1 -1
  36. package/dist/plugin.d.ts +15 -0
  37. package/dist/plugin.d.ts.map +1 -0
  38. package/dist/plugin.js +21 -0
  39. package/dist/plugin.js.map +1 -0
  40. package/dist/plugins/bitwarden.d.ts +11 -0
  41. package/dist/plugins/bitwarden.d.ts.map +1 -0
  42. package/dist/plugins/bitwarden.js +40 -0
  43. package/dist/plugins/bitwarden.js.map +1 -0
  44. package/dist/plugins/digitalOcean.d.ts +19 -0
  45. package/dist/plugins/digitalOcean.d.ts.map +1 -0
  46. package/dist/plugins/digitalOcean.js +71 -0
  47. package/dist/plugins/digitalOcean.js.map +1 -0
  48. package/dist/plugins/index.d.ts +5 -0
  49. package/dist/plugins/index.d.ts.map +1 -0
  50. package/dist/plugins/index.js +5 -0
  51. package/dist/plugins/index.js.map +1 -0
  52. package/dist/plugins/rds.d.ts +14 -0
  53. package/dist/plugins/rds.d.ts.map +1 -0
  54. package/dist/plugins/rds.js +86 -0
  55. package/dist/plugins/rds.js.map +1 -0
  56. package/dist/plugins/snapshot.d.ts +7 -0
  57. package/dist/plugins/snapshot.d.ts.map +1 -0
  58. package/dist/plugins/snapshot.js +29 -0
  59. package/dist/plugins/snapshot.js.map +1 -0
  60. package/dist/presets/nodeApp.d.ts +1 -2
  61. package/dist/presets/nodeApp.d.ts.map +1 -1
  62. package/dist/presets/nodeApp.js +0 -1
  63. package/dist/presets/nodeApp.js.map +1 -1
  64. package/dist/recover.d.ts +19 -0
  65. package/dist/recover.d.ts.map +1 -0
  66. package/dist/recover.js +58 -0
  67. package/dist/recover.js.map +1 -0
  68. package/dist/secrets/store.d.ts +5 -2
  69. package/dist/secrets/store.d.ts.map +1 -1
  70. package/dist/secrets/store.js +25 -14
  71. package/dist/secrets/store.js.map +1 -1
  72. package/dist/sshHost.d.ts +2 -0
  73. package/dist/sshHost.d.ts.map +1 -1
  74. package/dist/sshHost.js +29 -11
  75. package/dist/sshHost.js.map +1 -1
  76. package/dist/steps.d.ts +0 -7
  77. package/dist/steps.d.ts.map +1 -1
  78. package/dist/steps.js +6 -3
  79. package/dist/steps.js.map +1 -1
  80. package/dist/types.d.ts +4 -5
  81. package/dist/types.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/src/checks.ts +4 -0
  84. package/src/cli/agent.ts +28 -1
  85. package/src/cli/index.ts +118 -29
  86. package/src/config.ts +19 -1
  87. package/src/deploy.ts +101 -29
  88. package/src/dockerfile.ts +7 -11
  89. package/src/environment.ts +24 -0
  90. package/src/host.ts +11 -0
  91. package/src/index.ts +4 -1
  92. package/src/localHost.ts +3 -0
  93. package/src/plugin.ts +50 -0
  94. package/src/plugins/bitwarden.ts +57 -0
  95. package/src/plugins/digitalOcean.ts +111 -0
  96. package/src/plugins/index.ts +4 -0
  97. package/src/plugins/rds.ts +126 -0
  98. package/src/plugins/snapshot.ts +44 -0
  99. package/src/presets/nodeApp.ts +1 -3
  100. package/src/recover.ts +90 -0
  101. package/src/secrets/store.ts +39 -20
  102. package/src/sshHost.ts +35 -11
  103. package/src/steps.ts +7 -6
  104. package/src/types.ts +22 -12
  105. package/dist/secrets/bitwarden.d.ts +0 -3
  106. package/dist/secrets/bitwarden.d.ts.map +0 -1
  107. package/dist/secrets/bitwarden.js +0 -6
  108. package/dist/secrets/bitwarden.js.map +0 -1
  109. package/src/secrets/bitwarden.ts +0 -7
package/dist/cli/index.js CHANGED
@@ -6,11 +6,12 @@ import { silent } from "../log.js";
6
6
  import { renderNginx } from "../nginx.js";
7
7
  import { addressOf, RUNS, SLOTS } from "../pipeline.js";
8
8
  import { listRefs } from "../secrets/refs.js";
9
- import { bitwardenStore } from "../secrets/store.js";
9
+ import { pluginSteps, storeFor } from "../plugin.js";
10
+ import { down, rollback } from "../recover.js";
10
11
  import { driftOf, plannedServices } from "../services/planned.js";
11
12
  import { sshHost } from "../sshHost.js";
12
13
  import { topologyFor } from "../topology.js";
13
- import { requireAgent } from "./agent.js";
14
+ import { needsAgent, requireAgent } from "./agent.js";
14
15
  import { loadConfig } from "./config.js";
15
16
  import { createLog, describeFailure } from "./log.js";
16
17
  // One command that reads the config and does everything under it: the agent,
@@ -20,6 +21,8 @@ const USAGE = `redkite <command> [environment]
20
21
  plan [environment] Print the derived topology, the pipeline and the nginx
21
22
  deploy [environment] Build, swap, health check, and revert on failure
22
23
  verify [environment] Bring the services up, build, and run each app's checks
24
+ rollback [environment] Put back any app a run moved and did not finish
25
+ down [environment] Stop everything this environment named
23
26
 
24
27
  --config <path> Defaults to redkite.config.ts at the root of the project
25
28
  --local Build the images here and ship them to the host
@@ -39,6 +42,7 @@ function measured(host, log) {
39
42
  cache: host.cache,
40
43
  pipe: host.pipe.bind(host),
41
44
  stop: host.stop.bind(host),
45
+ final: host.final.bind(host),
42
46
  sh: async (command, onLine) => {
43
47
  const started = Date.now();
44
48
  const result = await host.sh(command, onLine);
@@ -114,6 +118,9 @@ async function dispatch(argv) {
114
118
  const configPath = flag(argv, "--config");
115
119
  if (command === "plan")
116
120
  return await plan(environment, configPath);
121
+ if (command === "rollback" || command === "down") {
122
+ return await recover(command, environment, configPath);
123
+ }
117
124
  if (command === "deploy" || command === "verify") {
118
125
  return await run(command, environment, configPath, {
119
126
  verbose: argv.includes("--verbose"),
@@ -124,6 +131,38 @@ async function dispatch(argv) {
124
131
  process.stdout.write(USAGE);
125
132
  process.exitCode = command ? 1 : 0;
126
133
  }
134
+ // Neither runs a pipeline. Both exist for the run that was killed rather than
135
+ // asked to stop, so they read what the host is in rather than what a deploy
136
+ // remembered, and both are safe where there is nothing to do
137
+ async function recover(command, environment, configPath) {
138
+ const config = await loadConfig(configPath);
139
+ const topology = topologyFor(config, environment);
140
+ const deployHost = environmentOf(config, environment)?.host;
141
+ const say = (message = "") => process.stdout.write(`${message}\n`);
142
+ if (needsAgent(config, environment))
143
+ requireAgent(say);
144
+ const host = await hostFor(deployHost, silent);
145
+ try {
146
+ if (command === "down") {
147
+ const { stopped } = await down({ config, environment, host, log: asLog(say) });
148
+ say(stopped.length === 0 ? "Nothing was running" : `Stopped ${stopped.join(", ")}`);
149
+ return;
150
+ }
151
+ const { restored } = await rollback({ config, environment, host, log: asLog(say) });
152
+ if (restored.length === 0) {
153
+ return say(`Nothing to put back in ${topology.environment}`);
154
+ }
155
+ say(`Put back ${restored.join(", ")}`);
156
+ }
157
+ finally {
158
+ await host.close?.();
159
+ }
160
+ }
161
+ // These print rather than draw: a recovery runs after the view has gone, and
162
+ // often in a job that is already being torn down
163
+ function asLog(say) {
164
+ return Object.assign(say, { warn: say, fail: say, done: say, step: () => silent.step("") });
165
+ }
127
166
  async function plan(environment, configPath) {
128
167
  const config = await loadConfig(configPath);
129
168
  const topology = topologyFor(config, environment);
@@ -159,6 +198,7 @@ async function plan(environment, configPath) {
159
198
  // An environment that publishes nothing cannot serve, so verify is the only
160
199
  // run it supports. Nothing declares that: the missing port is what says it
161
200
  const serves = Boolean(topology.publicPort);
201
+ sayPlugins(config, say);
162
202
  sayPipeline(config, serves, say);
163
203
  await sayDrift(config, topology, serves ? "deploy" : "verify", say);
164
204
  if (!serves)
@@ -198,11 +238,34 @@ const DRIFT = {
198
238
  changed: "created from an earlier version of this file",
199
239
  unrecognised: "not created by redkite, will be recreated",
200
240
  };
241
+ // Everything this deployment opted into. A vault that is missing from here is
242
+ // the reason its refs will not resolve, and that is worth seeing before a run
243
+ function sayPlugins(config, say) {
244
+ const plugins = config.plugins ?? [];
245
+ if (plugins.length === 0)
246
+ return;
247
+ say("\nplugins");
248
+ for (const plugin of plugins) {
249
+ const stores = Object.keys(plugin.stores ?? {});
250
+ const resolves = stores.length > 0 ? ` resolves ${stores.join(", ")}` : "";
251
+ const count = plugin.steps?.length ?? 0;
252
+ say(` ${plugin.name}${gap(plugin.name.length)}${count} ${count === 1 ? "step" : "steps"}${resolves}`);
253
+ }
254
+ }
255
+ const COLUMN = 26;
256
+ function gap(width) {
257
+ return " ".repeat(Math.max(2, COLUMN - width));
258
+ }
201
259
  // What each run will actually do, in the order it will do it. A step is
202
260
  // addressed rather than called, so this is the only place a sequence is visible
203
261
  function sayPipeline(config, serves, say) {
204
- const steps = config.steps ?? [];
262
+ // What the run will walk, which is the plugins' steps and then the
263
+ // deployment's own. A plan that showed only one of them would be a plan of a
264
+ // different deploy
265
+ const steps = [...pluginSteps(config.plugins), ...(config.steps ?? [])];
205
266
  const added = new Set(steps.map((step) => step.point));
267
+ // Says which plugin a step came from, because a point on its own does not
268
+ const from = new Map((config.plugins ?? []).flatMap((plugin) => (plugin.steps ?? []).map((step) => [step.point, plugin.name])));
206
269
  const at = (phase, slot) => steps.filter((step) => {
207
270
  const address = addressOf(step.point);
208
271
  return address.phase === phase && address.slot === slot && step.point !== phase;
@@ -226,8 +289,14 @@ function sayPipeline(config, serves, say) {
226
289
  const what = phase === "verify" ? ` ${checked.join(", ")}` : "";
227
290
  say(` ${phase.padEnd(26)}${who}${what}`);
228
291
  }
229
- for (const step of at(phase, slot))
230
- say(` ${step.point}`);
292
+ for (const step of at(phase, slot)) {
293
+ const owner = from.get(step.point);
294
+ if (!owner)
295
+ say(` ${step.point}`);
296
+ // A point long enough to fill the column still gets its two spaces
297
+ else
298
+ say(` ${step.point}${gap(step.point.length)}${owner}`);
299
+ }
231
300
  }
232
301
  }
233
302
  }
@@ -304,7 +373,7 @@ async function hostFor(host, log, signal) {
304
373
  return await localHost({ signal });
305
374
  const task = log.step(`Opening a connection to ${host.bastion}`);
306
375
  try {
307
- const opened = await sshHost(host.bastion, { signal });
376
+ const opened = await sshHost(host.bastion, { signal, hostKeys: host.hostKeys });
308
377
  task.done();
309
378
  return opened;
310
379
  }
@@ -315,6 +384,9 @@ async function hostFor(host, log, signal) {
315
384
  }
316
385
  // Only the stores the config actually names. A deployment that keeps its
317
386
  // environment somewhere else, or nowhere, needs no credentials to deploy
387
+ // One store per provider a ref names, opened from the plugins the deployment
388
+ // registered. Nothing is opened for a deployment that names no refs, and a ref
389
+ // no plugin answers for is refused rather than reaching for a vault by name
318
390
  async function openStores(config, log) {
319
391
  // Services name refs too, and a deployment whose only secret is a database
320
392
  // password opened no store at all until this counted them
@@ -325,30 +397,24 @@ async function openStores(config, log) {
325
397
  ]),
326
398
  ...config.services.flatMap((service) => listRefs(service.secrets)),
327
399
  ];
328
- const providers = new Set(refs.map((ref) => ref.provider));
329
- if (!providers.has("bitwarden"))
330
- return {};
331
- const vault = log.step("Reading the vault");
332
- try {
333
- const bitwarden = await bitwardenStore({
334
- detail: vault.detail,
335
- clientId: required("BW_CLIENT_ID"),
336
- clientSecret: required("BW_CLIENT_SECRET"),
337
- password: required("BW_PASSWORD"),
338
- });
339
- vault.done();
340
- return { bitwarden };
341
- }
342
- catch (error) {
343
- vault.fail("Could not read the vault");
344
- throw error;
400
+ const opened = {};
401
+ for (const provider of new Set(refs.map((ref) => ref.provider))) {
402
+ const open = storeFor(config.plugins, provider);
403
+ if (!open) {
404
+ throw new Error(`Nothing resolves ${provider} secrets. Add the plugin that does to ` +
405
+ "the plugins this deployment registers");
406
+ }
407
+ const task = log.step(`Reading the ${provider} vault`);
408
+ try {
409
+ opened[provider] = await open({ detail: task.detail });
410
+ task.done();
411
+ }
412
+ catch (error) {
413
+ task.fail(`Could not read the ${provider} vault`);
414
+ throw error;
415
+ }
345
416
  }
346
- }
347
- function required(name) {
348
- const value = process.env[name];
349
- if (value)
350
- return value;
351
- throw new Error(`${name} is not set, and this deployment reads its environment from Bitwarden`);
417
+ return opened;
352
418
  }
353
419
  async function run(kind, environment, configPath, options) {
354
420
  const config = await loadConfig(configPath);
@@ -358,7 +424,9 @@ async function run(kind, environment, configPath, options) {
358
424
  // The host clones the repositories over this, so it has to exist before the
359
425
  // connection that forwards it is opened. Before the view too: ssh-add asks
360
426
  // for a passphrase on the terminal, and by then the view owns it
361
- requireAgent((message) => process.stderr.write(`${message}\n`));
427
+ if (needsAgent(config, environment)) {
428
+ requireAgent((message) => process.stderr.write(`${message}\n`));
429
+ }
362
430
  // Whatever is in flight is killed, the pipeline unwinds through its own
363
431
  // failure path, and the finally below removes the scratch directory
364
432
  const stopping = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,2BAE7D;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,EACpF,MAAM,EAAE,CAAC,GACR,CAAC,CAOH;AAID,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAEhF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,2BAE7D;AAMD,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,KAAK,CAAA;CAAE,EACpF,MAAM,EAAE,CAAC,GACR,CAAC,CAUH;AAID,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAEhF"}
package/dist/config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { assertSteps } from "./pipeline.js";
2
+ import { pluginSteps } from "./plugin.js";
2
3
  // The one selected, from the one place worth looking. A deployment that carries
3
4
  // its own overrides every file, which is what makes it an override rather than
4
5
  // a default nobody can displace
@@ -14,7 +15,10 @@ export function defineDeployment(config) {
14
15
  assertOneSource(config);
15
16
  assertRoutesResolvable(config);
16
17
  assertDirsRelative(config);
17
- assertSteps(config.steps ?? []);
18
+ assertUniquePlugins(config);
19
+ // Together, because a plugin's step and the deployment's own share the same
20
+ // points and two of them at one point is the collision worth catching
21
+ assertSteps([...pluginSteps(config.plugins), ...(config.steps ?? [])]);
18
22
  return config;
19
23
  }
20
24
  // Identity, for the environment a redkite.<name>.config.ts holds. It pins the
@@ -22,6 +26,17 @@ export function defineDeployment(config) {
22
26
  export function defineEnvironment(environment) {
23
27
  return environment;
24
28
  }
29
+ // Registering one twice is either a mistake or two configurations of the same
30
+ // thing, and neither is something to pick a winner for
31
+ function assertUniquePlugins(config) {
32
+ const seen = new Set();
33
+ for (const plugin of config.plugins ?? []) {
34
+ if (seen.has(plugin.name)) {
35
+ throw new Error(`The plugin ${plugin.name} is registered twice`);
36
+ }
37
+ seen.add(plugin.name);
38
+ }
39
+ }
25
40
  // Cloned or already here, and the two are built differently enough that
26
41
  // guessing between them is worse than being told
27
42
  function assertOneSource(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/deploy.d.ts CHANGED
@@ -1,8 +1,10 @@
1
+ import { Docker } from "./docker.js";
1
2
  import { type HealthDeps } from "./health.js";
2
- import type { Host } from "./host.js";
3
+ import { type Host } from "./host.js";
3
4
  import { type Log } from "./log.js";
4
5
  import { type Finished } from "./pipeline.js";
5
6
  import { type SecretStores } from "./secrets/refs.js";
7
+ import { type AppTopology, type Topology } from "./topology.js";
6
8
  import type { Deployment } from "./types.js";
7
9
  export type DeployOptions = {
8
10
  config: Deployment;
@@ -16,4 +18,5 @@ export type DeployOptions = {
16
18
  };
17
19
  export declare function deploy(options: DeployOptions): Promise<Finished>;
18
20
  export declare function verify(options: DeployOptions): Promise<Finished>;
21
+ export declare function revert(docker: Docker, topology: Topology, app: AppTopology): Promise<boolean>;
19
22
  //# sourceMappingURL=deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAQL,KAAK,QAAQ,EAMd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIxE,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,YAAY,CAAC;AAWtD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,EAAE,YAAY,CAAC;IAGtB,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEtE;AAID,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEtE"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAa,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAQL,KAAK,QAAQ,EAMd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EAAe,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,YAAY,CAAC;AAWtD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,EAAE,YAAY,CAAC;IAGtB,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEtE;AAID,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEtE;AAwWD,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,oBAkBhF"}
package/dist/deploy.js CHANGED
@@ -2,10 +2,13 @@ import { build } from "./build.js";
2
2
  import { assertCheckable, runChecks } from "./checks.js";
3
3
  import { environmentOf } from "./config.js";
4
4
  import { Docker } from "./docker.js";
5
+ import { envFileFor } from "./environment.js";
5
6
  import { healthcheck } from "./health.js";
7
+ import { finalHost } from "./host.js";
6
8
  import { localHost } from "./localHost.js";
7
9
  import { silent } from "./log.js";
8
10
  import { defineStep, merge, runPipeline, } from "./pipeline.js";
11
+ import { pluginSteps } from "./plugin.js";
9
12
  import { readEnv, readRef } from "./secrets/refs.js";
10
13
  import { ensureService } from "./services/ensure.js";
11
14
  import { plannedServices } from "./services/planned.js";
@@ -30,8 +33,10 @@ async function start(run, options) {
30
33
  log,
31
34
  run,
32
35
  };
33
- const steps = merge(supplied(options), options.config.steps ?? []);
34
- return await runPipeline(run, steps, setting, options.signal);
36
+ // A plugin's steps lead, so a snapshot listed as a plugin runs above the
37
+ // migration the deployment writes after it
38
+ const added = [...pluginSteps(options.config.plugins), ...(options.config.steps ?? [])];
39
+ return await runPipeline(run, merge(supplied(options), added), setting, options.signal);
35
40
  }
36
41
  // Every step redkite supplies, in the order the phases name. A run walks the
37
42
  // phases it has, so the ones it does not are never ordered in
@@ -93,24 +98,46 @@ async function release(input, context, health) {
93
98
  // Keyed by name rather than by index: appOf resolves the topology, and two
94
99
  // lists walked in step is a bug waiting for someone to reorder one
95
100
  const environments = new Map(context.config.apps.map((app) => [app.name, app.environment ?? {}]));
96
- task.detail("retiring the running containers");
97
- await Promise.all(apps.map((app) => retire(docker, topology, app)));
98
- task.detail("creating the new ones");
99
- await Promise.all(apps.map((app) => create(docker, topology, app, environments.get(app.name))));
100
- task.detail("starting them");
101
- await Promise.all(apps.map((app) => docker.container.start(app.container)));
102
- // One unhealthy app reverts all of them. A half-swapped deployment is the
103
- // one state nothing downstream knows how to reason about
104
- if (!(await checkAll(context, health))) {
105
- context.log.fail("Health checks failed, reverting");
106
- await Promise.all(apps.map((app) => revert(docker, topology, app)));
107
- return {
108
- ...input,
109
- ok: false,
110
- released: [],
111
- reverted: apps.map((app) => app.container),
112
- checked: [],
113
- };
101
+ // Resolved now and handed over when the container is made. Nothing from the
102
+ // vault is in the image, so this is the only way the running process sees it
103
+ const files = new Map(await Promise.all(context.config.apps.map(async (app) => [app.name, await envFileFor(app, context)])));
104
+ // What has actually been moved, rather than what was going to be. A stop
105
+ // lands between two docker commands, and only this says which side of it
106
+ const moved = [];
107
+ try {
108
+ task.detail("retiring the running containers");
109
+ await Promise.all(apps.map(async (app) => {
110
+ await retire(docker, topology, app);
111
+ moved.push(app);
112
+ }));
113
+ task.detail("creating the new ones");
114
+ await Promise.all(apps.map((app) => create(docker, topology, app, environments.get(app.name), files.get(app.name))));
115
+ task.detail("starting them");
116
+ await Promise.all(apps.map((app) => docker.container.start(app.container)));
117
+ // Inside, because the swap is not over until this says so. A stop lands
118
+ // here more often than anywhere else: it is the longest part, and by now
119
+ // every address has already moved
120
+ if (!(await checkAll(context, health))) {
121
+ context.log.fail("Health checks failed, reverting");
122
+ await Promise.all(apps.map((app) => revert(docker, topology, app)));
123
+ return {
124
+ ...input,
125
+ ok: false,
126
+ released: [],
127
+ reverted: apps.map((app) => app.container),
128
+ checked: [],
129
+ };
130
+ }
131
+ }
132
+ catch (error) {
133
+ // Whatever ended this, the addresses have moved and something has to put
134
+ // them back. A stop is the usual one, so the revert runs on a host that
135
+ // has been told to stop: it is the abort that made this necessary
136
+ if (moved.length > 0) {
137
+ context.log.fail(`Putting ${moved.length} back where they were`);
138
+ await putBack(context, moved);
139
+ }
140
+ throw error;
114
141
  }
115
142
  return {
116
143
  ...input,
@@ -120,6 +147,21 @@ async function release(input, context, health) {
120
147
  checked: [],
121
148
  };
122
149
  }
150
+ // Through a host with the stop lifted, because the commands that undo a swap
151
+ // cannot be refused by the same signal that interrupted it. One app failing to
152
+ // go back must not stop the others, so each is settled on its own
153
+ async function putBack(context, moved) {
154
+ const docker = new Docker(finalHost(context.host));
155
+ const put = moved.map(async (app) => {
156
+ try {
157
+ await revert(docker, context.topology, app);
158
+ }
159
+ catch (error) {
160
+ context.log.fail(`${app.container} could not be put back: ${String(error)}`);
161
+ }
162
+ });
163
+ await Promise.all(put);
164
+ }
123
165
  // A build leaves its image on the host rather than sending one, so without this
124
166
  // every run adds a runtime image and a builder to a disk nobody is watching
125
167
  async function finish(input, context) {
@@ -214,7 +256,7 @@ async function retire(docker, topology, app) {
214
256
  await docker.network.reconnect(topology.network, app.container, app.retiredAddress);
215
257
  await docker.container.rename(app.container, app.retired);
216
258
  }
217
- async function create(docker, topology, app, environment = {}) {
259
+ async function create(docker, topology, app, environment = {}, envFile) {
218
260
  const builder = docker.container
219
261
  .builder()
220
262
  .name(app.container)
@@ -228,19 +270,31 @@ async function create(docker, topology, app, environment = {}) {
228
270
  continue;
229
271
  builder.extraHost(host, ip);
230
272
  }
273
+ if (envFile)
274
+ builder.envFile(envFile);
231
275
  for (const volume of app.volumes)
232
276
  builder.volume(volume.volume, volume.mountPath);
233
277
  for (const [name, value] of Object.entries(environment))
234
278
  builder.env(name, value);
235
279
  await builder.create();
236
280
  }
237
- // Put the retired container back on the live address and its original name
238
- async function revert(docker, topology, app) {
281
+ // Put the retired container back on the live address and its original name.
282
+ // Answers with whether there was one: a first deploy has nothing behind it, and
283
+ // the container that just failed is simply left where it was renamed to
284
+ export async function revert(docker, topology, app) {
239
285
  await docker.container.stop(app.container);
286
+ // The slot may still hold what an earlier interrupted run put there, and a
287
+ // rename refuses rather than clobbers. Retiring clears its own slot the same
288
+ // way, and a revert that skipped this would leave the new container live
289
+ await docker.container.stop(app.failed);
290
+ await docker.container.remove(app.failed);
240
291
  await docker.container.rename(app.container, app.failed);
292
+ if (!(await docker.container.exists(app.retired)))
293
+ return false;
241
294
  await docker.network.reconnect(topology.network, app.retired, app.currentAddress);
242
295
  await docker.container.rename(app.retired, app.container);
243
296
  await docker.container.start(app.container);
297
+ return true;
244
298
  }
245
299
  async function cleanup(docker, app) {
246
300
  const removed = [];
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
@@ -44,17 +44,16 @@ function builderStage(spec, context) {
44
44
  // Only now, so the steps below read the app's own manifest and write beside it
45
45
  if (context.dir)
46
46
  lines.push(`WORKDIR ${workdir}`);
47
- lines.push(`RUN --mount=type=secret,id=${context.envSecret} cp /run/secrets/${context.envSecret} ${workdir}/.env`, `ENV SENTRY_RELEASE=${context.release}`);
47
+ lines.push(`ENV SENTRY_RELEASE=${context.release}`);
48
+ // Mounted for the length of each step rather than copied into the tree. A
49
+ // file that is copied is in that layer for good, and no later instruction
50
+ // can take it back out: rm leaves it readable in the layer underneath
51
+ const env = `--mount=type=secret,id=${context.envSecret},target=${workdir}/.env `;
48
52
  // Unquoted: the shell form hands everything after RUN to sh -c, so a step is
49
53
  // written exactly as it would be typed. Quoting it made the whole command one
50
54
  // word, and the shell went looking for a program by that name
51
55
  for (const step of spec.steps) {
52
- lines.push(`RUN ${mounts}${step}`);
53
- }
54
- if (spec.sourcemaps) {
55
- // The built .env ships inside the image, and an upload token is build-time
56
- const token = spec.sourcemaps.stripFromImage;
57
- lines.push(`RUN sed -i '/^${token}=/d' ${rootedAt(spec.output, context.dir)}/.env`);
56
+ lines.push(`RUN ${env}${mounts}${step}`);
58
57
  }
59
58
  return lines;
60
59
  }