billowy-secretary-44583
01/13/2020, 2:23 PM"use strict";
const pulumi = require("@pulumi/pulumi");
const digitalocean = require("@pulumi/digitalocean");
const kubernetes = require("@pulumi/kubernetes");
const region = "sfo2";
const kubernetesVersion = "1.16.2-do.2";
const nodeSize = "s-1vcpu-2gb";
const nodeCount = 1;
const cluster = new digitalocean.KubernetesCluster(
"kubernetes-cluster",
{
region: region,
version: kubernetesVersion,
nodePool: {name: "default", size: nodeSize, nodeCount: nodeCount}
}
);
const kubeconfig = cluster.kubeConfigs[0].rawConfig;
const provider = new kubernetes.Provider("kubernetes-provider", {cluster, kubeconfig});
const chart = new kubernetes.helm.v2.Chart(
"nginx-ingress-chart",
{
repo: "stable",
chart: "nginx-ingress",
version: "1.28.3"
},
{providers: {kubernetes: provider}});
const controllerStatus = chart.getResourceProperty(
"v1/Service",
"nginx-ingress-chart-nginx-ingress-controller",
"status");
const ipAddress = controllerStatus.apply(status => status.loadBalancer.ingress[0].ip);
module.exports = {ipAddress};
I get TypeError: Cannot read property 'status' of undefined
.
I think it might have something to do with pulumi trying to install the chart before the cluster/provider is created (?). The resource tree shows the chart but not its "contents":
Type Name Plan Info
+ pulumi:pulumi:Stack test-do-k8s-do-k8s create 1 error
+ ├─ kubernetes:helm.sh:Chart nginx-ingress-chart create
+ ├─ digitalocean:index:KubernetesCluster kubernetes-cluster create
+ └─ pulumi:providers:kubernetes kubernetes-provider create
clever-sunset-76585
01/13/2020, 4:15 PMgetResourceProperty
call should also include the namespace. I think there was another user in this channel about a month or so ago who hit the same problem.getResourceProperty
in this channel.
https://pulumi-community.slack.com/archives/C84L4E3N1/p1575658295092500?thread_ts=1575658295.092500&cid=C84L4E3N1billowy-secretary-44583
01/13/2020, 4:22 PMclever-sunset-76585
01/13/2020, 4:24 PMbillowy-secretary-44583
01/13/2020, 4:33 PMgorgeous-egg-16927
01/13/2020, 5:23 PMconst provider = new kubernetes.Provider("kubernetes-provider", {cluster, kubeconfig});
You shouldn’t need the cluster arg, just the kubeconfig. Here’s a TypeScript example: https://github.com/pulumi/examples/blob/master/digitalocean-ts-k8s/index.tsbillowy-secretary-44583
01/13/2020, 7:06 PMcluster
arg was wrong. But removing it makes no difference.Deployment
, as in the example you linked, works.const wordpress = new kubernetes.helm.v2.Chart("wpdev", {
repo: "stable",
version: "2.1.3",
chart: "wordpress",
},
{providers: {kubernetes: provider}});
{providers:...}
part)gorgeous-egg-16927
01/13/2020, 7:53 PMconst wordpress = new kubernetes.helm.v2.Chart("wpdev", {
repo: "stable",
version: "2.1.3",
chart: "wordpress",
},
{provider: provider});
billowy-secretary-44583
01/13/2020, 8:31 PMkubectl
)gorgeous-egg-16927
01/13/2020, 8:37 PMbillowy-secretary-44583
01/13/2020, 8:37 PM