alasio 4.2.1 → 5.0.1
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 +295 -0
- package/dist/cli/src/branches.js.map +1 -0
- package/dist/cli/src/commands/branch.js +114 -0
- package/dist/cli/src/commands/branch.js.map +1 -0
- package/dist/cli/src/commands/common.js +27 -8
- package/dist/cli/src/commands/common.js.map +1 -1
- package/dist/cli/src/commands/grafana.js +72 -0
- package/dist/cli/src/commands/grafana.js.map +1 -0
- package/dist/cli/src/commands/init.js +6 -5
- package/dist/cli/src/commands/init.js.map +1 -1
- package/dist/cli/src/commands/lake.js +18 -4
- package/dist/cli/src/commands/lake.js.map +1 -1
- package/dist/cli/src/commands/login.js +12 -7
- package/dist/cli/src/commands/login.js.map +1 -1
- package/dist/cli/src/commands/logs.js +12 -6
- package/dist/cli/src/commands/logs.js.map +1 -1
- package/dist/cli/src/commands/uninstall.js +16 -1
- package/dist/cli/src/commands/uninstall.js.map +1 -1
- package/dist/cli/src/commands.js +3 -1
- package/dist/cli/src/commands.js.map +1 -1
- package/dist/cli/src/kube/api.js +35 -2
- package/dist/cli/src/kube/api.js.map +1 -1
- package/dist/cli/src/kube/apply.js +21 -8
- package/dist/cli/src/kube/apply.js.map +1 -1
- package/dist/cli/src/manifests/alasio.js +143 -74
- package/dist/cli/src/manifests/alasio.js.map +1 -1
- package/dist/cli/src/manifests/branch.js +45 -0
- package/dist/cli/src/manifests/branch.js.map +1 -0
- package/dist/cli/src/manifests/collector.js +199 -0
- package/dist/cli/src/manifests/collector.js.map +1 -0
- package/dist/cli/src/manifests/common.js +44 -11
- package/dist/cli/src/manifests/common.js.map +1 -1
- package/dist/cli/src/manifests/config.js +33 -19
- package/dist/cli/src/manifests/config.js.map +1 -1
- package/dist/cli/src/manifests/grafana.js +81 -0
- package/dist/cli/src/manifests/grafana.js.map +1 -0
- package/dist/cli/src/manifests/index.js +6 -1
- package/dist/cli/src/manifests/index.js.map +1 -1
- package/dist/cli/src/manifests/lake.js +66 -18
- package/dist/cli/src/manifests/lake.js.map +1 -1
- package/dist/cli/src/manifests/neon.js +29 -157
- package/dist/cli/src/manifests/neon.js.map +1 -1
- package/dist/cli/src/manifests/network-policies.js +141 -38
- package/dist/cli/src/manifests/network-policies.js.map +1 -1
- package/dist/cli/src/manifests/object-store.js +17 -7
- package/dist/cli/src/manifests/object-store.js.map +1 -1
- package/dist/cli/src/manifests/workspace-storage.js +98 -29
- package/dist/cli/src/manifests/workspace-storage.js.map +1 -1
- package/dist/cli/src/release.js +6 -5
- package/dist/cli/src/release.js.map +1 -1
- package/dist/neon/control/branches.js +307 -0
- package/dist/neon/control/branches.js.map +1 -0
- package/dist/neon/control/jwt.js +58 -0
- package/dist/neon/control/jwt.js.map +1 -0
- package/dist/neon/control/scram.js +15 -0
- package/dist/neon/control/scram.js.map +1 -0
- package/dist/neon/control/secrets.js +111 -0
- package/dist/neon/control/secrets.js.map +1 -0
- package/dist/src/branch/names.js +18 -0
- package/dist/src/branch/names.js.map +1 -0
- package/dist/src/kube/config.js +14 -1
- package/dist/src/kube/config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import { computeId, MAIN } from "../../../neon/control/branches.js";
|
|
1
2
|
import { imageReference } from "../images.js";
|
|
2
|
-
import { claimSpec,
|
|
3
|
-
import {
|
|
4
|
-
import { VALKEY, VALKEY_PORT } from "./valkey.js";
|
|
3
|
+
import { claimSpec, collectorRuns, databaseSecret, given, helperResources, imagePullSecrets, MAIN_ENVIRONMENT, NAMESPACE, neonName, otelEnv, RELEASE, restrictedContainer, s3Endpoint, script, selectorLabels, stackLabels, stackPodSpec, waitFor, waitForObjectStore, } from "./common.js";
|
|
4
|
+
import { VOLUME_DRIVER } from "./juicefs-csi.js";
|
|
5
5
|
import { VALKEY_ADDRESS, workspacesBucketUrl } from "./workspace-storage.js";
|
|
6
|
-
/** A Service of the stack's: its name and component, selecting the component's pods, on `ports`. */
|
|
7
|
-
function service(name, component, ports) {
|
|
6
|
+
/** A Service of the stack's: its name and component, selecting the component's pods, on `ports`, main's unless of `environment`. */
|
|
7
|
+
function service(name, component, ports, environment = MAIN_ENVIRONMENT) {
|
|
8
8
|
return {
|
|
9
9
|
apiVersion: "v1",
|
|
10
10
|
kind: "Service",
|
|
11
|
-
metadata: { name, namespace:
|
|
11
|
+
metadata: { name, namespace: environment.namespace, labels: stackLabels(component) },
|
|
12
12
|
spec: { selector: selectorLabels(component), ports },
|
|
13
13
|
};
|
|
14
14
|
}
|
|
@@ -272,6 +272,11 @@ function safekeepers(config) {
|
|
|
272
272
|
'--availability-zone "az-safekeeper-$SAFEKEEPER_ID"',
|
|
273
273
|
`--broker-endpoint http://${neonName("storage-broker")}:50051`,
|
|
274
274
|
'--remote-storage "$REMOTE_STORAGE"',
|
|
275
|
+
// It uploads the segment it writes, whole, once it has grown, at most
|
|
276
|
+
// this often, and the object store keeps each upload replaced a day: an
|
|
277
|
+
// hour apart, not fifteen minutes, a quarter as many. What the bucket
|
|
278
|
+
// lacks of the last hour is on the volume of each safekeeper.
|
|
279
|
+
"--partial-backup-timeout 1h",
|
|
275
280
|
"--pg-auth-public-key-path /keys/auth_public_key.pem",
|
|
276
281
|
"--pg-tenant-only-auth-public-key-path /keys/auth_public_key.pem",
|
|
277
282
|
"--http-auth-public-key-path /keys/auth_public_key.pem",
|
|
@@ -369,9 +374,10 @@ function pageserver(config) {
|
|
|
369
374
|
return [service(name, component, [{ name: "pg", port: 6400 }, { name: "http", port: 9898 }]), statefulSet];
|
|
370
375
|
}
|
|
371
376
|
/**
|
|
372
|
-
* neon-control: it bootstraps the tenant and timeline,
|
|
373
|
-
* answers the storage controller's hooks, and
|
|
374
|
-
* Its record of
|
|
377
|
+
* neon-control: it bootstraps the tenant and main's timeline, makes and deletes branches,
|
|
378
|
+
* serves each branch's compute its spec, answers the storage controller's hooks, and
|
|
379
|
+
* repairs a safekeeper that lost its disk. Its record of the branches is on a volume of
|
|
380
|
+
* its own.
|
|
375
381
|
*/
|
|
376
382
|
function control(config) {
|
|
377
383
|
const name = neonName("control");
|
|
@@ -404,7 +410,8 @@ function control(config) {
|
|
|
404
410
|
env: [
|
|
405
411
|
{ name: "CONTROLLER_URL", value: `http://${neonName("storage-controller")}:1234` },
|
|
406
412
|
{ name: "NEON_SAFEKEEPER_HOSTS", value: safekeeperHosts.join(",") },
|
|
407
|
-
|
|
413
|
+
// As every compute reaches it, a branch environment's in its own namespace too.
|
|
414
|
+
{ name: "NEON_PAGESERVER_HOST", value: `${neonName("pageserver")}.${NAMESPACE}.svc` },
|
|
408
415
|
],
|
|
409
416
|
ports: [{ name: "http", containerPort: 8080 }],
|
|
410
417
|
readinessProbe: { httpGet: { path: "/healthz", port: "http" }, periodSeconds: 3 },
|
|
@@ -438,16 +445,18 @@ function control(config) {
|
|
|
438
445
|
* The compute: Postgres on alasio's timeline, one primary (never two on one timeline),
|
|
439
446
|
* its own disk rebuilt from the safekeepers and pageserver on every start, its spec
|
|
440
447
|
* fetched from neon-control. It serves compute_ctl's metrics too, which the collector
|
|
441
|
-
* scrapes, and
|
|
448
|
+
* scrapes, and exports compute_ctl's traces to the collector, when it runs. A branch
|
|
449
|
+
* environment's is on the branch's timeline, in its namespace, reaching the stack's
|
|
450
|
+
* storage and neon-control in main's.
|
|
442
451
|
*/
|
|
443
|
-
function compute(config) {
|
|
452
|
+
export function compute(config, environment = MAIN_ENVIRONMENT) {
|
|
444
453
|
const name = neonName("compute");
|
|
445
454
|
const component = "neon-compute";
|
|
446
|
-
const control = neonName("control")
|
|
455
|
+
const control = `http://${neonName("control")}.${NAMESPACE}.svc:8080`;
|
|
447
456
|
const deployment = {
|
|
448
457
|
apiVersion: "apps/v1",
|
|
449
458
|
kind: "Deployment",
|
|
450
|
-
metadata: { name, namespace:
|
|
459
|
+
metadata: { name, namespace: environment.namespace, labels: stackLabels(component) },
|
|
451
460
|
spec: {
|
|
452
461
|
replicas: 1,
|
|
453
462
|
strategy: { type: "Recreate" },
|
|
@@ -461,7 +470,7 @@ function compute(config) {
|
|
|
461
470
|
...given("nodeSelector", { ...config.neon.nodeSelector }),
|
|
462
471
|
...given("tolerations", [...config.neon.tolerations]),
|
|
463
472
|
terminationGracePeriodSeconds: 30,
|
|
464
|
-
initContainers: [waitFor(config, "neon-control",
|
|
473
|
+
initContainers: [waitFor(config, "neon-control", `${control}/healthz`)],
|
|
465
474
|
containers: [{
|
|
466
475
|
name: "compute",
|
|
467
476
|
image: imageReference(config.neon.computeImage),
|
|
@@ -474,14 +483,14 @@ function compute(config) {
|
|
|
474
483
|
"--pgbin",
|
|
475
484
|
"/usr/local/bin/postgres",
|
|
476
485
|
"--compute-id",
|
|
477
|
-
|
|
486
|
+
computeId(environment.branch ?? MAIN),
|
|
478
487
|
"--control-plane-uri",
|
|
479
|
-
|
|
488
|
+
control,
|
|
480
489
|
],
|
|
481
490
|
env: [
|
|
482
491
|
secretVariable(name, "NEON_CONTROL_PLANE_TOKEN"),
|
|
483
|
-
...(config
|
|
484
|
-
? [{ name: "OTEL_SERVICE_NAME", value: "compute_ctl" }, ...otelEnv(config)]
|
|
492
|
+
...(collectorRuns(config)
|
|
493
|
+
? [{ name: "OTEL_SERVICE_NAME", value: "compute_ctl" }, ...otelEnv(config, environment)]
|
|
485
494
|
: [{ name: "OTEL_SDK_DISABLED", value: "true" }]),
|
|
486
495
|
],
|
|
487
496
|
ports: [{ name: "postgres", containerPort: 55433 }, { name: "http", containerPort: 3080 }],
|
|
@@ -495,7 +504,7 @@ function compute(config) {
|
|
|
495
504
|
},
|
|
496
505
|
},
|
|
497
506
|
};
|
|
498
|
-
return [service(name, component, [{ name: "postgres", port: 55433 }, { name: "http", port: 3080 }]), deployment];
|
|
507
|
+
return [service(name, component, [{ name: "postgres", port: 55433 }, { name: "http", port: 3080 }], environment), deployment];
|
|
499
508
|
}
|
|
500
509
|
/**
|
|
501
510
|
* A logical dump of alasio's database, restorable into any Postgres whatever becomes of
|
|
@@ -585,147 +594,11 @@ function backup(config) {
|
|
|
585
594
|
},
|
|
586
595
|
};
|
|
587
596
|
}
|
|
588
|
-
/**
|
|
589
|
-
* The stack's telemetry: every Neon service's, SeaweedFS's and the lake's Prometheus
|
|
590
|
-
* metrics, and with workspace storage JuiceFS's and Valkey's, scraped and sent on as OTLP
|
|
591
|
-
* where alasio's telemetry goes, when it goes anywhere. JuiceFS's are its driver's and
|
|
592
|
-
* mount pods', found among the pods of the driver's namespace, which the collector may
|
|
593
|
-
* list; Valkey's are read with its password. Its pod carries its configuration's
|
|
594
|
-
* checksum, so it is replaced when that changes.
|
|
595
|
-
*/
|
|
596
|
-
function collector(config, endpoint) {
|
|
597
|
-
const name = neonName("collector");
|
|
598
|
-
const component = "neon-collector";
|
|
599
|
-
const { telemetry, workspaceStorage } = config;
|
|
600
|
-
const safekeeper = neonName("safekeeper");
|
|
601
|
-
const targets = {
|
|
602
|
-
pageserver: [`${neonName("pageserver")}:9898`],
|
|
603
|
-
"storage-controller": [`${neonName("storage-controller")}:1234`],
|
|
604
|
-
"storage-broker": [`${neonName("storage-broker")}:50051`],
|
|
605
|
-
compute: [`${neonName("compute")}:3080`],
|
|
606
|
-
safekeeper: Array.from({ length: config.neon.safekeepers.replicas }, (_, index) => `${safekeeper}-${index}.${safekeeper}:7676`),
|
|
607
|
-
...(config.objectStore.bundled.enabled ? { seaweedfs: [`${componentName("seaweedfs")}:9327`] } : {}),
|
|
608
|
-
...(config.lake.enabled ? { lake: [`${componentName("lake")}:9464`] } : {}),
|
|
609
|
-
};
|
|
610
|
-
// JuiceFS's pods of the name `name` in the driver's namespace: each running one at its
|
|
611
|
-
// address, on the port `port` they serve their metrics on, named by its pod. The
|
|
612
|
-
// collector reads `$` as the start of a variable, and `$$` as a `$`.
|
|
613
|
-
const juicefsJob = (job, name, port) => ({
|
|
614
|
-
job_name: job,
|
|
615
|
-
scrape_interval: "30s",
|
|
616
|
-
kubernetes_sd_configs: [{
|
|
617
|
-
role: "pod",
|
|
618
|
-
namespaces: { names: [workspaceStorage.csi.namespace] },
|
|
619
|
-
selectors: [{ role: "pod", label: `app.kubernetes.io/name=${name}` }],
|
|
620
|
-
}],
|
|
621
|
-
relabel_configs: [
|
|
622
|
-
{ source_labels: ["__meta_kubernetes_pod_phase"], regex: "Running", action: "keep" },
|
|
623
|
-
{ source_labels: ["__meta_kubernetes_pod_ip"], target_label: "__address__", replacement: `$$1:${port}` },
|
|
624
|
-
{ source_labels: ["__meta_kubernetes_pod_name"], target_label: "pod" },
|
|
625
|
-
],
|
|
626
|
-
});
|
|
627
|
-
// The mount pods, the clients, and the controller's and node service's, the driver.
|
|
628
|
-
const juicefs = [juicefsJob("juicefs", MOUNT_POD_NAME, JUICEFS_METRICS_PORT), juicefsJob("juicefs-csi", DRIVER_POD_NAME, DRIVER_METRICS_PORT)];
|
|
629
|
-
const collectorConfig = {
|
|
630
|
-
receivers: {
|
|
631
|
-
prometheus: {
|
|
632
|
-
config: {
|
|
633
|
-
scrape_configs: [
|
|
634
|
-
...Object.keys(targets).sort().map((job) => ({ job_name: job, scrape_interval: "30s", static_configs: [{ targets: targets[job] }] })),
|
|
635
|
-
...(workspaceStorage.enabled ? juicefs : []),
|
|
636
|
-
],
|
|
637
|
-
},
|
|
638
|
-
},
|
|
639
|
-
...(workspaceStorage.enabled
|
|
640
|
-
? {
|
|
641
|
-
redis: {
|
|
642
|
-
endpoint: `${VALKEY}:${VALKEY_PORT}`,
|
|
643
|
-
password: "${env:VALKEY_PASSWORD}",
|
|
644
|
-
collection_interval: "30s",
|
|
645
|
-
// How near it is to refusing writes: used memory against this.
|
|
646
|
-
metrics: { "redis.maxmemory": { enabled: true } },
|
|
647
|
-
},
|
|
648
|
-
}
|
|
649
|
-
: {}),
|
|
650
|
-
},
|
|
651
|
-
processors: { resource: { attributes: [{ key: "service.namespace", value: "alasio-neon", action: "upsert" }] }, batch: {} },
|
|
652
|
-
exporters: { otlphttp: { endpoint, ...(telemetry.headersSecret ? { headers: "${file:/etc/otelcol/headers/headers.yaml}" } : {}) } },
|
|
653
|
-
service: {
|
|
654
|
-
telemetry: { metrics: { level: "none" } },
|
|
655
|
-
pipelines: {
|
|
656
|
-
metrics: { receivers: ["prometheus", ...(workspaceStorage.enabled ? ["redis"] : [])], processors: ["resource", "batch"], exporters: ["otlphttp"] },
|
|
657
|
-
},
|
|
658
|
-
},
|
|
659
|
-
};
|
|
660
|
-
const configMap = {
|
|
661
|
-
apiVersion: "v1",
|
|
662
|
-
kind: "ConfigMap",
|
|
663
|
-
metadata: { name, namespace: NAMESPACE, labels: stackLabels(component) },
|
|
664
|
-
data: { "config.yaml": goJson(collectorConfig, " ") },
|
|
665
|
-
};
|
|
666
|
-
const deployment = {
|
|
667
|
-
apiVersion: "apps/v1",
|
|
668
|
-
kind: "Deployment",
|
|
669
|
-
metadata: { name, namespace: NAMESPACE, labels: stackLabels(component) },
|
|
670
|
-
spec: {
|
|
671
|
-
replicas: 1,
|
|
672
|
-
selector: { matchLabels: selectorLabels(component) },
|
|
673
|
-
template: {
|
|
674
|
-
metadata: { labels: stackLabels(component), annotations: { "checksum/config": sha256(goJson(collectorConfig)) } },
|
|
675
|
-
spec: {
|
|
676
|
-
...(workspaceStorage.enabled ? { serviceAccountName: name } : {}),
|
|
677
|
-
...stackPodSpec(config),
|
|
678
|
-
containers: [{
|
|
679
|
-
name: "collector",
|
|
680
|
-
image: imageReference(config.neon.collector.image),
|
|
681
|
-
imagePullPolicy: "IfNotPresent",
|
|
682
|
-
args: ["--config=/etc/otelcol/config.yaml"],
|
|
683
|
-
...(workspaceStorage.enabled ? { env: [{ name: "VALKEY_PASSWORD", valueFrom: { secretKeyRef: { name: VALKEY, key: "password" } } }] } : {}),
|
|
684
|
-
securityContext: { ...restrictedContainer(), readOnlyRootFilesystem: true },
|
|
685
|
-
resources: config.neon.collector.resources,
|
|
686
|
-
volumeMounts: [
|
|
687
|
-
{ name: "config", mountPath: "/etc/otelcol", readOnly: true },
|
|
688
|
-
...(telemetry.headersSecret ? [{ name: "headers", mountPath: "/etc/otelcol/headers", readOnly: true }] : []),
|
|
689
|
-
],
|
|
690
|
-
}],
|
|
691
|
-
volumes: [
|
|
692
|
-
{ name: "config", configMap: { name } },
|
|
693
|
-
// The exporter's headers: a YAML map, under the key headersKey + ".yaml" in the
|
|
694
|
-
// headers Secret, since the collector takes headers as a map.
|
|
695
|
-
...(telemetry.headersSecret
|
|
696
|
-
? [{ name: "headers", secret: { secretName: telemetry.headersSecret, items: [{ key: `${telemetry.headersKey}.yaml`, path: "headers.yaml" }] } }]
|
|
697
|
-
: []),
|
|
698
|
-
],
|
|
699
|
-
},
|
|
700
|
-
},
|
|
701
|
-
},
|
|
702
|
-
};
|
|
703
|
-
if (!workspaceStorage.enabled)
|
|
704
|
-
return [configMap, deployment];
|
|
705
|
-
// Who the collector is, and that it may find JuiceFS's pods in the driver's namespace.
|
|
706
|
-
const serviceAccount = { apiVersion: "v1", kind: "ServiceAccount", metadata: { name, namespace: NAMESPACE, labels: stackLabels(component) } };
|
|
707
|
-
const metadata = { name, namespace: workspaceStorage.csi.namespace, labels: stackLabels(component) };
|
|
708
|
-
const role = {
|
|
709
|
-
apiVersion: "rbac.authorization.k8s.io/v1",
|
|
710
|
-
kind: "Role",
|
|
711
|
-
metadata,
|
|
712
|
-
rules: [{ apiGroups: [""], resources: ["pods"], verbs: ["get", "list", "watch"] }],
|
|
713
|
-
};
|
|
714
|
-
const binding = {
|
|
715
|
-
apiVersion: "rbac.authorization.k8s.io/v1",
|
|
716
|
-
kind: "RoleBinding",
|
|
717
|
-
metadata,
|
|
718
|
-
subjects: [{ kind: "ServiceAccount", name, namespace: NAMESPACE }],
|
|
719
|
-
roleRef: { apiGroup: "rbac.authorization.k8s.io", kind: "Role", name },
|
|
720
|
-
};
|
|
721
|
-
return [serviceAccount, role, binding, configMap, deployment];
|
|
722
|
-
}
|
|
723
597
|
/** Neon's objects, when it runs. */
|
|
724
598
|
export function neonObjects(config) {
|
|
725
599
|
const { neon } = config;
|
|
726
600
|
if (!neon.enabled)
|
|
727
601
|
return [];
|
|
728
|
-
const collectorEndpoint = neon.collector.otlpEndpoint || config.telemetry.otlpEndpoint;
|
|
729
602
|
return [
|
|
730
603
|
...setup(config),
|
|
731
604
|
...controllerDb(config),
|
|
@@ -736,7 +609,6 @@ export function neonObjects(config) {
|
|
|
736
609
|
...control(config),
|
|
737
610
|
...compute(config),
|
|
738
611
|
...(neon.backup.enabled ? [backup(config)] : []),
|
|
739
|
-
...(neon.collector.enabled && collectorEndpoint ? collector(config, collectorEndpoint) : []),
|
|
740
612
|
];
|
|
741
613
|
}
|
|
742
614
|
//# sourceMappingURL=neon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neon.js","sourceRoot":"","sources":["../../../../src/manifests/neon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"neon.js","sourceRoot":"","sources":["../../../../src/manifests/neon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BRANCH_FORK_PORT } from "../../../src/branch/names.js";
|
|
2
|
+
import { forksForBranches, sessionsNamespace } from "./alasio.js";
|
|
3
|
+
import { BRANCH_LABEL, COLLECTOR_PORT, collectorRuns, componentName, given, grafanaRuns, labels, MAIN_ENVIRONMENT, NAMESPACE, RELEASE, selectorLabels, } from "./common.js";
|
|
4
|
+
import { LAKE_QUERY_PORT } from "./lake.js";
|
|
2
5
|
import { CONTROLLER_POD_LABELS, JOB_POD_SELECTOR, MOUNT_POD_LABELS, NODE_POD_LABELS } from "./juicefs-csi.js";
|
|
3
6
|
import { VALKEY_PORT } from "./valkey.js";
|
|
4
7
|
import { JUICEFS_ADMIN } from "./workspace-storage.js";
|
|
5
8
|
/** The label of every session's pod, which alasio gives it. */
|
|
6
9
|
const SESSION = { "alasio.dev/workload": "session" };
|
|
7
|
-
/**
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
/** The namespace `name`, as a peer's selector. */
|
|
11
|
+
const namespaceNamed = (name) => ({ matchLabels: { "kubernetes.io/metadata.name": name } });
|
|
12
|
+
/** The alasio pod of `environment`, as a peer. */
|
|
13
|
+
const alasioOf = ({ namespace }) => ({ namespaceSelector: namespaceNamed(namespace), podSelector: { matchLabels: selectorLabels("alasio") } });
|
|
14
|
+
/** Every branch environment's namespace, as a peer's selector, by the label each has. */
|
|
15
|
+
const BRANCH_NAMESPACES = { matchExpressions: [{ key: BRANCH_LABEL, operator: "Exists" }] };
|
|
16
|
+
/** The labels of the data stack's pods, which its policy admits each other by. */
|
|
17
|
+
const STACK = { "app.kubernetes.io/instance": RELEASE, "alasio.dev/stack": "neon" };
|
|
12
18
|
/** A NetworkPolicy of `name` in `namespace`, labelled as `component`'s. */
|
|
13
19
|
function policy(name, namespace, component, spec) {
|
|
14
20
|
return { apiVersion: "networking.k8s.io/v1", kind: "NetworkPolicy", metadata: { name, namespace, labels: labels(component) }, spec };
|
|
15
21
|
}
|
|
16
22
|
/**
|
|
17
|
-
* Sessions: nothing in or out but bayma from alasio,
|
|
23
|
+
* Sessions: nothing in or out but bayma from their alasio, its telemetry receiver (the
|
|
18
24
|
* one egress of a session without internet), and, for a session with internet, the
|
|
19
|
-
* public internet, none of the cluster's or its network's private addresses.
|
|
25
|
+
* public internet, none of the cluster's or its network's private addresses. A branch
|
|
26
|
+
* environment's sessions are its alasio's alone, as main's are main's.
|
|
20
27
|
*/
|
|
21
|
-
function sessionPolicies(config) {
|
|
22
|
-
const {
|
|
28
|
+
function sessionPolicies(config, environment) {
|
|
29
|
+
const { blockedCidrs } = config.sessions;
|
|
30
|
+
const namespace = sessionsNamespace(config, environment);
|
|
31
|
+
const alasio = alasioOf(environment);
|
|
23
32
|
return [
|
|
24
33
|
policy("default-deny", namespace, "session", { podSelector: {}, policyTypes: ["Ingress", "Egress"] }),
|
|
25
34
|
policy("bayma-from-alasio", namespace, "session", {
|
|
26
35
|
podSelector: { matchLabels: SESSION },
|
|
27
36
|
policyTypes: ["Ingress"],
|
|
28
|
-
ingress: [{ from: [
|
|
37
|
+
ingress: [{ from: [alasio], ports: [{ protocol: "TCP", port: 7290 }] }],
|
|
29
38
|
}),
|
|
30
39
|
policy("telemetry-to-alasio", namespace, "session", {
|
|
31
40
|
podSelector: { matchLabels: SESSION },
|
|
32
41
|
policyTypes: ["Egress"],
|
|
33
|
-
egress: [{ to: [
|
|
42
|
+
egress: [{ to: [alasio], ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }] }],
|
|
34
43
|
}),
|
|
35
44
|
policy("full-internet", namespace, "session", {
|
|
36
45
|
podSelector: { matchLabels: { ...SESSION, "alasio.dev/net-mode": "full" } },
|
|
@@ -39,22 +48,42 @@ function sessionPolicies(config) {
|
|
|
39
48
|
}),
|
|
40
49
|
];
|
|
41
50
|
}
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Neon's services, the object store, the lake and their jobs reach each other; alasio
|
|
53
|
+
* reaches the compute, its database. In a branch environment, its compute and its lake
|
|
54
|
+
* reach each other, and its alasio its compute, as main's do.
|
|
55
|
+
*/
|
|
56
|
+
function neonPolicies({ namespace }) {
|
|
45
57
|
return [
|
|
46
|
-
policy(componentName("neon"),
|
|
47
|
-
podSelector: { matchLabels:
|
|
58
|
+
policy(componentName("neon"), namespace, "neon", {
|
|
59
|
+
podSelector: { matchLabels: STACK },
|
|
48
60
|
policyTypes: ["Ingress"],
|
|
49
|
-
ingress: [{ from: [{ podSelector: { matchLabels:
|
|
61
|
+
ingress: [{ from: [{ podSelector: { matchLabels: STACK } }] }],
|
|
50
62
|
}),
|
|
51
|
-
policy(componentName("neon-compute"),
|
|
63
|
+
policy(componentName("neon-compute"), namespace, "neon", {
|
|
52
64
|
podSelector: { matchLabels: selectorLabels("neon-compute") },
|
|
53
65
|
policyTypes: ["Ingress"],
|
|
54
66
|
ingress: [{ from: [{ podSelector: { matchLabels: selectorLabels("alasio") } }], ports: [{ protocol: "TCP", port: 55433 }] }],
|
|
55
67
|
}),
|
|
56
68
|
];
|
|
57
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Branch environments' computes and lakes reach main's storage, which they share: the
|
|
72
|
+
* pageserver and safekeepers their timelines are on, neon-control their specs are
|
|
73
|
+
* served by, and the object store the lake's files are in; nothing else of main's, nor
|
|
74
|
+
* its compute, which is main's database.
|
|
75
|
+
*/
|
|
76
|
+
function branchStoragePolicy(config) {
|
|
77
|
+
const shared = ["neon-pageserver", "neon-safekeeper", "neon-control", ...(config.objectStore.bundled.enabled ? ["seaweedfs"] : [])];
|
|
78
|
+
return policy(componentName("neon-branches"), NAMESPACE, "neon", {
|
|
79
|
+
podSelector: { matchLabels: { "app.kubernetes.io/instance": RELEASE }, matchExpressions: [{ key: "app.kubernetes.io/component", operator: "In", values: shared }] },
|
|
80
|
+
policyTypes: ["Ingress"],
|
|
81
|
+
ingress: [{
|
|
82
|
+
from: [{ namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: STACK } }],
|
|
83
|
+
ports: [6400, 5454, 8080, 8333].map((port) => ({ protocol: "TCP", port })),
|
|
84
|
+
}],
|
|
85
|
+
});
|
|
86
|
+
}
|
|
58
87
|
/**
|
|
59
88
|
* Workspace storage's metadata and data are reached by JuiceFS's own pods alone (its
|
|
60
89
|
* controller, its node service, the mount pods it runs and the Jobs that delete volumes'
|
|
@@ -79,7 +108,7 @@ function workspaceStoragePolicies(config) {
|
|
|
79
108
|
policyTypes: ["Ingress"],
|
|
80
109
|
ingress: [
|
|
81
110
|
{ from: juicefs, ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
|
|
82
|
-
{ from: [{ podSelector: { matchLabels: selectorLabels("
|
|
111
|
+
{ from: [{ podSelector: { matchLabels: selectorLabels("collector") } }], ports: [{ protocol: "TCP", port: VALKEY_PORT }] },
|
|
83
112
|
],
|
|
84
113
|
}),
|
|
85
114
|
...(config.objectStore.bundled.enabled
|
|
@@ -91,35 +120,109 @@ function workspaceStoragePolicies(config) {
|
|
|
91
120
|
: []),
|
|
92
121
|
];
|
|
93
122
|
}
|
|
94
|
-
/**
|
|
95
|
-
|
|
123
|
+
/**
|
|
124
|
+
* The telemetry collector takes OTLP from alasio and folder workspaces' bayma, beside the
|
|
125
|
+
* stack's own pods (neonPolicies), and from branch environments' alasio, compute and
|
|
126
|
+
* lake, and from nothing else: sessions' telemetry reaches it through their alasio's
|
|
127
|
+
* receiver alone.
|
|
128
|
+
*/
|
|
129
|
+
function collectorPolicy({ host }) {
|
|
130
|
+
return policy(componentName("collector"), NAMESPACE, "collector", {
|
|
131
|
+
podSelector: { matchLabels: selectorLabels("collector") },
|
|
132
|
+
policyTypes: ["Ingress"],
|
|
133
|
+
ingress: [{
|
|
134
|
+
from: [
|
|
135
|
+
{ podSelector: { matchLabels: selectorLabels("alasio") } },
|
|
136
|
+
...(host.enabled ? [{ namespaceSelector: namespaceNamed(host.namespace) }] : []),
|
|
137
|
+
{ namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } },
|
|
138
|
+
{ namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: STACK } },
|
|
139
|
+
],
|
|
140
|
+
ports: [{ protocol: "TCP", port: COLLECTOR_PORT }],
|
|
141
|
+
}],
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Grafana takes no connection: `alasio grafana` reaches it through the API server's
|
|
146
|
+
* port-forward, which no NetworkPolicy sees. It reaches the cluster's DNS, its database
|
|
147
|
+
* on the compute and the lake's query endpoint, each of which admits it, and Telegram's
|
|
148
|
+
* Bot API, as alasio does, on the internet's HTTPS port; nothing else, and no other
|
|
149
|
+
* address of the cluster or its network.
|
|
150
|
+
*/
|
|
151
|
+
function grafanaPolicies({ sessions }) {
|
|
152
|
+
const grafana = { podSelector: { matchLabels: selectorLabels("grafana") } };
|
|
153
|
+
const admitted = (component, port) => policy(componentName(`${component}-from-grafana`), NAMESPACE, component, {
|
|
154
|
+
podSelector: { matchLabels: selectorLabels(component) },
|
|
155
|
+
policyTypes: ["Ingress"],
|
|
156
|
+
ingress: [{ from: [grafana], ports: [{ protocol: "TCP", port }] }],
|
|
157
|
+
});
|
|
158
|
+
return [
|
|
159
|
+
policy(componentName("grafana"), NAMESPACE, "grafana", {
|
|
160
|
+
...grafana,
|
|
161
|
+
policyTypes: ["Ingress", "Egress"],
|
|
162
|
+
egress: [
|
|
163
|
+
{
|
|
164
|
+
to: [{ namespaceSelector: { matchLabels: { "kubernetes.io/metadata.name": "kube-system" } }, podSelector: { matchLabels: { "k8s-app": "kube-dns" } } }],
|
|
165
|
+
ports: [{ protocol: "UDP", port: 53 }, { protocol: "TCP", port: 53 }],
|
|
166
|
+
},
|
|
167
|
+
{ to: [{ podSelector: { matchLabels: selectorLabels("neon-compute") } }], ports: [{ protocol: "TCP", port: 55433 }] },
|
|
168
|
+
{ to: [{ podSelector: { matchLabels: selectorLabels("lake") } }], ports: [{ protocol: "TCP", port: LAKE_QUERY_PORT }] },
|
|
169
|
+
// The addresses sessions with internet may not reach, the cluster's and its network's, are Grafana's too.
|
|
170
|
+
{ to: [{ ipBlock: { cidr: "0.0.0.0/0", except: [...sessions.blockedCidrs] } }], ports: [{ protocol: "TCP", port: 443 }] },
|
|
171
|
+
],
|
|
172
|
+
}),
|
|
173
|
+
admitted("neon-compute", 55433),
|
|
174
|
+
admitted("lake", LAKE_QUERY_PORT),
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* alasio takes no connections but its sessions' telemetry, and, main, where it forks
|
|
179
|
+
* sessions for branch environments, their alasio's asking it to (src/branch/fork.ts).
|
|
180
|
+
*/
|
|
181
|
+
function alasioPolicy(config, environment) {
|
|
182
|
+
const forks = environment.branch === null && forksForBranches(config);
|
|
183
|
+
const ingress = [
|
|
184
|
+
...(config.sessions.enabled
|
|
185
|
+
? [{
|
|
186
|
+
from: [{ namespaceSelector: namespaceNamed(sessionsNamespace(config, environment)), podSelector: { matchLabels: SESSION } }],
|
|
187
|
+
ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }],
|
|
188
|
+
}]
|
|
189
|
+
: []),
|
|
190
|
+
...(forks
|
|
191
|
+
? [{ from: [{ namespaceSelector: BRANCH_NAMESPACES, podSelector: { matchLabels: selectorLabels("alasio") } }], ports: [{ protocol: "TCP", port: BRANCH_FORK_PORT }] }]
|
|
192
|
+
: []),
|
|
193
|
+
];
|
|
194
|
+
return policy(componentName("alasio"), environment.namespace, "alasio", {
|
|
195
|
+
podSelector: { matchLabels: selectorLabels("alasio") },
|
|
196
|
+
policyTypes: ["Ingress"],
|
|
197
|
+
...given("ingress", ingress),
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The NetworkPolicies of the alasio of `environment`, unless they are turned off: main's,
|
|
202
|
+
* and those that admit branch environments to what of main's they share; or a branch
|
|
203
|
+
* environment's own.
|
|
204
|
+
*/
|
|
205
|
+
export function networkPolicyObjects(config, environment = MAIN_ENVIRONMENT) {
|
|
96
206
|
if (!config.networkPolicies.enabled)
|
|
97
207
|
return [];
|
|
98
208
|
const { sessions, host } = config;
|
|
209
|
+
if (environment.branch !== null) {
|
|
210
|
+
return [...(sessions.enabled ? sessionPolicies(config, environment) : []), alasioPolicy(config, environment), ...neonPolicies(environment)];
|
|
211
|
+
}
|
|
99
212
|
return [
|
|
100
|
-
...(sessions.enabled ? sessionPolicies(config) : []),
|
|
213
|
+
...(sessions.enabled ? sessionPolicies(config, environment) : []),
|
|
101
214
|
// Folder workspaces' bayma is reached by alasio alone; what it reaches is the machine's.
|
|
102
215
|
...(host.enabled
|
|
103
216
|
? [policy("bayma-from-alasio", host.namespace, "folder-bayma", {
|
|
104
217
|
podSelector: {},
|
|
105
218
|
policyTypes: ["Ingress"],
|
|
106
|
-
ingress: [{ from: [
|
|
219
|
+
ingress: [{ from: [alasioOf(environment)], ports: [{ protocol: "TCP", port: 7290 }] }],
|
|
107
220
|
})]
|
|
108
221
|
: []),
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
...(sessions.enabled
|
|
114
|
-
? {
|
|
115
|
-
ingress: [{
|
|
116
|
-
from: [{ namespaceSelector: { matchLabels: { "kubernetes.io/metadata.name": sessions.namespace } }, podSelector: { matchLabels: SESSION } }],
|
|
117
|
-
ports: [{ protocol: "TCP", port: config.telemetry.receiverPort }],
|
|
118
|
-
}],
|
|
119
|
-
}
|
|
120
|
-
: {}),
|
|
121
|
-
}),
|
|
122
|
-
...(config.neon.enabled ? neonPolicies() : []),
|
|
222
|
+
alasioPolicy(config, environment),
|
|
223
|
+
...(config.neon.enabled ? [...neonPolicies(environment), branchStoragePolicy(config)] : []),
|
|
224
|
+
...(collectorRuns(config) ? [collectorPolicy(config)] : []),
|
|
225
|
+
...(grafanaRuns(config) ? grafanaPolicies(config) : []),
|
|
123
226
|
...(config.workspaceStorage.enabled ? workspaceStoragePolicies(config) : []),
|
|
124
227
|
];
|
|
125
228
|
}
|