alasio 5.1.0 → 6.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 (102) hide show
  1. package/dist/cli/src/branches.js +6 -14
  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/k3s.js +12 -4
  6. package/dist/cli/src/cluster/k3s.js.map +1 -1
  7. package/dist/cli/src/commands/branch.js +2 -1
  8. package/dist/cli/src/commands/branch.js.map +1 -1
  9. package/dist/cli/src/commands/restore-filer-store.js +236 -0
  10. package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
  11. package/dist/cli/src/commands/status.js +110 -9
  12. package/dist/cli/src/commands/status.js.map +1 -1
  13. package/dist/cli/src/commands/uninstall.js +1 -1
  14. package/dist/cli/src/commands/uninstall.js.map +1 -1
  15. package/dist/cli/src/commands/up.js +2 -1
  16. package/dist/cli/src/commands/up.js.map +1 -1
  17. package/dist/cli/src/commands.js +2 -1
  18. package/dist/cli/src/commands.js.map +1 -1
  19. package/dist/cli/src/config.js +13 -4
  20. package/dist/cli/src/config.js.map +1 -1
  21. package/dist/cli/src/install.js +9 -3
  22. package/dist/cli/src/install.js.map +1 -1
  23. package/dist/cli/src/kube/api.js +11 -3
  24. package/dist/cli/src/kube/api.js.map +1 -1
  25. package/dist/cli/src/kube/apply.js +116 -13
  26. package/dist/cli/src/kube/apply.js.map +1 -1
  27. package/dist/cli/src/kube/autoscalers.js +48 -0
  28. package/dist/cli/src/kube/autoscalers.js.map +1 -0
  29. package/dist/cli/src/kube/object-store-scale.js +116 -0
  30. package/dist/cli/src/kube/object-store-scale.js.map +1 -0
  31. package/dist/cli/src/kube/rollout.js +2 -0
  32. package/dist/cli/src/kube/rollout.js.map +1 -1
  33. package/dist/cli/src/manifests/admission.js +296 -0
  34. package/dist/cli/src/manifests/admission.js.map +1 -0
  35. package/dist/cli/src/manifests/agent-sandbox.js +6 -3
  36. package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
  37. package/dist/cli/src/manifests/alasio.js +34 -12
  38. package/dist/cli/src/manifests/alasio.js.map +1 -1
  39. package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
  40. package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
  41. package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
  42. package/dist/cli/src/manifests/collector.js +77 -38
  43. package/dist/cli/src/manifests/collector.js.map +1 -1
  44. package/dist/cli/src/manifests/common.js +11 -0
  45. package/dist/cli/src/manifests/common.js.map +1 -1
  46. package/dist/cli/src/manifests/config.js +217 -31
  47. package/dist/cli/src/manifests/config.js.map +1 -1
  48. package/dist/cli/src/manifests/controllers.js +39 -0
  49. package/dist/cli/src/manifests/controllers.js.map +1 -0
  50. package/dist/cli/src/manifests/disruption.js +47 -0
  51. package/dist/cli/src/manifests/disruption.js.map +1 -0
  52. package/dist/cli/src/manifests/grafana.js +49 -5
  53. package/dist/cli/src/manifests/grafana.js.map +1 -1
  54. package/dist/cli/src/manifests/headroom.js +40 -0
  55. package/dist/cli/src/manifests/headroom.js.map +1 -0
  56. package/dist/cli/src/manifests/index.js +12 -3
  57. package/dist/cli/src/manifests/index.js.map +1 -1
  58. package/dist/cli/src/manifests/juicefs-csi.js +9 -6
  59. package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
  60. package/dist/cli/src/manifests/keda.js +271 -0
  61. package/dist/cli/src/manifests/keda.js.map +1 -0
  62. package/dist/cli/src/manifests/lake.js +7 -3
  63. package/dist/cli/src/manifests/lake.js.map +1 -1
  64. package/dist/cli/src/manifests/neon.js +33 -25
  65. package/dist/cli/src/manifests/neon.js.map +1 -1
  66. package/dist/cli/src/manifests/network-policies.js +90 -10
  67. package/dist/cli/src/manifests/network-policies.js.map +1 -1
  68. package/dist/cli/src/manifests/object-store.js +506 -77
  69. package/dist/cli/src/manifests/object-store.js.map +1 -1
  70. package/dist/cli/src/manifests/priorities.js +30 -0
  71. package/dist/cli/src/manifests/priorities.js.map +1 -0
  72. package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
  73. package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
  74. package/dist/cli/src/manifests/scalers.js +24 -0
  75. package/dist/cli/src/manifests/scalers.js.map +1 -0
  76. package/dist/cli/src/manifests/sizing.js +40 -0
  77. package/dist/cli/src/manifests/sizing.js.map +1 -0
  78. package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
  79. package/dist/cli/src/manifests/valkey.js +63 -35
  80. package/dist/cli/src/manifests/valkey.js.map +1 -1
  81. package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
  82. package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
  83. package/dist/cli/src/manifests/vpa.js +220 -0
  84. package/dist/cli/src/manifests/vpa.js.map +1 -0
  85. package/dist/cli/src/manifests/workspace-storage.js +12 -2
  86. package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
  87. package/dist/cli/src/object-store.js +57 -0
  88. package/dist/cli/src/object-store.js.map +1 -0
  89. package/dist/cli/src/release.js +6 -6
  90. package/dist/cli/src/target.js +1 -1
  91. package/dist/cli/src/target.js.map +1 -1
  92. package/dist/neon/control/secrets.js +3 -0
  93. package/dist/neon/control/secrets.js.map +1 -1
  94. package/dist/src/kube/busy-label.js +13 -0
  95. package/dist/src/kube/busy-label.js.map +1 -0
  96. package/dist/src/kube/config.js +5 -1
  97. package/dist/src/kube/config.js.map +1 -1
  98. package/dist/src/kube/sandbox-shape.js +62 -0
  99. package/dist/src/kube/sandbox-shape.js.map +1 -0
  100. package/dist/src/sandbox/names.js +44 -0
  101. package/dist/src/sandbox/names.js.map +1 -0
  102. package/package.json +1 -1
