metabase.Metabase
Explore with Pulumi AI
This resources provisions a container running Metabase on AWS ECS Fargate. By default
the resource will run the service in the AWS Account’s Default VPC unless a VPC is defined. This
resource will also deploy the latest
version of Metabase unless a version is supplied.
You can provide specific subnets to host the Load Balancer, Database, and ECS Service, as well as provide a custom domain name for the service.
Example Usage
Default
using Pulumi;
using Metabase = Pulumi.Metabase;
class MyStack : Stack
{
public MyStack()
{
var metabaseService = new Metabase.Metabase("metabaseService", new Metabase.MetabaseArgs
{
});
this.Url = metabaseService.DnsName;
}
[Output("url")]
public Output<string> Url { get; set; }
}
package main
import (
"github.com/pulumi/pulumi-metabase/sdk/go/metabase"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
metabaseService, err := metabase.NewMetabase(ctx, "metabaseService", nil)
if err != nil {
return err
}
ctx.Export("url", metabaseService.DnsName)
return nil
})
}
Coming soon!
import * as pulumi from "@pulumi/pulumi";
import * as metabase from "@pulumi/metabase";
const metabaseService = new metabase.Metabase("metabaseService", {});
export const url = metabaseService.dnsName;
import pulumi
import pulumi_metabase as metabase
metabase_service = metabase.Metabase("metabaseService")
pulumi.export("url", metabase_service.dns_name)
name: metabase-yaml
runtime: yaml
resources:
metabaseService:
type: "metabase:index:Metabase"
outputs:
url: ${metabaseService.dnsName}
Custom Domain & Networking
using Pulumi;
using Metabase = Pulumi.Metabase;
class MyStack : Stack
{
public MyStack()
{
var metabaseService = new Metabase.Metabase("metabaseService", new Metabase.MetabaseArgs
{
VpcId = "vpc-123",
Networking = new Metabase.Inputs.NetworkingArgs
{
EcsSubnetIds =
{
"subnet-123",
"subnet-456",
},
DbSubnetIds =
{
"subnet-789",
"subnet-abc",
},
LbSubnetIds =
{
"subnet-def",
"subnet-ghi",
},
},
Domain = new Metabase.Inputs.CustomDomainArgs
{
HostedZoneName = "example.com",
DomainName = "metabase.example.com",
},
});
this.Url = metabaseService.DnsName;
}
[Output("url")]
public Output<string> Url { get; set; }
}
package main
import (
"github.com/pulumi/pulumi-metabase/sdk/go/metabase"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
metabaseService, err := metabase.NewMetabase(ctx, "metabaseService", &metabase.MetabaseArgs{
VpcId: pulumi.String("vpc-123"),
Networking: &metabase.NetworkingArgs{
EcsSubnetIds: pulumi.StringArray{
pulumi.String("subnet-123"),
pulumi.String("subnet-456"),
},
DbSubnetIds: pulumi.StringArray{
pulumi.String("subnet-789"),
pulumi.String("subnet-abc"),
},
LbSubnetIds: pulumi.StringArray{
pulumi.String("subnet-def"),
pulumi.String("subnet-ghi"),
},
},
Domain: &metabase.CustomDomainArgs{
HostedZoneName: pulumi.String("example.com"),
DomainName: pulumi.String("metabase.example.com"),
},
})
if err != nil {
return err
}
ctx.Export("url", metabaseService.DnsName)
return nil
})
}
Coming soon!
import * as pulumi from "@pulumi/pulumi";
import * as metabase from "@pulumi/metabase";
const metabaseService = new metabase.Metabase("metabaseService", {
vpcId: "vpc-123",
networking: {
ecsSubnetIds: [
"subnet-123",
"subnet-456",
],
dbSubnetIds: [
"subnet-789",
"subnet-abc",
],
lbSubnetIds: [
"subnet-def",
"subnet-ghi",
],
},
domain: {
hostedZoneName: "example.com",
domainName: "metabase.example.com",
},
});
export const url = metabaseService.dnsName;
import pulumi
import pulumi_metabase as metabase
metabase_service = metabase.Metabase("metabaseService",
vpc_id="vpc-123",
networking=metabase.NetworkingArgs(
ecs_subnet_ids=[
"subnet-123",
"subnet-456",
],
db_subnet_ids=[
"subnet-789",
"subnet-abc",
],
lb_subnet_ids=[
"subnet-def",
"subnet-ghi",
],
),
domain=metabase.CustomDomainArgs(
hosted_zone_name="example.com",
domain_name="metabase.example.com",
))
pulumi.export("url", metabase_service.dns_name)
name: metabase-yaml
runtime: yaml
resources:
metabaseService:
type: "metabase:index:Metabase"
properties:
vpcId: "vpc-123"
networking:
ecsSubnetIds: [ "subnet-123", "subnet-456" ]
dbSubnetIds: [ "subnet-789", "subnet-abc" ]
lbSubnetIds: [ "subnet-def", "subnet-ghi" ]
domain:
hostedZoneName: "example.com"
domainName: "metabase.example.com"
outputs:
url: ${metabaseService.dnsName}
Create Metabase Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Metabase(name: string, args?: MetabaseArgs, opts?: ComponentResourceOptions);
@overload
def Metabase(resource_name: str,
args: Optional[MetabaseArgs] = None,
opts: Optional[ResourceOptions] = None)
@overload
def Metabase(resource_name: str,
opts: Optional[ResourceOptions] = None,
domain: Optional[CustomDomainArgs] = None,
metabase_version: Optional[str] = None,
networking: Optional[NetworkingArgs] = None,
vpc_id: Optional[str] = None)
func NewMetabase(ctx *Context, name string, args *MetabaseArgs, opts ...ResourceOption) (*Metabase, error)
public Metabase(string name, MetabaseArgs? args = null, ComponentResourceOptions? opts = null)
public Metabase(String name, MetabaseArgs args)
public Metabase(String name, MetabaseArgs args, ComponentResourceOptions options)
type: metabase:Metabase
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args MetabaseArgs
- The arguments to resource properties.
- opts ComponentResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args MetabaseArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args MetabaseArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args MetabaseArgs
- The arguments to resource properties.
- opts ComponentResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args MetabaseArgs
- The arguments to resource properties.
- options ComponentResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var metabaseResource = new Metabase.Metabase("metabaseResource", new()
{
Domain = new Metabase.Inputs.CustomDomainArgs
{
DomainName = "string",
HostedZoneName = "string",
},
MetabaseVersion = "string",
Networking = new Metabase.Inputs.NetworkingArgs
{
DbSubnetIds = new[]
{
"string",
},
EcsSubnetIds = new[]
{
"string",
},
LbSubnetIds = new[]
{
"string",
},
},
VpcId = "string",
});
example, err := metabase.NewMetabase(ctx, "metabaseResource", &metabase.MetabaseArgs{
Domain: &metabase.CustomDomainArgs{
DomainName: pulumi.String("string"),
HostedZoneName: pulumi.String("string"),
},
MetabaseVersion: pulumi.String("string"),
Networking: &metabase.NetworkingArgs{
DbSubnetIds: pulumi.StringArray{
pulumi.String("string"),
},
EcsSubnetIds: pulumi.StringArray{
pulumi.String("string"),
},
LbSubnetIds: pulumi.StringArray{
pulumi.String("string"),
},
},
VpcId: pulumi.String("string"),
})
var metabaseResource = new Metabase("metabaseResource", MetabaseArgs.builder()
.domain(CustomDomainArgs.builder()
.domainName("string")
.hostedZoneName("string")
.build())
.metabaseVersion("string")
.networking(NetworkingArgs.builder()
.dbSubnetIds("string")
.ecsSubnetIds("string")
.lbSubnetIds("string")
.build())
.vpcId("string")
.build());
metabase_resource = metabase.Metabase("metabaseResource",
domain={
"domain_name": "string",
"hosted_zone_name": "string",
},
metabase_version="string",
networking={
"db_subnet_ids": ["string"],
"ecs_subnet_ids": ["string"],
"lb_subnet_ids": ["string"],
},
vpc_id="string")
const metabaseResource = new metabase.Metabase("metabaseResource", {
domain: {
domainName: "string",
hostedZoneName: "string",
},
metabaseVersion: "string",
networking: {
dbSubnetIds: ["string"],
ecsSubnetIds: ["string"],
lbSubnetIds: ["string"],
},
vpcId: "string",
});
type: metabase:Metabase
properties:
domain:
domainName: string
hostedZoneName: string
metabaseVersion: string
networking:
dbSubnetIds:
- string
ecsSubnetIds:
- string
lbSubnetIds:
- string
vpcId: string
Metabase Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Metabase resource accepts the following input properties:
- Domain
Custom
Domain - Optionally provide a hosted zone and domain name for the Metabase service.
- Metabase
Version string - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - Networking Networking
- Optionally provide specific subnet IDs to run the different resources of Metabase.
- Vpc
Id string - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
- Domain
Custom
Domain Args - Optionally provide a hosted zone and domain name for the Metabase service.
- Metabase
Version string - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - Networking
Networking
Args - Optionally provide specific subnet IDs to run the different resources of Metabase.
- Vpc
Id string - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
- domain
Custom
Domain - Optionally provide a hosted zone and domain name for the Metabase service.
- metabase
Version String - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - networking Networking
- Optionally provide specific subnet IDs to run the different resources of Metabase.
- vpc
Id String - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
- domain
Custom
Domain - Optionally provide a hosted zone and domain name for the Metabase service.
- metabase
Version string - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - networking Networking
- Optionally provide specific subnet IDs to run the different resources of Metabase.
- vpc
Id string - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
- domain
Custom
Domain Args - Optionally provide a hosted zone and domain name for the Metabase service.
- metabase_
version str - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - networking
Networking
Args - Optionally provide specific subnet IDs to run the different resources of Metabase.
- vpc_
id str - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
- domain Property Map
- Optionally provide a hosted zone and domain name for the Metabase service.
- metabase
Version String - The version of Metabase to run - used as a tag on the
metabase/metabase
Dockerhub image. - networking Property Map
- Optionally provide specific subnet IDs to run the different resources of Metabase.
- vpc
Id String - The VPC to use for the Metabase service. If left blank then the default VPC will be used.
Outputs
All input properties are implicitly available as output properties. Additionally, the Metabase resource produces the following output properties:
- Dns
Name string - The DNS name for the Metabase instance.
- Security
Group stringId - The security group id for the Metabase instance.
- Dns
Name string - The DNS name for the Metabase instance.
- Security
Group stringId - The security group id for the Metabase instance.
- dns
Name String - The DNS name for the Metabase instance.
- security
Group StringId - The security group id for the Metabase instance.
- dns
Name string - The DNS name for the Metabase instance.
- security
Group stringId - The security group id for the Metabase instance.
- dns_
name str - The DNS name for the Metabase instance.
- security_
group_ strid - The security group id for the Metabase instance.
- dns
Name String - The DNS name for the Metabase instance.
- security
Group StringId - The security group id for the Metabase instance.
Supporting Types
CustomDomain, CustomDomainArgs
- Domain
Name string - Hosted
Zone stringName
- Domain
Name string - Hosted
Zone stringName
- domain
Name String - hosted
Zone StringName
- domain
Name string - hosted
Zone stringName
- domain_
name str - hosted_
zone_ strname
- domain
Name String - hosted
Zone StringName
Networking, NetworkingArgs
- Db
Subnet List<string>Ids - The subnets to use for the RDS instance.
- Ecs
Subnet List<string>Ids - The subnets to use for the Fargate task.
- Lb
Subnet List<string>Ids - The subnets to use for the load balancer.
- Db
Subnet []stringIds - The subnets to use for the RDS instance.
- Ecs
Subnet []stringIds - The subnets to use for the Fargate task.
- Lb
Subnet []stringIds - The subnets to use for the load balancer.
- db
Subnet List<String>Ids - The subnets to use for the RDS instance.
- ecs
Subnet List<String>Ids - The subnets to use for the Fargate task.
- lb
Subnet List<String>Ids - The subnets to use for the load balancer.
- db
Subnet string[]Ids - The subnets to use for the RDS instance.
- ecs
Subnet string[]Ids - The subnets to use for the Fargate task.
- lb
Subnet string[]Ids - The subnets to use for the load balancer.
- db_
subnet_ Sequence[str]ids - The subnets to use for the RDS instance.
- ecs_
subnet_ Sequence[str]ids - The subnets to use for the Fargate task.
- lb_
subnet_ Sequence[str]ids - The subnets to use for the load balancer.
- db
Subnet List<String>Ids - The subnets to use for the RDS instance.
- ecs
Subnet List<String>Ids - The subnets to use for the Fargate task.
- lb
Subnet List<String>Ids - The subnets to use for the load balancer.
Package Details
- Repository
- metabase
- License