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
@@ -27,6 +27,11 @@ const KINDS = {
27
27
  RuntimeClass: { apiVersion: "node.k8s.io/v1", plural: "runtimeclasses", namespaced: false },
28
28
  StorageClass: { apiVersion: "storage.k8s.io/v1", plural: "storageclasses", namespaced: false },
29
29
  CSIDriver: { apiVersion: "storage.k8s.io/v1", plural: "csidrivers", namespaced: false },
30
+ APIService: { apiVersion: "apiregistration.k8s.io/v1", plural: "apiservices", namespaced: false },
31
+ MutatingWebhookConfiguration: { apiVersion: "admissionregistration.k8s.io/v1", plural: "mutatingwebhookconfigurations", namespaced: false },
32
+ ValidatingWebhookConfiguration: { apiVersion: "admissionregistration.k8s.io/v1", plural: "validatingwebhookconfigurations", namespaced: false },
33
+ ValidatingAdmissionPolicy: { apiVersion: "admissionregistration.k8s.io/v1", plural: "validatingadmissionpolicies", namespaced: false },
34
+ ValidatingAdmissionPolicyBinding: { apiVersion: "admissionregistration.k8s.io/v1", plural: "validatingadmissionpolicybindings", namespaced: false },
30
35
  ClusterRole: { apiVersion: "rbac.authorization.k8s.io/v1", plural: "clusterroles", namespaced: false },
31
36
  ClusterRoleBinding: { apiVersion: "rbac.authorization.k8s.io/v1", plural: "clusterrolebindings", namespaced: false },
32
37
  Role: { apiVersion: "rbac.authorization.k8s.io/v1", plural: "roles", namespaced: true },
@@ -39,12 +44,15 @@ const KINDS = {
39
44
  Pod: { apiVersion: "v1", plural: "pods", namespaced: true },
40
45
  Event: { apiVersion: "v1", plural: "events", namespaced: true },
41
46
  NetworkPolicy: { apiVersion: "networking.k8s.io/v1", plural: "networkpolicies", namespaced: true },
47
+ PodDisruptionBudget: { apiVersion: "policy/v1", plural: "poddisruptionbudgets", namespaced: true },
42
48
  Deployment: { apiVersion: "apps/v1", plural: "deployments", namespaced: true },
43
49
  StatefulSet: { apiVersion: "apps/v1", plural: "statefulsets", namespaced: true },
44
50
  DaemonSet: { apiVersion: "apps/v1", plural: "daemonsets", namespaced: true },
45
51
  Job: { apiVersion: "batch/v1", plural: "jobs", namespaced: true },
46
52
  CronJob: { apiVersion: "batch/v1", plural: "cronjobs", namespaced: true },
47
53
  Sandbox: { apiVersion: "agents.x-k8s.io/v1beta1", plural: "sandboxes", namespaced: true },
54
+ ScaledObject: { apiVersion: "keda.sh/v1alpha1", plural: "scaledobjects", namespaced: true },
55
+ VerticalPodAutoscaler: { apiVersion: "autoscaling.k8s.io/v1", plural: "verticalpodautoscalers", namespaced: true },
48
56
  // What the cluster's metrics server measures its pods and nodes using now.
49
57
  PodMetrics: { apiVersion: "metrics.k8s.io/v1beta1", plural: "pods", namespaced: true },
50
58
  NodeMetrics: { apiVersion: "metrics.k8s.io/v1beta1", plural: "nodes", namespaced: false },
@@ -108,7 +116,7 @@ export class KubeExecError extends Schema.TaggedError()("KubeExecError", {
108
116
  /** Whether `error` is the API's answer `status`. */
109
117
  export const hasStatus = (status) => (error) => error.status === status;
110
118
  /** The manager alasio applies its objects as, which owns every field it sets. */
111
- const FIELD_MANAGER = "alasio";
119
+ export const FIELD_MANAGER = "alasio";
112
120
  /** The Kubernetes API a kubeconfig reaches, as alasio's command line calls it. */
113
121
  export class KubeApi extends Context.Service()("alasio/kube/KubeApi") {
114
122
  /** The API `kubeconfig` reaches. */
@@ -245,10 +253,10 @@ function makeKubeApi(kubeConfig) {
245
253
  };
246
254
  return KubeApi.of({
247
255
  server: server.href.replace(/\/$/u, ""),
248
- apply: (object) => json({
256
+ apply: (object, fieldManager = FIELD_MANAGER) => json({
249
257
  method: "PATCH",
250
258
  path: objectPath(refOf(object)),
251
- query: { fieldManager: FIELD_MANAGER, force: "true" },
259
+ query: { fieldManager, force: "true" },
252
260
  // JSON is YAML, which an apply patch is sent as.
253
261
  body: { contentType: "application/apply-patch+yaml", content: object },
254
262
  }),
@@ -256,11 +264,11 @@ function makeKubeApi(kubeConfig) {
256
264
  list: (kind, { namespace, labelSelector, fieldSelector } = {}) => json({ method: "GET", path: collectionPath(kind, namespace), query: { labelSelector, fieldSelector } }).pipe(Effect.map(({ items }) => items.map((item) => ({ ...item, apiVersion: kind.apiVersion, kind: kind.kind })))),
257
265
  patch: (ref, patch, fieldManager) => json({ method: "PATCH", path: objectPath(ref), query: { fieldManager }, body: { contentType: "application/merge-patch+json", content: patch } }),
258
266
  remove: (ref) => json({ method: "DELETE", path: objectPath(ref), query: { propagationPolicy: "Background" } }).pipe(Effect.asVoid, Effect.catchIf(hasStatus(404), () => Effect.void)),
259
- logs: (namespace, pod, { container, follow = false, sinceSeconds }) => {
267
+ logs: (namespace, pod, { container, follow = false, sinceSeconds, previous = false }) => {
260
268
  const call = {
261
269
  method: "GET",
262
270
  path: `/api/v1/namespaces/${encodeURIComponent(namespace)}/pods/${encodeURIComponent(pod)}/log`,
263
- query: { container, follow: String(follow), sinceSeconds: sinceSeconds === undefined ? undefined : String(sinceSeconds) },
271
+ query: { container, follow: String(follow), sinceSeconds: sinceSeconds === undefined ? undefined : String(sinceSeconds), previous: previous ? "true" : undefined },
264
272
  };
265
273
  return Stream.unwrap(Effect.map(open(call), (response) => NodeStream.fromReadable({ evaluate: () => response, onError: (cause) => unreachable(call, cause) })));
266
274
  },
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/kube/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/kube/api.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Effect } from "effect";
1
+ import { Duration, Effect } from "effect";
2
2
  import { RELEASE } from "../manifests/common.js";
3
- import { describeRef, hasStatus, kind, KubeApi, refOf } from "./api.js";
3
+ import { describeRef, FIELD_MANAGER, hasStatus, kind, KubeApi, refOf } from "./api.js";
4
4
  import { awaitGone, awaitReady, awaitReclaimed, selectorOf } from "./rollout.js";
5
5
  /** The label every object of an installation carries, whose value is the installation: what prune and removal find its objects by. */
6
6
  const INSTALLATION_LABEL = "alasio.dev/installation";
@@ -16,9 +16,26 @@ export const VOLUME_DRIVER_LABEL = "alasio.dev/volume-driver";
16
16
  const PHASES = [
17
17
  ["CustomResourceDefinition"],
18
18
  ["Namespace", "PriorityClass", "StorageClass", "CSIDriver"],
19
- ["ServiceAccount", "ClusterRole", "ClusterRoleBinding", "Role", "RoleBinding", "ConfigMap", "PersistentVolumeClaim", "Service", "NetworkPolicy"],
19
+ [
20
+ "ServiceAccount",
21
+ "ClusterRole",
22
+ "ClusterRoleBinding",
23
+ "Role",
24
+ "RoleBinding",
25
+ "ConfigMap",
26
+ "PersistentVolumeClaim",
27
+ "Service",
28
+ "NetworkPolicy",
29
+ "PodDisruptionBudget",
30
+ "APIService",
31
+ "MutatingWebhookConfiguration",
32
+ "ValidatingWebhookConfiguration",
33
+ "ValidatingAdmissionPolicy",
34
+ "ValidatingAdmissionPolicyBinding",
35
+ ],
20
36
  ["Job"],
21
37
  ["Deployment", "StatefulSet", "DaemonSet", "CronJob"],
38
+ ["ScaledObject", "VerticalPodAutoscaler"],
22
39
  ];
23
40
  /** The kinds alasio makes, in the order it applies them. */
24
41
  const MADE_KINDS = PHASES.flat().map(kind);
@@ -26,12 +43,41 @@ const MADE_KINDS = PHASES.flat().map(kind);
26
43
  export const WORKLOADS = ["Deployment", "StatefulSet", "DaemonSet"];
27
44
  /**
28
45
  * What holds data, which neither a prune nor a removal deletes unless asked to: volumes,
29
- * the namespaces sessions' volumes are in, and the CRD whose deletion would delete every
30
- * Sandbox, and with them their volumes.
46
+ * the namespaces sessions' volumes are in, and CRDs, whose deletion deletes every object
47
+ * of theirs: every Sandbox, and with them their volumes.
31
48
  */
32
49
  const HOLDS_DATA = new Set(["PersistentVolumeClaim", "Namespace", "CustomResourceDefinition"]);
33
50
  /** Whether `ref` holds data (HOLDS_DATA). */
34
51
  const holdsData = (ref) => HOLDS_DATA.has(ref.kind);
52
+ /** What a controller of the installation finalizes: KEDA lets go of a ScaledObject once it has stopped scaling it. */
53
+ const FINALIZED = new Set(["ScaledObject"]);
54
+ /** The kinds of FINALIZED. */
55
+ const FINALIZED_KINDS = MADE_KINDS.filter(({ kind }) => FINALIZED.has(kind));
56
+ /** How long a controller is given to let go of what it finalizes, past which it is taken not to run; the wait's timeout where that is shorter. */
57
+ const LET_GO = Duration.minutes(1);
58
+ /**
59
+ * Deletes those of `objects` a controller finalizes (FINALIZED), and waits until they are
60
+ * gone. One its controller has not let go of within LET_GO, as where it does not run (KEDA
61
+ * gone, or failing), is let go of here: nothing else would.
62
+ */
63
+ const removeFinalized = Effect.fnUntraced(function* (objects, options) {
64
+ const kube = yield* KubeApi;
65
+ const finalized = objects.filter((object) => FINALIZED.has(object.kind ?? "")).map(refOf);
66
+ if (finalized.length === 0)
67
+ return;
68
+ yield* Effect.forEach(finalized, (ref) => kube.remove(ref), { concurrency: 8, discard: true });
69
+ const letGo = Duration.min(LET_GO, Duration.fromInputUnsafe(options.timeout));
70
+ yield* awaitGone(finalized, { ...options, timeout: letGo }).pipe(Effect.catchTag("NotReadyInTime", () => Effect.gen(function* () {
71
+ const left = (yield* Effect.forEach(finalized, (ref) => kube.get(ref))).filter((object) => object !== null).map(refOf);
72
+ yield* Effect.forEach(left, (ref) => Effect.andThen(Effect.logInfo(`letting go of ${describeRef(ref)}, as its controller has not within ${Duration.toSeconds(letGo)}s`), kube.patch(ref, { metadata: { finalizers: null } }, FIELD_MANAGER)).pipe(Effect.catchIf(hasStatus(404), () => Effect.void)), { discard: true });
73
+ yield* awaitGone(left, options);
74
+ })));
75
+ });
76
+ /** The installation's objects of `kinds` that are not `desired`. */
77
+ const staleOf = (desired, kinds) => {
78
+ const wanted = new Set(desired.map((object) => key(refOf(object))));
79
+ return Effect.map(installed(kinds), (objects) => objects.filter((object) => !wanted.has(key(refOf(object)))));
80
+ };
35
81
  const SANDBOX = kind("Sandbox");
36
82
  const PERSISTENT_VOLUME = kind("PersistentVolume");
37
83
  const PERSISTENT_VOLUME_CLAIM = kind("PersistentVolumeClaim");
@@ -46,13 +92,15 @@ function servedBy(object, volumes) {
46
92
  }
47
93
  /** `volumes` as people read them: their names. */
48
94
  const namesOf = (volumes) => volumes.map(({ metadata }) => metadata?.name ?? "").join(", ");
95
+ /** Whether `object` is the installation's, by its label. */
96
+ export const ofInstallation = (object) => object.metadata?.labels?.[INSTALLATION_LABEL] === RELEASE;
49
97
  /** `object`, labelled as the installation's. */
50
98
  export function labelled(object) {
51
99
  return { ...object, metadata: { ...object.metadata, labels: { ...object.metadata?.labels, [INSTALLATION_LABEL]: RELEASE } } };
52
100
  }
53
101
  const key = (ref) => `${ref.apiVersion}/${ref.kind}/${ref.namespace ?? ""}/${ref.name}`;
54
- /** The installation's objects of `kinds`, as it has them now. */
55
- const installed = (kinds) => Effect.flatMap(KubeApi, (kube) => Effect.forEach(kinds, (each) => kube.list(each, { labelSelector: INSTALLATION_SELECTOR }), { concurrency: 4 }).pipe(Effect.map((lists) => lists.flat())));
102
+ /** The installation's objects of `kinds`, as it has them now: none of a kind whose CRD the cluster lacks. */
103
+ const installed = (kinds) => Effect.flatMap(KubeApi, (kube) => Effect.forEach(kinds, (each) => kube.list(each, { labelSelector: INSTALLATION_SELECTOR }).pipe(Effect.catchIf(hasStatus(404), () => Effect.succeed([]))), { concurrency: 4 }).pipe(Effect.map((lists) => lists.flat())));
56
104
  /** The cluster's volumes. */
57
105
  const persistentVolumes = Effect.flatMap(KubeApi, (kube) => kube.list(PERSISTENT_VOLUME));
58
106
  /** Runs `job` to completion afresh: one of its name that ran before is deleted first, as a Job's pod template cannot change, and it is deleted once done. */
@@ -68,14 +116,17 @@ const runJob = Effect.fnUntraced(function* (job, options) {
68
116
  yield* awaitReady([ref], options);
69
117
  yield* kube.remove(ref);
70
118
  });
71
- /** Deletes the installation's objects that are not `desired`, keeping what holds data and what serves volumes that remain. */
72
- const prune = Effect.fnUntraced(function* (desired) {
119
+ /**
120
+ * Deletes the installation's objects that are not `desired`, keeping what holds data and
121
+ * what serves volumes that remain; what a controller finalizes first, until it is gone.
122
+ */
123
+ const prune = Effect.fnUntraced(function* (desired, options) {
73
124
  const kube = yield* KubeApi;
74
- const wanted = new Set(desired.map((object) => key(refOf(object))));
75
125
  // Workloads first, what they need after.
76
- const stale = (yield* installed(MADE_KINDS.toReversed())).filter((object) => !wanted.has(key(refOf(object))));
126
+ const stale = yield* staleOf(desired, MADE_KINDS.toReversed());
127
+ yield* removeFinalized(stale, options);
77
128
  const volumes = stale.length > 0 ? yield* persistentVolumes : [];
78
- for (const object of stale) {
129
+ for (const object of stale.filter(({ kind }) => !FINALIZED.has(kind ?? ""))) {
79
130
  const ref = refOf(object);
80
131
  const served = servedBy(object, volumes);
81
132
  if (holdsData(ref)) {
@@ -90,6 +141,50 @@ const prune = Effect.fnUntraced(function* (desired) {
90
141
  }
91
142
  }
92
143
  });
144
+ /** The manager a workload's replicas are handed over to, from alasio, as its scaler comes to own them (handOverReplicas). */
145
+ export const HANDOVER_MANAGER = "alasio-handover";
146
+ /** Whether alasio's own applies own `object`'s replicas, as its managed fields say. */
147
+ function ownsReplicas({ metadata }) {
148
+ return (metadata?.managedFields ?? []).some(({ manager, operation, fieldsV1 }) => {
149
+ const spec = fieldsV1?.["f:spec"];
150
+ return manager === FIELD_MANAGER && operation === "Apply" && typeof spec === "object" && spec !== null && "f:replicas" in spec;
151
+ });
152
+ }
153
+ /**
154
+ * Hands the replicas of a workload of `objects` rendered without them, as a scaler moves
155
+ * them now (../manifests/common.ts replicasOf), over from alasio's applies, which set them
156
+ * until now, to a manager of their own, at the count it runs: an apply that stops giving a
157
+ * field its only manager gave deletes it, and a workload would drop to one replica until
158
+ * its scaler raised it again. The scaler takes them over from there.
159
+ */
160
+ const handOverReplicas = Effect.fnUntraced(function* (objects) {
161
+ const kube = yield* KubeApi;
162
+ const scaled = objects.filter((object) => (object.kind === "Deployment" || object.kind === "StatefulSet") && object.spec?.replicas === undefined);
163
+ yield* Effect.forEach(scaled, Effect.fnUntraced(function* (object) {
164
+ const ref = refOf(object);
165
+ const live = yield* kube.get(ref);
166
+ const replicas = live?.spec?.replicas;
167
+ if (!live || replicas === undefined || !ownsReplicas(live))
168
+ return;
169
+ yield* Effect.logInfo(`handing the replicas of ${describeRef(ref)} over to its scaler, at ${replicas}`);
170
+ const metadata = { name: ref.name, ...(ref.namespace ? { namespace: ref.namespace } : {}) };
171
+ const handedOver = { apiVersion: ref.apiVersion, kind: ref.kind, metadata, spec: { replicas } };
172
+ yield* kube.apply(handedOver, HANDOVER_MANAGER);
173
+ }), { concurrency: 8, discard: true });
174
+ });
175
+ /**
176
+ * Deletes the PriorityClasses of `objects` whose value or preemption policy the cluster's
177
+ * differs in, which cannot change, so they are made anew. A pod keeps the priority it
178
+ * was given as it was made.
179
+ */
180
+ const replaceChangedClasses = Effect.fnUntraced(function* (objects, options) {
181
+ const kube = yield* KubeApi;
182
+ const changed = yield* Effect.filter(objects.filter(({ kind }) => kind === "PriorityClass"), (wanted) => Effect.map(kube.get(refOf(wanted)), (live) => live !== null && (live.value !== wanted.value || (live.preemptionPolicy ?? "PreemptLowerPriority") !== (wanted.preemptionPolicy ?? "PreemptLowerPriority"))));
183
+ for (const { metadata } of changed)
184
+ yield* Effect.logInfo(`replacing PriorityClass ${metadata?.name}, whose value and preemption cannot change`);
185
+ yield* Effect.forEach(changed, (object) => kube.remove(refOf(object)), { discard: true });
186
+ yield* awaitGone(changed.map(refOf), options);
187
+ });
93
188
  /** The workloads of `objects`. */
94
189
  const workloadsOf = (objects) => objects.filter((object) => WORKLOADS.some((name) => name === object.kind)).map(refOf);
95
190
  /** Applies `objects` in the order of PHASES, as the module says, without waiting for their workloads. */
@@ -106,6 +201,10 @@ const applyPhases = Effect.fnUntraced(function* (objects, options) {
106
201
  yield* runJob(job, options);
107
202
  continue;
108
203
  }
204
+ if (phase.includes("PriorityClass"))
205
+ yield* replaceChangedClasses(batch, options);
206
+ if (phase.includes("Deployment"))
207
+ yield* handOverReplicas(batch);
109
208
  yield* Effect.forEach(batch, (object) => kube.apply(object), { concurrency: 8, discard: true });
110
209
  if (phase.includes("CustomResourceDefinition"))
111
210
  yield* awaitReady(batch.map(refOf), options);
@@ -114,8 +213,11 @@ const applyPhases = Effect.fnUntraced(function* (objects, options) {
114
213
  /** Applies the installation `objects` are, deletes what it no longer has, and waits until its workloads run. */
115
214
  export const applyInstallation = Effect.fnUntraced(function* (objects, options) {
116
215
  const desired = objects.map(labelled);
216
+ // A scaler no longer wanted goes before the workloads are applied, as it would set the
217
+ // replicas they are given back to its own.
218
+ yield* removeFinalized(yield* staleOf(desired, FINALIZED_KINDS), options);
117
219
  yield* applyPhases(desired, options);
118
- yield* prune(desired);
220
+ yield* prune(desired, options);
119
221
  yield* awaitReady(workloadsOf(desired), options);
120
222
  });
121
223
  /**
@@ -155,6 +257,7 @@ const releaseVolumes = Effect.fnUntraced(function* (found, options) {
155
257
  */
156
258
  export const removeInstallation = Effect.fnUntraced(function* ({ purge }, options) {
157
259
  const kube = yield* KubeApi;
260
+ yield* removeFinalized(yield* installed(MADE_KINDS.filter(({ kind }) => FINALIZED.has(kind))), options);
158
261
  const found = yield* installed(MADE_KINDS.toReversed());
159
262
  if (purge)
160
263
  yield* releaseVolumes(found, options);
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/kube/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/kube/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Effect, Schema } from "effect";
2
+ import { EXTERNAL_METRICS } from "../manifests/keda.js";
3
+ import { kind, KubeApi } from "./api.js";
4
+ import { ofInstallation } from "./apply.js";
5
+ /** The cluster's autoscalers are not what the installation's configuration says: what to set, and why. */
6
+ export class AutoscalerMismatch extends Schema.TaggedError()("AutoscalerMismatch", {
7
+ message: Schema.String,
8
+ }) {
9
+ }
10
+ /** Each autoscaler: its key in autoscaling, its name, the CRD that tells a cluster with it, and the kind of the objects it acts on, and how. */
11
+ const AUTOSCALERS = [
12
+ { key: "keda", name: "KEDA", crd: "scaledobjects.keda.sh", kind: "ScaledObject", acts: "scales" },
13
+ { key: "vpa", name: "VPA", crd: "verticalpodautoscalers.autoscaling.k8s.io", kind: "VerticalPodAutoscaler", acts: "sizes" },
14
+ ];
15
+ /**
16
+ * Refuses an installation of `objects`, of the configuration `config`, that the cluster's
17
+ * autoscalers do not fit: an autoscaler of alasio's where the cluster has its own, or,
18
+ * for KEDA, another provider of external metrics, already; or objects of an autoscaler
19
+ * the cluster does not have, which alasio is told not to install.
20
+ */
21
+ export const checkAutoscalers = Effect.fnUntraced(function* (objects, { autoscaling }) {
22
+ const kube = yield* KubeApi;
23
+ for (const { key, name, crd: crdName, kind: acted, acts } of AUTOSCALERS) {
24
+ const crd = yield* kube.get({ ...kind("CustomResourceDefinition"), name: crdName });
25
+ const setting = `install.autoscaling.${key}.enabled`;
26
+ if (autoscaling[key].enabled) {
27
+ if (crd && !ofInstallation(crd)) {
28
+ return yield* new AutoscalerMismatch({ message: `this cluster has a ${name} of its own already, and a cluster has one: ${setting} false uses it` });
29
+ }
30
+ continue;
31
+ }
32
+ // alasio's own CRD, kept from when it installed it, is not the cluster's.
33
+ const named = objects.filter((object) => object.kind === acted).map(({ metadata }) => metadata?.name ?? "");
34
+ if (named.length > 0 && (!crd || ofInstallation(crd))) {
35
+ return yield* new AutoscalerMismatch({ message: `this cluster has no ${name}, which ${acts} ${named.join(", ")}: ${setting} true installs alasio's` });
36
+ }
37
+ }
38
+ if (!autoscaling.keda.enabled)
39
+ return;
40
+ const metrics = yield* kube.get({ ...kind("APIService"), name: EXTERNAL_METRICS });
41
+ if (metrics && !ofInstallation(metrics)) {
42
+ const { namespace = "", name = "" } = metrics.spec?.service ?? {};
43
+ return yield* new AutoscalerMismatch({
44
+ message: `this cluster's external metrics are served by ${namespace}/${name} already, and the API server takes them from one provider, which KEDA must be: install.autoscaling.keda.enabled false uses the cluster's KEDA, where it has one`,
45
+ });
46
+ }
47
+ });
48
+ //# sourceMappingURL=autoscalers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoscalers.js","sourceRoot":"","sources":["../../../../src/kube/autoscalers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * What an installation may not do to the bundled object store's parts as it would to
3
+ * other workloads: change the masters' count, lowered, as their Raft, which keeps where
4
+ * every volume is, would lose its quorum, and with it that, or raised, as one master's
5
+ * state, made without peers, is no Raft's for more to join; or lower the volume servers'
6
+ * while one it would remove still holds volumes, which it would take with it. The first
7
+ * is refused; the second until those volume servers hold none, as their masters say, the
8
+ * way to which the refusal says. Nor start the parts at all while the store still keeps its
9
+ * data on the volume of the one pod it ran as before them. Before anything is applied.
10
+ */
11
+ import { Writable } from "node:stream";
12
+ import { Effect, Schema } from "effect";
13
+ import { NAMESPACE } from "../manifests/common.js";
14
+ import { MASTER, VOLUME_SERVER } from "../manifests/object-store.js";
15
+ import { kind, KubeApi } from "./api.js";
16
+ import { selectorOf } from "./rollout.js";
17
+ /** A change of the object store's scale alasio does not make: why, and what to do instead. */
18
+ export class ObjectStoreScaleRefused extends Schema.TaggedError()("ObjectStoreScaleRefused", {
19
+ message: Schema.String,
20
+ }) {
21
+ }
22
+ /** The volume servers `status` says, by their address. */
23
+ export function dataNodes(status) {
24
+ return (status.Topology?.DataCenters ?? []).flatMap(({ Racks = [] }) => Racks.flatMap(({ DataNodes = [] }) => DataNodes));
25
+ }
26
+ /** The replicas of the StatefulSet `name` among `objects`. */
27
+ const rendered = (objects, name) => objects.find((object) => object.kind === "StatefulSet" && object.metadata?.name === name)?.spec?.replicas;
28
+ /** What a running master's /dir/status says, read in its pod; null where no master runs, or it does not answer. */
29
+ const dirStatus = Effect.gen(function* () {
30
+ const kube = yield* KubeApi;
31
+ const masters = yield* kube.list(kind("Pod"), { namespace: NAMESPACE, labelSelector: selectorOf((yield* kube.get({ ...kind("StatefulSet"), name: MASTER, namespace: NAMESPACE }))?.spec?.selector.matchLabels ?? {}) });
32
+ const running = masters.find(({ status }) => status?.phase === "Running")?.metadata?.name;
33
+ if (!running)
34
+ return null;
35
+ let printed = "";
36
+ const stdout = new Writable({
37
+ write: (chunk, _encoding, done) => {
38
+ printed += chunk.toString("utf8");
39
+ done();
40
+ },
41
+ });
42
+ const exitCode = yield* kube.exec({ namespace: NAMESPACE, pod: running, container: "master" }, ["wget", "-q", "-O", "-", "http://127.0.0.1:9333/dir/status"], {
43
+ stdin: null,
44
+ stdout,
45
+ stderr: new Writable({ write: (_chunk, _encoding, done) => done() }),
46
+ tty: false,
47
+ }).pipe(Effect.orElseSucceed(() => 1));
48
+ return exitCode === 0 ? parsed(printed) : null;
49
+ });
50
+ /** `text` as the masters' /dir/status, or null where it is not JSON. */
51
+ function parsed(text) {
52
+ try {
53
+ return JSON.parse(text);
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ /**
60
+ * Refuses `objects` where the cluster's object store still runs all in one, as alasio before
61
+ * its parts did, its data on that pod's volume, which the parts do not use: started, they
62
+ * would run the stack on a store that is empty. Its data is moved onto them by the cut-over
63
+ * that release's upgrade notes give, which deletes that volume's claim once it has.
64
+ */
65
+ export const checkObjectStoreLayout = Effect.fnUntraced(function* (objects) {
66
+ if (rendered(objects, VOLUME_SERVER) === undefined)
67
+ return;
68
+ const kube = yield* KubeApi;
69
+ const claim = yield* kube.get({ ...kind("PersistentVolumeClaim"), name: ALL_IN_ONE_CLAIM, namespace: NAMESPACE });
70
+ if (claim === null)
71
+ return;
72
+ return yield* new ObjectStoreScaleRefused({
73
+ message: `the object store still keeps its data on the volume of its one pod, the claim ${ALL_IN_ONE_CLAIM}, which this release's parts do not use: ` +
74
+ "they would start the stack on an empty store, so alasio does not apply them; move the data onto them first with the release's cut-over, " +
75
+ `which deletes ${ALL_IN_ONE_CLAIM} once it has`,
76
+ });
77
+ });
78
+ /** The claim of the volume the object store kept its data on while it ran all in one. */
79
+ const ALL_IN_ONE_CLAIM = "data-alasio-seaweedfs-0";
80
+ /** Refuses `objects`' scale of the object store's masters and volume servers where the cluster's would be lowered as alasio does not. */
81
+ export const checkObjectStoreScale = Effect.fnUntraced(function* (objects) {
82
+ const kube = yield* KubeApi;
83
+ const running = (name) => kube.get({ ...kind("StatefulSet"), name, namespace: NAMESPACE }).pipe(Effect.map((found) => found?.spec?.replicas));
84
+ const masters = { now: yield* running(MASTER), then: rendered(objects, MASTER) };
85
+ if (masters.now !== undefined && masters.then !== undefined && masters.then < masters.now) {
86
+ return yield* new ObjectStoreScaleRefused({
87
+ message: `the object store runs ${masters.now} masters, whose Raft keeps where every volume is: fewer would lose its quorum, and that with it, so alasio does not lower their count; objectStore.bundled.masters.scaling stays ${masters.now}`,
88
+ });
89
+ }
90
+ if (masters.now !== undefined && masters.then !== undefined && masters.now > 0 && masters.then > masters.now) {
91
+ return yield* new ObjectStoreScaleRefused({
92
+ message: `the object store runs ${masters.now} master, whose state, made without peers, is no Raft's that more masters could join, so alasio does not raise their count; ` +
93
+ `objectStore.bundled.masters.scaling stays ${masters.now}, as the count of masters is set as the store is made`,
94
+ });
95
+ }
96
+ const now = yield* running(VOLUME_SERVER);
97
+ const then = rendered(objects, VOLUME_SERVER);
98
+ if (now === undefined || then === undefined || then >= now)
99
+ return;
100
+ const removed = Array.from({ length: now - then }, (_, index) => `${VOLUME_SERVER}-${then + index}.`);
101
+ const status = yield* dirStatus;
102
+ const holding = status === null ? null : dataNodes(status).filter(({ Url, Volumes = 0, EcShards = 0 }) => removed.some((name) => Url.startsWith(name)) && Volumes + EcShards > 0);
103
+ if (holding === null) {
104
+ return yield* new ObjectStoreScaleRefused({
105
+ message: `objectStore.bundled.volumeServers.scaling would remove volume servers whose volumes no running master says: alasio lowers their count only once they hold none`,
106
+ });
107
+ }
108
+ if (holding.length > 0) {
109
+ const nodes = holding.map(({ Url }) => Url);
110
+ return yield* new ObjectStoreScaleRefused({
111
+ message: `objectStore.bundled.volumeServers.scaling would remove volume servers that still hold volumes, ${nodes.join(", ")}: move them to the others first, in weed shell in a gateway's buckets container, ` +
112
+ `with lock, then ${nodes.map((node) => `volume.server.evacuate -node ${node} -apply`).join(", ")}, then unlock; then lower their count`,
113
+ });
114
+ }
115
+ });
116
+ //# sourceMappingURL=object-store-scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-store-scale.js","sourceRoot":"","sources":["../../../../src/kube/object-store-scale.ts"],"names":[],"mappings":"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"}