@@ -1,18 +1,49 @@
1
1
  import { imageReference } from "../images.js";
2
- import { componentName, grafanaRuns, helperResources, imagePullSecrets, labels, NAMESPACE, neonName, restrictedContainer, restrictedPod, script, selectorLabels, } from "./common.js";
2
+ import { componentName, grafanaRuns, helperResources, imagePullSecrets, labels, NAMESPACE, neonName, replicasOf, restrictedContainer, restrictedPod, scaled, script, selectorLabels, } from "./common.js";
3
+ import { replicaBudget, replicated, spread } from "./disruption.js";
3
4
  import { LAKE_QUERY_PORT } from "./lake.js";
5
+ import { priority } from "./priorities.js";
6
+ import { cpuUtilization, scaledObject } from "./scalers.js";
7
+ import { verticalPodAutoscaler } from "./sizing.js";
4
8
  /** Grafana's name, its Secret's, and its pods' component. */
5
9
  export const GRAFANA = componentName("grafana");
6
10
  /** The port it serves on. */
7
11
  export const GRAFANA_PORT = 3000;
8
12
  /** The user its image runs as. */
9
13
  const GRAFANA_USER = 472;
14
+ /** The port its replicas gossip on, over TCP and UDP, as unified alerting's peers. */
15
+ export const GOSSIP_PORT = 9094;
16
+ /** What a replica is told of its peers, where there may be several: where to find them, how to be found, and that one evaluates. */
17
+ function haEnv() {
18
+ return [
19
+ { name: "POD_IP", valueFrom: { fieldRef: { fieldPath: "status.podIP" } } },
20
+ { name: "GF_UNIFIED_ALERTING_HA_PEERS", value: `${GRAFANA}-peers.${NAMESPACE}.svc.cluster.local:${GOSSIP_PORT}` },
21
+ { name: "GF_UNIFIED_ALERTING_HA_ADVERTISE_ADDRESS", value: `$(POD_IP):${GOSSIP_PORT}` },
22
+ { name: "GF_UNIFIED_ALERTING_HA_SINGLE_NODE_EVALUATION", value: "true" },
23
+ // Short, as a replica gone is not coming back at its address.
24
+ { name: "GF_UNIFIED_ALERTING_HA_RECONNECT_TIMEOUT", value: "2m" },
25
+ ];
26
+ }
10
27
  /** Grafana's objects, when it runs. */
