Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

106 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

---
2023-06-02 21:41:36 -07:00
title_tag: "providers | Resource Options"
meta_desc: The providers resource option specifies a set of explicitly configured providers to be used for a resource and all of its children.
title: "providers"
h1: "Resource option: providers"
2023-06-08 16:15:52 -07:00
meta_image: /images/docs/meta-images/docs-meta.png
menu:
concepts:
identifier: providers
parent: options
2023-09-22 18:32:40 -07:00
weight: 12
aliases:
- /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](/docs/concepts/options/provider/) is not supplied.
2022-05-03 21:23:32 -07:00
{{< chooser language "javascript,typescript,python,go,yaml" >}}
{{% choosable language javascript %}}
```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 %}}
```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 %}}
```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 %}}
```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)
```
2022-05-03 21:23:32 -07:00
{{% /choosable %}}
{{% choosable language yaml %}}
```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 >}}