alasio 5.1.0 → 7.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 (132) hide show
  1. package/dist/cli/src/branches.js +53 -22
  2. package/dist/cli/src/branches.js.map +1 -1
  3. package/dist/cli/src/capacity.js +46 -0
  4. package/dist/cli/src/capacity.js.map +1 -0
  5. package/dist/cli/src/cluster/docker-engine.js +6 -4
  6. package/dist/cli/src/cluster/docker-engine.js.map +1 -1
  7. package/dist/cli/src/cluster/docker.js +49 -10
  8. package/dist/cli/src/cluster/docker.js.map +1 -1
  9. package/dist/cli/src/cluster/host.js +45 -19
  10. package/dist/cli/src/cluster/host.js.map +1 -1
  11. package/dist/cli/src/cluster/k3s.js +109 -9
  12. package/dist/cli/src/cluster/k3s.js.map +1 -1
  13. package/dist/cli/src/cluster/node.js +94 -50
  14. package/dist/cli/src/cluster/node.js.map +1 -1
  15. package/dist/cli/src/cluster/tar.js +43 -1
  16. package/dist/cli/src/cluster/tar.js.map +1 -1
  17. package/dist/cli/src/commands/branch.js +9 -4
  18. package/dist/cli/src/commands/branch.js.map +1 -1
  19. package/dist/cli/src/commands/restore-filer-store.js +247 -0
  20. package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
  21. package/dist/cli/src/commands/status.js +141 -12
  22. package/dist/cli/src/commands/status.js.map +1 -1
  23. package/dist/cli/src/commands/uninstall.js +1 -1
  24. package/dist/cli/src/commands/uninstall.js.map +1 -1
  25. package/dist/cli/src/commands/up.js +42 -4
  26. package/dist/cli/src/commands/up.js.map +1 -1
  27. package/dist/cli/src/commands/upgrade.js +22 -6
  28. package/dist/cli/src/commands/upgrade.js.map +1 -1
  29. package/dist/cli/src/commands.js +2 -1
  30. package/dist/cli/src/commands.js.map +1 -1
  31. package/dist/cli/src/config.js +13 -4
  32. package/dist/cli/src/config.js.map +1 -1
  33. package/dist/cli/src/cpu-baseline.js +97 -0
  34. package/dist/cli/src/cpu-baseline.js.map +1 -0
  35. package/dist/cli/src/install.js +44 -11
  36. package/dist/cli/src/install.js.map +1 -1
  37. package/dist/cli/src/kept-releases.js +59 -0
  38. package/dist/cli/src/kept-releases.js.map +1 -0
  39. package/dist/cli/src/kube/api.js +13 -5
  40. package/dist/cli/src/kube/api.js.map +1 -1
  41. package/dist/cli/src/kube/apply.js +116 -13
  42. package/dist/cli/src/kube/apply.js.map +1 -1
  43. package/dist/cli/src/kube/autoscalers.js +48 -0
  44. package/dist/cli/src/kube/autoscalers.js.map +1 -0
  45. package/dist/cli/src/kube/object-store-scale.js +116 -0
  46. package/dist/cli/src/kube/object-store-scale.js.map +1 -0
  47. package/dist/cli/src/kube/rollout.js +23 -0
  48. package/dist/cli/src/kube/rollout.js.map +1 -1
  49. package/dist/cli/src/manifests/admission.js +416 -0
  50. package/dist/cli/src/manifests/admission.js.map +1 -0
  51. package/dist/cli/src/manifests/agent-sandbox.js +6 -3
  52. package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
  53. package/dist/cli/src/manifests/alasio.js +165 -25
  54. package/dist/cli/src/manifests/alasio.js.map +1 -1
  55. package/dist/cli/src/manifests/branch.js +2 -1
  56. package/dist/cli/src/manifests/branch.js.map +1 -1
  57. package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
  58. package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
  59. package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
  60. package/dist/cli/src/manifests/collector.js +92 -45
  61. package/dist/cli/src/manifests/collector.js.map +1 -1
  62. package/dist/cli/src/manifests/common.js +34 -8
  63. package/dist/cli/src/manifests/common.js.map +1 -1
  64. package/dist/cli/src/manifests/config.js +273 -35
  65. package/dist/cli/src/manifests/config.js.map +1 -1
  66. package/dist/cli/src/manifests/controllers.js +39 -0
  67. package/dist/cli/src/manifests/controllers.js.map +1 -0
  68. package/dist/cli/src/manifests/disruption.js +47 -0
  69. package/dist/cli/src/manifests/disruption.js.map +1 -0
  70. package/dist/cli/src/manifests/grafana.js +66 -10
  71. package/dist/cli/src/manifests/grafana.js.map +1 -1
  72. package/dist/cli/src/manifests/headroom.js +40 -0
  73. package/dist/cli/src/manifests/headroom.js.map +1 -0
  74. package/dist/cli/src/manifests/index.js +20 -6
  75. package/dist/cli/src/manifests/index.js.map +1 -1
  76. package/dist/cli/src/manifests/juicefs-csi.js +9 -6
  77. package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
  78. package/dist/cli/src/manifests/keda.js +271 -0
  79. package/dist/cli/src/manifests/keda.js.map +1 -0
  80. package/dist/cli/src/manifests/lake.js +13 -5
  81. package/dist/cli/src/manifests/lake.js.map +1 -1
  82. package/dist/cli/src/manifests/neon.js +196 -51
  83. package/dist/cli/src/manifests/neon.js.map +1 -1
  84. package/dist/cli/src/manifests/network-policies.js +177 -28
  85. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  86. package/dist/cli/src/manifests/node-agent.js +107 -0
  87. package/dist/cli/src/manifests/node-agent.js.map +1 -0
  88. package/dist/cli/src/manifests/object-store.js +543 -82
  89. package/dist/cli/src/manifests/object-store.js.map +1 -1
  90. package/dist/cli/src/manifests/priorities.js +31 -0
  91. package/dist/cli/src/manifests/priorities.js.map +1 -0
  92. package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
  93. package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
  94. package/dist/cli/src/manifests/scalers.js +24 -0
  95. package/dist/cli/src/manifests/scalers.js.map +1 -0
  96. package/dist/cli/src/manifests/sizing.js +40 -0
  97. package/dist/cli/src/manifests/sizing.js.map +1 -0
  98. package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
  99. package/dist/cli/src/manifests/valkey.js +63 -35
  100. package/dist/cli/src/manifests/valkey.js.map +1 -1
  101. package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
  102. package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
  103. package/dist/cli/src/manifests/vpa.js +220 -0
  104. package/dist/cli/src/manifests/vpa.js.map +1 -0
  105. package/dist/cli/src/manifests/workspace-storage.js +12 -2
  106. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  107. package/dist/cli/src/object-store.js +57 -0
  108. package/dist/cli/src/object-store.js.map +1 -0
  109. package/dist/cli/src/release.js +6 -6
  110. package/dist/cli/src/target.js +1 -1
  111. package/dist/cli/src/target.js.map +1 -1
  112. package/dist/cluster/node/pins.json +6 -2
  113. package/dist/neon/control/branches.js +31 -12
  114. package/dist/neon/control/branches.js.map +1 -1
  115. package/dist/neon/control/endpoints.js +108 -0
  116. package/dist/neon/control/endpoints.js.map +1 -0
  117. package/dist/neon/control/scram.js +13 -1
  118. package/dist/neon/control/scram.js.map +1 -1
  119. package/dist/neon/control/secrets.js +52 -8
  120. package/dist/neon/control/secrets.js.map +1 -1
  121. package/dist/src/kube/busy-label.js +13 -0
  122. package/dist/src/kube/busy-label.js.map +1 -0
  123. package/dist/src/kube/config.js +30 -4
  124. package/dist/src/kube/config.js.map +1 -1
  125. package/dist/src/kube/sandbox-shape.js +98 -0
  126. package/dist/src/kube/sandbox-shape.js.map +1 -0
  127. package/dist/src/node-agent/names.js +74 -0
  128. package/dist/src/node-agent/names.js.map +1 -0
  129. package/dist/src/sandbox/names.js +44 -0
  130. package/dist/src/sandbox/names.js.map +1 -0
  131. package/package.json +2 -2
  132. package/dist/cluster/node/config-v3.toml.tmpl +0 -12
