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'; dotenvLoad(); async function main() { console.log('Starting to apply TypeScript-defined CRDs to Kubernetes cluster...'); try { const k8sClient = KubernetesClient.getInstance(); console.log(`Connected to Kubernetes cluster, using namespace: ${NAMESPACE}`); await registerRBACResources(k8sClient); console.log('Registering Custom Resource Definitions...'); const prisma = new PrismaClient(); await setupCRDRegistration(prisma, k8sClient, NAMESPACE); console.log('Successfully applied all resources to Kubernetes cluster'); process.exit(0); } catch (error: any) { console.error('Failed to apply resources:', error.message); if (error.stack) { console.error(error.stack); } process.exit(1); } } main().catch(error => { console.error('Unhandled error:', error); process.exit(1); });