diff --git a/packages/k8s/src/bundles.ts b/packages/k8s/src/bundles.ts new file mode 100644 index 0000000..e9e43de --- /dev/null +++ b/packages/k8s/src/bundles.ts @@ -0,0 +1,19 @@ +import { loadAll } from "js-yaml"; +import { readFileSync } from "fs"; +import { IResource } from "./resources"; + +export const bundleFromFile = (file: string, prefix = 10) => { + const content = readFileSync(file, { encoding: "utf8" }); + const decoded = loadAll(content) as IResource[]; + let counter = prefix; + + return decoded.reduce((acc, resource) => { + const suffix = resource.kind?.toLowerCase() ?? "bundle"; + const name = `${counter++}-${suffix}`; + + return { + ...acc, + [name]: resource, + }; + }, {} as Record); +}; diff --git a/packages/k8s/src/index.ts b/packages/k8s/src/index.ts index 19b83eb..4de00d7 100644 --- a/packages/k8s/src/index.ts +++ b/packages/k8s/src/index.ts @@ -1,3 +1,4 @@ +export * from "./bundles"; export * from "./common"; export * from "./configmaps"; export * from "./containers";