alasio 9.0.0 → 10.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.
Files changed (148) hide show
  1. package/dist/cli/src/bound-harnesses.js +98 -0
  2. package/dist/cli/src/bound-harnesses.js.map +1 -0
  3. package/dist/cli/src/branches.js +30 -14
  4. package/dist/cli/src/branches.js.map +1 -1
  5. package/dist/cli/src/cluster/docker.js +21 -11
  6. package/dist/cli/src/cluster/docker.js.map +1 -1
  7. package/dist/cli/src/cluster/host.js +5 -1
  8. package/dist/cli/src/cluster/host.js.map +1 -1
  9. package/dist/cli/src/cluster/k3s.js +62 -3
  10. package/dist/cli/src/cluster/k3s.js.map +1 -1
  11. package/dist/cli/src/cluster/node.js +47 -13
  12. package/dist/cli/src/cluster/node.js.map +1 -1
  13. package/dist/cli/src/cluster/stargz.js +40 -3
  14. package/dist/cli/src/cluster/stargz.js.map +1 -1
  15. package/dist/cli/src/commands/common.js +2 -2
  16. package/dist/cli/src/commands/common.js.map +1 -1
  17. package/dist/cli/src/commands/lake.js +1 -1
  18. package/dist/cli/src/commands/lake.js.map +1 -1
  19. package/dist/cli/src/commands/login-relay.js +91 -0
  20. package/dist/cli/src/commands/login-relay.js.map +1 -0
  21. package/dist/cli/src/commands/login.js +11 -10
  22. package/dist/cli/src/commands/login.js.map +1 -1
  23. package/dist/cli/src/commands/logs.js +89 -6
  24. package/dist/cli/src/commands/logs.js.map +1 -1
  25. package/dist/cli/src/commands/restart.js +10 -4
  26. package/dist/cli/src/commands/restart.js.map +1 -1
  27. package/dist/cli/src/commands/restore-filer-store.js +27 -10
  28. package/dist/cli/src/commands/restore-filer-store.js.map +1 -1
  29. package/dist/cli/src/commands/status.js +59 -12
  30. package/dist/cli/src/commands/status.js.map +1 -1
  31. package/dist/cli/src/commands/up.js +9 -6
  32. package/dist/cli/src/commands/up.js.map +1 -1
  33. package/dist/cli/src/commands/upgrade.js +21 -5
  34. package/dist/cli/src/commands/upgrade.js.map +1 -1
  35. package/dist/cli/src/folders.js +9 -13
  36. package/dist/cli/src/folders.js.map +1 -1
  37. package/dist/cli/src/gateway-calls.js +14 -8
  38. package/dist/cli/src/gateway-calls.js.map +1 -1
  39. package/dist/cli/src/install.js +7 -41
  40. package/dist/cli/src/install.js.map +1 -1
  41. package/dist/cli/src/kube/api.js +59 -12
  42. package/dist/cli/src/kube/api.js.map +1 -1
  43. package/dist/cli/src/kube/apply.js +107 -9
  44. package/dist/cli/src/kube/apply.js.map +1 -1
  45. package/dist/cli/src/kube/rollout.js +16 -6
  46. package/dist/cli/src/kube/rollout.js.map +1 -1
  47. package/dist/cli/src/main.js +2 -1
  48. package/dist/cli/src/main.js.map +1 -1
  49. package/dist/cli/src/manifests/admission.js +228 -11
  50. package/dist/cli/src/manifests/admission.js.map +1 -1
  51. package/dist/cli/src/manifests/alasio.js +151 -63
  52. package/dist/cli/src/manifests/alasio.js.map +1 -1
  53. package/dist/cli/src/manifests/branch.js +6 -1
  54. package/dist/cli/src/manifests/branch.js.map +1 -1
  55. package/dist/cli/src/manifests/codex-login.js +101 -0
  56. package/dist/cli/src/manifests/codex-login.js.map +1 -0
  57. package/dist/cli/src/manifests/collector.js +26 -21
  58. package/dist/cli/src/manifests/collector.js.map +1 -1
  59. package/dist/cli/src/manifests/common.js +50 -23
  60. package/dist/cli/src/manifests/common.js.map +1 -1
  61. package/dist/cli/src/manifests/config.js +79 -30
  62. package/dist/cli/src/manifests/config.js.map +1 -1
  63. package/dist/cli/src/manifests/disruption.js +8 -3
  64. package/dist/cli/src/manifests/disruption.js.map +1 -1
  65. package/dist/cli/src/manifests/folders.js +8 -5
  66. package/dist/cli/src/manifests/folders.js.map +1 -1
  67. package/dist/cli/src/manifests/harness-pools.js +236 -0
  68. package/dist/cli/src/manifests/harness-pools.js.map +1 -0
  69. package/dist/cli/src/manifests/image-holder.js +61 -0
  70. package/dist/cli/src/manifests/image-holder.js.map +1 -0
  71. package/dist/cli/src/manifests/index.js +6 -2
  72. package/dist/cli/src/manifests/index.js.map +1 -1
  73. package/dist/cli/src/manifests/keda.js +4 -2
  74. package/dist/cli/src/manifests/keda.js.map +1 -1
  75. package/dist/cli/src/manifests/lake.js +1 -17
  76. package/dist/cli/src/manifests/lake.js.map +1 -1
  77. package/dist/cli/src/manifests/log.js +63 -16
  78. package/dist/cli/src/manifests/log.js.map +1 -1
  79. package/dist/cli/src/manifests/neon.js +57 -77
  80. package/dist/cli/src/manifests/neon.js.map +1 -1
  81. package/dist/cli/src/manifests/network-policies.js +111 -39
  82. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  83. package/dist/cli/src/manifests/node-agent.js +39 -19
  84. package/dist/cli/src/manifests/node-agent.js.map +1 -1
  85. package/dist/cli/src/manifests/object-store.js +95 -23
  86. package/dist/cli/src/manifests/object-store.js.map +1 -1
  87. package/dist/cli/src/manifests/sandbox-gateway.js +143 -45
  88. package/dist/cli/src/manifests/sandbox-gateway.js.map +1 -1
  89. package/dist/cli/src/manifests/scalers.js +5 -4
  90. package/dist/cli/src/manifests/scalers.js.map +1 -1
  91. package/dist/cli/src/manifests/sizing.js +1 -1
  92. package/dist/cli/src/manifests/sizing.js.map +1 -1
  93. package/dist/cli/src/manifests/valkey.js +19 -5
  94. package/dist/cli/src/manifests/valkey.js.map +1 -1
  95. package/dist/cli/src/manifests/volume-lock.js +43 -0
  96. package/dist/cli/src/manifests/volume-lock.js.map +1 -0
  97. package/dist/cli/src/manifests/vpa.js +12 -1
  98. package/dist/cli/src/manifests/vpa.js.map +1 -1
  99. package/dist/cli/src/manifests/workspace-storage.js +19 -16
  100. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  101. package/dist/cli/src/neon-storage.js +0 -2
  102. package/dist/cli/src/neon-storage.js.map +1 -1
  103. package/dist/cli/src/release.js +9 -9
  104. package/dist/cli/src/release.js.map +1 -1
  105. package/dist/cli/src/setup-pod.js +44 -0
  106. package/dist/cli/src/setup-pod.js.map +1 -0
  107. package/dist/cli/src/target.js +2 -2
  108. package/dist/cli/src/target.js.map +1 -1
  109. package/dist/cli/src/telegram.js +13 -4
  110. package/dist/cli/src/telegram.js.map +1 -1
  111. package/dist/cli/src/wakes.js +68 -0
  112. package/dist/cli/src/wakes.js.map +1 -0
  113. package/dist/cli/src/webhook.js +5 -2
  114. package/dist/cli/src/webhook.js.map +1 -1
  115. package/dist/cluster/node/pins.json +6 -5
  116. package/dist/neon/control/branches.js +11 -4
  117. package/dist/neon/control/branches.js.map +1 -1
  118. package/dist/neon/control/endpoints.js +81 -10
  119. package/dist/neon/control/endpoints.js.map +1 -1
  120. package/dist/neon/control/secrets.js +11 -6
  121. package/dist/neon/control/secrets.js.map +1 -1
  122. package/dist/src/binder/bindings.js +195 -0
  123. package/dist/src/binder/bindings.js.map +1 -0
  124. package/dist/src/binder/names.js +30 -0
  125. package/dist/src/binder/names.js.map +1 -1
  126. package/dist/src/binder/tokens.js +17 -4
  127. package/dist/src/binder/tokens.js.map +1 -1
  128. package/dist/src/branch/names.js +10 -6
  129. package/dist/src/branch/names.js.map +1 -1
  130. package/dist/src/events/names.js +24 -3
  131. package/dist/src/events/names.js.map +1 -1
  132. package/dist/src/gateway/names.js +44 -5
  133. package/dist/src/gateway/names.js.map +1 -1
  134. package/dist/src/harness/names.js +18 -0
  135. package/dist/src/harness/names.js.map +1 -1
  136. package/dist/src/kube/client.js +212 -0
  137. package/dist/src/kube/client.js.map +1 -0
  138. package/dist/src/kube/sandbox-shape.js +6 -0
  139. package/dist/src/kube/sandbox-shape.js.map +1 -1
  140. package/dist/src/kube/started-map.js +12 -0
  141. package/dist/src/kube/started-map.js.map +1 -0
  142. package/dist/src/node-agent/names.js +13 -6
  143. package/dist/src/node-agent/names.js.map +1 -1
  144. package/dist/src/telegram/bot-commands.js +17 -0
  145. package/dist/src/telegram/bot-commands.js.map +1 -0
  146. package/dist/src/telegram/stop.js +12 -0
  147. package/dist/src/telegram/stop.js.map +1 -0
  148. package/package.json +1 -1
