diff --git a/helm.js b/helm.js index c357324..5afa719 100644 --- a/helm.js +++ b/helm.js @@ -1,12 +1,23 @@ const cdk8s = require('cdk8s'); const fs = require('fs'); const path = require('path'); -const wingsdk = require('@winglang/sdk'); const crypto = require('crypto'); +function findWorkdir(scope) { + if (typeof(scope.workdir) == "string") { + return scope.workdir; + } + + const parent = scope.node.scope; + if (!parent) { + throw new Error("cannot determine workdir"); + } + return findWorkdir(parent); +} + exports.toHelmChart = function(chart) { const app = cdk8s.App.of(chart); - const wingdir = wingsdk.core.App.of(chart).workdir; + const wingdir = findWorkdir(chart); app.resolvers = [new cdk8s.LazyResolver(), new cdk8s.ImplicitTokenResolver(), new cdk8s.NumberStringUnionResolver()]; const docs = cdk8s.App._synthChart(chart); @@ -29,7 +40,8 @@ exports.toHelmChart = function(chart) { appVersion: hash, }; - fs.writeFileSync(path.join(workdir, "Chart.yaml"), cdk8s.Yaml.stringify(manifest)); + const chartyaml = path.join(workdir, "Chart.yaml"); + fs.writeFileSync(chartyaml, cdk8s.Yaml.stringify(manifest)); return path.join("./", ".wing", reldir); }; diff --git a/package.json b/package.json index 94a38cb..61b4d33 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@winglibs/containers", - "version": "0.0.8", + "version": "0.0.9", "description": "Wing container support", "publishConfig": { "access": "public", diff --git a/workload.tfaws.w b/workload.tfaws.w index 8602e95..d151e86 100644 --- a/workload.tfaws.w +++ b/workload.tfaws.w @@ -120,7 +120,7 @@ pub class Workload_tfaws impl api.IWorkload { let chart = new _Chart(props); - let helm = new helm.release.Release( + let release = new helm.release.Release( provider: cluster.helmProvider(), dependsOn: deps.copy(), name: props.name, @@ -137,7 +137,7 @@ pub class Workload_tfaws impl api.IWorkload { if props.public ?? false { let ingress = new k8s.dataKubernetesIngressV1.DataKubernetesIngressV1( provider: cluster.kubernetesProvider(), - dependsOn: [helm], + dependsOn: [release], metadata: { name: props.name }