This message was deleted.
# typescript
s
This message was deleted.
g
This worked for me once the cluster was created.
Copy code
const clusterDataSource = cluster.name.apply(name => digitalocean.getKubernetesCluster({name}));
const kubeconfig = clusterDataSource.kubeConfigs[0].rawConfig;
The
certificate-authority-data
field changes on every update, but shouldn’t affect things otherwise AFAICT
I was getting an error on
getKubernetesCluster
if the cluster didn’t exist yet, but this should do the trick:
Copy code
const cluster = new digitalocean.KubernetesCluster("do-cluster", {
    region: digitalocean.Regions.SFO2,
    version: digitalocean.getKubernetesVersions({versionPrefix: "1.16"}).then(p => p.latestVersion),
    nodePool: {
        name: "default",
        size: digitalocean.DropletSlugs.DropletS2VCPU2GB,
        nodeCount: 2,
    },
});
const kubeconfig = cluster.status.apply(status => {
    if (status === 'running') {
        const clusterDataSource = cluster.name.apply(name => digitalocean.getKubernetesCluster({name}));
        return clusterDataSource.kubeConfigs[0].rawConfig;
    } else {
        return cluster.kubeConfigs[0].rawConfig;
    }
});
const provider = new k8s.Provider("k8s", {kubeconfig});
n
Thank you @gorgeous-egg-16927! Didn’t try it with a new cluster yet but so far it seems to work.
🎉 1
I also figured out how to avoid the diff on kubeconfig everytime:
new k8s.Provider("k8s", {kubeconfig}, { ignoreChanges: ["kubeconfig"] });
Not sure if this will have some side effects but for now it seems to work.
g
The provider has logic to replace resources if the underlying cluster changes. We try to detect that from the kubeconfig, so
ignoreChanges
will bypass that checking. As long as you’re aware of that, should be fine