pulumi / pulumi-kubernetes

A Pulumi resource provider for Kubernetes to manage API resources and workloads in running clusters
https://www.pulumi.com/docs/reference/clouds/kubernetes/
Apache License 2.0
406 stars 115 forks source link

Provider kubeconfig parameter printed in plaintext on failure #1303

Open yarinm opened 4 years ago

yarinm commented 4 years ago

Problem description

If there's an issue related to the Kubeconfig it is output in plaintext.

Example:

failed to deploy k8s stack: failed to update stack: code: 0
, stdout: Updating (yarin/test-aws/k8s_us-west-2):
  pulumi:pulumi:Stack: (same)
      [urn=urn:pulumi:yarin/test-aws/k8s_us-west-2::test-aws::pulumi:pulumi:Stack::test-aws-yarin/test-aws/k8s_us-west-2]
          + pulumi:providers:kubernetes: (create)
                  [urn=urn:pulumi:yarin/test-aws/k8s_us-west-2::test-aws::pulumi:providers:kubernetes::kubernetes]
                          kubeconfig: \"CENSORED\"
                          + 1 created
                              1 unchanged
                              Duration: 5s
EvanBoyle commented 4 years ago

@lblackstone it appears that the issue here is trying to create a provider with the name "kubernetes":

p, err := providers.NewProvider(ctx, "kubernetes", &providers.ProviderArgs{
    Kubeconfig: pulumi.StringPtr(k.kubeConfig),
})
if err != nil {
    return errors.Wrap(err, "failed to create k8s provider")
}
_, err = helmv3.NewChart(ctx, "my-chart", helmv3.ChartArgs{
    Path:      pulumi.String(filepath.Join(chartsPath, "my-chart")),
    Namespace: pulumi.String("some-ns"),
}, pulumi.Provider(p))
if err != nil {
    return errors.Wrap(err, "failed to deploy chart")
}
failed to deploy k8s stack: failed to update stack: code: 0
, stdout: Updating (yarin/test-aws/k8s_us-west-2):
  pulumi:pulumi:Stack: (same)
      [urn=urn:pulumi:yarin/test-aws/k8s_us-west-2::test-aws::pulumi:pulumi:Stack::test-aws-yarin/test-aws/k8s_us-west-2]
          + pulumi:providers:kubernetes: (create)
                  [urn=urn:pulumi:yarin/test-aws/k8s_us-west-2::test-aws::pulumi:providers:kubernetes::kubernetes]
                          kubeconfig: \"CENSORED\"
                          + 1 created
                              1 unchanged
                              Duration: 5s
                              , stderr: engine: 127.0.0.1:57240resmon: 127.0.0.1:57252error: expected '::' in provider reference ''
                              : failed to run update: failed to run inline program and shutdown gracefully: rpc error: code = Unavailable desc = transport is closing"

Not sure if this is unintended, or just undocumneted/unvalidated.