11
28
  export function grafanaObjects(config) {
12
29
  if (!grafanaRuns(config))
13
30
  return [];
14
31
  const metadata = { name: GRAFANA, namespace: NAMESPACE, labels: labels("grafana") };
15
32
  const telegram = config.alasio.telegram.existingSecret;
33
+ const { scaling } = config.grafana;
34
+ const ha = replicated(scaling);
35
+ // Where its replicas find each other: every one of them, ready or not.
36
+ const peers = {
37
+ apiVersion: "v1",
38
+ kind: "Service",
39
+ metadata: { ...metadata, name: `${GRAFANA}-peers` },
40
+ spec: {
41
+ clusterIP: "None",
42
+ publishNotReadyAddresses: true,
43
+ selector: selectorLabels("grafana"),
44
+ ports: [{ name: "gossip-tcp", port: GOSSIP_PORT, protocol: "TCP" }, { name: "gossip-udp", port: GOSSIP_PORT, protocol: "UDP" }],
45
+ },
46
+ };
16
47
  const service = {
17
48
  apiVersion: "v1",
18
49
  kind: "Service",
@@ -24,14 +55,16 @@ export function grafanaObjects(config) {
24
55
  kind: "Deployment",
25
56
  metadata,
26
57
  spec: {
27
- replicas: 1,
28
- strategy: { type: "Recreate" },
58
+ ...replicasOf(scaling),
59
+ strategy: replicated(scaling) ? { type: "RollingUpdate", rollingUpdate: { maxSurge: 1, maxUnavailable: 0 } } : { type: "Recreate" },
29
60
  selector: { matchLabels: selectorLabels("grafana") },
30
61
  template: {
31
62
  metadata: { labels: labels("grafana") },
32
63
  spec: {
33
64
  automountServiceAccountToken: false,
34
65
  enableServiceLinks: false,
66
+ ...priority("floor"),
67
+ ...spread("grafana", scaling),
35
68
  securityContext: restrictedPod(GRAFANA_USER, GRAFANA_USER),
36
69
  ...imagePullSecrets(config),
37
70
  initContainers: [{
@@ -59,10 +92,14 @@ export function grafanaObjects(config) {
59
92
  { name: "LAKE_QUERY_URL", value: `http://${componentName("lake")}:${LAKE_QUERY_PORT}` },
60
93
  { name: "TELEGRAM_BOT_TOKEN", valueFrom: { secretKeyRef: { name: telegram, key: "token" } } },
61
94
  { name: "TELEGRAM_ALLOWED_USER_IDS", valueFrom: { secretKeyRef: { name: telegram, key: "allowedUserIds" } } },
95
+ ...(ha ? haEnv() : []),
62
96
  ],
63
97
  // Its database's password, its admin's, its secret key, and the lake's query token.
64
98
  envFrom: [{ secretRef: { name: GRAFANA } }],
65
- ports: [{ name: "http", containerPort: GRAFANA_PORT }],
99
+ ports: [
100
+ { name: "http", containerPort: GRAFANA_PORT },
101
+ ...(ha ? [{ name: "gossip-tcp", containerPort: GOSSIP_PORT, protocol: "TCP" }, { name: "gossip-udp", containerPort: GOSSIP_PORT, protocol: "UDP" }] : []),
102
+ ],
66
103
  readinessProbe: { httpGet: { path: "/api/health", port: "http" }, periodSeconds: 10 },
67
104
  // Its first start migrates its database, which takes a minute or so.
68
105
  livenessProbe: { httpGet: { path: "/api/health", port: "http" }, initialDelaySeconds: 180, periodSeconds: 30, failureThreshold: 3 },
@@ -76,6 +113,13 @@ export function grafanaObjects(config) {
76
113
  },
77
114
  },
78
115
  };
79
- return [service, deployment];
116
+ return [
117
+ service,
118
+ ...(ha ? [peers] : []),
119
+ deployment,
120
+ ...scaledObject(deployment, scaling, [cpuUtilization(80)]),
121
+ ...replicaBudget("grafana", NAMESPACE, scaling),
122
+ verticalPodAutoscaler(deployment, "InPlace", scaled(scaling) ? ["memory"] : undefined),
123
+ ];
80
124
  }
81
125
  //# sourceMappingURL=grafana.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grafana.js","sourceRoot":"","sources":["../../../../src/manifests/grafana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grafana.js","sourceRoot":"","sources":["../../../../src/manifests/grafana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { imageReference } from "../images.js";
2
+ import { componentName, imagePullSecrets, labels, NAMESPACE, replicasOf, restrictedContainer, restrictedPod, selectorLabels } from "./common.js";
3
+ import { priority } from "./priorities.js";
4
+ /** The user of the pause image. */
5
+ const PAUSE_USER = 65535;
6
+ /** The headroom's Deployment, when there is any: as many placeholders as its scale fixes, each requesting its resources. */
7
+ export function headroomObjects(config) {
8
+ const { scaling, image, resources } = config.autoscaling.headroom;
9
+ if (scaling.max === 0)
10
+ return [];
11
+ const deployment = {
12
+ apiVersion: "apps/v1",
13
+ kind: "Deployment",
14
+ metadata: { name: componentName("headroom"), namespace: NAMESPACE, labels: labels("headroom") },
15
+ spec: {
16
+ ...replicasOf(scaling),
17
+ selector: { matchLabels: selectorLabels("headroom") },
18
+ template: {
19
+ metadata: { labels: labels("headroom") },
20
+ spec: {
21
+ ...priority("headroom"),
22
+ automountServiceAccountToken: false,
23
+ securityContext: restrictedPod(PAUSE_USER, PAUSE_USER),
24
+ ...imagePullSecrets(config),
25
+ // Preempted, it gives its room at once.
26
+ terminationGracePeriodSeconds: 0,
27
+ containers: [{
28
+ name: "pause",
29
+ image: imageReference(image),
30
+ imagePullPolicy: "IfNotPresent",
31
+ securityContext: { ...restrictedContainer(), readOnlyRootFilesystem: true },
32
+ resources,
33
+ }],
34
+ },
35
+ },
36
+ },
37
+ };
38
+ return [deployment];
39
+ }
40
+ //# sourceMappingURL=headroom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headroom.js","sourceRoot":"","sources":["../../../../src/manifests/headroom.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjJ,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,mCAAmC;AACnC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEzB,4HAA4H;AAC5H,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,UAAU,GAAiB;QAC/B,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;QAC/F,IAAI,EAAE;YACJ,GAAG,UAAU,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE;YACrD,QAAQ,EAAE;gBACR,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;gBACxC,IAAI,EAAE;oBACJ,GAAG,QAAQ,CAAC,UAAU,CAAC;oBACvB,4BAA4B,EAAE,KAAK;oBACnC,eAAe,EAAE,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC;oBACtD,GAAG,gBAAgB,CAAC,MAAM,CAAC;oBAC3B,wCAAwC;oBACxC,6BAA6B,EAAE,CAAC;oBAChC,UAAU,EAAE,CAAC;4BACX,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;4BAC5B,eAAe,EAAE,cAAc;4BAC/B,eAAe,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE;4BAC3E,SAAS;yBACV,CAAC;iBACH;aACF;SACF;KACF,CAAC;IACF,OAAO,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC"}
@@ -2,21 +2,29 @@ import { agentSandboxObjects } from "./agent-sandbox.js";
2
2
  import { alasioObjects } from "./alasio.js";
3
3
  import { collectorObjects } from "./collector.js";
4
4
  import { grafanaObjects } from "./grafana.js";
5
+ import { headroomObjects } from "./headroom.js";
6
+ import { kedaObjects } from "./keda.js";
5
7
  import { lakeObjects } from "./lake.js";
6
8
  import { neonObjects } from "./neon.js";
7
9
  import { networkPolicyObjects } from "./network-policies.js";
8
10
  import { objectStoreObjects } from "./object-store.js";
11
+ import { priorityClassObjects } from "./priorities.js";
12
+ import { vpaObjects } from "./vpa.js";
9
13
  import { workspaceStorageObjects } from "./workspace-storage.js";
10
14
  export { decodeInstallConfig, InstallConfig, InstallConfigError } from "./config.js";
11
15
  export { NAMESPACE } from "./common.js";
12
16
  /**
13
- * The objects of the installation `config` describes: agent-sandbox's, alasio's, Neon's,
14
- * the object store's, the lake's, Grafana's, the telemetry collector's, workspace
15
- * storage's, and the NetworkPolicies.
17
+ * The objects of the installation `config` describes: the PriorityClasses its pods run
18
+ * under, agent-sandbox's, KEDA's, VPA's, alasio's, Neon's, the object store's, the lake's,
19
+ * Grafana's, the telemetry collector's, workspace storage's, the NetworkPolicies, and the
20
+ * headroom's.
16
21
  */
17
22
  export function manifests(config) {
18
23
  return [
24
+ ...priorityClassObjects(config),
19
25
  ...agentSandboxObjects(config),
26
+ ...kedaObjects(config),
27
+ ...vpaObjects(config),
20
28
  ...alasioObjects(config),
21
29
  ...neonObjects(config),
22
30
  ...objectStoreObjects(config),
@@ -25,6 +33,7 @@ export function manifests(config) {
25
33
  ...collectorObjects(config),
26
34
  ...workspaceStorageObjects(config),
27
35
  ...networkPolicyObjects(config),
36
+ ...headroomObjects(config),
28
37
  ];
29
38
  }
30
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/manifests/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAA0B,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,OAAO;QACL,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC9B,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAC7B,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC3B,GAAG,uBAAuB,CAAC,MAAM,CAAC;QAClC,GAAG,oBAAoB,CAAC,MAAM,CAAC;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/manifests/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAA0B,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,OAAO;QACL,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAC/B,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAC9B,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,UAAU,CAAC,MAAM,CAAC;QACrB,GAAG,aAAa,CAAC,MAAM,CAAC;QACxB,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,kBAAkB,CAAC,MAAM,CAAC;QAC7B,GAAG,WAAW,CAAC,MAAM,CAAC;QACtB,GAAG,cAAc,CAAC,MAAM,CAAC;QACzB,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC3B,GAAG,uBAAuB,CAAC,MAAM,CAAC;QAClC,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAC/B,GAAG,eAAe,CAAC,MAAM,CAAC;KAC3B,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { imageReference } from "../images.js";
2
2
  import { VOLUME_DRIVER_LABEL } from "../kube/apply.js";
3
- import { goJson } from "./common.js";
3
+ import { goJson, ONE, replicasOf } from "./common.js";
4
+ import { verticalPodAutoscaler } from "./sizing.js";
4
5
  /** The driver's name, which StorageClasses name as their provisioner. */
5
6
  export const CSI_DRIVER = "csi.juicefs.com";
6
7
  const VERSION = "v0.33.0";
@@ -137,7 +138,6 @@ function identities({ workspaceStorage }) {
137
138
  rule(["batch"], ["jobs"], ["get", "create", "update", "patch", "delete", "list", "watch"]),
138
139
  rule([""], ["endpoints"], ["get", "list", "watch", "create", "update", "patch"]),
139
140
  rule(["apps"], ["daemonsets"], ["get", "list"]),
140
- rule(["coordination.k8s.io"], ["leases"], ["get", "watch", "list", "delete", "update", "create"]),
141
141
  rule([""], ["configmaps"], ["get", "watch", "list", "delete", "update", "create"]),
142
142
  ]),
143
143
  role(nodeService, [
@@ -166,7 +166,8 @@ function controller(config) {
166
166
  metadata: { name: CONTROLLER, namespace: csi.namespace, labels: { ...LABELS, "app.kubernetes.io/component": "controller" } },
167
167
  spec: {
168
168
  serviceName: CONTROLLER,
169
- replicas: 1,
169
+ // One, and never more: without an election, two would provision alike.
170
+ ...replicasOf(ONE),
170
171
  selector: { matchLabels: CONTROLLER_POD_LABELS },
171
172
  template: {
172
173
  metadata: { labels: { ...LABELS, ...CONTROLLER_POD_LABELS } },
@@ -178,7 +179,7 @@ function controller(config) {
178
179
  {
179
180
  name: "juicefs-plugin",
180
181
  image: imageReference(csi.image),
181
- args: ["--endpoint=$(CSI_ENDPOINT)", "--logtostderr", "--nodeid=$(NODE_NAME)", "--leader-election", "--provisioner=true", "--config=/etc/config/config.yaml"],
182
+ args: ["--endpoint=$(CSI_ENDPOINT)", "--logtostderr", "--nodeid=$(NODE_NAME)", "--provisioner=true", "--config=/etc/config/config.yaml"],
182
183
  env: [{ name: "CSI_ENDPOINT", value: `unix://${CONTROLLER_SOCKET_DIR}csi.sock` }, ...pluginEnv(config)],
183
184
  ports: [{ name: "healthz", containerPort: 9909, protocol: "TCP" }],
184
185
  livenessProbe: PLUGIN_PROBE,
@@ -195,7 +196,7 @@ function controller(config) {
195
196
  {
196
197
  name: "csi-resizer",
197
198
  image: imageReference(csi.resizerImage),
198
- args: ["--csi-address=$(ADDRESS)", "--timeout=20s", "--leader-election", "--v=2"],
199
+ args: ["--csi-address=$(ADDRESS)", "--timeout=20s", "--v=2"],
199
200
  env: [{ name: "ADDRESS", value: `${CONTROLLER_SOCKET_DIR}csi.sock` }],
200
201
  resources: { requests: { cpu: "5m", memory: "24Mi" }, limits: { memory: "128Mi" } },
201
202
  volumeMounts: [{ name: "socket-dir", mountPath: CONTROLLER_SOCKET_DIR }],
@@ -311,6 +312,8 @@ export function juicefsCsiObjects(config) {
311
312
  metadata: { name: CONFIG, namespace: csi.namespace, labels: LABELS },
312
313
  data: { "config.yaml": goJson(driverConfig(config), " ") },
313
314
  };
314
- return [csiDriver, priorityClass, ...identities(config), configMap, controller(config), nodeService(config)];
315
+ // Each serves workspaces' mounts, which its recreation would interrupt.
316
+ const workloads = [controller(config), nodeService(config)];
317
+ return [csiDriver, priorityClass, ...identities(config), configMap, ...workloads.flatMap((workload) => [workload, verticalPodAutoscaler(workload, "Recommended")])];
315
318
  }
316
319
  //# sourceMappingURL=juicefs-csi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"juicefs-csi.js","sourceRoot":"","sources":["../../../../src/manifests/juicefs-csi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"juicefs-csi.js","sourceRoot":"","sources":["../../../../src/manifests/juicefs-csi.ts"],"names":[],"mappings":"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"}
@@ -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