UNPKG

projen

Version:

CDK for software projects

79 lines 8.9 kB
"use strict"; 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 { static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.cdk8s.Cdk8sPythonApp", version: "0.103.12" }; /** * The CDK8s app entrypoint */ appEntrypoint; cdk8sDeps; 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", execArgs: ["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; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrOHMtYXBwLXB5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NkazhzL2NkazhzLWFwcC1weS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEJBQXFFO0FBRXJFLG1EQUE4QztBQUU5Qyw2REFBeUQ7QUE2QnpEOzs7OztHQUtHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsOEJBQWE7O0lBQy9DOztPQUVHO0lBQ2EsYUFBYSxDQUFTO0lBRXRCLFNBQVMsQ0FBWTtJQUVyQyxZQUFZLE9BQTJCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDJCQUFXLENBQUMsSUFBSSxFQUFFO1lBQ3JDLGNBQWMsRUFBRSxrQkFBYyxDQUFDLE9BQU87WUFDdEMsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQztRQUV2RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNsQyxXQUFXLEVBQUUsc0NBQXNDO1lBQ25ELFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7U0FDN0IsQ0FBQyxDQUFDO1FBRUgseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjO1lBQ3BDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDakMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVWLElBQUksWUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDL0IsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEdBQUcsRUFBRSxVQUFVLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLFlBQVksQ0FBQzthQUNwQztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOztBQWpESCx3Q0FrREM7QUFFRCxNQUFNLE9BQVEsU0FBUSxhQUFTO0lBQzdCLFlBQVksT0FBdUIsRUFBRSxRQUFnQjtRQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLGNBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ2hDLFFBQVEsRUFBRTtnQkFDUixrQ0FBa0M7Z0JBQ2xDLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixFQUFFO2dCQUNGLHVCQUF1QjtnQkFDdkIsaURBQWlEO2dCQUNqRCxpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsRUFBRTtnQkFDRixhQUFhO2dCQUNiLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRixhQUFhO2FBQ2QsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXBlbmRlbmN5VHlwZSwgWWFtbEZpbGUsIFNhbXBsZUZpbGUgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB0eXBlIHsgQ2RrOHNEZXBzLCBDZGs4c0RlcHNDb21tb25PcHRpb25zIH0gZnJvbSBcIi4vY2RrOHMtZGVwc1wiO1xuaW1wb3J0IHsgQ2RrOHNEZXBzUHkgfSBmcm9tIFwiLi9jZGs4cy1kZXBzLXB5XCI7XG5pbXBvcnQgdHlwZSB7IFB5dGhvblByb2plY3RPcHRpb25zIH0gZnJvbSBcIi4uL3B5dGhvbi9weXRob24tcHJvamVjdFwiO1xuaW1wb3J0IHsgUHl0aG9uUHJvamVjdCB9IGZyb20gXCIuLi9weXRob24vcHl0aG9uLXByb2plY3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgQ2RrOHNQeXRob25BcHBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrOHNQeXRob25PcHRpb25zXG4gIGV4dGVuZHMgUHl0aG9uUHJvamVjdE9wdGlvbnMsIENkazhzRGVwc0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogSW1wb3J0IGEgc3BlY2lmaWMgS3ViZXJuZXRlcyBzcGVjIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlIHRoZSBjZGs4cyBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBrOHNTcGVjVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSW1wb3J0IGFkZGl0aW9uYWwgc3BlY3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHNwZWNzIGltcG9ydGVkXG4gICAqL1xuICByZWFkb25seSBjZGs4c0ltcG9ydHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIENESzhzIGFwcCdzIGVudHJ5cG9pbnRcbiAgICpcbiAgICogQGRlZmF1bHQgXCJhcHAucHlcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwRW50cnlwb2ludD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDREs4cyBhcHAgaW4gUHl0aG9uXG4gKlxuICpcbiAqIEBwamlkIGNkazhzLWFwcC1weVxuICovXG5leHBvcnQgY2xhc3MgQ2RrOHNQeXRob25BcHAgZXh0ZW5kcyBQeXRob25Qcm9qZWN0IHtcbiAgLyoqXG4gICAqIFRoZSBDREs4cyBhcHAgZW50cnlwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwcEVudHJ5cG9pbnQ6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgY2RrOHNEZXBzOiBDZGs4c0RlcHM7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrOHNQeXRob25PcHRpb25zKSB7XG4gICAgc3VwZXIoeyAuLi5vcHRpb25zLCBweXRlc3Q6IGZhbHNlLCBzYW1wbGU6IGZhbHNlIH0pO1xuXG4gICAgdGhpcy5jZGs4c0RlcHMgPSBuZXcgQ2RrOHNEZXBzUHkodGhpcywge1xuICAgICAgZGVwZW5kZW5jeVR5cGU6IERlcGVuZGVuY3lUeXBlLlJVTlRJTUUsXG4gICAgICBjZGs4c0NsaURlcGVuZGVuY3k6IGZhbHNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGlmICghb3B0aW9ucy5jZGs4c1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlcXVpcmVkIGZpZWxkIGNkazhzVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLlwiKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcEVudHJ5cG9pbnQgPSBvcHRpb25zLmFwcEVudHJ5cG9pbnQgPz8gXCJhcHAucHlcIjtcblxuICAgIGNvbnN0IHN5bnRoID0gdGhpcy5hZGRUYXNrKFwic3ludGhcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiU3ludGhlc2l6ZXMgeW91ciBjZGs4cyBhcHAgaW50byBkaXN0XCIsXG4gICAgICBleGVjQXJnczogW1wiY2RrOHNcIiwgXCJzeW50aFwiXSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBzeW50aCB0byB0aGUgYnVpbGRcbiAgICB0aGlzLnBvc3RDb21waWxlVGFzay5zcGF3bihzeW50aCk7XG5cbiAgICBjb25zdCBjZGs4c0ltcG9ydHMgPSBvcHRpb25zLmNkazhzSW1wb3J0cyA/PyBbXTtcbiAgICBjb25zdCBrOHNTcGVjID0gb3B0aW9ucy5rOHNTcGVjVmVyc2lvblxuICAgICAgPyBgazhzQCR7b3B0aW9ucy5rOHNTcGVjVmVyc2lvbn1gXG4gICAgICA6IFwiazhzXCI7XG5cbiAgICBuZXcgWWFtbEZpbGUodGhpcywgXCJjZGs4cy55YW1sXCIsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIGVkaXRHaXRpZ25vcmU6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IFwicHl0aG9uXCIsXG4gICAgICAgIGFwcDogYHB5dGhvbiAke3RoaXMuYXBwRW50cnlwb2ludH1gLFxuICAgICAgICBpbXBvcnRzOiBbazhzU3BlYywgLi4uY2RrOHNJbXBvcnRzXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5zYW1wbGUgPz8gdHJ1ZSkge1xuICAgICAgbmV3IEFwcENvZGUodGhpcywgdGhpcy5hcHBFbnRyeXBvaW50KTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgQXBwQ29kZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IENkazhzUHl0aG9uQXBwLCBmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCBmaWxlbmFtZSwge1xuICAgICAgY29udGVudHM6IFtcbiAgICAgICAgXCJmcm9tIGNvbnN0cnVjdHMgaW1wb3J0IENvbnN0cnVjdFwiLFxuICAgICAgICBcImZyb20gY2RrOHMgaW1wb3J0IEFwcCwgQ2hhcnRcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJjbGFzcyBNeUNoYXJ0KENoYXJ0KTpcIixcbiAgICAgICAgXCIgIGRlZiBfX2luaXRfXyhzZWxmLCBzY29wZTogQ29uc3RydWN0LCBpZDpzdHIpOlwiLFxuICAgICAgICBcIiAgICBzdXBlcigpLl9faW5pdF9fKHNjb3BlLCBpZClcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJhcHAgPSBBcHAoKVwiLFxuICAgICAgICAnTXlDaGFydChhcHAsIFwiJHtwcm9qZWN0Lm5hbWV9XCIpJyxcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJhcHAuc3ludGgoKVwiLFxuICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=