alasio 7.0.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/src/api-server.js +18 -0
- package/dist/cli/src/api-server.js.map +1 -0
- package/dist/cli/src/branches.js +123 -46
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/cluster/docker.js +25 -10
- package/dist/cli/src/cluster/docker.js.map +1 -1
- package/dist/cli/src/cluster/host.js +33 -7
- package/dist/cli/src/cluster/host.js.map +1 -1
- package/dist/cli/src/cluster/k3s.js +51 -12
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/cluster/node.js +115 -33
- package/dist/cli/src/cluster/node.js.map +1 -1
- package/dist/cli/src/cluster/stargz.js +55 -0
- package/dist/cli/src/cluster/stargz.js.map +1 -0
- package/dist/cli/src/commands/branch.js +5 -4
- package/dist/cli/src/commands/branch.js.map +1 -1
- package/dist/cli/src/commands/common.js +9 -3
- package/dist/cli/src/commands/common.js.map +1 -1
- package/dist/cli/src/commands/folder.js +14 -0
- package/dist/cli/src/commands/folder.js.map +1 -0
- package/dist/cli/src/commands/init.js +54 -4
- package/dist/cli/src/commands/init.js.map +1 -1
- package/dist/cli/src/commands/lake.js +40 -6
- package/dist/cli/src/commands/lake.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +40 -8
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
- package/dist/cli/src/commands/status.js +216 -20
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/uninstall.js +8 -9
- package/dist/cli/src/commands/uninstall.js.map +1 -1
- package/dist/cli/src/commands/up.js +11 -3
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands/upgrade.js +1 -1
- package/dist/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/src/commands.js +2 -1
- package/dist/cli/src/commands.js.map +1 -1
- package/dist/cli/src/config.js +24 -9
- package/dist/cli/src/config.js.map +1 -1
- package/dist/cli/src/cpu-baseline.js +8 -4
- package/dist/cli/src/cpu-baseline.js.map +1 -1
- package/dist/cli/src/folders.js +67 -0
- package/dist/cli/src/folders.js.map +1 -0
- package/dist/cli/src/gateway-calls.js +58 -0
- package/dist/cli/src/gateway-calls.js.map +1 -0
- package/dist/cli/src/install.js +119 -17
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kept-releases.js +27 -20
- package/dist/cli/src/kept-releases.js.map +1 -1
- package/dist/cli/src/kube/api.js +11 -5
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +16 -73
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/rollout.js +84 -26
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/lake.js +124 -0
- package/dist/cli/src/lake.js.map +1 -0
- package/dist/cli/src/manifests/admission.js +381 -223
- package/dist/cli/src/manifests/admission.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +79 -362
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/branch.js +10 -26
- package/dist/cli/src/manifests/branch.js.map +1 -1
- package/dist/cli/src/manifests/collector.js +250 -135
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +32 -2
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +256 -92
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/disruption.js +10 -0
- package/dist/cli/src/manifests/disruption.js.map +1 -1
- package/dist/cli/src/manifests/folders.js +128 -0
- package/dist/cli/src/manifests/folders.js.map +1 -0
- package/dist/cli/src/manifests/grafana.js +4 -2
- package/dist/cli/src/manifests/grafana.js.map +1 -1
- package/dist/cli/src/manifests/index.js +15 -8
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +2 -1
- package/dist/cli/src/manifests/keda.js.map +1 -1
- package/dist/cli/src/manifests/lake.js +350 -73
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/log.js +316 -0
- package/dist/cli/src/manifests/log.js.map +1 -0
- package/dist/cli/src/manifests/neon.js +128 -49
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +263 -100
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/node-agent.js +24 -8
- package/dist/cli/src/manifests/node-agent.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +4 -2
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/sandbox-gateway.js +663 -0
- package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -0
- package/dist/cli/src/manifests/scalers.js +16 -5
- package/dist/cli/src/manifests/scalers.js.map +1 -1
- package/dist/cli/src/manifests/sizing.js +16 -8
- package/dist/cli/src/manifests/sizing.js.map +1 -1
- package/dist/cli/src/manifests/valkey.js +11 -5
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/vpa.js +3 -1
- package/dist/cli/src/manifests/vpa.js.map +1 -1
- package/dist/cli/src/manifests/webhook.js +102 -0
- package/dist/cli/src/manifests/webhook.js.map +1 -0
- package/dist/cli/src/manifests/workspace-storage.js +174 -89
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/neon-storage.js +155 -0
- package/dist/cli/src/neon-storage.js.map +1 -0
- package/dist/cli/src/release.js +9 -6
- package/dist/cli/src/release.js.map +1 -1
- package/dist/cli/src/secrets.js +45 -4
- package/dist/cli/src/secrets.js.map +1 -1
- package/dist/cli/src/target.js +1 -1
- package/dist/cli/src/target.js.map +1 -1
- package/dist/cli/src/telegram.js +56 -10
- package/dist/cli/src/telegram.js.map +1 -1
- package/dist/cli/src/webhook.js +182 -0
- package/dist/cli/src/webhook.js.map +1 -0
- package/dist/cluster/node/pins.json +12 -2
- package/dist/neon/control/branches.js +126 -21
- package/dist/neon/control/branches.js.map +1 -1
- package/dist/neon/control/endpoints.js +9 -0
- package/dist/neon/control/endpoints.js.map +1 -1
- package/dist/neon/control/jwt.js +16 -3
- package/dist/neon/control/jwt.js.map +1 -1
- package/dist/neon/control/secrets.js +51 -7
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/binder/names.js +33 -0
- package/dist/src/binder/names.js.map +1 -0
- package/dist/src/binder/tokens.js +58 -0
- package/dist/src/binder/tokens.js.map +1 -0
- package/dist/src/branch/names.js +12 -2
- package/dist/src/branch/names.js.map +1 -1
- package/dist/src/events/names.js +7 -0
- package/dist/src/events/names.js.map +1 -0
- package/dist/src/gateway/names.js +201 -0
- package/dist/src/gateway/names.js.map +1 -0
- package/dist/src/harness/names.js +49 -0
- package/dist/src/harness/names.js.map +1 -0
- package/dist/src/kube/sandbox-shape.js +19 -69
- package/dist/src/kube/sandbox-shape.js.map +1 -1
- package/dist/src/node-agent/names.js +118 -2
- package/dist/src/node-agent/names.js.map +1 -1
- package/dist/src/sandbox/names.js +12 -20
- package/dist/src/sandbox/names.js.map +1 -1
- package/dist/src/sandbox/otlp-resource.js +173 -0
- package/dist/src/sandbox/otlp-resource.js.map +1 -0
- package/dist/src/sandbox/telemetry.js +43 -0
- package/dist/src/sandbox/telemetry.js.map +1 -0
- package/dist/src/telegram/deliveries.js +40 -0
- package/dist/src/telegram/deliveries.js.map +1 -0
- package/dist/src/telemetry/config.js +131 -0
- package/dist/src/telemetry/config.js.map +1 -0
- package/dist/src/telemetry/forward.js +154 -0
- package/dist/src/telemetry/forward.js.map +1 -0
- package/package.json +1 -1
- package/dist/cli/src/manifests/agent-sandbox.js +0 -92
- package/dist/cli/src/manifests/agent-sandbox.js.map +0 -1
- package/dist/cli/src/manifests/juicefs-csi.js +0 -319
- package/dist/cli/src/manifests/juicefs-csi.js.map +0 -1
- package/dist/cli/src/manifests/sandboxes.agents.x-k8s.io.json +0 -6295
- package/dist/src/kube/config.js +0 -143
- package/dist/src/kube/config.js.map +0 -1
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* A branch's compute has credentials of its own, which whoever asks for the branch makes
|
|
15
15
|
* and neon-control is given only the hashes of: the SCRAM verifiers of the passwords of
|
|
16
16
|
* the roles its clients connect as (alasio's, which its spec gives the role, and the
|
|
17
|
-
* lake's, which its alasio sets), which neon-control answers Neon's proxy with, and the
|
|
17
|
+
* lake's and the harness host's, which its alasio sets), which neon-control answers Neon's proxy with, and the
|
|
18
18
|
* SHA-256 of the token it fetches its spec with, which fetches its spec alone. So what a
|
|
19
19
|
* branch is given reaches neither main's compute nor another branch's spec. main's
|
|
20
20
|
* compute keeps the stack's.
|
|
21
21
|
*/
|
|
22
22
|
import { createHash, timingSafeEqual } from "node:crypto";
|
|
23
|
-
import { DATABASE, LAKE_ROLE, ROLE } from "./secrets.js";
|
|
23
|
+
import { DATABASE, HARNESS_ROLE, LAKE_ROLE, ROLE } from "./secrets.js";
|
|
24
24
|
/** alasio's own branch: its first timeline, bootstrapped, never deleted. */
|
|
25
25
|
export const MAIN = "main";
|
|
26
26
|
/**
|
|
@@ -37,8 +37,8 @@ export const MAX_NAME_LENGTH = 30;
|
|
|
37
37
|
export const HISTORY_DAYS = 1;
|
|
38
38
|
/** HISTORY_DAYS, as alasio says it. */
|
|
39
39
|
export const HISTORY = HISTORY_DAYS === 1 ? "a day" : `${HISTORY_DAYS} days`;
|
|
40
|
-
/** The roles a branch's clients connect as: alasio's, and its
|
|
41
|
-
export const BRANCH_ROLES = [ROLE, LAKE_ROLE];
|
|
40
|
+
/** The roles a branch's clients connect as: alasio's, its lake's, and its harness host's. */
|
|
41
|
+
export const BRANCH_ROLES = [ROLE, LAKE_ROLE, HARNESS_ROLE];
|
|
42
42
|
/**
|
|
43
43
|
* The scope of the lake's token, which lists the branches and does nothing else: Neon's
|
|
44
44
|
* own services do not know it.
|
|
@@ -76,6 +76,8 @@ export function nameProblem(name) {
|
|
|
76
76
|
// A DNS-1123 label, as the names of the objects named after it must be.
|
|
77
77
|
if (!/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/u.test(name))
|
|
78
78
|
return "a branch's name is lowercase letters, digits and inner hyphens";
|
|
79
|
+
if (name.endsWith(REPLICA_SUFFIX))
|
|
80
|
+
return `a branch's name does not end in ${REPLICA_SUFFIX}, which names a read replica's compute`;
|
|
79
81
|
return null;
|
|
80
82
|
}
|
|
81
83
|
/**
|
|
@@ -101,10 +103,10 @@ function computeCredentials(value) {
|
|
|
101
103
|
const verifier = (role) => typeof given[role] === "string" && given[role].startsWith("SCRAM-SHA-256$");
|
|
102
104
|
if (Object.keys(rest).length > 0 || Object.keys(given).length !== BRANCH_ROLES.length || !BRANCH_ROLES.every(verifier) ||
|
|
103
105
|
typeof sha !== "string" || !/^[0-9a-f]{64}$/u.test(sha)) {
|
|
104
|
-
throw new BranchError(400, `a branch's compute is given as { verifiers, tokenSha256 }: a SCRAM-SHA-256 verifier of each of ${BRANCH_ROLES.join("
|
|
106
|
+
throw new BranchError(400, `a branch's compute is given as { verifiers, tokenSha256 }: a SCRAM-SHA-256 verifier of each of ${BRANCH_ROLES.join(", ")}, and a SHA-256 in hexadecimal`);
|
|
105
107
|
}
|
|
106
108
|
// Each checked above to be a verifier.
|
|
107
|
-
return { verifiers: { [ROLE]: given[ROLE], [LAKE_ROLE]: given[LAKE_ROLE] }, tokenSha256: sha };
|
|
109
|
+
return { verifiers: { [ROLE]: given[ROLE], [LAKE_ROLE]: given[LAKE_ROLE], [HARNESS_ROLE]: given[HARNESS_ROLE] }, tokenSha256: sha };
|
|
108
110
|
}
|
|
109
111
|
/** The branch `body` asks for: `{ name, parent?, lsn?, compute }`, its parent main if not given. */
|
|
110
112
|
export function branchRequest(body) {
|
|
@@ -137,6 +139,16 @@ export function computeId(name) {
|
|
|
137
139
|
export function branchOfCompute(branches, id) {
|
|
138
140
|
return branches.find((branch) => branch.state === "ready" && computeId(branch.name) === id);
|
|
139
141
|
}
|
|
142
|
+
/** What ends the id of a branch's read replica's compute, after its primary's. */
|
|
143
|
+
export const REPLICA_SUFFIX = "-ro";
|
|
144
|
+
/** The id of the read replica's compute of the branch `name`: `<computeId>-ro`. */
|
|
145
|
+
export const replicaId = (name) => `${computeId(name)}${REPLICA_SUFFIX}`;
|
|
146
|
+
/** The compute `id` names, a ready branch's primary or its read replica, if any. */
|
|
147
|
+
export function computeNamed(branches, id) {
|
|
148
|
+
const replica = id.endsWith(REPLICA_SUFFIX);
|
|
149
|
+
const branch = branchOfCompute(branches, replica ? id.slice(0, -REPLICA_SUFFIX.length) : id);
|
|
150
|
+
return branch && { branch, replica };
|
|
151
|
+
}
|
|
140
152
|
/** The compute whose token `authorization` bears, by its id: main's, the stack's `mainToken`, or a branch's own; null for none. */
|
|
141
153
|
export function computeOfToken(branches, authorization, mainToken) {
|
|
142
154
|
const token = /^Bearer (.+)$/u.exec(authorization ?? "")?.[1];
|
|
@@ -252,23 +264,96 @@ export function withNotifiedPlacement(branches, { timelineId, placement }) {
|
|
|
252
264
|
return null;
|
|
253
265
|
return withBranch(branches, { ...branch, safekeepers: placement });
|
|
254
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* The notification `body` is, of the tenant `tenantId`'s shards, checked: `{ tenant_id,
|
|
269
|
+
* stripe_size, shards: [{ node_id, shard_number }] }`, its shards in any order.
|
|
270
|
+
*/
|
|
271
|
+
export function attachNotified(body, tenantId) {
|
|
272
|
+
const record = (value) => (typeof value === "object" && value !== null ? value : {});
|
|
273
|
+
const { tenant_id, stripe_size, shards } = record(body);
|
|
274
|
+
const placed = Array.isArray(shards) ? shards.map((shard) => record(shard)) : [];
|
|
275
|
+
const numbers = placed.map(({ shard_number }) => shard_number);
|
|
276
|
+
if (typeof tenant_id !== "string" || (stripe_size !== null && typeof stripe_size !== "number") || placed.length === 0 ||
|
|
277
|
+
!placed.every(({ node_id, shard_number }) => typeof node_id === "number" && typeof shard_number === "number") ||
|
|
278
|
+
[...numbers].sort((a, b) => Number(a) - Number(b)).some((number, index) => number !== index)) {
|
|
279
|
+
throw new BranchError(400, "shards are notified as { tenant_id, stripe_size, shards: [{ node_id, shard_number }] }, numbered from 0");
|
|
280
|
+
}
|
|
281
|
+
if (tenant_id !== tenantId)
|
|
282
|
+
throw new BranchError(400, `the shards of the tenant ${tenant_id} were notified, which is not alasio's`);
|
|
283
|
+
const ordered = [...placed].sort((a, b) => Number(a["shard_number"]) - Number(b["shard_number"]));
|
|
284
|
+
return { nodeIds: ordered.map(({ node_id }) => node_id), stripeSize: placed.length > 1 ? stripe_size : null };
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* The layout `notified` places the shards in, each pageserver's address `addresses` has by
|
|
288
|
+
* its node id; null where it names a node `addresses` has not, which the storage
|
|
289
|
+
* controller notifies again.
|
|
290
|
+
*/
|
|
291
|
+
export function layoutOf({ nodeIds, stripeSize }, addresses) {
|
|
292
|
+
const pageservers = nodeIds.map((id) => addresses.get(id));
|
|
293
|
+
return pageservers.every((address) => address !== undefined) ? { pageservers, stripeSize } : null;
|
|
294
|
+
}
|
|
295
|
+
/** Whether the layouts `a` and `b` place the shards alike. */
|
|
296
|
+
export const sameLayout = (a, b) => a.stripeSize === b.stripeSize && a.pageservers.length === b.pageservers.length && a.pageservers.every((pageserver, index) => pageserver === b.pageservers[index]);
|
|
297
|
+
/**
|
|
298
|
+
* The moves that spread the tenant's `shards`, in shard order, over `pageservers`
|
|
299
|
+
* pageservers numbered from 1, shard n onto pageserver n mod `pageservers`, plus one:
|
|
300
|
+
* where every shard is attached to one pageserver, at rest, as a split leaves them, and
|
|
301
|
+
* as a failover does once every pageserver is back. None otherwise: any other placement
|
|
302
|
+
* is the storage controller's own, as its drain and fill make it, which neon-control
|
|
303
|
+
* never undoes.
|
|
304
|
+
*/
|
|
305
|
+
export function shardMoves(shards, pageservers) {
|
|
306
|
+
const attached = new Set(shards.map(({ node_attached }) => node_attached));
|
|
307
|
+
const [from] = attached;
|
|
308
|
+
if (shards.length < 2 || pageservers < 2 || !shardsAtRest(shards) || attached.size !== 1 || from === null || from === undefined)
|
|
309
|
+
return [];
|
|
310
|
+
return shards.flatMap(({ tenant_shard_id }, index) => {
|
|
311
|
+
const to = (index % pageservers) + 1;
|
|
312
|
+
return from === to ? [] : [{ shardId: tenant_shard_id, from, to }];
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
/** Whether none of `shards` is being moved or split, so where they are attached is where they stay. */
|
|
316
|
+
export const shardsAtRest = (shards) => shards.every(({ is_reconciling, is_splitting }) => !is_reconciling && !is_splitting);
|
|
317
|
+
/** Whether each of `pageservers` pageservers, numbered from 1, is registered, available and takes shards, among `nodes`. */
|
|
318
|
+
export const pageserversServing = (nodes, pageservers) => Array.from({ length: pageservers }, (_, index) => index + 1)
|
|
319
|
+
.every((id) => nodes.some((node) => node.id === id && node.availability === "Active" && node.scheduling === "Active"));
|
|
255
320
|
/** The port every compute serves Postgres on. */
|
|
256
321
|
export const COMPUTE_PORT = 55433;
|
|
322
|
+
/** The port of compute_ctl's API, and its metrics, on every compute. */
|
|
323
|
+
export const COMPUTE_CTL_PORT = 3080;
|
|
257
324
|
function setting(name, value, vartype) {
|
|
258
325
|
return { name, value: String(value), vartype };
|
|
259
326
|
}
|
|
327
|
+
/** `value` as a postgresql.conf string, quoted. */
|
|
328
|
+
const confString = (value) => `'${value.replaceAll("'", "''")}'`;
|
|
260
329
|
/**
|
|
261
|
-
* The spec of `branch`'s compute: a primary on its timeline, at its safekeepers
|
|
262
|
-
*
|
|
263
|
-
* is the branch's
|
|
330
|
+
* The spec of `branch`'s compute: a primary on its timeline, at its safekeepers, reading
|
|
331
|
+
* each shard's pages from the pageserver `layout` places it on. The role and database are
|
|
332
|
+
* main's, which every branch inherits with its data; the role's password is the branch's
|
|
333
|
+
* own.
|
|
334
|
+
*
|
|
335
|
+
* With `replica`, its read replica's (`<computeId>-ro`): Neon's Replica mode, its
|
|
336
|
+
* basebackup the pageserver's latest, streaming the timeline's WAL from the branch's
|
|
337
|
+
* safekeepers, which Neon's compute_ctl leaves to its control plane to say, as neon_local
|
|
338
|
+
* does (control_plane/src/endpoint.rs at Neon's release-9129), with the storage token as
|
|
339
|
+
* the safekeepers' password. It makes no role, as a replica writes nothing: its roles are
|
|
340
|
+
* its primary's, neon-control's own among them, with its primary's password.
|
|
264
341
|
*
|
|
265
342
|
* Its storage token is the tenant's, as the pageserver and safekeepers take no narrower
|
|
266
343
|
* one: a timeline is not a scope of theirs. A branch's compute could read main's timeline
|
|
267
344
|
* with it, which only Neon's storage services take, and only from the stack's pods.
|
|
268
345
|
*/
|
|
269
|
-
export function computeConfig(branch, stack) {
|
|
346
|
+
export function computeConfig(branch, stack, layout, { replica = false } = {}) {
|
|
270
347
|
// The timeline was placed on safekeepers of the stack, so each id is one of theirs.
|
|
271
|
-
const
|
|
348
|
+
const placed = branch.safekeepers.ids.map((id) => stack.safekeepers.find((sk) => sk.id === id));
|
|
349
|
+
const streaming = [
|
|
350
|
+
`host=${placed.map(({ host }) => host).join(",")}`,
|
|
351
|
+
`port=${placed.map(({ pgPort }) => pgPort).join(",")}`,
|
|
352
|
+
`options='-c timeline_id=${branch.timelineId} tenant_id=${stack.tenantId}'`,
|
|
353
|
+
"application_name=replica",
|
|
354
|
+
"replication=true",
|
|
355
|
+
`password=${stack.storageAuthToken}`,
|
|
356
|
+
].join(" ");
|
|
272
357
|
return {
|
|
273
358
|
spec: {
|
|
274
359
|
format_version: 1.0,
|
|
@@ -276,17 +361,20 @@ export function computeConfig(branch, stack) {
|
|
|
276
361
|
cluster: {
|
|
277
362
|
cluster_id: "alasio",
|
|
278
363
|
name: "alasio",
|
|
279
|
-
roles:
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
364
|
+
roles: replica
|
|
365
|
+
? []
|
|
366
|
+
: [
|
|
367
|
+
{ name: ROLE, encrypted_password: branch.compute?.verifiers.alasio ?? stack.verifiers.alasio, options: null },
|
|
368
|
+
// After alasio's: compute_ctl applies them in order, so once it may log in, alasio may too.
|
|
369
|
+
{ name: stack.monitor.role, encrypted_password: stack.monitor.verifier(computeId(branch.name)), options: null },
|
|
370
|
+
],
|
|
371
|
+
databases: replica ? [] : [{ name: DATABASE, owner: ROLE, options: null }],
|
|
285
372
|
settings: [
|
|
286
373
|
setting("listen_addresses", "0.0.0.0", "string"),
|
|
287
374
|
setting("port", COMPUTE_PORT, "integer"),
|
|
288
375
|
setting("max_connections", 100, "integer"),
|
|
289
|
-
|
|
376
|
+
// A replica serves the lake's loader alone.
|
|
377
|
+
setting("shared_buffers", replica ? "64MB" : "128MB", "string"),
|
|
290
378
|
setting("password_encryption", "scram-sha-256", "enum"),
|
|
291
379
|
// Durability is the safekeepers': a commit waits for their quorum,
|
|
292
380
|
// and the compute's own disk is rebuilt on every start.
|
|
@@ -310,14 +398,31 @@ export function computeConfig(branch, stack) {
|
|
|
310
398
|
setting("max_replication_flush_lag", "10GB", "string"),
|
|
311
399
|
setting("restart_after_crash", "off", "bool"),
|
|
312
400
|
],
|
|
401
|
+
...(replica
|
|
402
|
+
? {
|
|
403
|
+
postgresql_conf: [
|
|
404
|
+
`primary_conninfo = ${confString(streaming)}`,
|
|
405
|
+
`primary_slot_name = ${confString(`repl_${branch.timelineId}_`)}`,
|
|
406
|
+
"hot_standby = on",
|
|
407
|
+
// The loader's reads hold back the cleanup of what they read, on the primary, rather
|
|
408
|
+
// than be cancelled by its replay; and WAL that would cancel one waits for it a while.
|
|
409
|
+
"hot_standby_feedback = on",
|
|
410
|
+
"max_standby_streaming_delay = 5min",
|
|
411
|
+
"recovery_prefetch = off",
|
|
412
|
+
"",
|
|
413
|
+
].join("\n"),
|
|
414
|
+
}
|
|
415
|
+
: {}),
|
|
313
416
|
},
|
|
314
417
|
delta_operations: [],
|
|
315
418
|
tenant_id: stack.tenantId,
|
|
316
419
|
timeline_id: branch.timelineId,
|
|
317
|
-
mode: "Primary",
|
|
318
|
-
pageserver_connstring: `postgresql://no_user@${
|
|
420
|
+
mode: replica ? "Replica" : "Primary",
|
|
421
|
+
pageserver_connstring: layout.pageservers.map((pageserver) => `postgresql://no_user@${pageserver}`).join(","),
|
|
422
|
+
...(layout.stripeSize === null ? {} : { shard_stripe_size: layout.stripeSize }),
|
|
319
423
|
safekeepers_generation: branch.safekeepers.generation,
|
|
320
|
-
|
|
424
|
+
// A replica syncs with no safekeeper: it streams from them (postgresql_conf).
|
|
425
|
+
safekeeper_connstrings: replica ? [] : placed.map(({ host, pgPort }) => `${host}:${pgPort}`),
|
|
321
426
|
storage_auth_token: stack.storageAuthToken,
|
|
322
427
|
},
|
|
323
428
|
compute_ctl_config: { jwks: stack.jwks },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../../neon/control/branches.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"branches.js","sourceRoot":"","sources":["../../../../neon/control/branches.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,4 +105,13 @@ export async function wakeCompute(steps) {
|
|
|
105
105
|
}
|
|
106
106
|
return slept;
|
|
107
107
|
}
|
|
108
|
+
/** The bytes from LSN `from` to LSN `to` (each `<high>/<low>` in hexadecimal, as Postgres writes one), 0 where `to` is not past `from`. */
|
|
109
|
+
export function lsnDistance(from, to) {
|
|
110
|
+
const bytes = (lsn) => {
|
|
111
|
+
const [high = "0", low = "0"] = lsn.split("/");
|
|
112
|
+
return (BigInt(`0x${high}`) << 32n) + BigInt(`0x${low}`);
|
|
113
|
+
};
|
|
114
|
+
const distance = bytes(to) - bytes(from);
|
|
115
|
+
return distance > 0n ? Number(distance) : 0;
|
|
116
|
+
}
|
|
108
117
|
//# sourceMappingURL=endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../../neon/control/endpoints.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../../neon/control/endpoints.ts"],"names":[],"mappings":"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"}
|
package/dist/neon/control/jwt.js
CHANGED
|
@@ -16,16 +16,29 @@ export function generateKeyPair() {
|
|
|
16
16
|
});
|
|
17
17
|
return { privateKeyPem: privateKey, publicKeyPem: publicKey };
|
|
18
18
|
}
|
|
19
|
+
/** A token of `claims`, signed with `privateKeyPem`. */
|
|
20
|
+
function signClaims(privateKeyPem, claims) {
|
|
21
|
+
const unsigned = `${HEADER}.${base64url(JSON.stringify(claims))}`;
|
|
22
|
+
const signature = sign(null, Buffer.from(unsigned), createPrivateKey(privateKeyPem));
|
|
23
|
+
return `${unsigned}.${signature.toString("base64url")}`;
|
|
24
|
+
}
|
|
19
25
|
/**
|
|
20
26
|
* A token for `scope` (tenant, pageserverapi, safekeeperdata,
|
|
21
27
|
* generations_api, admin, infra, ...), limited to `tenantId` if given.
|
|
22
28
|
*/
|
|
23
29
|
export function signToken(privateKeyPem, scope, tenantId = null) {
|
|
24
30
|
const claims = tenantId ? { scope, tenant_id: tenantId } : { scope };
|
|
25
|
-
|
|
26
|
-
const signature = sign(null, Buffer.from(unsigned), createPrivateKey(privateKeyPem));
|
|
27
|
-
return `${unsigned}.${signature.toString("base64url")}`;
|
|
31
|
+
return signClaims(privateKeyPem, claims);
|
|
28
32
|
}
|
|
33
|
+
/** How long a token for compute_ctl's API lasts: the calls it is made for. */
|
|
34
|
+
const COMPUTE_CTL_TOKEN_SECONDS = 300;
|
|
35
|
+
/**
|
|
36
|
+
* A token for compute_ctl's API on the compute `computeId` alone, as its middleware takes
|
|
37
|
+
* one (compute_tools/src/http/middleware/authorize.rs at Neon's release-compute-9073):
|
|
38
|
+
* of no scope, naming the compute, verified with the key set its spec gave it, and good for
|
|
39
|
+
* the calls it is made for alone. No other service takes it, as it bears no scope.
|
|
40
|
+
*/
|
|
41
|
+
export const computeCtlToken = (privateKeyPem, computeId, now = Date.now()) => signClaims(privateKeyPem, { compute_id: computeId, exp: Math.floor(now / 1000) + COMPUTE_CTL_TOKEN_SECONDS });
|
|
29
42
|
/** The claims of `token` if `publicKeyPem` signed it, else null. */
|
|
30
43
|
export function verifyToken(publicKeyPem, token) {
|
|
31
44
|
const [header, claims, signature, ...rest] = String(token).split(".");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../neon/control/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAmB,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmBpH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEvE,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,EAAE;QAC/D,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QACpD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;KACnD,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,aAAqB,EAAE,KAAa,EAAE,QAAQ,GAAkB,IAAI;IAC5F,MAAM,MAAM,GAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IAClF,
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../neon/control/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAmB,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmBpH,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEvE,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC,SAAS,EAAE;QAC/D,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QACpD,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;KACnD,CAAC,CAAC;IACH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAED,wDAAwD;AACxD,SAAS,UAAU,CAAC,aAAqB,EAAE,MAAc;IACvD,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;IACrF,OAAO,GAAG,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,aAAqB,EAAE,KAAa,EAAE,QAAQ,GAAkB,IAAI;IAC5F,MAAM,MAAM,GAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IAClF,OAAO,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAqB,EAAE,SAAiB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE,CACpG,UAAU,CAAC,aAAa,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,yBAAyB,EAAE,CAAC,CAAC;AAEhH,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,YAAoB,EAAE,KAAa;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3G,MAAM,KAAK,GAAG,MAAM,CAClB,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,EAClC,eAAe,CAAC,YAAY,CAAC,EAC7B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CACpC,CAAC;IACF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,qDAAqD;QACrD,MAAM,MAAM,GAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1F,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,aAAiC,EAAE,GAAG,MAAyB;IAC9G,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;IACtF,OAAO,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,UAAU,CAAC,YAAoB;IAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;AACnG,CAAC"}
|
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
7
7
|
import { scramVerifier } from "./scram.js";
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* The availability zone every pageserver is in: one, the tenant's home zone, as alasio's
|
|
10
|
+
* pageservers are no zones apart, so any of them may hold any shard attached.
|
|
11
|
+
*/
|
|
12
|
+
export const PAGESERVER_ZONE = "az-pageserver";
|
|
9
13
|
export const DATABASE = "alasio";
|
|
10
14
|
/** The roles of alasio's database: alasio's own, the one its spec gives every compute. */
|
|
11
15
|
export const ROLE = "alasio";
|
|
@@ -15,16 +19,47 @@ export const LAKE_ROLE = "lake";
|
|
|
15
19
|
export const LAKE_READER_ROLE = "lake_reader";
|
|
16
20
|
/** Grafana's (src/neon/grafana.ts), which alasio makes. */
|
|
17
21
|
export const GRAFANA_ROLE = "grafana";
|
|
22
|
+
/** The harness host's (src/neon/harness.ts), which writes a turn's part of alasio's state, and which alasio makes. */
|
|
23
|
+
export const HARNESS_ROLE = "harness";
|
|
18
24
|
/** neon-control's own (./computes.ts), which every compute's spec gives it, and no client connects as. */
|
|
19
25
|
export const MONITOR_ROLE = "neon_control";
|
|
20
26
|
/** The roles main's clients connect as, whose verifiers the stack keeps. */
|
|
21
|
-
export const CLIENT_ROLES = [ROLE, LAKE_ROLE, LAKE_READER_ROLE, GRAFANA_ROLE];
|
|
27
|
+
export const CLIENT_ROLES = [ROLE, LAKE_ROLE, LAKE_READER_ROLE, GRAFANA_ROLE, HARNESS_ROLE];
|
|
28
|
+
/**
|
|
29
|
+
* Main's environment's principals on the log, as cli/src/manifests/log.ts's
|
|
30
|
+
* environmentAccess("main") names them: its alasio's, which reads its Telegram updates and
|
|
31
|
+
* writes its wake topic, and its lake loader's, which reads that. A branch environment's
|
|
32
|
+
* are its own, which alasio's command line makes with it.
|
|
33
|
+
*/
|
|
34
|
+
export const MAIN_ENVIRONMENT_PRINCIPALS = ["alasio-main", "loader-main"];
|
|
35
|
+
/**
|
|
36
|
+
* The log's principals besides its admin, each with a password of its own: the collector's
|
|
37
|
+
* gateway, which writes the stack's telemetry to it; the lake's intake, which reads that;
|
|
38
|
+
* KEDA, which reads how much the intake has yet to; the webhook intake, which writes each
|
|
39
|
+
* environment's Telegram updates to it; the sandbox gateway, which writes each environment's
|
|
40
|
+
* events; and main's environment's (MAIN_ENVIRONMENT_PRINCIPALS).
|
|
41
|
+
*/
|
|
42
|
+
export const LOG_PRINCIPALS = ["gateway", "intake", "scaler", "webhook", "sandbox-gateway", ...MAIN_ENVIRONMENT_PRINCIPALS];
|
|
43
|
+
/** The Valkey user of workspace storage's metadata the node agents set quotas as (cli/src/manifests/workspace-storage.ts). */
|
|
44
|
+
export const WORKSPACE_QUOTAS_USER = "quotas";
|
|
22
45
|
function hexId() {
|
|
23
46
|
return randomUUID().replaceAll("-", "");
|
|
24
47
|
}
|
|
25
48
|
function secret() {
|
|
26
49
|
return randomBytes(24).toString("base64url");
|
|
27
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* A KRaft cluster's id, as Kafka makes one (Uuid.randomUuid): 16 random bytes, in base64url,
|
|
53
|
+
* never beginning with "-", which kafka-storage's command line takes for an option, so that a
|
|
54
|
+
* node formatted with it fails to start.
|
|
55
|
+
*/
|
|
56
|
+
export function clusterId() {
|
|
57
|
+
for (;;) {
|
|
58
|
+
const id = randomBytes(16).toString("base64url");
|
|
59
|
+
if (!id.startsWith("-"))
|
|
60
|
+
return id;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
28
63
|
/**
|
|
29
64
|
* The stack's secrets, `existing` completed: made on first run and then only added to,
|
|
30
65
|
* never rotated. Each secret has a maker, and any absent is filled in, so a deployment
|
|
@@ -48,7 +83,9 @@ export function completeSecrets(existing = {}) {
|
|
|
48
83
|
lakePassword: kept(stored.lakePassword, () => secret()),
|
|
49
84
|
lakeReaderPassword: kept(stored.lakeReaderPassword, () => secret()),
|
|
50
85
|
grafanaPassword: kept(stored.grafanaPassword, () => secret()),
|
|
86
|
+
harnessPassword: kept(stored.harnessPassword, () => secret()),
|
|
51
87
|
};
|
|
88
|
+
const log = kept(stored.log, () => ({}));
|
|
52
89
|
const secrets = {
|
|
53
90
|
...stored,
|
|
54
91
|
tenantId: kept(stored.tenantId, () => hexId()),
|
|
@@ -68,11 +105,13 @@ export function completeSecrets(existing = {}) {
|
|
|
68
105
|
lakePassword: passwords.lakePassword,
|
|
69
106
|
computeControlToken: kept(stored.computeControlToken, () => secret()),
|
|
70
107
|
valkeyPassword: kept(stored.valkeyPassword, () => secret()),
|
|
108
|
+
valkeyQuotasPassword: kept(stored.valkeyQuotasPassword, () => secret()),
|
|
71
109
|
lakeReaderPassword: passwords.lakeReaderPassword,
|
|
72
110
|
lakeQueryToken: kept(stored.lakeQueryToken, () => secret()),
|
|
73
111
|
grafanaPassword: passwords.grafanaPassword,
|
|
74
112
|
grafanaAdminPassword: kept(stored.grafanaAdminPassword, () => secret()),
|
|
75
113
|
grafanaSecretKey: kept(stored.grafanaSecretKey, () => secret()),
|
|
114
|
+
harnessPassword: passwords.harnessPassword,
|
|
76
115
|
branchForkKey: kept(stored.branchForkKey, () => secret()),
|
|
77
116
|
filerStoreFilerPassword: kept(stored.filerStoreFilerPassword, () => secret()),
|
|
78
117
|
filerStoreCollectorPassword: kept(stored.filerStoreCollectorPassword, () => secret()),
|
|
@@ -85,8 +124,17 @@ export function completeSecrets(existing = {}) {
|
|
|
85
124
|
[LAKE_ROLE]: kept(verifiers[LAKE_ROLE], () => scramVerifier(passwords.lakePassword)),
|
|
86
125
|
[LAKE_READER_ROLE]: kept(verifiers[LAKE_READER_ROLE], () => scramVerifier(passwords.lakeReaderPassword)),
|
|
87
126
|
[GRAFANA_ROLE]: kept(verifiers[GRAFANA_ROLE], () => scramVerifier(passwords.grafanaPassword)),
|
|
127
|
+
[HARNESS_ROLE]: kept(verifiers[HARNESS_ROLE], () => scramVerifier(passwords.harnessPassword)),
|
|
88
128
|
},
|
|
89
129
|
nodeAgentToken: kept(stored.nodeAgentToken, () => secret()),
|
|
130
|
+
gatewayCallerKey: kept(stored.gatewayCallerKey, () => secret()),
|
|
131
|
+
gatewayBindingKey: kept(stored.gatewayBindingKey, () => secret()),
|
|
132
|
+
logClusterId: kept(stored.logClusterId, () => clusterId()),
|
|
133
|
+
log: {
|
|
134
|
+
...log,
|
|
135
|
+
admin: kept(log.admin, () => secret()),
|
|
136
|
+
...Object.fromEntries(LOG_PRINCIPALS.map((principal) => [principal, kept(log[principal], () => secret())])),
|
|
137
|
+
},
|
|
90
138
|
};
|
|
91
139
|
return { secrets, changed };
|
|
92
140
|
}
|
|
@@ -151,7 +199,7 @@ export function pageserverToml({ brokerUrl, controllerUrl, token, publicKeyPath,
|
|
|
151
199
|
`pg_distrib_dir=${toml("/usr/local/")}`,
|
|
152
200
|
`listen_pg_addr=${toml("0.0.0.0:6400")}`,
|
|
153
201
|
`listen_http_addr=${toml("0.0.0.0:9898")}`,
|
|
154
|
-
`availability_zone=${toml(
|
|
202
|
+
`availability_zone=${toml(PAGESERVER_ZONE)}`,
|
|
155
203
|
`control_plane_api=${toml(`${controllerUrl}/upcall/v1/`)}`,
|
|
156
204
|
`control_plane_api_token=${toml(token)}`,
|
|
157
205
|
`http_auth_type='NeonJWT'`,
|
|
@@ -162,8 +210,4 @@ export function pageserverToml({ brokerUrl, controllerUrl, token, publicKeyPath,
|
|
|
162
210
|
"",
|
|
163
211
|
].join("\n");
|
|
164
212
|
}
|
|
165
|
-
/** How the storage controller and computes reach the pageserver at `host`; it registers itself with these. */
|
|
166
|
-
export function pageserverMetadata(host) {
|
|
167
|
-
return JSON.stringify({ host, port: 6400, http_host: host, http_port: 9898, availability_zone_id: "az-pageserver" }) + "\n";
|
|
168
|
-
}
|
|
169
213
|
//# sourceMappingURL=secrets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../../neon/control/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../../../neon/control/secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the binder's bindings are known by (./bindings.ts): the labels and annotations of a
|
|
3
|
+
* pool's pods and of their Leases, and how a key names them. Free of anything but Node's own,
|
|
4
|
+
* so the command line, which renders the pools, takes it without the binder.
|
|
5
|
+
*/
|
|
6
|
+
import { createHash, createHmac } from "node:crypto";
|
|
7
|
+
import { BUSY_ANNOTATIONS } from "../kube/busy-label.js";
|
|
8
|
+
/** The label of a pool's pods, its name. */
|
|
9
|
+
export const POOL_LABEL = "alasio.dev/pool";
|
|
10
|
+
/** The label of a pool's free pods, which its Deployment's selector selects with POOL_LABEL. */
|
|
11
|
+
export const FREE_LABEL = "alasio.dev/free";
|
|
12
|
+
/** The label of a bound pod, and of its Lease: its key's hash. */
|
|
13
|
+
export const BINDING_LABEL = "alasio.dev/binding";
|
|
14
|
+
/** The annotation of a bound pod, and of its Lease: its key. */
|
|
15
|
+
export const KEY_ANNOTATION = "alasio.dev/binding-key";
|
|
16
|
+
/**
|
|
17
|
+
* The key of the environment `environment`'s callers, of the gateway's caller key `master`:
|
|
18
|
+
* its HMAC of the environment's name, hex, a key as the text its Secret holds is, as the
|
|
19
|
+
* master is; so each environment's alasio, given its own alone, signs tokens of its own
|
|
20
|
+
* environment's sessions alone (./tokens.ts).
|
|
21
|
+
*/
|
|
22
|
+
export const environmentKey = (master, environment) => Buffer.from(createHmac("sha256", master).update(`environment:${environment}`).digest("hex"));
|
|
23
|
+
/** The hash of `key` its Lease and pod are named and labelled by: a label's value at most. */
|
|
24
|
+
export const keyHash = (key) => createHash("sha256").update(key).digest("hex").slice(0, 40);
|
|
25
|
+
/** The name of the Lease of `key`'s binding. */
|
|
26
|
+
export const leaseName = (key) => `binding-${keyHash(key)}`;
|
|
27
|
+
/** The labels of a pool's free pods, as its Deployment's template and selector give them. */
|
|
28
|
+
export const freeLabels = (pool) => ({ [POOL_LABEL]: pool.name, [FREE_LABEL]: "true" });
|
|
29
|
+
/** The labels of a pod of `pool` bound to `key`. */
|
|
30
|
+
export const boundLabels = (pool, key) => ({ [POOL_LABEL]: pool.name, [BINDING_LABEL]: keyHash(key) });
|
|
31
|
+
/** The annotations of a pod bound to `key`: the key, and what keeps its node from being removed while it is. */
|
|
32
|
+
export const boundAnnotations = (key) => ({ [KEY_ANNOTATION]: key, ...BUSY_ANNOTATIONS });
|
|
33
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../../src/binder/names.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAC5C,gGAAgG;AAChG,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAC5C,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAClD,gEAAgE;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAQvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAU,EAAE,CAC5E,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/F,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE5G,gDAAgD;AAChD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAE5E,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAoC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAEhI,oDAAoD;AACpD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,GAAW,EAAoC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEvJ,gHAAgH;AAChH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAoC,EAAE,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC"}
|