From 5c04d179f6516a274a349d5d2584fc3c4c0c45d7 Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Thu, 16 Sep 2021 21:49:31 -0700 Subject: [PATCH 1/9] Use helm template instead of dry-run to populate manifests in Check --- provider/pkg/provider/helm_release.go | 85 +++++++++++++++++++-------- 1 file changed, 59 insertions(+), 26 deletions(-) diff --git a/provider/pkg/provider/helm_release.go b/provider/pkg/provider/helm_release.go index bc61439425..fad3cdd302 100644 --- a/provider/pkg/provider/helm_release.go +++ b/provider/pkg/provider/helm_release.go @@ -268,13 +268,11 @@ func (r *helmReleaseProvider) Check(ctx context.Context, req *pulumirpc.CheckReq new.Keyring = os.ExpandEnv("$HOME/.gnupg/pubring.gpg") } + var templateRelease bool if len(olds.Mappable()) > 0 { adoptOldNameIfUnnamed(new, old) - if err = r.helmUpdate(ctx, urn, news, new, old, true); err != nil { - if !strings.Contains(err.Error(), "failed to download") { - return nil, err - } - } + + templateRelease = true } else { assignNameIfAutonameable(new, news, "release") conf, err := r.getActionConfig(new.Namespace) @@ -286,13 +284,50 @@ func (r *helmReleaseProvider) Check(ctx context.Context, req *pulumirpc.CheckReq return nil, err } if !exists { - if err = r.helmCreate(ctx, urn, news, new, true); err != nil { - return nil, err - } + templateRelease = true } // If resource exists, we are likely doing an import. We will just pass the inputs through. } + if templateRelease { + helmHome := os.Getenv("HELM_HOME") + + helmChartOpts := HelmChartOpts{ + HelmFetchOpts: HelmFetchOpts{ + CAFile: new.RepositoryOpts.CAFile, + CertFile: new.RepositoryOpts.CertFile, + Devel: new.Devel, + Home: helmHome, + KeyFile: new.RepositoryOpts.KeyFile, + Keyring: new.Keyring, + Password: new.RepositoryOpts.Password, + Repo: new.RepositoryOpts.Repo, + Username: new.RepositoryOpts.Password, + Version: new.Version, + }, + APIVersions: nil, + Chart: new.Chart, + IncludeTestHookResources: true, + SkipCRDRendering: new.SkipCrds, + Namespace: new.Namespace, + Path: "", + ReleaseName: new.Name, + Values: new.Values, + Version: new.Version, + } + templ, err := helmTemplate(helmChartOpts) + if err != nil { + return nil, err + } + + _, resources, err := convertYAMLManifestToJSON(templ) + if err != nil { + return nil, err + } + + new.ResourceNames = resources + } + autonamed := resource.NewPropertyMap(new) annotateSecrets(autonamed, news) autonamedInputs, err := plugin.MarshalProperties(autonamed, plugin.MarshalOptions{ @@ -309,7 +344,7 @@ func (r *helmReleaseProvider) Check(ctx context.Context, req *pulumirpc.CheckReq return &pulumirpc.CheckResponse{Inputs: autonamedInputs}, nil } -func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, news resource.PropertyMap, newRelease *Release, dryrun bool) error { +func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, news resource.PropertyMap, newRelease *Release) error { conf, err := r.getActionConfig(newRelease.Namespace) if err != nil { return err @@ -361,7 +396,6 @@ func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, client.ChartPathOptions = *cpo client.ClientOnly = false - client.DryRun = dryrun // Dry-run == preview. client.DisableHooks = newRelease.DisableWebhooks client.Wait = !newRelease.SkipAwait client.WaitForJobs = !newRelease.SkipAwait && newRelease.WaitForJobs @@ -381,7 +415,7 @@ func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, client.Description = newRelease.Description client.CreateNamespace = newRelease.CreateNamespace - if cmd := newRelease.Postrender; cmd != "" && !dryrun { + if cmd := newRelease.Postrender; cmd != "" { pr, err := postrender.NewExec(cmd) if err != nil { @@ -408,7 +442,7 @@ func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, return err } - if err := setReleaseAttributes(newRelease, rel, dryrun); err != nil { + if err := setReleaseAttributes(newRelease, rel, false); err != nil { return err } @@ -417,11 +451,11 @@ func (r *helmReleaseProvider) helmCreate(ctx context.Context, urn resource.URN, } - err = setReleaseAttributes(newRelease, rel, dryrun) + err = setReleaseAttributes(newRelease, rel, false) return err } -func (r *helmReleaseProvider) helmUpdate(ctx context.Context, urn resource.URN, news resource.PropertyMap, newRelease, oldRelease *Release, dryrun bool) error { +func (r *helmReleaseProvider) helmUpdate(ctx context.Context, urn resource.URN, news resource.PropertyMap, newRelease, oldRelease *Release) error { cpo, chartName, err := chartPathOptions(newRelease) if err != nil { return err @@ -473,7 +507,6 @@ func (r *helmReleaseProvider) helmUpdate(ctx context.Context, urn resource.URN, client.Namespace = newRelease.Namespace client.Timeout = time.Duration(newRelease.Timeout) * time.Second client.Wait = !newRelease.SkipAwait - client.DryRun = dryrun // do not apply changes client.DisableHooks = newRelease.DisableCRDHooks client.Atomic = newRelease.Atomic client.SubNotes = newRelease.RenderSubchartNotes @@ -489,7 +522,7 @@ func (r *helmReleaseProvider) helmUpdate(ctx context.Context, urn resource.URN, client.CleanupOnFail = newRelease.CleanupOnFail client.Description = newRelease.Description - if cmd := newRelease.Postrender; cmd != "" && !dryrun { + if cmd := newRelease.Postrender; cmd != "" { pr, err := postrender.NewExec(cmd) if err != nil { @@ -503,10 +536,10 @@ func (r *helmReleaseProvider) helmUpdate(ctx context.Context, urn resource.URN, logger.V(9).Infof("No existing release found.") return err } else if err != nil { - return fmt.Errorf("error running dry run update: %w", err) + return fmt.Errorf("error running update: %w", err) } - err = setReleaseAttributes(newRelease, rel, dryrun) + err = setReleaseAttributes(newRelease, rel, false) return err } @@ -576,10 +609,6 @@ func (r *helmReleaseProvider) Diff(ctx context.Context, req *pulumirpc.DiffReque } newRelease.Status.Status = release.StatusDeployed.String() - if err = r.helmUpdate(ctx, urn, news, newRelease, oldRelease, true); err != nil { - return nil, err - } - oldInputsJSON, err := json.Marshal(oldInputs.Mappable()) if err != nil { return nil, err @@ -712,8 +741,10 @@ func (r *helmReleaseProvider) Create(ctx context.Context, req *pulumirpc.CreateR return nil, err } - if err = r.helmCreate(ctx, urn, news, newRelease, req.GetPreview()); err != nil { - return nil, err + if !req.GetPreview() { + if err = r.helmCreate(ctx, urn, news, newRelease); err != nil { + return nil, err + } } obj := checkpointRelease(news, newRelease) @@ -874,8 +905,10 @@ func (r *helmReleaseProvider) Update(ctx context.Context, req *pulumirpc.UpdateR return nil, err } - if err = r.helmUpdate(ctx, urn, newResInputs, newRelease, oldRelease, req.GetPreview()); err != nil { - return nil, err + if !req.GetPreview() { + if err = r.helmUpdate(ctx, urn, newResInputs, newRelease, oldRelease); err != nil { + return nil, err + } } checkpointed := checkpointRelease(newResInputs, newRelease) From a431c13157739bd7033c449326e1a66549ff85b3 Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Thu, 16 Sep 2021 21:58:46 -0700 Subject: [PATCH 2/9] Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc9609a4c9..6542344af5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## HEAD (Unreleased) - Fix handling of charts with empty manifests (https://github.com/pulumi/pulumi-kubernetes/pull/1717) +- Use existing helm template equivalent logic to populate manifests instead of relying on `dry-run` support (https://github.com/pulumi/pulumi-kubernetes/pull/1718) ## 3.7.1 (September 10, 2021) - Don't replace PVC on .spec.resources.requests or .limits change. (https://github.com/pulumi/pulumi-kubernetes/pull/1705) From fce6092f9ad2efd869ac86ad3c864b7986457f5a Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Thu, 16 Sep 2021 22:40:46 -0700 Subject: [PATCH 3/9] Fix linting --- provider/pkg/provider/helm_release.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/provider/pkg/provider/helm_release.go b/provider/pkg/provider/helm_release.go index fad3cdd302..77a100f850 100644 --- a/provider/pkg/provider/helm_release.go +++ b/provider/pkg/provider/helm_release.go @@ -293,17 +293,17 @@ func (r *helmReleaseProvider) Check(ctx context.Context, req *pulumirpc.CheckReq helmHome := os.Getenv("HELM_HOME") helmChartOpts := HelmChartOpts{ - HelmFetchOpts: HelmFetchOpts{ - CAFile: new.RepositoryOpts.CAFile, - CertFile: new.RepositoryOpts.CertFile, - Devel: new.Devel, - Home: helmHome, - KeyFile: new.RepositoryOpts.KeyFile, - Keyring: new.Keyring, - Password: new.RepositoryOpts.Password, - Repo: new.RepositoryOpts.Repo, - Username: new.RepositoryOpts.Password, - Version: new.Version, + HelmFetchOpts: HelmFetchOpts{ + CAFile: new.RepositoryOpts.CAFile, + CertFile: new.RepositoryOpts.CertFile, + Devel: new.Devel, + Home: helmHome, + KeyFile: new.RepositoryOpts.KeyFile, + Keyring: new.Keyring, + Password: new.RepositoryOpts.Password, + Repo: new.RepositoryOpts.Repo, + Username: new.RepositoryOpts.Password, + Version: new.Version, }, APIVersions: nil, Chart: new.Chart, From 5ec1867cb8442ee2e4b15e8e094ba1bcb36abda7 Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Thu, 16 Sep 2021 21:48:20 -0700 Subject: [PATCH 4/9] Add an example of a helm release for a chart with CRDs --- .../helm-release-crd/step1/Pulumi.yaml | 3 ++ .../examples/helm-release-crd/step1/index.ts | 43 +++++++++++++++++++ .../helm-release-crd/step1/package.json | 11 +++++ .../helm-release-crd/step1/tsconfig.json | 18 ++++++++ .../examples/helm-release-crd/step2/index.ts | 11 +++++ 5 files changed, 86 insertions(+) create mode 100644 tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml create mode 100644 tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts create mode 100644 tests/sdk/nodejs/examples/helm-release-crd/step1/package.json create mode 100644 tests/sdk/nodejs/examples/helm-release-crd/step1/tsconfig.json create mode 100644 tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml b/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml new file mode 100644 index 0000000000..71c21e8c2b --- /dev/null +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml @@ -0,0 +1,3 @@ +name: helm-release +runtime: nodejs +description: A minimal Kubernetes TypeScript Pulumi program diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts new file mode 100644 index 0000000000..dcb68809b4 --- /dev/null +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts @@ -0,0 +1,43 @@ +import * as pulumi from "@pulumi/pulumi"; +import * as k8s from "@pulumi/kubernetes"; + + +const redisPassword = pulumi.secret("$053cr3t!"); + +const namespace = new k8s.core.v1.Namespace("release-ns"); + +const release = new k8s.helm.v3.Release("release", { + chart: "redis", + repositoryOpts: { + repo: "https://charts.bitnami.com/bitnami", + }, + version: "13.0.0", + namespace: namespace.metadata.name, + values: { + cluster: { + enabled: true, + slaveCount: 2, + }, + metrics: { + enabled: true, + service: { + annotations: { + "prometheus.io/port": "9127", + } + }, + }, + global: { + redis: { + password: redisPassword, + } + }, + rbac: { + create: true, + } + }, +}); + + +const srv = k8s.core.v1.Service.get("redis-master-svc", pulumi.interpolate`${release.status.namespace}/${release.status.name}-redis-master`); +export const redisMasterClusterIP = srv.spec.clusterIP; +export const status = release.status.status; diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json b/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json new file mode 100644 index 0000000000..e72321629f --- /dev/null +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json @@ -0,0 +1,11 @@ +{ + "name": "helm-release-ts", + "devDependencies": { + "@types/node": "^10.0.0" + }, + "dependencies": { + "@pulumi/pulumi": "^3.0.0", + "@pulumi/kubernetes": "latest", + "@pulumi/kubernetesx": "^0.1.5" + } +} diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/tsconfig.json b/tests/sdk/nodejs/examples/helm-release-crd/step1/tsconfig.json new file mode 100644 index 0000000000..2dd89fb9d5 --- /dev/null +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "strict": true, + "outDir": "bin", + "target": "es2016", + "module": "commonjs", + "moduleResolution": "node", + "sourceMap": true, + "experimentalDecorators": true, + "pretty": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.ts" + ] +} diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts new file mode 100644 index 0000000000..652f5bfa4a --- /dev/null +++ b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts @@ -0,0 +1,11 @@ +import * as k8s from "@pulumi/kubernetes"; + +const prometheusRelease = new k8s.helm.v3.Release("prometheus", { + name: "kube-prometheus-stack", + chart: "kube-prometheus-stack", + repositoryOpts: { + repo: "https://prometheus-community.github.io/helm-charts", + }, + values: {}, +}); + From 2fe144bfb3c5d4856fd4b9bca077f46a5afb6b7d Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Thu, 16 Sep 2021 21:48:47 -0700 Subject: [PATCH 5/9] Fix test --- tests/sdk/nodejs/examples/examples_test.go | 19 +++++++++ .../helm-release-crd/step1/Pulumi.yaml | 2 +- .../examples/helm-release-crd/step1/index.ts | 42 +++---------------- .../examples/helm-release-crd/step2/index.ts | 6 ++- 4 files changed, 30 insertions(+), 39 deletions(-) diff --git a/tests/sdk/nodejs/examples/examples_test.go b/tests/sdk/nodejs/examples/examples_test.go index 775c363612..e4edc48cfb 100644 --- a/tests/sdk/nodejs/examples/examples_test.go +++ b/tests/sdk/nodejs/examples/examples_test.go @@ -435,6 +435,25 @@ func TestHelmRelease(t *testing.T) { integration.ProgramTest(t, &test) } +func TestHelmReleaseCRD(t *testing.T) { + skipIfShort(t) + test := getBaseOptions(t). + With(integration.ProgramTestOptions{ + Dir: filepath.Join(getCwd(t), "helm-release-crd", "step1"), + SkipRefresh: false, + Verbose: true, + EditDirs: []integration.EditDir{ + { + Dir: filepath.Join(getCwd(t), "helm-release-crd", "step2"), + Additive: true, + }, + }, + }) + + integration.ProgramTest(t, &test) +} + + func skipIfShort(t *testing.T) { if testing.Short() { t.Skip("skipping long-running test in short mode") diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml b/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml index 71c21e8c2b..c36a13c372 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/Pulumi.yaml @@ -1,3 +1,3 @@ -name: helm-release +name: helm-release-crd runtime: nodejs description: A minimal Kubernetes TypeScript Pulumi program diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts index dcb68809b4..652f5bfa4a 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts @@ -1,43 +1,11 @@ -import * as pulumi from "@pulumi/pulumi"; import * as k8s from "@pulumi/kubernetes"; - -const redisPassword = pulumi.secret("$053cr3t!"); - -const namespace = new k8s.core.v1.Namespace("release-ns"); - -const release = new k8s.helm.v3.Release("release", { - chart: "redis", +const prometheusRelease = new k8s.helm.v3.Release("prometheus", { + name: "kube-prometheus-stack", + chart: "kube-prometheus-stack", repositoryOpts: { - repo: "https://charts.bitnami.com/bitnami", - }, - version: "13.0.0", - namespace: namespace.metadata.name, - values: { - cluster: { - enabled: true, - slaveCount: 2, - }, - metrics: { - enabled: true, - service: { - annotations: { - "prometheus.io/port": "9127", - } - }, - }, - global: { - redis: { - password: redisPassword, - } - }, - rbac: { - create: true, - } + repo: "https://prometheus-community.github.io/helm-charts", }, + values: {}, }); - -const srv = k8s.core.v1.Service.get("redis-master-svc", pulumi.interpolate`${release.status.namespace}/${release.status.name}-redis-master`); -export const redisMasterClusterIP = srv.spec.clusterIP; -export const status = release.status.status; diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts index 652f5bfa4a..61a7ec1ed4 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts +++ b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts @@ -6,6 +6,10 @@ const prometheusRelease = new k8s.helm.v3.Release("prometheus", { repositoryOpts: { repo: "https://prometheus-community.github.io/helm-charts", }, - values: {}, + values: { + commonLabels: { + "test": "true", + } + }, }); From 4a2a3ce21719adde818580e215117561a4fc842a Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Fri, 17 Sep 2021 09:02:45 -0700 Subject: [PATCH 6/9] Add comments to test --- tests/sdk/nodejs/examples/examples_test.go | 2 ++ tests/sdk/nodejs/examples/helm-release-crd/step1/package.json | 2 +- tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/sdk/nodejs/examples/examples_test.go b/tests/sdk/nodejs/examples/examples_test.go index e4edc48cfb..fc1d5d9c0e 100644 --- a/tests/sdk/nodejs/examples/examples_test.go +++ b/tests/sdk/nodejs/examples/examples_test.go @@ -436,6 +436,8 @@ func TestHelmRelease(t *testing.T) { } func TestHelmReleaseCRD(t *testing.T) { + // Validate that Helm charts with CRDs work across create/update/refresh/delete cycles. + // https://github.com/pulumi/pulumi-kubernetes/issues/1712 skipIfShort(t) test := getBaseOptions(t). With(integration.ProgramTestOptions{ diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json b/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json index e72321629f..6320138920 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/package.json @@ -1,5 +1,5 @@ { - "name": "helm-release-ts", + "name": "helm-release-crd", "devDependencies": { "@types/node": "^10.0.0" }, diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts index 61a7ec1ed4..8a135b2ca4 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts +++ b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts @@ -8,7 +8,7 @@ const prometheusRelease = new k8s.helm.v3.Release("prometheus", { }, values: { commonLabels: { - "test": "true", + "test": "true", // Add an additional label to pods } }, }); From 30e59e7d596eea4580ed50765fbb081081daddf9 Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Fri, 17 Sep 2021 09:35:40 -0700 Subject: [PATCH 7/9] Pin versions --- tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts | 1 + tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts index 652f5bfa4a..3c2544ea54 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts +++ b/tests/sdk/nodejs/examples/helm-release-crd/step1/index.ts @@ -3,6 +3,7 @@ import * as k8s from "@pulumi/kubernetes"; const prometheusRelease = new k8s.helm.v3.Release("prometheus", { name: "kube-prometheus-stack", chart: "kube-prometheus-stack", + version: "18.0.10", repositoryOpts: { repo: "https://prometheus-community.github.io/helm-charts", }, diff --git a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts index 8a135b2ca4..673e208793 100644 --- a/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts +++ b/tests/sdk/nodejs/examples/helm-release-crd/step2/index.ts @@ -3,6 +3,7 @@ import * as k8s from "@pulumi/kubernetes"; const prometheusRelease = new k8s.helm.v3.Release("prometheus", { name: "kube-prometheus-stack", chart: "kube-prometheus-stack", + version: "18.0.10", repositoryOpts: { repo: "https://prometheus-community.github.io/helm-charts", }, From 088793fd8781f3c7d70fe90a0868d24311660bfb Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Fri, 17 Sep 2021 09:55:27 -0700 Subject: [PATCH 8/9] Use our memcache client instead --- provider/pkg/provider/kubeconfig.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/provider/pkg/provider/kubeconfig.go b/provider/pkg/provider/kubeconfig.go index eb692b2aba..09a50ff4ea 100644 --- a/provider/pkg/provider/kubeconfig.go +++ b/provider/pkg/provider/kubeconfig.go @@ -3,9 +3,9 @@ package provider import ( + "github.com/pulumi/pulumi-kubernetes/provider/v3/pkg/clients" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/client-go/discovery" - memcached "k8s.io/client-go/discovery/cached/memory" "k8s.io/client-go/rest" "k8s.io/client-go/restmapper" "k8s.io/client-go/tools/clientcmd" @@ -24,7 +24,7 @@ func (k *KubeConfig) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, er // double it just so we don't end up here again for a while. This config is only used for discovery. k.restConfig.Burst = 100 - return memcached.NewMemCacheClient(discovery.NewDiscoveryClientForConfigOrDie(k.restConfig)), nil + return clients.NewMemCacheClient(discovery.NewDiscoveryClientForConfigOrDie(k.restConfig)), nil } // ToRESTConfig implemented interface method From 18c10f6e08fbb0ee1564276577386dfaa3a2ce3d Mon Sep 17 00:00:00 2001 From: Vivek Lakshmanan Date: Fri, 17 Sep 2021 11:10:24 -0700 Subject: [PATCH 9/9] Fix changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6542344af5..090561dea1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## HEAD (Unreleased) - Fix handling of charts with empty manifests (https://github.com/pulumi/pulumi-kubernetes/pull/1717) -- Use existing helm template equivalent logic to populate manifests instead of relying on `dry-run` support (https://github.com/pulumi/pulumi-kubernetes/pull/1718) +- Use existing helm template logic to populate manifests instead of relying on `dry-run` support (https://github.com/pulumi/pulumi-kubernetes/pull/1718) ## 3.7.1 (September 10, 2021) - Don't replace PVC on .spec.resources.requests or .limits change. (https://github.com/pulumi/pulumi-kubernetes/pull/1705)