UNPKG

projen

Version:

CDK for software projects

76 lines 8.66 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Cdk8sPythonApp = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const __1 = require(".."); const cdk8s_deps_py_1 = require("./cdk8s-deps-py"); const python_project_1 = require("../python/python-project"); /** * CDK8s app in Python * * * @pjid cdk8s-app-py */ class Cdk8sPythonApp extends python_project_1.PythonProject { constructor(options) { super({ ...options, pytest: false, sample: false }); this.cdk8sDeps = new cdk8s_deps_py_1.Cdk8sDepsPy(this, { dependencyType: __1.DependencyType.RUNTIME, cdk8sCliDependency: false, ...options, }); if (!options.cdk8sVersion) { throw new Error("Required field cdk8sVersion is not specified."); } this.appEntrypoint = options.appEntrypoint ?? "app.py"; const synth = this.addTask("synth", { description: "Synthesizes your cdk8s app into dist", exec: "cdk8s synth", }); // add synth to the build this.postCompileTask.spawn(synth); const cdk8sImports = options.cdk8sImports ?? []; const k8sSpec = options.k8sSpecVersion ? `k8s@${options.k8sSpecVersion}` : "k8s"; new __1.YamlFile(this, "cdk8s.yaml", { committed: true, editGitignore: true, obj: { language: "python", app: `python ${this.appEntrypoint}`, imports: [k8sSpec, ...cdk8sImports], }, }); if (options.sample ?? true) { new AppCode(this, this.appEntrypoint); } } } exports.Cdk8sPythonApp = Cdk8sPythonApp; _a = JSII_RTTI_SYMBOL_1; Cdk8sPythonApp[_a] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.99.34" }; class AppCode extends __1.Component { constructor(project, filename) { super(project); new __1.SampleFile(project, filename, { contents: [ "from constructs import Construct", "from cdk8s import App, Chart", "", "", "class MyChart(Chart):", " def __init__(self, scope: Construct, id:str):", " super().__init__(scope, id)", "", "", "app = App()", 'MyChart(app, "${project.name}")', "", "app.synth()", ].join("\n"), }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtYXBwLXB5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NkazhzL2NkazhzLWFwcC1weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDBCQUFxRTtBQUVyRSxtREFBOEM7QUFDOUMsNkRBQStFO0FBNkIvRTs7Ozs7R0FLRztBQUNILE1BQWEsY0FBZSxTQUFRLDhCQUFhO0lBUS9DLFlBQVksT0FBMkI7UUFDckMsS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMkJBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDckMsY0FBYyxFQUFFLGtCQUFjLENBQUMsT0FBTztZQUN0QyxrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksUUFBUSxDQUFDO1FBRXZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxzQ0FBc0M7WUFDbkQsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjO1lBQ3BDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDakMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVWLElBQUksWUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDL0IsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEdBQUcsRUFBRSxVQUFVLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLFlBQVksQ0FBQzthQUNwQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOztBQWpESCx3Q0FrREM7OztBQUVELE1BQU0sT0FBUSxTQUFRLGFBQVM7SUFDN0IsWUFBWSxPQUF1QixFQUFFLFFBQWdCO1FBQ25ELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksY0FBVSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDaEMsUUFBUSxFQUFFO2dCQUNSLGtDQUFrQztnQkFDbEMsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixpREFBaUQ7Z0JBQ2pELGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRixFQUFFO2dCQUNGLGFBQWE7Z0JBQ2IsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLGFBQWE7YUFDZCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlcGVuZGVuY3lUeXBlLCBZYW1sRmlsZSwgU2FtcGxlRmlsZSB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgQ2RrOHNEZXBzLCBDZGs4c0RlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vY2RrOHMtZGVwc1wiO1xuaW1wb3J0IHsgQ2RrOHNEZXBzUHkgfSBmcm9tIFwiLi9jZGs4cy1kZXBzLXB5XCI7XG5pbXBvcnQgeyBQeXRob25Qcm9qZWN0LCBQeXRob25Qcm9qZWN0T3B0aW9ucyB9IGZyb20gXCIuLi9weXRob24vcHl0aG9uLXByb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrOHNQeXRob25BcHBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrOHNQeXRob25PcHRpb25zXG4gIGV4dGVuZHMgUHl0aG9uUHJvamVjdE9wdGlvbnMsIENkazhzRGVwc0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogSW1wb3J0IGEgc3BlY2lmaWMgS3ViZXJuZXRlcyBzcGVjIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBjZGs4cyBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBrOHNTcGVjVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSW1wb3J0IGFkZGl0aW9uYWwgc3BlY3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHNwZWNzIGltcG9ydGVkXG4gICAqL1xuICByZWFkb25seSBjZGs4c0ltcG9ydHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIENESzhzIGFwcCdzIGVudHJ5cG9pbnRcbiAgICpcbiAgICogQGRlZmF1bHQgXCJhcHAucHlcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDREs4cyBhcHAgaW4gUHl0aG9uXG4gKlxuICpcbiAqIEBwamlkIGNkazhzLWFwcC1weVxuICovXG5leHBvcnQgY2xhc3MgQ2RrOHNQeXRob25BcHAgZXh0ZW5kcyBQeXRob25Qcm9qZWN0IHtcbiAgLyoqXG4gICAqIFRoZSBDREs4cyBhcHAgZW50cnlwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwcEVudHJ5cG9pbnQ6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgY2RrOHNEZXBzOiBDZGs4c0RlcHM7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrOHNQeXRob25PcHRpb25zKSB7XG4gICAgc3VwZXIoeyAuLi5vcHRpb25zLCBweXRlc3Q6IGZhbHNlLCBzYW1wbGU6IGZhbHNlIH0pO1xuXG4gICAgdGhpcy5jZGs4c0RlcHMgPSBuZXcgQ2RrOHNEZXBzUHkodGhpcywge1xuICAgICAgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlLlJVTlRJTUUsXG4gICAgICBjZGs4c0NsaURlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmICghb3B0aW9ucy5jZGs4c1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlcXVpcmVkIGZpZWxkIGNkazhzVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcEVudHJ5cG9pbnQgPSBvcHRpb25zLmFwcEVudHJ5cG9pbnQgPz8gXCJhcHAucHlcIjtcblxuICAgIGNvbnN0IHN5bnRoID0gdGhpcy5hZGRUYXNrKFwic3ludGhcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiU3ludGhlc2l6ZXMgeW91ciBjZGs4cyBhcHAgaW50byBkaXN0XCIsXG4gICAgICBleGVjOiBcImNkazhzIHN5bnRoXCIsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgc3ludGggdG8gdGhlIGJ1aWxkXG4gICAgdGhpcy5wb3N0Q29tcGlsZVRhc2suc3Bhd24oc3ludGgpO1xuXG4gICAgY29uc3QgY2RrOHNJbXBvcnRzID0gb3B0aW9ucy5jZGs4c0ltcG9ydHMgPz8gW107XG4gICAgY29uc3QgazhzU3BlYyA9IG9wdGlvbnMuazhzU3BlY1ZlcnNpb25cbiAgICAgID8gYGs4c0Ake29wdGlvbnMuazhzU3BlY1ZlcnNpb259YFxuICAgICAgOiBcIms4c1wiO1xuXG4gICAgbmV3IFlhbWxGaWxlKHRoaXMsIFwiY2RrOHMueWFtbFwiLCB7XG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICBlZGl0R2l0aWdub3JlOiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIGxhbmd1YWdlOiBcInB5dGhvblwiLFxuICAgICAgICBhcHA6IGBweXRob24gJHt0aGlzLmFwcEVudHJ5cG9pbnR9YCxcbiAgICAgICAgaW1wb3J0czogW2s4c1NwZWMsIC4uLmNkazhzSW1wb3J0c10sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuc2FtcGxlID8/IHRydWUpIHtcbiAgICAgIG5ldyBBcHBDb2RlKHRoaXMsIHRoaXMuYXBwRW50cnlwb2ludCk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIEFwcENvZGUgZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBDZGs4c1B5dGhvbkFwcCwgZmlsZW5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgZmlsZW5hbWUsIHtcbiAgICAgIGNvbnRlbnRzOiBbXG4gICAgICAgIFwiZnJvbSBjb25zdHJ1Y3RzIGltcG9ydCBDb25zdHJ1Y3RcIixcbiAgICAgICAgXCJmcm9tIGNkazhzIGltcG9ydCBBcHAsIENoYXJ0XCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiY2xhc3MgTXlDaGFydChDaGFydCk6XCIsXG4gICAgICAgIFwiICBkZWYgX19pbml0X18oc2VsZiwgc2NvcGU6IENvbnN0cnVjdCwgaWQ6c3RyKTpcIixcbiAgICAgICAgXCIgICAgc3VwZXIoKS5fX2luaXRfXyhzY29wZSwgaWQpXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiYXBwID0gQXBwKClcIixcbiAgICAgICAgJ015Q2hhcnQoYXBwLCBcIiR7cHJvamVjdC5uYW1lfVwiKScsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiYXBwLnN5bnRoKClcIixcbiAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICB9KTtcbiAgfVxufVxuIl19