@@ -1,7 +1,8 @@
1
- import { eventsTopic } from "../../../src/events/names.js";
1
+ import { forksGroup, forksTopic, MAIN_ENVIRONMENT_NAME } from "../../../src/branch/names.js";
2
+ import { EVENTS_RETENTION_MS, EVENTS_TOPIC_PREFIX, eventsGroup, eventsTopic } from "../../../src/events/names.js";
2
3
  import { imageReference } from "../images.js";
3
4
  import { claimLabels, claimSpec, componentName, NAMESPACE, replicasOf, restrictedContainer, script, selectorLabels, sha256, stackLabels, stackPodSpec } from "./common.js";
4
- import { LOG_SEGMENT_BYTES, telemetryRetentionBytes } from "./config.js";
5
+ import { LOG_SEGMENT_BYTES, TELEGRAM_PARTITIONS, telemetryRetentionBytes } from "./config.js";
5
6
  import { replicaBudget, spread } from "./disruption.js";
6
7
  import { priority } from "./priorities.js";
7
8
  import { verticalPodAutoscaler } from "./sizing.js";
@@ -39,8 +40,8 @@ export const alasioPrincipal = (name) => `alasio-${name}`;
39
40
  export const alasioGroup = (name) => `alasio.${name}`;
40
41
  /** How long an environment's wake records are kept: a day, long past its lake loader's waking at the first. */
41
42
  export const WAKE_RETENTION_MS = 86_400_000;
42
- /** How long an environment's events are kept: as long as its Telegram updates, past any wait of its alasio's to read them. */
43
- export const EVENTS_RETENTION_MS = TELEGRAM_RETENTION_MS;
43
+ /** How long main's forks topic keeps a branch's request: a day, long past the wait for its answer, after which its parent refuses it (src/branch/fork.ts). */
44
+ export const FORKS_RETENTION_MS = 86_400_000;
44
45
  /** The topic the environment `name`'s alasio writes as it commits transcripts, which wakes its lake loader. */
45
46
  export const lakeWakeTopic = (name) => `lake.${name}`;
46
47
  /** The principal the environment `name`'s lake loader reaches the log as. */
@@ -53,17 +54,26 @@ export const loaderGroup = (name) => `lake-loader.${name}`;
53
54
  * forgotten with the environment. Its alasio's, `alasio-<name>`, reading its Telegram
54
55
  * topic in its group, `alasio.<name>`, and writing its wake topic, `lake.<name>`, as it
55
56
  * commits transcripts; its lake loader's, `loader-<name>`, reading the wake topic in its
56
- * group, `lake-loader.<name>`; and its events topic, `events.<name>` (src/events/), which the
57
- * gateways write and its alasio reads in its group; those topics, of one partition each, as
58
- * one alasio and one loader read them, a chat's updates in order, each keeping a segment
59
- * beside the one it writes at most: a week of a bot's updates, or of events, and a day of
60
- * wakes, is kilobytes. Each update, and each event, is flushed to the volume as it is
61
- * written, as what told of it does not tell again; a wake, lost, costs nothing.
57
+ * group, `lake-loader.<name>`; the events topic, `events.<name>` (src/events/), which the sandbox
58
+ * gateway writes, of what it binds and of what its harness pools' hosts tell it, which hold no
59
+ * principal of their own, and its alasio reads in its group, `alasio-events.<name>`. Branches ask
60
+ * main to fork the sessions they inherited on main's forks topic, `forks.main`
61
+ * (src/branch/fork.ts), which a branch's alasio writes and main's reads in its group,
62
+ * `alasio-forks.main`, answering on the branches' events topics, which it may write. The Telegram
63
+ * topic is of TELEGRAM_PARTITIONS partitions, as many as the environment's alasios may be, each
64
+ * chat's updates in one, by its key, so in order, each partition read by the one alasio of the
65
+ * group it is given to; the others of one each, read by whichever alasio of its group, or the
66
+ * loader, holds it. Each keeps a segment beside the one it writes at most: a week of a bot's
67
+ * updates, or of events, and a day of wakes or of requests, is kilobytes. Each update, event and request is
68
+ * flushed to the volume as it is written, as what told of it does not tell again; a wake, lost,
69
+ * costs nothing.
62
70
  */
