feat: add d601 dev core manifests

This commit is contained in:
Codex
2026-05-17 18:16:30 +00:00
parent 40d03621c5
commit 465f4a626b
13 changed files with 448 additions and 19 deletions
+15 -2
View File
@@ -5,7 +5,7 @@ import { repoRoot, rootPath } from "./config";
const defaultManifest = "src/components/microservices/k3sctl-adapter/k3s/dev/unidesk-dev-foundation.k8s.yaml";
const devNamespace = "unidesk-dev";
const prodNamespace = "unidesk";
const requiredKinds = new Set([
const foundationRequiredKinds = new Set([
"Namespace/unidesk-dev",
"Secret/unidesk-dev-runtime-secrets",
"ConfigMap/unidesk-dev-runtime-config",
@@ -15,6 +15,12 @@ const requiredKinds = new Set([
"StatefulSet/postgres-dev",
"Job/unidesk-dev-db-migrate",
]);
const coreRequiredKinds = new Set([
"Service/backend-core-dev",
"Deployment/backend-core-dev",
"Service/frontend-dev",
"Deployment/frontend-dev",
]);
interface ManifestDocument {
index: number;
@@ -81,6 +87,12 @@ function parseManifestDocuments(text: string): ManifestDocument[] {
});
}
function requiredResourcesFor(resources: string[]): Set<string> {
const resourceSet = new Set(resources);
if (resourceSet.has("Deployment/backend-core-dev") || resourceSet.has("Deployment/frontend-dev")) return coreRequiredKinds;
return foundationRequiredKinds;
}
function databaseUrls(text: string): string[] {
const urls: string[] = [];
const pattern = /postgres(?:ql)?:\/\/[^\s"']+/gu;
@@ -131,7 +143,7 @@ function devEnvHelp(): Record<string, unknown> {
defaultManifest,
checks: [
"all namespaced resources must target unidesk-dev",
"required dev namespace, postgres-dev, secret/config, guard, migration resources must exist",
"required foundation resources or backend-core-dev/frontend-dev resources must exist",
"dev DATABASE_URL values must target postgres-dev/unidesk_dev and not production routes",
"--kubectl-dry-run optionally asks kubectl to client-dry-run the manifest without applying it",
],
@@ -148,6 +160,7 @@ export function runDevEnvCommand(args: string[]): unknown {
const manifestText = readFileSync(manifestPath, "utf8");
const docs = parseManifestDocuments(manifestText);
const resources = docs.map((doc) => `${doc.kind}/${doc.name}`);
const requiredKinds = requiredResourcesFor(resources);
const namespacedViolations = docs
.filter((doc) => doc.kind !== "Namespace")
.filter((doc) => doc.namespace !== devNamespace)