Documentation
¶
Index ¶
- func AssociateRouteTableToSubnet(meta pgocomp.Meta, provider *aws.Provider, subnet *ec2.Subnet, ...) *pgocomp.ComponentWithMeta[*ec2.RouteTableAssociation]
- func AttachInternetGatewayToVPC(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc, ...) *pgocomp.ComponentWithMeta[*ec2.InternetGatewayAttachment]
- func CreateAndAttachDefaultRoute(meta pgocomp.Meta, provider *aws.Provider, rt *ec2.RouteTable, ...) *pgocomp.ComponentWithMeta[*ec2.Route]
- func CreateAndAttachTCPIngressSecurityGroupRule(meta pgocomp.Meta, provider *aws.Provider, sg *ec2.SecurityGroup, ...) *pgocomp.ComponentWithMeta[*ec2.SecurityGroupRule]
- func CreateCertificate(meta pgocomp.Meta, params CertificateParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*acm.Certificate]
- func CreateECSCluster(meta pgocomp.Meta, params ECSClusterParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*ecs.Cluster]
- func CreateECSClusterComponent(meta pgocomp.Meta, params ECSClusterParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*ECSClusterComponent]
- func CreateEcsFargateServiceComponent(meta pgocomp.Meta, params ECSServiceParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*ecs.Service]
- func CreateInternetGateway(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.InternetGateway]
- func CreateListener(meta pgocomp.Meta, params LBListenerParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*lb.Listener]
- func CreateLoadBalancerAndAssociateToSubnets(meta pgocomp.Meta, lbType LBType, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*lb.LoadBalancer]
- func CreateLoadBalancerComponent(meta pgocomp.Meta, params LoadBalancerParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*LoadBalancerComponent]
- func CreateNetworkPartition(meta pgocomp.Meta, params NetworkPartitionParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*NetworkPartitionComponent]
- func CreateProvider(meta pgocomp.Meta, region string) *pgocomp.ComponentWithMeta[*aws.Provider]
- func CreateRouteTable(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.RouteTable]
- func CreateSecurityGroup(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.SecurityGroup]
- func CreateSecurityGroupRuleForTargetGroup(meta pgocomp.Meta, provider *aws.Provider, sg *ec2.SecurityGroup, ...) *pgocomp.ComponentWithMeta[*ec2.SecurityGroupRule]
- func CreateSubnet(meta pgocomp.Meta, params SubnetParameters, az string, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*ec2.Subnet]
- func CreateSubnetAndAssociateToRoute(meta pgocomp.Meta, params SubnetParameters, az string, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*ec2.Subnet]
- func CreateTargetGroup(meta pgocomp.Meta, params LBTargetGroupParameters, provider *aws.Provider, ...) *pgocomp.ComponentWithMeta[*lb.TargetGroup]
- func CreateVPC(meta pgocomp.Meta, params VpcParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*ec2.Vpc]
- func CreateVpcComponent(params VpcParameters) *pgocomp.ComponentWithMeta[*VpcComponent]
- func New(params InfraParameters) *pgocomp.ComponentWithMeta[*InfraComponent]
- type CertificateParameters
- type CertificateValidationMethod
- type ContainerDefinition
- func (c *ContainerDefinition) ECSNativeTaskDefinitionContainerDefinitionArgs() ecsn.TaskDefinitionContainerDefinitionArgs
- func (c *ContainerDefinition) ECSNativeTaskDefinitionKeyValuePairArray() (array ecsn.TaskDefinitionKeyValuePairArray)
- func (c *ContainerDefinition) ECSNativeTaskDefinitionPortMappingArray() (array ecsn.TaskDefinitionPortMappingArray)
- type ContainerEnvironmentVar
- type ContainerPortMapping
- type ECSClusterComponent
- type ECSClusterParameters
- type ECSServiceParameters
- type GatewayParameters
- type InfraComponent
- type InfraParameters
- type LBListenerParameters
- type LBProtocol
- type LBRuleConditionParameters
- type LBRuleConditionType
- type LBRuleParameters
- type LBTargetGroupHealthCHeck
- type LBTargetGroupParameters
- type LBType
- type LoadBalancerComponent
- type LoadBalancerParameters
- type NetworkPartitionComponent
- type NetworkPartitionParameters
- type ProviderParameters
- type SingleRegionInfra
- type SubnetParameters
- type TGProtocol
- type TargetType
- type VpcComponent
- type VpcParameters
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssociateRouteTableToSubnet ¶
func AssociateRouteTableToSubnet(meta pgocomp.Meta, provider *aws.Provider, subnet *ec2.Subnet, routeTable *ec2.RouteTable) *pgocomp.ComponentWithMeta[*ec2.RouteTableAssociation]
AssociateRouteTableToSubnet associates a subnet to a route table
func AttachInternetGatewayToVPC ¶
func AttachInternetGatewayToVPC(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc, igw *ec2.InternetGateway) *pgocomp.ComponentWithMeta[*ec2.InternetGatewayAttachment]
AttachInternetGatewayToVPC takes a meta, a vpc, an internet gateway and returnas an InternetGatewayAttachment Component
func CreateAndAttachDefaultRoute ¶
func CreateAndAttachDefaultRoute(meta pgocomp.Meta, provider *aws.Provider, rt *ec2.RouteTable, igw *ec2.InternetGateway, iga *ec2.InternetGatewayAttachment) *pgocomp.ComponentWithMeta[*ec2.Route]
CreateAndAttachDefaultRoute takes a meta, a route table, an internetgateway and an internet gateway attachment and returns a Route Component
func CreateAndAttachTCPIngressSecurityGroupRule ¶
func CreateAndAttachTCPIngressSecurityGroupRule(meta pgocomp.Meta, provider *aws.Provider, sg *ec2.SecurityGroup, fromPort, toPort int, cidrBlocks pulumi.StringArray) *pgocomp.ComponentWithMeta[*ec2.SecurityGroupRule]
CreateAndAttachTCPIngressSecurityGroupRule takes a meta, a security group, some nework parameters and returns a SecurityGroupRule Component
func CreateCertificate ¶
func CreateCertificate(meta pgocomp.Meta, params CertificateParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*acm.Certificate]
CreateCertificate creates a new certificate with a CertificateParameters
func CreateECSCluster ¶
func CreateECSCluster(meta pgocomp.Meta, params ECSClusterParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*ecs.Cluster]
CreateECSCluster creates a new ECSCluster
func CreateECSClusterComponent ¶
func CreateECSClusterComponent(meta pgocomp.Meta, params ECSClusterParameters, provider *aws.Provider, vpc *ec2.Vpc, subnets []*ec2.Subnet, tgs map[string]*lb.TargetGroup, sgs []*ec2.SecurityGroup) *pgocomp.ComponentWithMeta[*ECSClusterComponent]
CreateECSClusterComponent takes some paramenters and creates a new Network Partition
func CreateEcsFargateServiceComponent ¶
func CreateEcsFargateServiceComponent( meta pgocomp.Meta, params ECSServiceParameters, provider *aws.Provider, vpc *ec2.Vpc, cluster *ecs.Cluster, subnets []*ec2.Subnet, targetGroups map[string]*lb.TargetGroup, ) *pgocomp.ComponentWithMeta[*ecs.Service]
CreateEcsFargateServiceComponent is
func CreateInternetGateway ¶
func CreateInternetGateway(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.InternetGateway]
CreateInternetGateway takes a meta, a vpc and returns an InternetGateway component
func CreateListener ¶
func CreateListener(meta pgocomp.Meta, params LBListenerParameters, provider *aws.Provider, loadBalancer *lb.LoadBalancer, tgs map[string]*lb.TargetGroup, sg *ec2.SecurityGroup, certs map[string]*acm.Certificate) *pgocomp.ComponentWithMeta[*lb.Listener]
CreateListener creates a new Listener Component
func CreateLoadBalancerAndAssociateToSubnets ¶
func CreateLoadBalancerAndAssociateToSubnets(meta pgocomp.Meta, lbType LBType, provider *aws.Provider, subnets []*ec2.Subnet, sg *ec2.SecurityGroup) *pgocomp.ComponentWithMeta[*lb.LoadBalancer]
CreateLoadBalancerAndAssociateToSubnets creates a new LoadBalancer Component
func CreateLoadBalancerComponent ¶
func CreateLoadBalancerComponent(meta pgocomp.Meta, params LoadBalancerParameters, provider *aws.Provider, vpc *ec2.Vpc, subnets []*ec2.Subnet, tgs map[string]*pgocomp.GetComponentWithMetaResponse[*lb.TargetGroup], certs map[string]*acm.Certificate) *pgocomp.ComponentWithMeta[*LoadBalancerComponent]
CreateLoadBalancerComponent takes some paramenters and creates a new Network Partition
func CreateNetworkPartition ¶
func CreateNetworkPartition(meta pgocomp.Meta, params NetworkPartitionParameters, provider *aws.Provider, vpc *ec2.Vpc, rt *ec2.RouteTable, certs map[string]*acm.Certificate) *pgocomp.ComponentWithMeta[*NetworkPartitionComponent]
CreateNetworkPartition takes some paramenters and creates a new Network Partition
func CreateProvider ¶
CreateProvider takes a name and a region and returns an aws.Provider Component
func CreateRouteTable ¶
func CreateRouteTable(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.RouteTable]
CreateRouteTable takes a name and a vpc and returns a RouteTable Component
func CreateSecurityGroup ¶
func CreateSecurityGroup(meta pgocomp.Meta, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.SecurityGroup]
CreateSecurityGroup takes a name and a vpc and returns a SecurityGroup Component
func CreateSecurityGroupRuleForTargetGroup ¶
func CreateSecurityGroupRuleForTargetGroup(meta pgocomp.Meta, provider *aws.Provider, sg *ec2.SecurityGroup, tg *lb.TargetGroup, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*ec2.SecurityGroupRule]
CreateSecurityGroupRuleForTargetGroup ...
func CreateSubnet ¶
func CreateSubnet(meta pgocomp.Meta, params SubnetParameters, az string, provider *aws.Provider, vpc *ec2.Vpc, rt *ec2.RouteTable) *pgocomp.ComponentWithMeta[*ec2.Subnet]
CreateSubnet takes a meta, some parameters and a vpc and returns a SubnetComponent
func CreateSubnetAndAssociateToRoute ¶
func CreateSubnetAndAssociateToRoute(meta pgocomp.Meta, params SubnetParameters, az string, provider *aws.Provider, vpc *ec2.Vpc, rt *ec2.RouteTable) *pgocomp.ComponentWithMeta[*ec2.Subnet]
CreateSubnetAndAssociateToRoute takes a meta, some parameters and a vpc and returns a SubnetComponent
func CreateTargetGroup ¶
func CreateTargetGroup(meta pgocomp.Meta, params LBTargetGroupParameters, provider *aws.Provider, vpc *ec2.Vpc) *pgocomp.ComponentWithMeta[*lb.TargetGroup]
CreateTargetGroup creates a new LoadBalancer Component
func CreateVPC ¶
func CreateVPC(meta pgocomp.Meta, params VpcParameters, provider *aws.Provider) *pgocomp.ComponentWithMeta[*ec2.Vpc]
CreateVPC takes a meta, a list of parameters and a provides and returns a Vpc Component
func CreateVpcComponent ¶
func CreateVpcComponent(params VpcParameters) *pgocomp.ComponentWithMeta[*VpcComponent]
CreateVpcComponent creates a Region Component thar comprises of a Vpc and its subcomponents
func New ¶
func New(params InfraParameters) *pgocomp.ComponentWithMeta[*InfraComponent]
New create a new infrastructure
Types ¶
type CertificateParameters ¶
type CertificateParameters struct { pgocomp.Meta Domain string ValidationMethod CertificateValidationMethod }
CertificateParameters creates a new certificate
type CertificateValidationMethod ¶
type CertificateValidationMethod string
CertificateValidationMethod is the method used to validate the certificate. By DNS or EMAIL
const ( //ValidationByDNS validates the certificate by a CNAME field in the DNS server. auto renew ValidationByDNS CertificateValidationMethod = "DNS" //ValidationByEmail validates by email.. manually renewed ValidationByEmail CertificateValidationMethod = "EMAIL" )
type ContainerDefinition ¶
type ContainerDefinition struct { Name string `json:"name"` Image string `json:"image"` Essential *bool `json:"essential,omitempty"` PortMappings []ContainerPortMapping `json:"portMappings,omitempty"` Environment []ContainerEnvironmentVar `json:"environment,omitempty"` EntryPoint []string `json:"entryPoint,omitempty"` Command []string `json:"command,omitempty"` CPU int64 `json:"cpu,omitempty"` Memory int64 `json:"memory,omitempty"` }
ContainerDefinition defines containers to be used in the Infra
func (*ContainerDefinition) ECSNativeTaskDefinitionContainerDefinitionArgs ¶
func (c *ContainerDefinition) ECSNativeTaskDefinitionContainerDefinitionArgs() ecsn.TaskDefinitionContainerDefinitionArgs
ECSNativeTaskDefinitionContainerDefinitionArgs transformas a container parameter into a Ecs native container defitinion
func (*ContainerDefinition) ECSNativeTaskDefinitionKeyValuePairArray ¶
func (c *ContainerDefinition) ECSNativeTaskDefinitionKeyValuePairArray() (array ecsn.TaskDefinitionKeyValuePairArray)
ECSNativeTaskDefinitionKeyValuePairArray transforms this container into a ECS Native KeyValue Pair Array
func (*ContainerDefinition) ECSNativeTaskDefinitionPortMappingArray ¶
func (c *ContainerDefinition) ECSNativeTaskDefinitionPortMappingArray() (array ecsn.TaskDefinitionPortMappingArray)
ECSNativeTaskDefinitionPortMappingArray transforms this configuration into a ECS Native Port Mapping Array
type ContainerEnvironmentVar ¶
ContainerEnvironmentVar ...
type ContainerPortMapping ¶
type ContainerPortMapping struct { ContainerPort int `json:"containerPort"` HostPort int `json:"hostPort"` Protocol TGProtocol `json:"protocol"` TargetGroupLookupName string `json:"-"` }
ContainerPortMapping are the ports the the container exposes
func (*ContainerPortMapping) ECSNativeTaskDefinitionPortMappingAppProtocol ¶
func (p *ContainerPortMapping) ECSNativeTaskDefinitionPortMappingAppProtocol() ecsn.TaskDefinitionPortMappingAppProtocol
ECSNativeTaskDefinitionPortMappingAppProtocol transforms ContainerPortMapping into a ecs native TaskDefinitionPortMappings
func (*ContainerPortMapping) ECSNativeTaskDefinitionPortMappingArgs ¶
func (p *ContainerPortMapping) ECSNativeTaskDefinitionPortMappingArgs() (array ecsn.TaskDefinitionPortMappingArgs)
ECSNativeTaskDefinitionPortMappingArgs transforms this configuration into a ECS Native Port Mapping Args
type ECSClusterComponent ¶
type ECSClusterComponent struct { Cluster *pgocomp.GetComponentWithMetaResponse[*ecs.Cluster] FargateServices map[string]*pgocomp.GetComponentWithMetaResponse[*ecs.Service] }
ECSClusterComponent holds the created cluster components
type ECSClusterParameters ¶
type ECSClusterParameters struct { pgocomp.Meta Services []ECSServiceParameters }
ECSClusterParameters are parameters to create an ECS Cluster
type ECSServiceParameters ¶
type ECSServiceParameters struct { pgocomp.Meta DesiredCount int CPU int Memory int AssignPublicIP bool Containers []ContainerDefinition }
ECSServiceParameters defines containers to be used in the Infra
func (*ECSServiceParameters) ECSNativeTaskDefinitionContainerDefinitionArray ¶
func (c *ECSServiceParameters) ECSNativeTaskDefinitionContainerDefinitionArray() (array ecsn.TaskDefinitionContainerDefinitionArray)
ECSNativeTaskDefinitionContainerDefinitionArray transform containers into a ECS Native array
func (*ECSServiceParameters) ECSTaskDefinitionContainerDefinitionArray ¶
func (c *ECSServiceParameters) ECSTaskDefinitionContainerDefinitionArray() (string, error)
ECSTaskDefinitionContainerDefinitionArray transform containers into a json definition
type GatewayParameters ¶
GatewayParameters are parameters used by the CreateSubnet function
type InfraComponent ¶
type InfraComponent struct {
Vpcs map[string]*pgocomp.GetComponentWithMetaResponse[*VpcComponent]
}
InfraComponent b
type InfraParameters ¶
type InfraParameters struct { pgocomp.Meta Vpcs []VpcParameters }
InfraParameters is a configuration for a
type LBListenerParameters ¶
type LBListenerParameters struct { pgocomp.Meta Port int Protocol LBProtocol TargetGroupLookupName string Rules []LBRuleParameters CertificateLookupName string }
LBListenerParameters is the paramenters for a listener
type LBProtocol ¶
type LBProtocol string
LBProtocol is the network protocol tobe balanced
const ( //HTTP is the Hyper Text Protocol HTTP LBProtocol = "HTTP" //HTTP2 is the Hyper Text Protocol version 2 HTTP2 LBProtocol = "HTTP2" //GRPC is the Google remote procedure call procotol used to change Protobuf messages GRPC LBProtocol = "GRPC" )
type LBRuleConditionParameters ¶
type LBRuleConditionParameters struct { RuleConditionType LBRuleConditionType PathPatterns []string HostHeaders []string HTTPHeader struct { Name string Values []string } QueryString []struct { Key string Value string } SourceIPs []string }
LBRuleConditionParameters ...
type LBRuleConditionType ¶
type LBRuleConditionType int
LBRuleConditionType ...
const ( //PathPattern ... PathPattern LBRuleConditionType = iota //HostHeader ... HostHeader //HTTPHeader ... HTTPHeader //QueryString ... QueryString //SourceIP ... SourceIP )
type LBRuleParameters ¶
type LBRuleParameters struct { pgocomp.Meta TargetGroupLookupName string Priority int Conditions []LBRuleConditionParameters }
LBRuleParameters is the paramenters for a listener
type LBTargetGroupHealthCHeck ¶ added in v0.0.12
type LBTargetGroupHealthCHeck struct { Disabled bool HealthyThreshold int Path string UnhealthyThreshold int Timeout int StatusCodeRange string }
LBTargetGroupHealthCHeck ...
type LBTargetGroupParameters ¶
type LBTargetGroupParameters struct { pgocomp.Meta Port int Protocol TGProtocol TargetType TargetType HealthCheck LBTargetGroupHealthCHeck }
LBTargetGroupParameters is the paramenters for a listener
type LBType ¶
type LBType string
LBType is the type of the network load balander
const ( //Classic is the classic elastic load balancer that works on layer 4 and 7 Classic LBType = "gateway" //Application is the application load balancer that works on layer 7 Application LBType = "application" //Network is the network load balancer that works on layer 4 Network LBType = "network" )
type LoadBalancerComponent ¶
type LoadBalancerComponent struct { LoadBalancer *pgocomp.GetComponentWithMetaResponse[*lb.LoadBalancer] SecurityGroup *pgocomp.GetComponentWithMetaResponse[*ec2.SecurityGroup] Listeners map[string]*pgocomp.GetComponentWithMetaResponse[*lb.Listener] }
LoadBalancerComponent is the response of CreateLoadBalancerComponent function
type LoadBalancerParameters ¶
type LoadBalancerParameters struct { pgocomp.Meta Type LBType IsInternal bool Listeners []LBListenerParameters }
LoadBalancerParameters are parameters used by the CreateSubnet function
type NetworkPartitionComponent ¶
type NetworkPartitionComponent struct { Subnets map[string]*pgocomp.GetComponentWithMetaResponse[*ec2.Subnet] LoadBalancers map[string]*pgocomp.GetComponentWithMetaResponse[*LoadBalancerComponent] TargetGroups map[string]*pgocomp.GetComponentWithMetaResponse[*lb.TargetGroup] ECSClusters map[string]*pgocomp.GetComponentWithMetaResponse[*ECSClusterComponent] }
NetworkPartitionComponent is the response of CreateBlockComponent
type NetworkPartitionParameters ¶
type NetworkPartitionParameters struct { pgocomp.Meta IsPublic bool Subnets []SubnetParameters LoadBalancers []LoadBalancerParameters LBTargetGroups []LBTargetGroupParameters ECSClusters []ECSClusterParameters }
NetworkPartitionParameters defines the parameter for a network block, like public or private
type ProviderParameters ¶
ProviderParameters are used to create new region infrastructure
type SingleRegionInfra ¶
type SingleRegionInfra struct {
Region *pgocomp.GetComponentWithMetaResponse[*VpcComponent]
}
SingleRegionInfra is the return type of the function NewBasicNetworkComponent
type SubnetParameters ¶
SubnetParameters are parameters used by the CreateSubnet function
type TGProtocol ¶
type TGProtocol string
TGProtocol is the network protocol tobe balanced
const ( //TGProtoHTTP ... TGProtoHTTP TGProtocol = "HTTP" //TGProtoUDP ... TGProtoUDP TGProtocol = "UDP" //TGProtoTCP ... TGProtoTCP TGProtocol = "TCP" //TGProtoTCPUDP ... TGProtoTCPUDP TGProtocol = "TCP_UDP" //TGProtoHTTPS ... TGProtoHTTPS TGProtocol = "HTTPS" //TGProtoTLS ... TGProtoTLS TGProtocol = "TLS" )
type TargetType ¶
type TargetType string
TargetType the Target type of a Target group
const ( //TGIp is a target group that will group members by their ip adresses TGIp TargetType = "ip" //TGInstance is a target group that will group members by their instances TGInstance TargetType = "instance" )
type VpcComponent ¶
type VpcComponent struct { Provider *pgocomp.GetComponentWithMetaResponse[*aws.Provider] Vpc *pgocomp.GetComponentWithMetaResponse[*ec2.Vpc] Gateway struct { InternetGateway *pgocomp.GetComponentWithMetaResponse[*ec2.InternetGateway] VpcGatewayAttachment *pgocomp.GetComponentWithMetaResponse[*ec2.InternetGatewayAttachment] RouteTable *pgocomp.GetComponentWithMetaResponse[*ec2.RouteTable] DefaultRoute *pgocomp.GetComponentWithMetaResponse[*ec2.Route] } Partitions map[string]*pgocomp.GetComponentWithMetaResponse[*NetworkPartitionComponent] Certificates map[string]*pgocomp.GetComponentWithMetaResponse[*acm.Certificate] }
VpcComponent is the return type of the function NewBasicNetworkComponent
type VpcParameters ¶
type VpcParameters struct { pgocomp.Meta Provider ProviderParameters CidrBlock string Partitions []NetworkPartitionParameters Certificates []CertificateParameters }
VpcParameters are the parameters of the function NewBasicNetworkComponent