@@ -0,0 +1,271 @@
1
+ import { imageReference } from "../images.js";
2
+ import cloudEventSources from "./cloudeventsources.eventing.keda.sh.json" with { type: "json" };
3
+ import clusterCloudEventSources from "./clustercloudeventsources.eventing.keda.sh.json" with { type: "json" };
4
+ import clusterTriggerAuthentications from "./clustertriggerauthentications.keda.sh.json" with { type: "json" };
5
+ import { componentName, labels, NAMESPACE, selectorLabels } from "./common.js";
6
+ import { rule, sizedController } from "./controllers.js";
7
+ import scaledJobs from "./scaledjobs.keda.sh.json" with { type: "json" };
8
+ import scaledObjects from "./scaledobjects.keda.sh.json" with { type: "json" };
9
+ import triggerAuthentications from "./triggerauthentications.keda.sh.json" with { type: "json" };
10
+ /**
11
+ * KEDA's CRDs, as the API server takes them, whose schemas' keys are not client-node's
12
+ * model's. The operator watches every one of them, so all are installed, though alasio
13
+ * makes ScaledObjects alone.
14
+ */
15
+ export const KEDA_CRDS = [scaledObjects, scaledJobs, triggerAuthentications, clusterTriggerAuthentications, cloudEventSources, clusterCloudEventSources];
16
+ /** The external metrics' APIService, which one provider serves for the whole cluster: KEDA's metrics API server, here. */
17
+ export const EXTERNAL_METRICS = "v1beta1.external.metrics.k8s.io";
18
+ const OPERATOR = componentName("keda-operator");
19
+ const METRICS_API_SERVER = componentName("keda-metrics-apiserver");
20
+ const WEBHOOKS = componentName("keda-admission-webhooks");
21
+ const WEBHOOK_CONFIGURATION = componentName("keda-admission");
22
+ /** The Secret of the certificate the operator makes for all three, and keeps renewed. */
23
+ const CERTIFICATES = componentName("keda-certs");
24
+ /** The identity all three run as, as upstream's do. */
25
+ const ACCOUNT = OPERATOR;
26
+ /** The volume of the certificates' Secret, mounted at /certs, as each of the three reads it; the operator starts before it exists. */
27
+ function certificates(optional) {
28
+ return {
29
+ volume: { name: "certificates", secret: { secretName: CERTIFICATES, ...(optional ? { optional: true } : {}) } },
30
+ mount: { name: "certificates", mountPath: "/certs", readOnly: true },
31
+ };
32
+ }
33
+ /** The variables each of the three is given, as upstream gives them: its namespace, every namespace watched. */
34
+ const KEDA_ENV = [
35
+ { name: "POD_NAMESPACE", valueFrom: { fieldRef: { fieldPath: "metadata.namespace" } } },
36
+ { name: "WATCH_NAMESPACE", value: "" },
37
+ ];
38
+ /** The probes of the operator and the webhooks, on their health port. */
39
+ const HEALTH_PROBES = {
40
+ livenessProbe: { httpGet: { path: "/healthz", port: 8081 }, initialDelaySeconds: 25 },
41
+ readinessProbe: { httpGet: { path: "/readyz", port: 8081 }, initialDelaySeconds: 20 },
42
+ };
43
+ /** The operator, which scales what ScaledObjects name, and makes the three's certificate. */
44
+ function operator(config) {
45
+ const { operator } = config.autoscaling.keda;
46
+ const certs = certificates(true);
47
+ return sizedController(config, "keda-operator", ACCOUNT, {
48
+ name: "keda-operator",
49
+ image: imageReference(operator.image),
50
+ command: ["/keda"],
51
+ args: [
52
+ "--leader-elect",
53
+ "--zap-log-level=info",
54
+ "--zap-encoder=console",
55
+ "--zap-time-encoding=rfc3339",
56
+ "--enable-cert-rotation=true",
57
+ `--cert-secret-name=${CERTIFICATES}`,
58
+ `--operator-service-name=${OPERATOR}`,
59
+ `--metrics-server-service-name=${METRICS_API_SERVER}`,
60
+ `--webhooks-service-name=${WEBHOOKS}`,
61
+ `--validating-webhook-name=${WEBHOOK_CONFIGURATION}`,
62
+ ],
63
+ env: [
64
+ ...KEDA_ENV,
65
+ { name: "WATCH_LABEL_SELECTOR", value: "" },
66
+ { name: "WATCH_LABEL_SELECTOR_FOR_TRIGGERAUTH", value: "" },
67
+ // The Secrets it reads are of its own namespace alone: alasio's ScaledObjects
68
+ // authenticate to nothing, and another's that does reads its Secret from there,
69
+ // through a ClusterTriggerAuthentication.
70
+ { name: "KEDA_RESTRICT_SECRET_ACCESS", value: "true" },
71
+ ],
72
+ ports: [{ name: "http", containerPort: 8080 }, { name: "metricsservice", containerPort: 9666 }],
73
+ ...HEALTH_PROBES,
74
+ resources: operator.resources,
75
+ volumeMounts: [certs.mount],
76
+ }, [certs.volume]);
77
+ }
78
+ /** The metrics API server, which serves the API server the metrics of ScaledObjects' triggers, from the operator. */
79
+ function metricsApiServer(config) {
80
+ const { metricsApiServer } = config.autoscaling.keda;
81
+ const certs = certificates(false);
82
+ return sizedController(config, "keda-metrics-apiserver", ACCOUNT, {
83
+ name: "keda-metrics-apiserver",
84
+ image: imageReference(metricsApiServer.image),
85
+ command: ["/keda-adapter"],
86
+ args: [
87
+ "--secure-port=6443",
88
+ "--zap-log-level=error",
89
+ "--client-ca-file=/certs/ca.crt",
90
+ "--tls-cert-file=/certs/tls.crt",
91
+ "--tls-private-key-file=/certs/tls.key",
92
+ "--cert-dir=/certs",
93
+ `--metrics-service-address=${OPERATOR}.${NAMESPACE}.svc.cluster.local:9666`,
94
+ ],
95
+ env: KEDA_ENV,
96
+ ports: [{ name: "https", containerPort: 6443 }, { name: "http", containerPort: 8080 }],
97
+ livenessProbe: { httpGet: { path: "/healthz", port: 6443, scheme: "HTTPS" }, initialDelaySeconds: 5 },
98
+ readinessProbe: { httpGet: { path: "/readyz", port: 6443, scheme: "HTTPS" }, initialDelaySeconds: 5 },
99
+ resources: metricsApiServer.resources,
100
+ volumeMounts: [{ name: "tmp", mountPath: "/tmp" }, certs.mount],
101
+ }, [{ name: "tmp", emptyDir: {} }, certs.volume]);
102
+ }
103
+ /** The admission webhooks, which refuse a ScaledObject that cannot work, such as two on one workload. */
104
+ function admissionWebhooks(config) {
105
+ const { admissionWebhooks } = config.autoscaling.keda;
106
+ const certs = certificates(false);
107
+ return sizedController(config, "keda-admission-webhooks", ACCOUNT, {
108
+ name: "keda-admission-webhooks",
109
+ image: imageReference(admissionWebhooks.image),
110
+ command: ["/keda-admission-webhooks"],
111
+ args: ["--zap-log-level=info", "--zap-encoder=console", "--zap-time-encoding=rfc3339", "--cert-dir=/certs"],
112
+ env: KEDA_ENV,
113
+ ports: [{ name: "https", containerPort: 9443 }, { name: "metrics", containerPort: 8080 }],
114
+ ...HEALTH_PROBES,
115
+ resources: admissionWebhooks.resources,
116
+ volumeMounts: [certs.mount],
117
+ }, [certs.volume]);
118
+ }
119
+ /** A Service of KEDA's, `name`, to `component`'s pods on `ports`. */
120
+ function service(name, component, ports) {
121
+ return { apiVersion: "v1", kind: "Service", metadata: { name, namespace: NAMESPACE, labels: labels(component) }, spec: { selector: selectorLabels(component), ports } };
122
+ }
123
+ /**
124
+ * Who the three are and what they may do: upstream's grants, but that in alasio's
125
+ * namespace the operator writes its certificate's Secret and its leader's lease alone,
126
+ * of the Secrets and leases there, and of the cluster's webhooks and APIServices its
127
+ * own; that it writes no Job, as alasio makes no ScaledJob; and that of the objects
128
+ * ScaledObjects scale it reads Deployments and StatefulSets alone, rather than any object
129
+ * of the cluster's, Secrets among them: a cluster whose ScaledObjects scale another kind
130
+ * (a custom resource), or whose ScaledJobs run, needs a KEDA of its own
131
+ * (autoscaling.keda.enabled false).
132
+ */
133
+ function identity() {
134
+ const metadata = { name: OPERATOR, labels: labels("keda-operator") };
135
+ const subjects = [{ kind: "ServiceAccount", name: ACCOUNT, namespace: NAMESPACE }];
136
+ const serviceAccount = { apiVersion: "v1", kind: "ServiceAccount", metadata: { ...metadata, namespace: NAMESPACE } };
137
+ const role = {
138
+ apiVersion: "rbac.authorization.k8s.io/v1",
139
+ kind: "Role",
140
+ metadata: { ...metadata, namespace: NAMESPACE },
141
+ rules: [
142
+ rule([""], ["secrets"], ["create", "list", "watch"]),
143
+ rule([""], ["secrets"], ["get", "patch", "update", "delete"], [CERTIFICATES]),
144
+ rule(["coordination.k8s.io"], ["leases"], ["create", "list", "watch"]),
145
+ rule(["coordination.k8s.io"], ["leases"], ["get", "patch", "update", "delete"], ["operator.keda.sh"]),
146
+ ],
147
+ };
148
+ const clusterRole = {
149
+ apiVersion: "rbac.authorization.k8s.io/v1",
150
+ kind: "ClusterRole",
151
+ metadata,
152
+ rules: [
153
+ rule([""], ["configmaps", "configmaps/status", "external", "pods", "services"], ["get", "list", "watch"]),
154
+ rule([""], ["limitranges", "serviceaccounts"], ["list", "watch"]),
155
+ rule(["", "events.k8s.io"], ["events"], ["create", "patch"]),
156
+ rule(["*"], ["*/scale"], ["get", "list", "patch", "update", "watch"]),
157
+ // Of the webhooks and APIServices it reads, it writes its own alone, the CA they trust.
158
+ rule(["admissionregistration.k8s.io"], ["validatingwebhookconfigurations"], ["get", "list", "watch"]),
159
+ rule(["admissionregistration.k8s.io"], ["validatingwebhookconfigurations"], ["patch", "update"], [WEBHOOK_CONFIGURATION]),
160
+ rule(["apiregistration.k8s.io"], ["apiservices"], ["get", "list", "watch"]),
161
+ rule(["apiregistration.k8s.io"], ["apiservices"], ["patch", "update"], [EXTERNAL_METRICS]),
162
+ rule(["apps"], ["deployments", "statefulsets"], ["get", "list", "watch"]),
163
+ rule(["apps"], ["replicasets"], ["list", "watch"]),
164
+ rule(["autoscaling"], ["horizontalpodautoscalers"], ["create", "delete", "get", "list", "patch", "update", "watch"]),
165
+ // ScaledJobs' Jobs, which alasio makes none of: read, as the operator watches them, never written.
166
+ rule(["batch"], ["jobs"], ["get", "list", "watch"]),
167
+ rule(["discovery.k8s.io"], ["endpointslices"], ["get", "list", "watch"]),
168
+ rule(["eventing.keda.sh"], ["cloudeventsources", "cloudeventsources/status", "clustercloudeventsources", "clustercloudeventsources/status"], ["get", "list", "patch", "update", "watch"]),
169
+ rule(["keda.sh"], [
170
+ "clustertriggerauthentications",
171
+ "clustertriggerauthentications/status",
172
+ "scaledjobs",
173
+ "scaledjobs/finalizers",
174
+ "scaledjobs/status",
175
+ "scaledobjects",
176
+ "scaledobjects/finalizers",
177
+ "scaledobjects/status",
178
+ "triggerauthentications",
179
+ "triggerauthentications/status",
180
+ ], ["get", "list", "patch", "update", "watch"]),
181
+ ],
182
+ };
183
+ const externalMetricsReader = {
184
+ apiVersion: "rbac.authorization.k8s.io/v1",
185
+ kind: "ClusterRole",
186
+ metadata: { name: componentName("keda-external-metrics-reader"), labels: labels("keda-operator") },
187
+ rules: [rule(["external.metrics.k8s.io"], ["*"], ["*"])],
188
+ };
189
+ const clusterBinding = (name, roleName, bound = subjects) => ({
190
+ apiVersion: "rbac.authorization.k8s.io/v1",
191
+ kind: "ClusterRoleBinding",
192
+ metadata: { name, labels: labels("keda-operator") },
193
+ subjects: bound,
194
+ roleRef: { apiGroup: "rbac.authorization.k8s.io", kind: "ClusterRole", name: roleName },
195
+ });
196
+ const roleBinding = (name, namespace, roleName) => ({
197
+ apiVersion: "rbac.authorization.k8s.io/v1",
198
+ kind: "RoleBinding",
199
+ metadata: { name, namespace, labels: labels("keda-operator") },
200
+ subjects,
201
+ roleRef: { apiGroup: "rbac.authorization.k8s.io", kind: "Role", name: roleName },
202
+ });
203
+ return [
204
+ serviceAccount,
205
+ role,
206
+ roleBinding(OPERATOR, NAMESPACE, OPERATOR),
207
+ clusterRole,
208
+ clusterBinding(OPERATOR, OPERATOR),
209
+ externalMetricsReader,
210
+ // The cluster's HPAs, which KEDA's are, read external metrics.
211
+ clusterBinding(componentName("keda-hpa-controller-external-metrics"), externalMetricsReader.metadata?.name ?? "", [
212
+ { kind: "ServiceAccount", name: "horizontal-pod-autoscaler", namespace: "kube-system" },
213
+ ]),
214
+ // The metrics API server authenticates the API server's calls as an extension API server does.
215
+ clusterBinding(componentName("keda-system-auth-delegator"), "system:auth-delegator"),
216
+ roleBinding(componentName("keda-auth-reader"), "kube-system", "extension-apiserver-authentication-reader"),
217
+ ];
218
+ }
219
+ /** Where the API server reaches the metrics API server and the webhooks, which the operator gives the CA of. */
220
+ function registrations() {
221
+ const apiService = {
222
+ apiVersion: "apiregistration.k8s.io/v1",
223
+ kind: "APIService",
224
+ metadata: { name: EXTERNAL_METRICS, labels: labels("keda-metrics-apiserver") },
225
+ spec: { group: "external.metrics.k8s.io", version: "v1beta1", groupPriorityMinimum: 100, versionPriority: 100, service: { name: METRICS_API_SERVER, namespace: NAMESPACE } },
226
+ };
227
+ // Its webhook of each kind as upstream's, which KEDA answers at its path; ignored while it does not answer.
228
+ const webhook = (name, group, resource, path) => ({
229
+ name,
230
+ admissionReviewVersions: ["v1"],
231
+ clientConfig: { service: { name: WEBHOOKS, namespace: NAMESPACE, path } },
232
+ failurePolicy: "Ignore",
233
+ matchPolicy: "Equivalent",
234
+ namespaceSelector: {},
235
+ objectSelector: {},
236
+ rules: [{ apiGroups: [group], apiVersions: ["v1alpha1"], operations: ["CREATE", "UPDATE"], resources: [resource] }],
237
+ sideEffects: "None",
238
+ timeoutSeconds: 10,
239
+ });
240
+ const webhooks = {
241
+ apiVersion: "admissionregistration.k8s.io/v1",
242
+ kind: "ValidatingWebhookConfiguration",
243
+ metadata: { name: WEBHOOK_CONFIGURATION, labels: labels("keda-admission-webhooks") },
244
+ webhooks: [
245
+ webhook("vscaledobject.kb.io", "keda.sh", "scaledobjects", "/validate-keda-sh-v1alpha1-scaledobject"),
246
+ webhook("vscaledjob.kb.io", "keda.sh", "scaledjobs", "/validate-keda-sh-v1alpha1-scaledjob"),
247
+ webhook("vstriggerauthentication.kb.io", "keda.sh", "triggerauthentications", "/validate-keda-sh-v1alpha1-triggerauthentication"),
248
+ webhook("vsclustertriggerauthentication.kb.io", "keda.sh", "clustertriggerauthentications", "/validate-keda-sh-v1alpha1-clustertriggerauthentication"),
249
+ webhook("vcloudeventsource.kb.io", "eventing.keda.sh", "cloudeventsources", "/validate-eventing-keda-sh-v1alpha1-cloudeventsource"),
250
+ webhook("vclustercloudeventsource.kb.io", "eventing.keda.sh", "clustercloudeventsources", "/validate-eventing-keda-sh-v1alpha1-clustercloudeventsource"),
251
+ ],
252
+ };
253
+ return [apiService, webhooks];
254
+ }
255
+ /** KEDA's objects, unless the cluster has it already. */
256
+ export function kedaObjects(config) {
257
+ if (!config.autoscaling.keda.enabled)
258
+ return [];
259
+ return [
260
+ ...KEDA_CRDS,
261
+ ...identity(),
262
+ service(OPERATOR, "keda-operator", [{ name: "metricsservice", port: 9666, targetPort: 9666 }, { name: "metrics", port: 8080, targetPort: 8080 }]),
263
+ service(METRICS_API_SERVER, "keda-metrics-apiserver", [{ name: "https", port: 443, targetPort: 6443 }, { name: "metrics", port: 8080, targetPort: 8080 }]),
264
+ service(WEBHOOKS, "keda-admission-webhooks", [{ name: "https", port: 443, targetPort: 9443 }, { name: "metrics", port: 8080, targetPort: 8080 }]),
265
+ ...registrations(),
266
+ ...operator(config),
267
+ ...metricsApiServer(config),
268
+ ...admissionWebhooks(config),
269
+ ];
270
+ }
271
+ //# sourceMappingURL=keda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keda.js","sourceRoot":"","sources":["../../../../src/manifests/keda.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
+ import { computeId, MAIN } from "../../../neon/control/branches.js";
1
2
  import { imageReference } from "../images.js";
2
- import { componentName, lakeRuns, MAIN_ENVIRONMENT, neonName, otelEnv, restrictedContainer, s3Endpoint, selectorLabels, stackLabels, stackPodSpec, } from "./common.js";
3
+ import { componentName, lakeRuns, MAIN_ENVIRONMENT, neonName, ONE, otelEnv, replicasOf, restrictedContainer, s3Endpoint, selectorLabels, stackLabels, stackPodSpec, } from "./common.js";
4
+ import { PROXY_HOST, PROXY_PORT } from "./neon.js";
5
+ import { priority } from "./priorities.js";
6
+ import { verticalPodAutoscaler } from "./sizing.js";
3
7
  /** The port its telemetry intake takes OTLP over HTTP on. */
4
8
  export const LAKE_INTAKE_PORT = 4318;
5
9
  /** The port its query endpoint takes queries on. */
@@ -27,8 +31,10 @@ export function lakeObjects(config, environment = MAIN_ENVIRONMENT) {
27
31
  };
28
32
  // Where the lake is, which both containers open it at.
29
33
  const lakeEnv = [
30
- { name: "LAKE_DATABASE_HOST", value: neonName("compute") },
31
- { name: "LAKE_DATABASE_PORT", value: "55433" },
34
+ // Its environment's compute, through Neon's proxy, which wakes it if it sleeps.
35
+ { name: "LAKE_DATABASE_HOST", value: PROXY_HOST },
36
+ { name: "LAKE_DATABASE_PORT", value: String(PROXY_PORT) },
37
+ { name: "LAKE_DATABASE_ENDPOINT", value: computeId(environment.branch ?? MAIN) },
32
38
  { name: "LAKE_DATA_PATH", value: `s3://${config.objectStore.buckets.lake}/` },
33
39
  { name: "LAKE_S3_ENDPOINT", value: s3Endpoint(config) },
34
40
  { name: "HOME", value: "/tmp" },
@@ -63,13 +69,15 @@ export function lakeObjects(config, environment = MAIN_ENVIRONMENT) {
63
69
  kind: "Deployment",
64
70
  metadata: { name, namespace: environment.namespace, labels: stackLabels("lake") },
65
71
  spec: {
66
- replicas: 1,
72
+ ...replicasOf(ONE),
67
73
  // One loader: two would race each other's loads.
68
74
  strategy: { type: "Recreate" },
69
75
  selector: { matchLabels: selectorLabels("lake") },
70
76
  template: {
71
77
  metadata: { labels: stackLabels("lake") },
72
78
  spec: {
79
+ // Main's serves Grafana's alerts, which never sleep; a branch's nothing.
80
+ ...priority(main ? "floor" : "component"),
73
81
  ...stackPodSpec(config),
74
82
  terminationGracePeriodSeconds: 60,
75
83
  containers: [
@@ -99,6 +107,6 @@ export function lakeObjects(config, environment = MAIN_ENVIRONMENT) {
99
107
  },
100
108
  },
101
109
  };
102
- return [service, deployment];
110
+ return [service, deployment, verticalPodAutoscaler(deployment, "InPlace")];
103
111
  }
104
112
  //# sourceMappingURL=lake.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lake.js","sourceRoot":"","sources":["../../../../src/manifests/lake.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lake.js","sourceRoot":"","sources":["../../../../src/manifests/lake.ts"],"names":[],"mappings":"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"}