2026-01-16 12:32:36 +07:00
|
|
|
import { KubernetesClient } from "../utils/k8s-client";
|
|
|
|
|
import { registerRBACResources } from "../utils/rbac-registrar";
|
|
|
|
|
import { setupCRDRegistration } from "../utils/crd-registrar";
|
|
|
|
|
import { NAMESPACE } from "../config/constants";
|
|
|
|
|
import { PrismaClient } from "@minikura/db";
|
|
|
|
|
import { dotenvLoad } from "dotenv-mono";
|
2025-05-12 12:34:09 +07:00
|
|
|
|
|
|
|
|
dotenvLoad();
|
|
|
|
|
|
|
|
|
|
async function main() {
|
2026-01-16 12:32:36 +07:00
|
|
|
console.log("Starting to apply TypeScript-defined CRDs to Kubernetes cluster...");
|
|
|
|
|
|
2025-05-12 12:34:09 +07:00
|
|
|
try {
|
|
|
|
|
const k8sClient = KubernetesClient.getInstance();
|
|
|
|
|
console.log(`Connected to Kubernetes cluster, using namespace: ${NAMESPACE}`);
|
|
|
|
|
|
|
|
|
|
await registerRBACResources(k8sClient);
|
2026-01-16 12:32:36 +07:00
|
|
|
|
|
|
|
|
console.log("Registering Custom Resource Definitions...");
|
2025-05-12 12:34:09 +07:00
|
|
|
const prisma = new PrismaClient();
|
|
|
|
|
await setupCRDRegistration(prisma, k8sClient, NAMESPACE);
|
2026-01-16 12:32:36 +07:00
|
|
|
|
|
|
|
|
console.log("Successfully applied all resources to Kubernetes cluster");
|
2025-05-12 12:34:09 +07:00
|
|
|
process.exit(0);
|
|
|
|
|
} catch (error: any) {
|
2026-01-16 12:32:36 +07:00
|
|
|
console.error("Failed to apply resources:", error.message);
|
2025-05-12 12:34:09 +07:00
|
|
|
if (error.stack) {
|
|
|
|
|
console.error(error.stack);
|
|
|
|
|
}
|
|
|
|
|
process.exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-16 12:32:36 +07:00
|
|
|
main().catch((error) => {
|
|
|
|
|
console.error("Unhandled error:", error);
|
2025-05-12 12:34:09 +07:00
|
|
|
process.exit(1);
|
2026-01-16 12:32:36 +07:00
|
|
|
});
|