feat: update caserun aggregation and v02 deploy config
This commit is contained in:
@@ -4,6 +4,8 @@ import { readFile } from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath, pathToFileURL } from "node:url";
|
||||
|
||||
import { readStructuredFile } from "./src/structured-config.mjs";
|
||||
|
||||
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
||||
const namespace = "hwlab-dev";
|
||||
const m3EndpointMap = Object.freeze({
|
||||
@@ -110,8 +112,7 @@ const expectedInstanceServices = Object.freeze([
|
||||
]);
|
||||
|
||||
async function readJson(relativePath) {
|
||||
const raw = await readFile(path.join(repoRoot, relativePath), "utf8");
|
||||
return JSON.parse(raw);
|
||||
return readStructuredFile(repoRoot, relativePath);
|
||||
}
|
||||
|
||||
function listItems(document) {
|
||||
@@ -216,14 +217,14 @@ function assertDevK8sInstanceServices(services) {
|
||||
}
|
||||
|
||||
function assertDeployManifestCardinality(deploy) {
|
||||
assert.equal(deploy.environment, "dev", "deploy/deploy.json environment");
|
||||
assert.equal(deploy.namespace, namespace, "deploy/deploy.json namespace");
|
||||
assert.equal(deploy.profiles?.prod?.enabled, false, "deploy/deploy.json prod disabled");
|
||||
assert.equal(deploy.environment, "dev", "deploy/deploy.yaml environment");
|
||||
assert.equal(deploy.namespace, namespace, "deploy/deploy.yaml namespace");
|
||||
assert.equal(deploy.profiles?.prod?.enabled, false, "deploy/deploy.yaml prod disabled");
|
||||
|
||||
const byId = new Map((deploy.services ?? []).map((service) => [service.serviceId, service]));
|
||||
for (const [serviceId, requirement] of Object.entries(expected)) {
|
||||
const service = byId.get(serviceId);
|
||||
assert.ok(service, `deploy/deploy.json missing ${serviceId}`);
|
||||
assert.ok(service, `deploy/deploy.yaml missing ${serviceId}`);
|
||||
assert.equal(service.namespace, namespace, `${serviceId} deploy namespace`);
|
||||
assert.equal(service.profile, "dev", `${serviceId} deploy profile`);
|
||||
assert.equal(service.replicas, requirement.replicas, `${serviceId} deploy replicas`);
|
||||
@@ -250,7 +251,7 @@ function assertDeployManifestInstanceMappings(deploy) {
|
||||
const byName = new Map(mappings.map((mapping) => [mapping.name, mapping]));
|
||||
for (const expectedService of expectedInstanceServices) {
|
||||
const mapping = byName.get(expectedService.name);
|
||||
assert.ok(mapping, `deploy/deploy.json missing k3s serviceMapping ${expectedService.name}`);
|
||||
assert.ok(mapping, `deploy/deploy.yaml missing k3s serviceMapping ${expectedService.name}`);
|
||||
assert.equal(mapping.serviceId, expectedService.serviceId, `${expectedService.name} serviceId`);
|
||||
assert.equal(mapping.namespace, namespace, `${expectedService.name} namespace`);
|
||||
assert.equal(mapping.port, expectedService.port, `${expectedService.name} port`);
|
||||
@@ -303,7 +304,7 @@ function assertM3RouteConfig(value, label) {
|
||||
|
||||
export async function readDevM3CardinalityInputs() {
|
||||
const [deploy, workloads, services, topology] = await Promise.all([
|
||||
readJson("deploy/deploy.json"),
|
||||
readJson("deploy/deploy.yaml"),
|
||||
readJson("deploy/k8s/base/workloads.yaml"),
|
||||
readJson("deploy/k8s/base/services.yaml"),
|
||||
readJson("fixtures/mvp/m3-hardware-loop/topology.json")
|
||||
|
||||
Reference in New Issue
Block a user