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 { 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); }