Files
2026-09-03 11:28:30 +07:00

25 lines
1009 B
TypeScript

import type { ComposeSpecification } from "../schema/docker.d";
import { composeToKubernetes, type KubernetesResource } from "./convert";
import { getComposePostgresClaims } from "./database";
import { getComposeS3Claims } from "./storage";
import { resolveBuildImages, type BuildOptions } from "./build";
export async function renderResources(
project: string,
compose: ComposeSpecification,
cwd = process.cwd(),
options: BuildOptions = {},
): Promise<KubernetesResource[]> {
const providers = [
...(getComposePostgresClaims(compose).length ? ["Postgres"] : []),
...(getComposeS3Claims(compose).length ? ["S3"] : []),
];
if (providers.length > 0) {
throw new Error(
`Cannot export without generated ${providers.join(" and ")} credentials. Export is side-effect-free; run kuber up or remove managed provider claims.`,
);
}
const buildImages = await resolveBuildImages(project, compose, options);
return composeToKubernetes(project, compose, cwd, {}, buildImages);
}