2023-09-22 18:32:40 -07:00

3.0 KiB

title_tag, meta_desc, title, h1, meta_image, menu, aliases
title_tag meta_desc title h1 meta_image menu aliases
providers | Resource Options The providers resource option specifies a set of explicitly configured providers to be used for a resource and all of its children. providers Resource option: providers /images/docs/meta-images/docs-meta.png
concepts
identifier parent weight
providers options 12
/docs/concepts/resources/options/providers/

The providers resource option sets a map of providers for the resource and its children. This map is combined with resource parent's providers map. If no value is provided, the providers map is identical to the parent's providers map. When determining which provider to use for a resource, the providers map is used if provider is not supplied.

{{< chooser language "javascript,typescript,python,go,yaml" >}}

{{% choosable language javascript %}}

let awsProvider = new aws.Provider("awsProvider", { region: "us-west-2" });
let kubeProvider = new kubernetes.Provider("kubernetesProvider", {
    kubeconfig: "./kubeconfig" });

let opts = { providers: [awsProvider, kubeProvider] };

let vpc = new aws.ec2.Vpc("vpc", {}, opts);
let namespace = new kubernetes.v1.Namespace("namespace", {}, opts);

{{% /choosable %}} {{% choosable language typescript %}}

let awsProvider = new aws.Provider("awsProvider", { region: "us-west-2" });
let kubeProvider = new kubernetes.Provider("kubeProvider", {
    kubeconfig: "./kubeconfig" });

let opts = { providers: [awsProvider, kubeProvider] };

let vpc = new aws.ec2.Vpc("vpc", {}, opts);
let k8_namespace = new kubernetes.v1.Namespace("namespace", {}, opts);

{{% /choosable %}} {{% choosable language python %}}

aws_provider = aws.Provider("awsProvider", region="us-west-2")
kube_provider = kubernetes.Provider("kubeProvider", kubeconfig="./kubeconfig)

opts = ResourceOptions(providers=[aws_provder, kube_provider])

vpc = aws.ec2.Vpc("vpc", opts=opts)
namespace = kubernetes.v1.Namespace("namespace", opts=opts)

{{% /choosable %}} {{% choosable language go %}}

awsProvider, _ := aws.NewProvider(ctx, "awsProvider", &aws.ProviderArgs{
	Region: pulumi.StringPtr("us-west-2"),
})
kubeProvider, _ := kubernetes.NewProvider(ctx, "kubeProvider", &kubernetes.ProviderArgs{
	Kubeconfig: pulumi.StringPtr("./kubeconfig"),
})

providers := pulumi.Providers(awsProvider, kubeProvider)

vpc, _ := ec2.NewVpc(ctx, "vpc", &ec2.VpcArgs{}, providers)
namespace, _ := v1.NewNamespace(ctx, "namespace", &v1.NamespaceArgs{}, providers)

{{% /choosable %}} {{% choosable language yaml %}}

variables:
  providers:
    - ${awsProvider}
    - ${kubeProvider}
resources:
  awsProvider:
    type: pulumi:providers:aws
    properties:
      region: us-west-2
  kubeProvider:
    type: pulumi:providers:kubernetes
    properties:
      kubeconfig: ./kubeconfig
  vpc:
    type: aws:ec2:Vpc
    options:
      providers: ${providers}
  namespace:
    options:
      providers: ${providers}

{{% /choosable %}}

{{< /chooser >}}