63
71
  export function environmentAccess(name) {
64
72
  const topic = telegramTopic(name);
65
73
  const wake = lakeWakeTopic(name);
66
74
  const events = eventsTopic(name);
75
+ const main = name === MAIN_ENVIRONMENT_NAME;
76
+ const forks = forksTopic(MAIN_ENVIRONMENT_NAME);
67
77
  return {
68
78
  principals: [
69
79
  {
@@ -73,6 +83,15 @@ export function environmentAccess(name) {
73
83
  { resource: "group", name: alasioGroup(name), pattern: "literal", operations: ["read"] },
74
84
  { resource: "topic", name: wake, pattern: "literal", operations: ["write", "describe"] },
75
85
  { resource: "topic", name: events, pattern: "literal", operations: ["read", "describe"] },
86
+ { resource: "group", name: eventsGroup(name), pattern: "literal", operations: ["read"] },
87
+ ...(main
88
+ ? [
89
+ { resource: "topic", name: forks, pattern: "literal", operations: ["read", "describe"] },
90
+ { resource: "group", name: forksGroup(MAIN_ENVIRONMENT_NAME), pattern: "literal", operations: ["read"] },
91
+ // Its answers, on each branch's events topic.
92
+ { resource: "topic", name: EVENTS_TOPIC_PREFIX, pattern: "prefixed", operations: ["write", "describe"] },
93
+ ]
94
+ : [{ resource: "topic", name: forks, pattern: "literal", operations: ["write", "describe"] }]),
76
95
  ],
77
96
  },
78
97
  {
@@ -82,9 +101,10 @@ export function environmentAccess(name) {
82
101
  ],
83
102
  topics: [
84
103
  // Each update flushed to the volume as it is written: Telegram, answered once the log has it, sends it no more.
85
- { name: topic, partitions: 1, retentionMs: TELEGRAM_RETENTION_MS, retentionBytes: LOG_SEGMENT_BYTES, configs: { "flush.messages": "1" } },
104
+ { name: topic, partitions: TELEGRAM_PARTITIONS, readInOrderBy: alasioGroup(name), retentionMs: TELEGRAM_RETENTION_MS, retentionBytes: LOG_SEGMENT_BYTES, configs: { "flush.messages": "1" } },
86
105
  { name: wake, partitions: 1, retentionMs: WAKE_RETENTION_MS, retentionBytes: LOG_SEGMENT_BYTES, configs: {} },
87
106
  { name: events, partitions: 1, retentionMs: EVENTS_RETENTION_MS, retentionBytes: LOG_SEGMENT_BYTES, configs: { "flush.messages": "1" } },
107
+ ...(main ? [{ name: forks, partitions: 1, retentionMs: FORKS_RETENTION_MS, retentionBytes: LOG_SEGMENT_BYTES, configs: { "flush.messages": "1" } }] : []),
88
108
  ],
89
109
  };
90
110
  }
@@ -102,6 +122,26 @@ export const environmentLogSecret = ({ branch }) => (branch === null ? logPrinci
102
122
  export const loaderLogSecret = ({ branch }) => (branch === null ? logPrincipalSecret("loader-main") : componentName("log-loader"));
103
123
  /** A node's address, by its ordinal: its pod's name in the log's headless Service. */
104
124
  const nodeAddress = (ordinal) => `${LOG}-${ordinal}.${LOG}.${NAMESPACE}.svc`;
125
+ /** KEDA's reading of the log as the `scaler` principal, which may describe the groups and topics it scales on and read none, in `namespace`, the Secret's copy there. */
126
+ export function logAuthentication(name, namespace, component) {
127
+ const scaler = logPrincipalSecret("scaler");
128
+ return {
129
+ apiVersion: "keda.sh/v1alpha1",
130
+ kind: "TriggerAuthentication",
131
+ metadata: { name, namespace, labels: stackLabels(component) },
132
+ spec: { secretTargetRef: ["sasl", "username", "password"].map((parameter) => ({ parameter, name: scaler, key: parameter })) },
133
+ };
134
+ }
135
+ /**
136
+ * A trigger of how far `group` is behind on `topic`, past `threshold` records a partition,
137
+ * authenticated as `authentication` says; of a group that has read none, as far as the topic
138
+ * is long (`earliest`, the default) or not at all (`latest`), as the group reads it.
139
+ */
140
+ export const lagTrigger = (group, topic, threshold, authentication, untold = "earliest") => ({
141
+ type: "kafka",
142
+ metadata: { bootstrapServers: LOG_BROKERS, consumerGroup: group, topic, lagThreshold: String(threshold), activationLagThreshold: "0", offsetResetPolicy: untold },
143
+ authenticationRef: { name: authentication },
144
+ });
105
145
  /** The hours of a retention as log.retention says it. */
106
146
  export const retentionMs = (retention) => Number(retention.slice(0, -1)) * 3_600_000;
107
147
  /**
@@ -136,16 +176,20 @@ export function logAccess(config) {
136
176
  const services = {
137
177
  gateway: [{ ...telemetry, operations: ["write", "describe"] }],
138
178
  intake: [{ ...telemetry, operations: ["read", "describe"] }, { ...group, operations: ["read"] }],
139
- // And every environment's wake topic and its loader's group, which it reads how far behind on too.
179
+ // And every environment's wake topic and its loader's group, and the topics its alasio
180
+ // scales on, its Telegram updates', its events' and main's forks', and its groups on them,
181
+ // which it reads how far behind on too: each name's prefix, as its name of none.
140
182
  scaler: [
141
183
  { ...telemetry, operations: ["describe"] },
142
184
  { ...group, operations: ["describe"] },
143
185
  { resource: "topic", name: "lake.", pattern: "prefixed", operations: ["describe"] },
144
186
  { resource: "group", name: "lake-loader.", pattern: "prefixed", operations: ["describe"] },
187
+ ...[telegramTopic(""), eventsTopic(""), forksTopic("")].map((name) => ({ resource: "topic", name, pattern: "prefixed", operations: ["describe"] })),
188
+ ...[alasioGroup(""), eventsGroup(""), forksGroup("")].map((name) => ({ resource: "group", name, pattern: "prefixed", operations: ["describe"] })),
145
189
  ],
146
190
  webhook: [{ resource: "topic", name: "telegram.", pattern: "prefixed", operations: ["write", "describe"] }],
147
191
  // Every environment's events, a branch's among them, and nothing else.
148
- "sandbox-gateway": [{ resource: "topic", name: "events.", pattern: "prefixed", operations: ["write", "describe"] }],
192
+ "sandbox-gateway": [{ resource: "topic", name: EVENTS_TOPIC_PREFIX, pattern: "prefixed", operations: ["write", "describe"] }],
149
193
  };
150
194
  const retention = { retentionMs: retentionMs(config.log.retention), retentionBytes: telemetryRetentionBytes(config) };
151
195
  return {
@@ -174,7 +218,10 @@ function serverProperties(config) {
174
218
  const majority = Math.floor(nodes / 2) + 1;
175
219
  return script("process.roles=broker,controller", `controller.quorum.voters=${voters.join(",")}`, `listeners=CLIENT://:${LOG_PORT},CONTROLLER://:${LOG_CONTROLLER_PORT}`, "listener.security.protocol.map=CLIENT:SASL_PLAINTEXT,CONTROLLER:PLAINTEXT", "inter.broker.listener.name=CLIENT", "controller.listener.names=CONTROLLER", "sasl.enabled.mechanisms=SCRAM-SHA-512", "sasl.mechanism.inter.broker.protocol=SCRAM-SHA-512", "authorizer.class.name=org.apache.kafka.metadata.authorizer.StandardAuthorizer",
176
220
  // ANONYMOUS is what reaches the controllers' listener, unauthenticated: the NetworkPolicy, admitting its port from the log's own pods alone, is its guard.
177
- "super.users=User:admin;User:ANONYMOUS", "allow.everyone.if.no.acl.found=false", "auto.create.topics.enable=false", `default.replication.factor=${nodes}`, `offsets.topic.replication.factor=${nodes}`, `transaction.state.log.replication.factor=${nodes}`, `min.insync.replicas=${majority}`, `transaction.state.log.min.isr=${majority}`, "log.dirs=/data/log", `log.retention.ms=${retentionMs(config.log.retention)}`, `log.segment.bytes=${LOG_SEGMENT_BYTES}`, "log.roll.ms=3600000", `message.max.bytes=${LOG_RECORD_BYTES}`, "log.flush.scheduler.interval.ms=1000", "metadata.log.max.snapshot.interval.ms=600000");
221
+ "super.users=User:admin;User:ANONYMOUS", "allow.everyone.if.no.acl.found=false", "auto.create.topics.enable=false",
222
+ // A group none is a member of joined at once by its first, not three seconds later, the broker's default wait for
223
+ // others to join with it: a woken alasio's first update waits on its group's join.
224
+ "group.initial.rebalance.delay.ms=0", `default.replication.factor=${nodes}`, `offsets.topic.replication.factor=${nodes}`, `transaction.state.log.replication.factor=${nodes}`, `min.insync.replicas=${majority}`, `transaction.state.log.min.isr=${majority}`, "log.dirs=/data/log", `log.retention.ms=${retentionMs(config.log.retention)}`, `log.segment.bytes=${LOG_SEGMENT_BYTES}`, "log.roll.ms=3600000", `message.max.bytes=${LOG_RECORD_BYTES}`, "log.flush.scheduler.interval.ms=1000", "metadata.log.max.snapshot.interval.ms=600000");
178
225
  }
179
226
  /** Its logging, to its output alone, rather than to files in its /tmp. */
180
227
  const LOG4J2 = script("rootLogger.level=INFO", "rootLogger.appenderRef.stdout.ref=STDOUT", "appender.stdout.type=Console", "appender.stdout.name=STDOUT", "appender.stdout.layout.type=PatternLayout", "appender.stdout.layout.pattern=[%d] %p %m (%c)%n");
@@ -284,7 +331,7 @@ export function logObjects(config) {
284
331
  name: "access",
285
332
  image: imageReference(config.images.alasio),
286
333
  imagePullPolicy: config.images.pullPolicy,
287
- command: ["node", "/opt/alasio/src/log/access.ts"],
334
+ args: ["node", "/opt/alasio/src/log/access.ts"],
288
335
  env: [
289
336
  { name: "LOG_BROKERS", value: `127.0.0.1:${LOG_PORT}` },
290
337
  // Every voter's, as KRaft's active controller alone writes a credential.
@@ -311,6 +358,6 @@ export function logObjects(config) {
311
358
  volumeClaimTemplates: [{ metadata: { name: "data", labels: claimLabels(stackLabels(LOG_COMPONENT)) }, spec: claimSpec(log.storage) }],
312
359
  },
313
360
  };
314
- return [configMap, service, statefulSet, ...replicaBudget(LOG_COMPONENT, NAMESPACE, log.scaling), verticalPodAutoscaler(statefulSet, "Recommended")];
361
+ return [configMap, service, statefulSet, ...replicaBudget(LOG_COMPONENT, NAMESPACE, log.scaling), verticalPodAutoscaler(statefulSet, "AtStart")];
315
362
  }
316
363
  //# sourceMappingURL=log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/manifests/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/manifests/log.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAoB,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7L,OAAO,EAAsB,iBAAiB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,wEAAwE;AACxE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC7B,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,qFAAqF;AACrF,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAW,CAAC;AAE9G;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAG,UAAU,CAAC;AAEpD,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAe,EAAU,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC;AAErF,yHAAyH;AACzH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;AAC1E,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1E,sFAAsF;AACtF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;AAEtE,+GAA+G;AAC/G,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,8JAA8J;AAC9J,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,+GAA+G;AAC/G,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;AACtE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1E,uFAAuF;AACvF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,KAAK,qBAAqB,CAAC;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAChD,OAAO;QACL,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE;oBACJ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;oBACxF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;oBACxF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;oBACxF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;oBACzF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;oBACxF,GAAG,CAAC,IAAI;wBACN,CAAC,CAAC;4BACA,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE;4BACxF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;4BACxG,8CAA8C;4BAC9C,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;yBAChG;wBACV,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAU,CAAC;iBAC1G;aACF;YACD;gBACE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aAC1L;SACF;QACD,MAAM,EAAE;YACN,gHAAgH;YAChH,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE;YAC7L,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7G,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE;YACxI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1J;KACF,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,SAAS,QAAQ,QAAQ,EAAE,CAAC;AAEjE,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAuB,EAAU,EAAE,CAAC,aAAa,CAAC,OAAO,SAAS,EAAE,CAAC,CAAC;AAEzG;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAAe,EAAU,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAE7J,kNAAkN;AAClN,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAe,EAAU,EAAE,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAGxJ,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,OAAwB,EAAU,EAAE,CAAC,GAAG,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI,SAAS,MAAM,CAAC;AAiDtG,yKAAyK;AACzK,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAiB,EAAE,SAAiB;IAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO;QACL,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,EAAE;QAC7D,IAAI,EAAE,EAAE,eAAe,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;KAC9H,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,SAAiB,EAAE,cAAsB,EAAE,MAAM,GAA0B,UAAU,EAAW,EAAE,CAAC,CAAC;IAC3J,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,sBAAsB,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE;IACjK,iBAAiB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;CAC5C,CAAC,CAAC;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAW,CAAC;IACrF,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAW,CAAC;IACrF,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAA+E;QAC3F,OAAO,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAChG,uFAAuF;QACvF,2FAA2F;QAC3F,iFAAiF;QACjF,MAAM,EAAE;YACN,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;YAC1C,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;YACtC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;YACnF,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE;YAC1F,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC3J,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC1J;QACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3G,uEAAuE;QACvE,iBAAiB,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;KAC9H,CAAC;IACF,MAAM,SAAS,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACtH,OAAO;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7K,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;KACtG,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,gBAAgB,CAAC,MAAqB;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,MAAM,CACX,iCAAiC,EACjC,4BAA4B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC9C,uBAAuB,QAAQ,kBAAkB,mBAAmB,EAAE,EACtE,2EAA2E,EAC3E,mCAAmC,EACnC,sCAAsC,EACtC,uCAAuC,EACvC,oDAAoD,EACpD,+EAA+E;IAC/E,2JAA2J;IAC3J,uCAAuC,EACvC,sCAAsC,EACtC,iCAAiC;IACjC,kHAAkH;IAClH,mFAAmF;IACnF,oCAAoC,EACpC,8BAA8B,KAAK,EAAE,EACrC,oCAAoC,KAAK,EAAE,EAC3C,4CAA4C,KAAK,EAAE,EACnD,uBAAuB,QAAQ,EAAE,EACjC,iCAAiC,QAAQ,EAAE,EAC3C,oBAAoB,EACpB,oBAAoB,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EACvD,qBAAqB,iBAAiB,EAAE,EACxC,qBAAqB,EACrB,qBAAqB,gBAAgB,EAAE,EACvC,sCAAsC,EACtC,8CAA8C,CAC/C,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,MAAM,GAAG,MAAM,CACnB,uBAAuB,EACvB,0CAA0C,EAC1C,8BAA8B,EAC9B,6BAA6B,EAC7B,2CAA2C,EAC3C,kDAAkD,CACnD,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,GAAG,MAAM,CACpB,2BAA2B,EAC3B,qBAAqB,EACrB,0EAA0E,EAC1E,sCAAsC,EACtC,sDAAsD,EACtD,QAAQ,EACR,wGAAwG,EACxG,uCAAuC,EACvC,iBAAiB,EACjB,iDAAiD,EACjD,kFAAkF,EAClF,gCAAgC,EAChC,iBAAiB,EACjB,8CAA8C,EAC9C,wEAAwE,EACxE,qCAAqC,EACrC,iBAAiB,CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,KAAK,GAAG,MAAM,CAClB,SAAS,EACT,2BAA2B,EAC3B,GAAG,EACH,kCAAkC,EAClC,2BAA2B,EAC3B,mDAAmD,GAAG,IAAI,SAAS,QAAQ,QAAQ,GAAG,EACtF,wLAAwL,EACxL,2BAA2B,EAC3B,cAAc,EACd,oMAAoM,EACpM,8EAA8E,EAC9E,MAAM,CACP,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,UAAU,CAAC,MAAqB;IAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACvB,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG;QACX,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC7C,mBAAmB,EAAE,MAAM;QAC3B,cAAc,EAAE,OAAO;QACvB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;KACtD,CAAC;IACF,MAAM,SAAS,GAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvF,qHAAqH;IACrH,MAAM,OAAO,GAAc;QACzB,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,SAAS;QACf,QAAQ;QACR,IAAI,EAAE;YACJ,SAAS,EAAE,MAAM;YACjB,wBAAwB,EAAE,IAAI;YAC9B,QAAQ,EAAE,cAAc,CAAC,aAAa,CAAC;YACvC,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACjD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE;aAC5C;SACF;KACF,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,OAAe,EAA2F,EAAE,CAAC,CAAC;QACxI,IAAI;QACJ,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QACxC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;QACzC,OAAO,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC;QAClD,eAAe,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE;KAC5E,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACrJ,MAAM,MAAM,GAAe;QACzB,MAAM,CAAC,kBAAkB,CAAC;QAC1B,MAAM,CAAC,oBAAoB,CAAC;QAC5B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE;QACvC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,uDAAuD,EAAE;KAC7F,CAAC;IACF,MAAM,WAAW,GAAkB;QACjC,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,aAAa;QACnB,QAAQ;QACR,IAAI,EAAE;YACJ,WAAW,EAAE,GAAG;YAChB,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YAC1B,0EAA0E;YAC1E,mBAAmB,EAAE,UAAU;YAC/B,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE;YACxD,QAAQ,EAAE;gBACR,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE;gBAClH,IAAI,EAAE;oBACJ,GAAG,QAAQ,CAAC,OAAO,CAAC;oBACpB,GAAG,YAAY,CAAC,MAAM,CAAC;oBACvB,GAAG,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;oBAC3C,yFAAyF;oBACzF,6BAA6B,EAAE,GAAG;oBAClC,cAAc,EAAE,CAAC;4BACf,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;4BAC3B,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;4BAChE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;4BACrF,YAAY,EAAE,MAAM;yBACrB,CAAC;oBACF,UAAU,EAAE;wBACV;4BACE,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;4BACvB,GAAG,EAAE;gCACH,GAAG,MAAM;gCACT,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,mBAAmB,EAAE;gCACvD,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,6DAA6D,gBAAgB,wBAAwB,EAAE;gCACpI,2CAA2C;gCAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE;6BACnD;4BACD,KAAK,EAAE;gCACL,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;gCAC3C,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE;gCAC1D,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE;6BACrD;4BACD,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE;4BACxF,cAAc,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;4BACpE,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE;4BACxF,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,YAAY,EAAE,MAAM;yBACrB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;4BAC3C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;4BACzC,IAAI,EAAE,CAAC,MAAM,EAAE,+BAA+B,CAAC;4BAC/C,GAAG,EAAE;gCACH,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,QAAQ,EAAE,EAAE;gCACvD,yEAAyE;gCACzE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gCACvJ,MAAM,CAAC,oBAAoB,CAAC;gCAC5B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB,EAAE;gCACrD,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE;gCACtD,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;6BACxD;4BACD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;4BACvD,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;4BAClF,eAAe,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE;4BAC3E,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;4BACpF,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;yBAClJ;qBACF;oBACD,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;wBAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE;wBAC1E,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;qBAChD;iBACF;aACF;YACD,oBAAoB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;SACtI;KACF,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACnJ,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import { COMPUTE_CTL_PORT, COMPUTE_PORT, computeId, MAIN, REPLICA_SUFFIX, replicaId } from "../../../neon/control/branches.js";
2
- import { SUSPEND_AFTER } from "../../../neon/control/endpoints.js";
2
+ import { SERVING_LABEL, SUSPEND_AFTER } from "../../../neon/control/endpoints.js";
3
3
  import { DATABASE, PAGESERVER_ZONE, ROLE } from "../../../neon/control/secrets.js";
4
4
  import { imageReference } from "../images.js";
5
- import { computeRestartPolicy } from "./admission.js";
6
- import { claimSpec, collectorRuns, databaseSecret, given, helperResources, imagePullSecrets, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, neonName, ONE, otelEnv, RELEASE, replicasOf, restrictedContainer, s3Endpoint, sandboxSnapshots, script, selectorLabels, stackLabels, stackPodSpec, waitFor, waitForObjectStore, } from "./common.js";
5
+ import { computeRestartPolicy, computeServingPolicy } from "./admission.js";
6
+ import { BACKGROUND_CPU, claimSpec, collectorRuns, DATABASE_SECRET, given, helperResources, imagePullSecrets, lakeRuns, MAIN_ENVIRONMENT, NAMESPACE, neonName, oncePolicyApplies, ONE, otelEnv, RELEASE, replicasOf, restrictedContainer, s3Endpoint, script, selectorLabels, stackLabels, stackPodSpec, waitFor, waitForObjectStore, } from "./common.js";
7
7
  import { durationSeconds } from "./config.js";
8
8
  import { replicaBudget, spread } from "./disruption.js";
9
9
  import { priority } from "./priorities.js";
10
10
  import { verticalPodAutoscaler } from "./sizing.js";
11
+ import { oneAtATime } from "./volume-lock.js";
11
12
  import { VALKEY_ADDRESS, workspacesBucketUrl } from "./workspace-storage.js";
12
13
  /** A Service of the stack's: its name and component, selecting the component's pods, on `ports`, main's unless of `environment`. */
13
14
  function service(name, component, ports, environment = MAIN_ENVIRONMENT) {
@@ -24,11 +25,10 @@ function secretVariable(secret, key) {
24
25
  }
25
26
  /**
26
27
  * The stack's secrets, made once and kept, and each service's rendered from them, by
27
- * neon/control/kube-setup.ts: the log's and the webhook intake's; and where Neon runs,
28
- * Neon's, the object store's, workspace storage's when it is on, and the snapshots
29
- * bucket's and the node agents' when sandboxes are snapshotted: a Job, which applying
30
- * alasio runs to completion before anything else of alasio starts (../kube/apply.ts), with
31
- * Neon or without it.
28
+ * neon/control/kube-setup.ts: the log's and the webhook intake's, Neon's, the object
29
+ * store's, workspace storage's, and the snapshots bucket's and the node agents': a Job,
30
+ * which applying alasio runs to completion before anything else of alasio starts
31
+ * (../kube/apply.ts).
32
32
  */
33
33
  function setup(config) {
34
34
  const name = neonName("setup");
@@ -68,44 +68,32 @@ function setup(config) {
68
68
  name: "setup",
69
69
  image: imageReference(config.images.alasio),
70
70
  imagePullPolicy: config.images.pullPolicy,
71
- command: ["node", "/opt/alasio/neon/control/kube-setup.ts"],
71
+ args: ["node", "/opt/alasio/neon/control/kube-setup.ts"],
72
72
  env: [
73
73
  { name: "NAMESPACE", valueFrom: { fieldRef: { fieldPath: "metadata.namespace" } } },
74
74
  { name: "SECRET_PREFIX", value: RELEASE },
75
- ...(config.neon.enabled
76
- ? [
77
- { name: "NEON_BROKER_URL", value: `http://${neonName("storage-broker")}:50051` },
78
- { name: "NEON_CONTROLLER_URL", value: `http://${neonName("storage-controller")}:1234` },
79
- { name: "NEON_PROXY_HOST", value: PROXY_HOST },
80
- { name: "NEON_CONTROLLER_DB_HOST", value: neonName("controller-db") },
81
- ]
82
- : []),
75
+ { name: "NEON_BROKER_URL", value: `http://${neonName("storage-broker")}:50051` },
76
+ { name: "NEON_CONTROLLER_URL", value: `http://${neonName("storage-controller")}:1234` },
77
+ { name: "NEON_PROXY_HOST", value: PROXY_HOST },
78
+ { name: "NEON_CONTROLLER_DB_HOST", value: neonName("controller-db") },
83
79
  { name: "S3_ENDPOINT", value: s3Endpoint(config) },
84
80
  { name: "S3_REGION", value: objectStore.external.region },
85
81
  { name: "S3_BUCKET_NEON", value: objectStore.buckets.neon },
86
82
  { name: "S3_BUCKET_LAKE", value: objectStore.buckets.lake },
87
83
  { name: "S3_BUCKET_BACKUPS", value: objectStore.buckets.backups },
88
84
  { name: "WEBHOOK_ADDRESS", value: config.webhook.publicAddress },
89
- ...(workspaceStorage.enabled
90
- ? [
91
- { name: "WORKSPACES_NAME", value: workspaceStorage.name },
92
- { name: "WORKSPACES_BUCKET", value: objectStore.buckets.workspaces },
93
- { name: "WORKSPACES_BUCKET_URL", value: workspacesBucketUrl(config) },
94
- { name: "WORKSPACES_TRASH_DAYS", value: String(workspaceStorage.trashDays) },
95
- { name: "VALKEY_ADDRESS", value: VALKEY_ADDRESS },
96
- ]
97
- : []),
98
- ...(sandboxSnapshots(config) ? [{ name: "SNAPSHOTS_BUCKET", value: objectStore.buckets.snapshots }] : []),
85
+ { name: "WORKSPACES_NAME", value: workspaceStorage.name },
86
+ { name: "WORKSPACES_BUCKET", value: objectStore.buckets.workspaces },
87
+ { name: "WORKSPACES_BUCKET_URL", value: workspacesBucketUrl(config) },
88
+ { name: "WORKSPACES_TRASH_DAYS", value: String(workspaceStorage.trashDays) },
89
+ { name: "VALKEY_ADDRESS", value: VALKEY_ADDRESS },
90
+ { name: "SNAPSHOTS_BUCKET", value: objectStore.buckets.snapshots },
99
91
  ...(objectStore.bundled.enabled ? [] : [
100
92
  { name: "S3_EXTERNAL", value: "1" },
101
93
  { name: "S3_ACCESS_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.existingSecret, key: "accessKey" } } },
102
94
  { name: "S3_SECRET_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.existingSecret, key: "secretKey" } } },
103
- ...(sandboxSnapshots(config)
104
- ? [
105
- { name: "S3_SNAPSHOTS_ACCESS_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.snapshotsSecret, key: "accessKey" } } },
106
- { name: "S3_SNAPSHOTS_SECRET_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.snapshotsSecret, key: "secretKey" } } },
107
- ]
108
- : []),
95
+ { name: "S3_SNAPSHOTS_ACCESS_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.snapshotsSecret, key: "accessKey" } } },
96
+ { name: "S3_SNAPSHOTS_SECRET_KEY", valueFrom: { secretKeyRef: { name: objectStore.external.snapshotsSecret, key: "secretKey" } } },
109
97
  ]),
110
98
  ],
111
99
  securityContext: restrictedContainer(),
@@ -138,6 +126,10 @@ function controllerDb(config) {
138
126
  name: "postgres",
139
127
  image: imageReference(config.neon.controllerDbImage),
140
128
  imagePullPolicy: "IfNotPresent",
129
+ // Started as the image starts it, its entrypoint running postgres, once no other
130
+ // Postgres holds the lock of its volume (./volume-lock.ts), a file in the volume's
131
+ // root, outside its data directory.
132
+ command: ["/bin/sh", "-c", oneAtATime("/var/lib/postgresql/data/.alasio-postgres.lock", "Postgres"), "docker-entrypoint.sh", "postgres"],
141
133
  env: [
142
134
  { name: "POSTGRES_USER", value: "storage_controller" },
143
135
  { name: "POSTGRES_DB", value: "storage_controller" },
@@ -446,9 +438,11 @@ export const PROXY_PORT = 5432;
446
438
  * What neon-control may do to the compute of `namespace`, main's or a branch
447
439
  * environment's, and to its read replica: read its Deployment, and restart it, to start on
448
440
  * a spec anew, and scale it, waking it and putting it to sleep, and list its pods, to see
449
- * one put to sleep gone before it wakes it; a Role there, bound to neon-control's
450
- * ServiceAccount in main's. Of a Deployment it patches, it may change the restart's
451
- * annotation alone (./admission.ts's computeRestartPolicy).
441
+ * one put to sleep gone before it wakes it, and label them, taking one off its Service as
442
+ * it puts it to sleep, and list the Service's EndpointSlices, to see it taken off; a Role
443
+ * there, bound to neon-control's ServiceAccount in main's. Of a Deployment it patches, it
444
+ * may change the restart's annotation alone (./admission.ts's computeRestartPolicy), and
445
+ * of a pod, a compute's, its serving label alone (computeServingPolicy).
452
446
  */
453
447
  export function computeScaling(namespace) {
454
448
  const name = neonName("control");
@@ -460,8 +454,9 @@ export function computeScaling(namespace) {
460
454
  rules: [
461
455
  { apiGroups: ["apps"], resources: ["deployments"], resourceNames: [neonName("compute"), REPLICA_NAME], verbs: ["get", "patch"] },
462
456
  { apiGroups: ["apps"], resources: ["deployments/scale"], resourceNames: [neonName("compute"), REPLICA_NAME], verbs: ["patch"] },
463
- // A list is of a namespace's pods, as no name narrows it.
464
- { apiGroups: [""], resources: ["pods"], verbs: ["list"] },
457
+ // Of a namespace's pods, as no name narrows a list, nor names a pod made of a template.
458
+ { apiGroups: [""], resources: ["pods"], verbs: ["list", "patch"] },
459
+ { apiGroups: ["discovery.k8s.io"], resources: ["endpointslices"], verbs: ["list"] },
465
460
  ],
466
461
  };
467
462
  const binding = {
@@ -505,7 +500,7 @@ function control(config) {
505
500
  name: "neon-control",
506
501
  image: imageReference(config.images.alasio),
507
502
  imagePullPolicy: config.images.pullPolicy,
508
- command: ["node", "/opt/alasio/neon/control/service.ts"],
503
+ args: ["node", "/opt/alasio/neon/control/service.ts"],
509
504
  env: [
510
505
  { name: "CONTROLLER_URL", value: `http://${neonName("storage-controller")}:1234` },
511
506
  { name: "NEON_SAFEKEEPER_HOSTS", value: safekeeperHosts.join(",") },
@@ -544,6 +539,7 @@ function control(config) {
544
539
  serviceAccount,
545
540
  ...computeScaling(NAMESPACE),
546
541
  ...computeRestartPolicy(),
542
+ ...computeServingPolicy(),
547
543
  deployment,
548
544
  ...replicaBudget(component, NAMESPACE, scaling),
549
545
  verticalPodAutoscaler(deployment, "Recommended"),
@@ -557,8 +553,8 @@ function control(config) {
557
553
  * client against it, has neon-control wake the compute if it sleeps, and then passes the
558
554
  * session through, whole, so session state such as advisory locks holds. It keeps where
559
555
  * each compute is for four minutes, and asks again when a connection there fails, as one
560
- * to a compute that has gone to sleep since does. It cancels no query: that needs a Redis
561
- * of its own, and alasio cancels none.
556
+ * to a compute that has gone to sleep since does, or that a sleep is stopping. It cancels
557
+ * no query: that needs a Redis of its own, and alasio cancels none.
562
558
  */
563
559
  function proxy(config) {
564
560
  const name = neonName("proxy");
@@ -621,7 +617,9 @@ function proxy(config) {
621
617
  * neon-control wakes it and puts it to sleep, scaling its Deployment between one replica
622
618
  * and none: so applying alasio gives it none, as it would take the count back, and a
623
619
  * compute made anew starts at one. Its Service takes connections before its pod is ready,
624
- * so a wake is answered as soon as Postgres takes them.
620
+ * so a wake is answered as soon as Postgres takes them, and none once a sleep has taken
621
+ * its pod off it, before stopping it, so the proxy asks for a wake rather than reach the
622
+ * pod stopping.
625
623
  *
626
624
  * Beside it, where the lake runs, its read replica (REPLICA_NAME), which the lake loads
627
625
  * from: a compute of its own, on the same timeline, streaming its WAL from the
@@ -655,7 +653,8 @@ function computeObjects(config, environment, replica) {
655
653
  strategy: { type: "Recreate" },
656
654
  selector: { matchLabels: selectorLabels(component) },
657
655
  template: {
658
- metadata: { labels: stackLabels(component) },
656
+ // Its Service's while no sleep has taken it off it (neon/control/endpoints.ts's SERVING_LABEL).
657
+ metadata: { labels: { ...stackLabels(component), [SERVING_LABEL]: "true" } },
659
658
  spec: {
660
659
  // Main's primary is alasio's database, which every turn needs; a branch's, and every
661
660
  // read replica, serve what may wait.
@@ -705,7 +704,7 @@ function computeObjects(config, environment, replica) {
705
704
  apiVersion: "v1",
706
705
  kind: "Service",
707
706
  metadata: { name, namespace: environment.namespace, labels: stackLabels(component) },
708
- spec: { selector: selectorLabels(component), publishNotReadyAddresses: true, ports: [{ name: "postgres", port: COMPUTE_PORT }, { name: "http", port: COMPUTE_CTL_PORT }] },
707
+ spec: { selector: { ...selectorLabels(component), [SERVING_LABEL]: "true" }, publishNotReadyAddresses: true, ports: [{ name: "postgres", port: COMPUTE_PORT }, { name: "http", port: COMPUTE_CTL_PORT }] },
709
708
  };
710
709
  return [service, deployment, verticalPodAutoscaler(deployment, "Recommended")];
711
710
  }
@@ -725,9 +724,7 @@ function backup(config) {
725
724
  command: [
726
725
  "/bin/sh",
727
726
  "-c",
728
- // A new pod's NetworkPolicy may apply a moment after it starts, so the proxy is
729
- // waited for rather than given up on at the first refusal.
730
- `until pg_isready --quiet; do sleep 2; done && pg_dump --username=${ROLE} --dbname=${DATABASE} --format=custom --file=/backup/alasio.dump`,
727
+ `${oncePolicyApplies("pg_isready --quiet")} && pg_dump --username=${ROLE} --dbname=${DATABASE} --format=custom --file=/backup/alasio.dump`,
731
728
  ],
732
729
  env: [
733
730
  { name: "PGHOST", value: PROXY_HOST },
@@ -735,10 +732,10 @@ function backup(config) {
735
732
  // Main's compute, through the proxy, which wakes it if it sleeps.
736
733
  { name: "PGOPTIONS", value: `endpoint=${computeId(MAIN)}` },
737
734
  { name: "PGCONNECT_TIMEOUT", value: "60" },
738
- { name: "PGPASSWORD", valueFrom: { secretKeyRef: { name: databaseSecret(config), key: "password" } } },
735
+ { name: "PGPASSWORD", valueFrom: { secretKeyRef: { name: DATABASE_SECRET, key: "password" } } },
739
736
  ],
740
737
  securityContext: restrictedContainer(),
741
- resources: { requests: { cpu: "100m", memory: "128Mi" }, limits: { memory: "1Gi" } },
738
+ resources: { requests: { cpu: BACKGROUND_CPU, memory: "128Mi" }, limits: { memory: "1Gi" } },
742
739
  volumeMounts: [{ name: "backup", mountPath: "/backup" }],
743
740
  };
744
741
  const upload = {
@@ -750,25 +747,12 @@ function backup(config) {
750
747
  "-c",
751
748
  script("set -eu", 's3() { aws s3 --endpoint-url "$S3_ENDPOINT" "$@"; }',
752
749
  // Deletes all but the newest KEEP of the backups whose names match $1, which sort by when they were made.
753
- "prune() { s3 ls \"s3://$BUCKET/\" | awk '{print $4}' | grep \"$1\" | sort -r | tail -n +$((KEEP + 1)) \\", ' | while read -r old; do s3 rm "s3://$BUCKET/$old"; done; }', "stamp=$(date -u +%Y%m%dT%H%M%SZ)", 's3 cp "$BACKUP_DIR/alasio.dump" "s3://$BUCKET/alasio-$stamp.dump"', "prune '^alasio-.*\\.dump$'", ...(workspaceStorage.enabled
754
- ? [
755
- 'meta="s3://$WORKSPACES_BUCKET/$WORKSPACES_NAME/meta/"',
756
- "dump=$(s3 ls \"$meta\" | awk '{print $4}' | grep '^dump-.*\\.json\\.gz$' | sort -r | head -n 1)",
757
- // Copied by its bytes, read and written as every object is, not by the object store's
758
- // own copy (CopyObject), which SeaweedFS failed for a dump, all of the job's tries;
759
- // checked as the gzip it is, and read back the same once written. None until a
760
- // workspace's volume has been mounted for a while.
761
- 'copied="s3://$BUCKET/$WORKSPACES_NAME-$dump"',
762
- 'if [ -n "$dump" ]; then',
763
- ' s3 cp "$meta$dump" "$BACKUP_DIR/workspaces.json.gz"',
764
- ' gzip -t "$BACKUP_DIR/workspaces.json.gz" 2>/dev/null || { echo "$dump is no whole gzip" >&2; exit 1; }',
765
- ' s3 cp "$BACKUP_DIR/workspaces.json.gz" "$copied"',
766
- ' s3 cp "$copied" "$BACKUP_DIR/workspaces.copied"',
767
- ' cmp -s "$BACKUP_DIR/workspaces.json.gz" "$BACKUP_DIR/workspaces.copied" || { echo "the copy of $dump in $BUCKET is not the dump read" >&2; exit 1; }',
768
- 'else echo "JuiceFS has dumped no metadata of $WORKSPACES_NAME yet"; fi',
769
- 'prune "^$WORKSPACES_NAME-dump-.*\\.json\\.gz$"',
770
- ]
771
- : [])),
750
+ "prune() { s3 ls \"s3://$BUCKET/\" | awk '{print $4}' | grep \"$1\" | sort -r | tail -n +$((KEEP + 1)) \\", ' | while read -r old; do s3 rm "s3://$BUCKET/$old"; done; }', "stamp=$(date -u +%Y%m%dT%H%M%SZ)", 's3 cp "$BACKUP_DIR/alasio.dump" "s3://$BUCKET/alasio-$stamp.dump"', "prune '^alasio-.*\\.dump$'", 'meta="s3://$WORKSPACES_BUCKET/$WORKSPACES_NAME/meta/"', "dump=$(s3 ls \"$meta\" | awk '{print $4}' | grep '^dump-.*\\.json\\.gz$' | sort -r | head -n 1)",
751
+ // Copied by its bytes, read and written as every object is, not by the object store's
752
+ // own copy (CopyObject), which SeaweedFS failed for a dump, all of the job's tries;
753
+ // checked as the gzip it is, and read back the same once written. None until a
754
+ // workspace's volume has been mounted for a while.
755
+ 'copied="s3://$BUCKET/$WORKSPACES_NAME-$dump"', 'if [ -n "$dump" ]; then', ' s3 cp "$meta$dump" "$BACKUP_DIR/workspaces.json.gz"', ' gzip -t "$BACKUP_DIR/workspaces.json.gz" 2>/dev/null || { echo "$dump is no whole gzip" >&2; exit 1; }', ' s3 cp "$BACKUP_DIR/workspaces.json.gz" "$copied"', ' s3 cp "$copied" "$BACKUP_DIR/workspaces.copied"', ' cmp -s "$BACKUP_DIR/workspaces.json.gz" "$BACKUP_DIR/workspaces.copied" || { echo "the copy of $dump in $BUCKET is not the dump read" >&2; exit 1; }', 'else echo "JuiceFS has dumped no metadata of $WORKSPACES_NAME yet"; fi', 'prune "^$WORKSPACES_NAME-dump-.*\\.json\\.gz$"'),
772
756
  ],
773
757
  env: [
774
758
  { name: "S3_ENDPOINT", value: s3Endpoint(config) },
@@ -776,16 +760,15 @@ function backup(config) {
776
760
  { name: "KEEP", value: String(config.neon.backup.keep) },
777
761
  // Where the database's dump is, which the backup's own reads of JuiceFS's are put beside.
778
762
  { name: "BACKUP_DIR", value: "/backup" },
779
- ...(workspaceStorage.enabled
780
- ? [{ name: "WORKSPACES_BUCKET", value: objectStore.buckets.workspaces }, { name: "WORKSPACES_NAME", value: workspaceStorage.name }]
781
- : []),
763
+ { name: "WORKSPACES_BUCKET", value: objectStore.buckets.workspaces },
764
+ { name: "WORKSPACES_NAME", value: workspaceStorage.name },
782
765
  { name: "AWS_DEFAULT_REGION", value: objectStore.external.region },
783
766
  { name: "HOME", value: "/tmp" },
784
767
  ],
785
768
  // Its own identity: it writes the backups' bucket and reads what it backs up, and no more.
786
769
  envFrom: [{ secretRef: { name: neonName("s3-backups") } }],
787
770
  securityContext: restrictedContainer(),
788
- resources: { requests: { cpu: "50m", memory: "128Mi" }, limits: { memory: "512Mi" } },
771
+ resources: { requests: { cpu: BACKGROUND_CPU, memory: "128Mi" }, limits: { memory: "512Mi" } },
789
772
  volumeMounts: [{ name: "backup", mountPath: "/backup" }, { name: "tmp", mountPath: "/tmp" }],
790
773
  };
791
774
  return {
@@ -817,11 +800,8 @@ function backup(config) {
817
800
  },
818
801
  };
819
802
  }
820
- /** The stack's setup, which runs with Neon or without it, and Neon's objects, when it runs. */
803
+ /** The stack's setup, and Neon's objects. */
821
804
  export function neonObjects(config) {
822
- const { neon } = config;
823
- if (!neon.enabled)
824
- return setup(config);
825
805
  return [
826
806
  ...setup(config),
827
807
  ...controllerDb(config),
@@ -832,7 +812,7 @@ export function neonObjects(config) {
832
812
  ...control(config),
833
813
  ...proxy(config),
834
814
  ...compute(config),
835
- ...(neon.backup.enabled ? [backup(config)] : []),
815
+ ...(config.neon.backup.enabled ? [backup(config)] : []),
836
816
  ];
837
817
  }
838
818
  //# sourceMappingURL=neon.js.map