25 lines
1009 B
TypeScript
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);
|
|
}
|