PAWS is an acronym for Pulumi on AWS. The idea is to create a library of reusable Pulumi components for various popular AWS resources.
This repository will use Go for this goal.
The Pulumi documentation describes the concept of reusable components in its documentation
type MyComponent struct {
pulumi.ResourceState
}
func NewMyComponent(ctx *pulumi.Context, name string, myComponentArgs MyComponentArgs, opts ...pulumi.ResourceOption) (*MyComponent, error) {
myComponent := &MyComponent{}
err := ctx.RegisterComponentResource("pkg:index:MyComponent", name, myComponent, opts...)
if err != nil {
return nil, err
}
return myComponent, nil
}A reusable VPC component that provides a simplified interface for creating AWS VPCs with sensible defaults.
Features:
- IPv4 and IPv6 support
- Configurable DNS settings
- Instance tenancy options
- IPAM integration support
- Comprehensive output values for integration
Basic Usage:
vpc, err := vpc.NewVpc(ctx, "my-vpc", &vpc.VpcArgs{
CidrBlock: "10.0.0.0/16",
Tags: map[string]string{
"Name": "my-vpc",
"Environment": "development",
},
})See the VPC component documentation for detailed usage examples.
The above mentioned website suggests the following pages as additional readings: