alasio 5.0.3 → 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.
- package/dist/cli/src/branches.js +6 -14
- package/dist/cli/src/branches.js.map +1 -1
- package/dist/cli/src/capacity.js +46 -0
- package/dist/cli/src/capacity.js.map +1 -0
- package/dist/cli/src/cluster/k3s.js +12 -4
- package/dist/cli/src/cluster/k3s.js.map +1 -1
- package/dist/cli/src/cluster/node.js +2 -2
- package/dist/cli/src/cluster/node.js.map +1 -1
- package/dist/cli/src/commands/branch.js +2 -1
- package/dist/cli/src/commands/branch.js.map +1 -1
- package/dist/cli/src/commands/restore-filer-store.js +236 -0
- package/dist/cli/src/commands/restore-filer-store.js.map +1 -0
- package/dist/cli/src/commands/status.js +110 -9
- package/dist/cli/src/commands/status.js.map +1 -1
- package/dist/cli/src/commands/uninstall.js +1 -1
- package/dist/cli/src/commands/uninstall.js.map +1 -1
- package/dist/cli/src/commands/up.js +2 -1
- package/dist/cli/src/commands/up.js.map +1 -1
- package/dist/cli/src/commands.js +2 -1
- package/dist/cli/src/commands.js.map +1 -1
- package/dist/cli/src/config.js +13 -4
- package/dist/cli/src/config.js.map +1 -1
- package/dist/cli/src/install.js +9 -3
- package/dist/cli/src/install.js.map +1 -1
- package/dist/cli/src/kube/api.js +11 -3
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +116 -13
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/kube/autoscalers.js +48 -0
- package/dist/cli/src/kube/autoscalers.js.map +1 -0
- package/dist/cli/src/kube/object-store-scale.js +116 -0
- package/dist/cli/src/kube/object-store-scale.js.map +1 -0
- package/dist/cli/src/kube/rollout.js +2 -0
- package/dist/cli/src/kube/rollout.js.map +1 -1
- package/dist/cli/src/manifests/admission.js +296 -0
- package/dist/cli/src/manifests/admission.js.map +1 -0
- package/dist/cli/src/manifests/agent-sandbox.js +6 -3
- package/dist/cli/src/manifests/agent-sandbox.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +34 -12
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/cloudeventsources.eventing.keda.sh.json +219 -0
- package/dist/cli/src/manifests/clustercloudeventsources.eventing.keda.sh.json +218 -0
- package/dist/cli/src/manifests/clustertriggerauthentications.keda.sh.json +997 -0
- package/dist/cli/src/manifests/collector.js +77 -38
- package/dist/cli/src/manifests/collector.js.map +1 -1
- package/dist/cli/src/manifests/common.js +11 -0
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +217 -31
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/controllers.js +39 -0
- package/dist/cli/src/manifests/controllers.js.map +1 -0
- package/dist/cli/src/manifests/disruption.js +47 -0
- package/dist/cli/src/manifests/disruption.js.map +1 -0
- package/dist/cli/src/manifests/grafana.js +49 -5
- package/dist/cli/src/manifests/grafana.js.map +1 -1
- package/dist/cli/src/manifests/headroom.js +40 -0
- package/dist/cli/src/manifests/headroom.js.map +1 -0
- package/dist/cli/src/manifests/index.js +12 -3
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/juicefs-csi.js +9 -6
- package/dist/cli/src/manifests/juicefs-csi.js.map +1 -1
- package/dist/cli/src/manifests/keda.js +271 -0
- package/dist/cli/src/manifests/keda.js.map +1 -0
- package/dist/cli/src/manifests/lake.js +7 -3
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/neon.js +33 -25
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +90 -10
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +506 -77
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/priorities.js +30 -0
- package/dist/cli/src/manifests/priorities.js.map +1 -0
- package/dist/cli/src/manifests/scaledjobs.keda.sh.json +7507 -0
- package/dist/cli/src/manifests/scaledobjects.keda.sh.json +564 -0
- package/dist/cli/src/manifests/scalers.js +24 -0
- package/dist/cli/src/manifests/scalers.js.map +1 -0
- package/dist/cli/src/manifests/sizing.js +40 -0
- package/dist/cli/src/manifests/sizing.js.map +1 -0
- package/dist/cli/src/manifests/triggerauthentications.keda.sh.json +992 -0
- package/dist/cli/src/manifests/valkey.js +63 -35
- package/dist/cli/src/manifests/valkey.js.map +1 -1
- package/dist/cli/src/manifests/verticalpodautoscalercheckpoints.autoscaling.k8s.io.json +250 -0
- package/dist/cli/src/manifests/verticalpodautoscalers.autoscaling.k8s.io.json +837 -0
- package/dist/cli/src/manifests/vpa.js +220 -0
- package/dist/cli/src/manifests/vpa.js.map +1 -0
- package/dist/cli/src/manifests/workspace-storage.js +12 -2
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/object-store.js +57 -0
- package/dist/cli/src/object-store.js.map +1 -0
- package/dist/cli/src/release.js +6 -6
- package/dist/cli/src/target.js +1 -1
- package/dist/cli/src/target.js.map +1 -1
- package/dist/cluster/node/pins.json +2 -2
- package/dist/neon/control/secrets.js +3 -0
- package/dist/neon/control/secrets.js.map +1 -1
- package/dist/src/kube/busy-label.js +13 -0
- package/dist/src/kube/busy-label.js.map +1 -0
- package/dist/src/kube/config.js +5 -1
- package/dist/src/kube/config.js.map +1 -1
- package/dist/src/kube/sandbox-shape.js +62 -0
- package/dist/src/kube/sandbox-shape.js.map +1 -0
- package/dist/src/sandbox/names.js +44 -0
- package/dist/src/sandbox/names.js.map +1 -0
- 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
|
-
|
|
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: [
|
|
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 [
|
|
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":"
|
|
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:
|
|
14
|
-
*
|
|
15
|
-
* storage's, and the
|
|
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
|
|
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
|
-
|
|
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)", "--
|
|
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", "--
|
|
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
|
-
|
|
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
|