-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
config.Yaml invokes decode but doesn't propagate provider #1938
Comments
Having same issue with
|
Looks like fix is #1919? |
I updated to |
It seems like anything under |
hey @lblackstone I just pulled down version |
@KaoruDev are you able to |
I'm raising a brand new stack (pre-existing code that previously worked, we are doing a major upgrade) and I ran into this issue. I did just switch to explicit providers in the major update, but it appears that a parented Error: Invoke: Default provider for 'kubernetes' disabled. 'kubernetes:yaml:decode' must use an explicit provider. Invocation: export const certManager = new CertManager(
{
kind: 'ClusterIssuer',
},
{ providers: { kubernetes, gcp } },
) Component definition: import * as k8s from '@pulumi/kubernetes'
export class CertManager extends ComponentResource {
public readonly version = '1.8.2'
constructor(args: CertManagerArgs, opts: ComponentResourceOptions) {
super('af:pulumi:cert-manager:CertManager', 'cert-manager', {}, opts)
const certManager = new k8s.yaml.ConfigFile(
`https://github.com/cert-manager/cert-manager/releases/download/v${this.version}/cert-manager.yaml`,
undefined,
{ parent: this },
)
} Note that I tried this with both |
...and is there a workaround to pass the providers explicitly inside my |
@rosskevin you would need to pass the opts to |
I'm getting this exact runtime error while using https://github.com/pulumi/pulumi-kubernetes-cert-manager . Is that package updated correctly? |
Reopening this to cover the remaining cases in NodeJS SDK, e.g. when using |
<!--Thanks for your contribution. See [CONTRIBUTING](CONTRIBUTING.md) for Pulumi's contribution guidelines. Help us merge your changes more quickly by adding more details such as labels, milestones, and reviewers.--> ### Proposed changes Epic: #2254 Fixes: #1938 Fixes: #2049 Fixes: #812 This PR standardizes the option propagation logic for the component resources in the pulumi-kubernetes NodeJS SDK. The general approach is: 1. In the component resource constructor, compute the child options to be propagated to any children. The child options consist of the component as parent, and with `version` and `pluginDownloadURL` if specified. 2. Compute the invoke options by copying the child options. ### Specification The component resource is responsible for computing sub-options for invokes and for child resource declarations. This table outlines the expected behavior for each [resource option](https://www.pulumi.com/docs/concepts/options/) when presented to a component resource. | | Propagated | Remarks | |---|---|---| | `additionalSecretOutputs` | no | "does not apply to component resources" | | `aliases` | no | Inherited via parent-child relationship. | | `customTimeouts` | no | "does not apply to component resources" | | `deleteBeforeReplace` | no | | | `deletedWith` | no | | | `dependsOn` | no | The children implicitly wait for the dependency. | | `ignoreChanges` | no | Nonsensical to apply directly to children (see [discussion](pulumi/pulumi#8969)). | | `import` | no | | | `parent` | **yes** | The component becomes the parent. | | `protect` | no | Inherited. | | `provider` | no | Combined into providers map, then inherited via parent-child relationship. | | `providers` | no | Inherited. | | `replaceOnChanges` | no | "does not apply to component resources" | | `retainOnDelete` | no | "does not apply to component resources" | | `transformations` | no | Inherited. | | `version` | **yes** | Influences default provider selection logic during invokes.<br/>Should propagate when child resource is from the same provider type. | | `pluginDownloadURL` | **yes** | Influences default provider selection logic during invokes.<br/>Should propagate when child resource is from the same provider type. | ### Testing A new test case is provided ([test case](https://github.com/pulumi/pulumi-kubernetes/blob/e1ad541a9c86e8eb207bd1d8a276822862425109/tests/sdk/nodejs/nodejs_test.go#L2107), [test program](https://github.com/pulumi/pulumi-kubernetes/blob/e1ad541a9c86e8eb207bd1d8a276822862425109/tests/sdk/nodejs/options/index.ts)) that exercises option propagation across the component resources: - [kubernetes.helm.sh.v3.Chart](https://www.pulumi.com/registry/packages/kubernetes/api-docs/helm/v3/chart/) - [kubernetes.kustomize.Directory](https://www.pulumi.com/registry/packages/kubernetes/api-docs/kustomize/directory/) - [kubernetes.yaml.ConfigGroup](https://www.pulumi.com/registry/packages/kubernetes/api-docs/yaml/configgroup/) - [kubernetes.yaml.ConfigFile](https://www.pulumi.com/registry/packages/kubernetes/api-docs/yaml/configfile/) Upgrade testing must be done manually, with an emphasis on avoiding replacement due to reparenting. ### Related issues (optional) The p/p NodeJS SDK doesn't propagate the `pluginDownloadURL` option to the Invoke RPC. pulumi/pulumi#14839
Hello!
Issue details
When the default Kubernetes provider is disabled, we cannot use
yaml.ConfigFile
. It seems that an invoke toyaml::decode
is made without propagation of the provider.Error: Invoke: Default provider for 'kubernetes' disabled. 'kubernetes:yaml:decode' must use an explicit provider
Steps to reproduce
This code fails, even though the URN for my provider is correct.
The text was updated successfully, but these errors were encountered: