pluginz

package
v0.0.0-...-d772457 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2022 License: MIT Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	APIPluginDisplayName       = "API"
	APIPluginName              = "api"
	APIRefAPI                  = cloudz.CloudRef("api")
	APIRefPermission           = cloudz.CloudRef("perm")
	APIRefDomainName           = cloudz.CloudRef("dn")
	APIRefRecordSet            = cloudz.CloudRef("rs")
	APIRefStage                = cloudz.CloudRef("stg")
	APIRefAPIMapping           = cloudz.CloudRef("dnmap")
	APIRefIntegration          = cloudz.CloudRef("intg")
	APIAttAPIEndpoint          = cloudz.CloudAtt("ApiEndpoint")
	APIAttRegionalDomainName   = cloudz.CloudAtt("RegionalDomainName")
	APIAttRegionalHostedZoneID = cloudz.CloudAtt("RegionalHostedZoneId")
)

API constants.

View Source
const (
	BucketPluginDisplayName      = "Bucket"
	BucketPluginName             = "bucket"
	BucketRefBucket              = cloudz.CloudRef("b")
	BucketRefBucketPolicyPublic  = cloudz.CloudRef("bp-pub")
	BucketAttARN                 = cloudz.CloudAtt("Arn")
	BucketAttDomainName          = cloudz.CloudAtt("DomainName")
	BucketAttDualStackDomainName = cloudz.CloudAtt("DualStackDomainName")
	BucketAttRegionalDomainName  = cloudz.CloudAtt("RegionalDomainName")
)

Bucket constants.

View Source
const (
	CertificatePluginDisplayName = "Certificate"
	CertificatePluginName        = "certificate"
	CertificateRefCertificate    = cloudz.CloudRef("c")
)

Certificate constants.

View Source
const (
	FunctionPluginDisplayName = "Function"
	FunctionPluginName        = "function"
	FunctionRefRole           = cloudz.CloudRef("r")
	FunctionRefLogGroup       = cloudz.CloudRef("lg")
	FunctionRefFunction       = cloudz.CloudRef("f")
	FunctionAttARN            = cloudz.CloudAtt("Arn")
	FunctionAttRoleID         = cloudz.CloudAtt("RoleId")

	FunctionHandlerFileName = "handler"
	FunctionPackageFileName = "function.zip"
)

Function constants.

View Source
const (
	HasuraPluginDisplayName      = "Hasura"
	HasuraPluginName             = "hasura"
	HasuraRefLogGroup            = cloudz.CloudRef("lg")
	HasuraRefRoleExecution       = cloudz.CloudRef("r-ex")
	HasuraRefRoleTask            = cloudz.CloudRef("r-tk")
	HasuraRefTaskDefinition      = cloudz.CloudRef("td")
	HasuraRefTargetGroup         = cloudz.CloudRef("tg")
	HasuraRefListenerRule        = cloudz.CloudRef("lr")
	HasuraRefCluster             = cloudz.CloudRef("cl")
	HasuraRefService             = cloudz.CloudRef("svc")
	HasuraRefRecordSet           = cloudz.CloudRef("rs")
	HasuraAttARN                 = cloudz.CloudAtt("Arn")
	HasuraAttIsDefault           = cloudz.CloudAtt("IsDefault")
	HasuraAttLoadBalancerARNs    = cloudz.CloudAtt("LoadBalancerArns")
	HasuraAttName                = cloudz.CloudAtt("Name")
	HasuraAttRoleID              = cloudz.CloudAtt("RoleId")
	HasuraAttRuleARN             = cloudz.CloudAtt("RuleArn")
	HasuraAttTargetGroupFullName = cloudz.CloudAtt("TargetGroupFullName")
	HasuraAttTargetGroupName     = cloudz.CloudAtt("TargetGroupName")
)

Hasura constants.

View Source
const (
	ImageRepositoryPluginDisplayName = "ImageRepository"
	ImageRepositoryPluginName        = "image-repository"
	ImageRepositoryRefRepository     = cloudz.CloudRef("r")
	ImageRepositoryAttARN            = cloudz.CloudAtt("Arn")
	ImageRepositoryAttRepositoryURI  = cloudz.CloudAtt("RepositoryUri")
)

Image repository constants.

View Source
const (
	LoadBalancerPluginDisplayName            = "Load Balancer"
	LoadBalancerPluginName                   = "load-balancer"
	LoadBalancerRefLoadBalancer              = cloudz.CloudRef("lb")
	LoadBalancerRefListenerHTTP              = cloudz.CloudRef("l")
	LoadBalancerRefListenerHTTPS             = cloudz.CloudRef("l-s")
	LoadBalancerRefSecurityGroupIngressHTTP  = cloudz.CloudRef("sgi")
	LoadBalancerRefSecurityGroupIngressHTTPS = cloudz.CloudRef("sgi-s")
	LoadBalancerAttCanonicalHostedZoneID     = cloudz.CloudAtt("CanonicalHostedZoneID")
	LoadBalancerAttDNSName                   = cloudz.CloudAtt("DNSName")
	LoadBalancerAttLoadBalancerFullName      = cloudz.CloudAtt("LoadBalancerFullName")
	LoadBalancerAttLoadBalancerName          = cloudz.CloudAtt("LoadBalancerName")
	LoadBalancerAttSecurityGroups            = cloudz.CloudAtt("SecurityGroups")
	LoadBalancerAttListenerArn               = cloudz.CloudAtt("ListenerArn")
)

Load balancer constants.

View Source
const (
	MailerPluginDisplayName = "Mailer"
	MailerPluginName        = "mailer"
)

Mailer constants.

View Source
const (
	NetworkPluginDisplayName                      = "Network"
	NetworkPluginName                             = "network"
	NetworkRefVPC                                 = cloudz.CloudRef("v")
	NetworkRefInternetGateway                     = cloudz.CloudRef("ig")
	NetworkRefVPCGatewayAttachment                = cloudz.CloudRef("vig")
	NetworkRefRouteTablePublic                    = cloudz.CloudRef("rt-pub")
	NetworkRefRoutePublic                         = cloudz.CloudRef("r-pub")
	NetworkRefSubnetPublicA                       = cloudz.CloudRef("s-pub-a")
	NetworkRefSubnetRouteTableAssociationPublicA  = cloudz.CloudRef("srt-pub-a")
	NetworkRefSubnetPublicB                       = cloudz.CloudRef("s-pub-b")
	NetworkRefSubnetRouteTableAssociationPublicB  = cloudz.CloudRef("srt-pub-b")
	NetworkRefEIPA                                = cloudz.CloudRef("eip-a")
	NetworkRefNATGatewayA                         = cloudz.CloudRef("ng-a")
	NetworkRefRouteTablePrivateA                  = cloudz.CloudRef("rt-pri-a")
	NetworkRefRoutePrivateA                       = cloudz.CloudRef("r-pri-a")
	NetworkRefSubnetPrivateA                      = cloudz.CloudRef("s-pri-a")
	NetworkRefSubnetRouteTableAssociationPrivateA = cloudz.CloudRef("s-rt-pri-a")
	NetworkRefEIPB                                = cloudz.CloudRef("eip-b")
	NetworkRefNATGatewayB                         = cloudz.CloudRef("ng-b")
	NetworkRefRouteTablePrivateB                  = cloudz.CloudRef("rt-pri-b")
	NetworkRefRoutePrivateB                       = cloudz.CloudRef("r-pri-b")
	NetworkRefSubnetPrivateB                      = cloudz.CloudRef("s-pri-b")
	NetworkRefSubnetRouteTableAssociationPrivateB = cloudz.CloudRef("srt-pri-b")
	NetworkRefSecurityGroup                       = cloudz.CloudRef("sg")
	NetworkRefSecurityGroupIngress                = cloudz.CloudRef("sgi")
	NetworkAttAllocationID                        = cloudz.CloudAtt("AllocationId")
	NetworkAttAvailabilityZone                    = cloudz.CloudAtt("AvailabilityZone")
	NetworkAttCIDRBlock                           = cloudz.CloudAtt("CidrBlock")
	NetworkAttCIDRBlockAssociations               = cloudz.CloudAtt("CidrBlockAssociations")
	NetworkAttDefaultNetworkACL                   = cloudz.CloudAtt("DefaultNetworkAcl")
	NetworkAttDefaultSecurityGroup                = cloudz.CloudAtt("DefaultSecurityGroup")
	NetworkAttGroupID                             = cloudz.CloudAtt("GroupId")
	NetworkAttID                                  = cloudz.CloudAtt("Id")
	NetworkAttIPv6CIDRBlocks                      = cloudz.CloudAtt("Ipv6CidrBlocks")
	NetworkAttInternetGatewayID                   = cloudz.CloudAtt("InternetGatewayId")
	NetworkAttNetworkACLAssociationID             = cloudz.CloudAtt("NetworkAclAssociationId")
	NetworkAttOutpostARN                          = cloudz.CloudAtt("OutpostArn")
	NetworkAttRouteTableID                        = cloudz.CloudAtt("RouteTableId")
	NetworkAttSubnetID                            = cloudz.CloudAtt("SubnetId")
	NetworkAttVPCID                               = cloudz.CloudAtt("VpcId")

	CIDRAllDestinations = "10.0.0.0/0"
	CIDRVPC             = "10.0.0.0/16"
	CIDRSubnetPublicA   = "10.0.0.0/19"
	CIDRSubnetPublicB   = "10.0.32.0/19"
	CIDRSubnetPrivateA  = "10.0.64.0/19"
	CIDRSubnetPrivateB  = "10.0.96.0/19"
)

Network constants.

View Source
const (
	PostgresPluginDisplayName   = "Postgres"
	PostgresPluginName          = "postgres"
	PostgresRefDBParameterGroup = cloudz.CloudRef("pg")
	PostgresRefDBSubnetGroup    = cloudz.CloudRef("sg")
	PostgresRefLogGroup         = cloudz.CloudRef("lg")
	PostgresRefRoleMonitoring   = cloudz.CloudRef("r-mon")
	PostgresRefDBInstance       = cloudz.CloudRef("i")
	PostgresAttARN              = cloudz.CloudAtt("Arn")
	PostgresAttRoleID           = cloudz.CloudAtt("RoleId")
	PostgresAttEndpointAddress  = cloudz.CloudAtt("Endpoint.Address")
	PostgresAttEndpointPort     = cloudz.CloudAtt("Endpoint.Port")
)

Postgres constants.

View Source
const (
	PostgresProxyPluginDisplayName     = "PostgresProxy"
	PostgresProxyPluginName            = "postgres-proxy"
	PostgresProxyRefSecret             = cloudz.CloudRef("s")
	PostgresProxyRefRole               = cloudz.CloudRef("r")
	PostgresProxyRefLogGroup           = cloudz.CloudRef("lg")
	PostgresProxyRefDBProxy            = cloudz.CloudRef("p")
	PostgresProxyRefDBProxyTargetGroup = cloudz.CloudRef("tg")
	PostgresProxyAttARN                = cloudz.CloudAtt("Arn")
	PostgresProxyAttRoleID             = cloudz.CloudAtt("RoleId")
	PostgresProxyAttDBProxyARN         = cloudz.CloudAtt("DBProxyArn")
	PostgresProxyAttEndpoint           = cloudz.CloudAtt("Endpoint")
	PostgresProxyAttTargetGroupARN     = cloudz.CloudAtt("TargetGroupArn")
)

Postgres proxy constants.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API interface {
	cloudz.Plugin
	GetConfig() *APIConfig
	GetLocalMetadata() *APILocalMetadata
	GetCloudMetadata() *APICloudMetadata
}

API describes an api.

func NewAPI

func NewAPI(cfgFunc APIConfigFunc, deps *APIDependencies) API

NewAPI initializes a new API.

type APICloudMetadata

type APICloudMetadata struct {
	Exports cloudz.CloudExports
	// contains filtered or unexported fields
}

APICloudMetadata describes the api cloud metadata.

func (*APICloudMetadata) GetURL

func (m *APICloudMetadata) GetURL() *url.URL

GetURL returns the API base URL.

type APIConfig

type APIConfig struct {
	Stage     cloudz.Stage `validate:"required"`
	Name      string       `validate:"required,resource-name"`
	RouteKeys []string     `validate:"required"`
	Local     *APIConfigLocal
	Cloud     *APIConfigCloud
}

APIConfig describes the api config.

func (*APIConfig) MustValidate

func (c *APIConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the api config.

type APIConfigCloud

type APIConfigCloud struct {
	DomainName string `validate:"required,fqdn"`
	CORSDomain string `validate:"required,fqdn"`
}

APIConfigCloud describes part of the api config.

type APIConfigFunc

type APIConfigFunc func(cloudz.Stage, *APIDependencies) *APIConfig

APIConfigFunc returns the api config for a given Stage.

type APIConfigLocal

type APIConfigLocal struct {
	ExternalPort uint16 `validate:"required"`
}

APIConfigLocal describes part of the api config.

type APIDependencies

type APIDependencies struct {
	Certificate       Certificate `validate:"required"`
	Function          Function    `validate:"required"`
	OtherDependencies cloudz.OtherDependencies
}

APIDependencies describes the api dependencies.

func (*APIDependencies) MustValidate

func (d *APIDependencies) MustValidate()

MustValidate validates the function dependencies.

type APILocalMetadata

type APILocalMetadata struct {
	ExternalURL *url.URL
	InternalURL *url.URL
}

APILocalMetadata describes the api local metadata.

type Bucket

type Bucket interface {
	cloudz.Plugin
	GetConfig() *BucketConfig
	GetLocalMetadata() *BucketLocalMetadata
	GetCloudMetadata() *BucketCloudMetadata
}

Bucket describes a bucket.

func NewBucket

func NewBucket(cfgFunc BucketConfigFunc, deps *BucketDependencies) Bucket

NewBucket initializes a new Bucket.

type BucketCloudMetadata

type BucketCloudMetadata struct {
	Exports cloudz.CloudExports
	// contains filtered or unexported fields
}

BucketCloudMetadata describes the bucket cloud metadata.

func (*BucketCloudMetadata) GetName

func (m *BucketCloudMetadata) GetName() string

GetName returns the bucket name.

func (*BucketCloudMetadata) GetURL

func (m *BucketCloudMetadata) GetURL() *url.URL

GetURL returns the regional bucket URL.

type BucketConfig

type BucketConfig struct {
	Stage                 cloudz.Stage `validate:"required"`
	Name                  string       `validate:"required,resource-name"`
	IsPublicAccessEnabled bool
	Local                 *BucketConfigLocal
	Cloud                 *BucketConfigCloud
}

BucketConfig describes the bucket config.

func (*BucketConfig) MustValidate

func (c *BucketConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the bucket config.

type BucketConfigCloud

type BucketConfigCloud struct {
	IsVersioningEnabled                   bool
	DeleteObjectsAfterDays                *uint16
	DeletePreviousObjectVersionsAfterDays *uint16
}

BucketConfigCloud describes part of the bucket config.

type BucketConfigFunc

type BucketConfigFunc func(cloudz.Stage, *BucketDependencies) *BucketConfig

BucketConfigFunc returns the bucket config for a given Stage.

type BucketConfigLocal

type BucketConfigLocal struct {
	ExternalPort uint16 `validate:"required"`
}

BucketConfigLocal describes part of the bucket config.

type BucketDependencies

type BucketDependencies struct {
	OtherDependencies cloudz.OtherDependencies
}

BucketDependencies describes the bucket dependencies.

func (*BucketDependencies) MustValidate

func (d *BucketDependencies) MustValidate()

MustValidate validates the bucket dependencies.

type BucketLocalMetadata

type BucketLocalMetadata struct {
	ContainerName string
	BucketName    string
	AccessKey     string
	SecretKey     string
	ExternalURL   *url.URL
	InternalURL   *url.URL
}

BucketLocalMetadata describes the bucket local metadata.

type Certificate

type Certificate interface {
	cloudz.Plugin
	GetConfig() *CertificateConfig
	GetCloudMetadata() *CertificateCloudMetadata
}

Certificate describes a certificate.

func NewCertificate

func NewCertificate(cfgFunc CertificateConfigFunc, deps *CertificateDependencies) Certificate

NewCertificate initializes a new Certificate.

type CertificateCloudMetadata

type CertificateCloudMetadata struct {
	Exports cloudz.CloudExports
}

CertificateCloudMetadata describes the certificate cloud metadata.

func (*CertificateCloudMetadata) GetARN

func (m *CertificateCloudMetadata) GetARN() string

GetARN returns the certificate ARN.

type CertificateConfig

type CertificateConfig struct {
	Stage cloudz.Stage `validate:"required"`
	Name  string       `validate:"required,resource-name"`
	Cloud *CertificateConfigCloud
}

CertificateConfig describes the certificate config.

func (*CertificateConfig) MustValidate

func (c *CertificateConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the certificate config.

type CertificateConfigCloud

type CertificateConfigCloud struct {
	DomainName   string `validate:"required"`
	HostedZoneID string `validate:"required"`
}

CertificateConfigCloud describes part of the certificate config.

type CertificateConfigFunc

type CertificateConfigFunc func(cloudz.Stage, *CertificateDependencies) *CertificateConfig

CertificateConfigFunc returns the certificate for a given Stage.

type CertificateDependencies

type CertificateDependencies struct {
	OtherDependencies cloudz.OtherDependencies
}

CertificateDependencies describes the certificate dependencies.

func (*CertificateDependencies) MustValidate

func (d *CertificateDependencies) MustValidate()

MustValidate validates the certificate dependencies.

type Function

type Function interface {
	cloudz.Plugin
	GetConfig() *FunctionConfig
	GetDependencies() *FunctionDependencies
	GetLocalMetadata() *FunctionLocalMetadata
	GetCloudMetadata() *FunctionCloudMetadata
}

Function describes a function.

func NewFunction

func NewFunction(cfgFunc FunctionConfigFunc, deps *FunctionDependencies) Function

NewFunction initializes a new Function.

type FunctionBuilder

type FunctionBuilder interface {
	GetLocalServiceConfigVolumes(p Function, buildDirPath string) []dctypes.ServiceVolumeConfig
	LocalBeforeDeployHook(p Function, buildDirPath string)
	GetCloudRuntime(p Function) string
	BuildCloudPackage(p Function, buildDirPath string)
}

FunctionBuilder describes a function builder.

func NewGoFunctionBuilder

func NewGoFunctionBuilder(workDirPath, packageName string, injectValues map[string]string) FunctionBuilder

NewGoFunctionBuilder initializes a new Go function builder.

type FunctionCloudMetadata

type FunctionCloudMetadata struct {
	Exports cloudz.CloudExports
}

FunctionCloudMetadata describes the function cloud metadata.

func (*FunctionCloudMetadata) GetARN

func (m *FunctionCloudMetadata) GetARN() string

GetARN returns the function ARN.

func (*FunctionCloudMetadata) GetName

func (m *FunctionCloudMetadata) GetName() string

GetName returns the function name.

type FunctionConfig

type FunctionConfig struct {
	Stage          cloudz.Stage    `validate:"required"`
	Name           string          `validate:"required"`
	Builder        FunctionBuilder `validate:"required"`
	TimeoutSeconds uint16          `validate:"required"`
	Environment    map[string]string
	Local          *FunctionConfigLocal
	Cloud          *FunctionConfigCloud
}

FunctionConfig describes the function config.

func (*FunctionConfig) MustValidate

func (c *FunctionConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the function config.

type FunctionConfigCloud

type FunctionConfigCloud struct {
	Memory       int `validate:"required"`
	RolePolicies []goiam.Role_Policy
}

FunctionConfigCloud describes part of the function config.

type FunctionConfigFunc

type FunctionConfigFunc func(cloudz.Stage, *FunctionDependencies) *FunctionConfig

FunctionConfigFunc returns the function config for a given Stage.

type FunctionConfigLocal

type FunctionConfigLocal struct {
	ExternalPort uint16
}

FunctionConfigLocal describes part of the function config.

type FunctionDependencies

type FunctionDependencies struct {
	ArtifactsBucket   Bucket `validate:"required"`
	Network           Network
	OtherDependencies cloudz.OtherDependencies
}

FunctionDependencies describes the function dependencies.

func (*FunctionDependencies) MustValidate

func (d *FunctionDependencies) MustValidate()

MustValidate validates the function dependencies.

type FunctionLocalMetadata

type FunctionLocalMetadata struct {
	ExternalURL *url.URL
	InternalURL *url.URL
}

FunctionLocalMetadata describes the function local metadata.

type Hasura

type Hasura interface {
	cloudz.Plugin
	GetConfig() *HasuraConfig
	GetDependencies() *HasuraDependencies
	GetLocalMetadata() *HasuraLocalMetadata
	GetCloudMetadata() *HasuraCloudMetadata
	ApplyLocalMetadata()
}

Hasura describes a hasura.

func NewHasura

func NewHasura(cfgFunc HasuraConfigFunc, deps *HasuraDependencies) Hasura

NewHasura initializes a new Hasura.

type HasuraCloudMetadata

type HasuraCloudMetadata struct {
	Exports cloudz.CloudExports
	// contains filtered or unexported fields
}

HasuraCloudMetadata describes the hasura cloud metadata.

func (*HasuraCloudMetadata) GetURL

func (m *HasuraCloudMetadata) GetURL() *url.URL

GetURL returns the graphql API URL.

type HasuraConfig

type HasuraConfig struct {
	Stage            cloudz.Stage `validate:"required"`
	UnauthorizedRole *string
	JWT              *HasuraConfigJWT `validate:"required"`
	Environment      map[string]string
	Local            *HasuraConfigLocal
	Cloud            *HasuraConfigCloud
}

HasuraConfig describes the hasura config.

func (*HasuraConfig) MustValidate

func (c *HasuraConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the hasura config.

type HasuraConfigCloud

type HasuraConfigCloud struct {
	DomainName      string `validate:"required"`
	Replicas        int    `validate:"required"`
	CPU             int    `validate:"required"`
	Memory          int    `validate:"required"`
	AdminSecret     string `validate:"required,min=16"`
	CORSDomain      *string
	EnableAllowList bool
}

HasuraConfigCloud describes part of the hasura config.

type HasuraConfigFunc

type HasuraConfigFunc func(cloudz.Stage, *HasuraDependencies) *HasuraConfig

HasuraConfigFunc returns the hasura config for a given Stage.

type HasuraConfigJWT

type HasuraConfigJWT struct {
	PublicKey *rsa.PublicKey `validate:"required"`
	Issuer    string         `validate:"required"`
	Audience  string         `validate:"required"`
}

HasuraConfigJWT describes part of the hasura config.

type HasuraConfigLocal

type HasuraConfigLocal struct {
	ExternalPort           uint16 `validate:"required"`
	ConsoleExternalPort    uint16 `validate:"required"`
	ConsoleAPIExternalPort uint16 `validate:"required"`
	EnableAllowList        bool
}

HasuraConfigLocal describes part of the hasura config.

type HasuraDependencies

type HasuraDependencies struct {
	Certificate       Certificate     `validate:"required"`
	ImageRepository   ImageRepository `validate:"required"`
	LoadBalancer      LoadBalancer    `validate:"required"`
	Network           Network         `validate:"required"`
	Postgres          Postgres        `validate:"required"`
	OtherDependencies cloudz.OtherDependencies
}

HasuraDependencies describes the hasura dependencies.

func (*HasuraDependencies) MustValidate

func (d *HasuraDependencies) MustValidate()

MustValidate validates the hasura dependencies.

type HasuraLocalMetadata

type HasuraLocalMetadata struct {
	ContainerName        string
	ConsoleContainerName string
	ExternalURL          *url.URL
	InternalURL          *url.URL
}

HasuraLocalMetadata describes the hasura local metadata.

type ImageRepository

type ImageRepository interface {
	cloudz.Plugin
	GetConfig() *ImageRepositoryConfig
	GetLocalMetadata() *ImageRepositoryLocalMetadata
	GetCloudMetadata() *ImageRepositoryCloudMetadata
}

ImageRepository describes an image repository.

func NewImageRepository

NewImageRepository initializes a new ImageRepository.

type ImageRepositoryCloudMetadata

type ImageRepositoryCloudMetadata struct {
	Exports cloudz.CloudExports
}

ImageRepositoryCloudMetadata describes the image repository cloud metadata.

func (*ImageRepositoryCloudMetadata) GetImageName

func (m *ImageRepositoryCloudMetadata) GetImageName() string

GetImageName returns the image name.

type ImageRepositoryConfig

type ImageRepositoryConfig struct {
	Stage cloudz.Stage `validate:"required"`
	Name  string       `validate:"required,resource-name"`
	Cloud *ImageRepositoryConfigCloud
}

ImageRepositoryConfig describes the image repository config.

func (*ImageRepositoryConfig) MustValidate

func (c *ImageRepositoryConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the image repository config.

type ImageRepositoryConfigCloud

type ImageRepositoryConfigCloud struct {
	IsScanOnPushEnabled  bool
	AreTagsMutable       bool
	TaggedImagesPolicy   *ImageRepositoryConfigTaggedImagesPolicy
	UntaggedImagesPolicy *ImageRepositoryConfigUntaggedImagesPolicy
}

ImageRepositoryConfigCloud describes part of the image repository config.

type ImageRepositoryConfigFunc

type ImageRepositoryConfigFunc func(cloudz.Stage, *ImageRepositoryDependencies) *ImageRepositoryConfig

ImageRepositoryConfigFunc returns the image repository config for a given Stage.

type ImageRepositoryConfigTaggedImagesPolicy

type ImageRepositoryConfigTaggedImagesPolicy struct {
	TagPrefixes  []string `validate:"required"`
	MaximumCount int      `validate:"required"`
}

ImageRepositoryConfigTaggedImagesPolicy describes part of the image repository config.

type ImageRepositoryConfigUntaggedImagesPolicy

type ImageRepositoryConfigUntaggedImagesPolicy struct {
	DeleteAfterDays int `validate:"required"`
}

ImageRepositoryConfigUntaggedImagesPolicy describes part of the image repository config.

type ImageRepositoryDependencies

type ImageRepositoryDependencies struct {
	OtherDependencies cloudz.OtherDependencies
}

ImageRepositoryDependencies describes the image repository dependencies.

func (*ImageRepositoryDependencies) MustValidate

func (d *ImageRepositoryDependencies) MustValidate()

MustValidate validates the image repository dependencies.

type ImageRepositoryLocalMetadata

type ImageRepositoryLocalMetadata struct {
	ImageName string
}

ImageRepositoryLocalMetadata describes the image repository local metadata.

type LoadBalancer

type LoadBalancer interface {
	cloudz.Plugin
	GetConfig() *LoadBalancerConfig
	GetDependencies() *LoadBalancerDependencies
	GetCloudMetadata() *LoadBalancerCloudMetadata
}

LoadBalancer describes a load balancer.

func NewLoadBalancer

func NewLoadBalancer(cfgFunc LoadBalancerConfigFunc, deps *LoadBalancerDependencies) LoadBalancer

NewLoadBalancer initializes a new LoadBalancer.

type LoadBalancerCloudMetadata

type LoadBalancerCloudMetadata struct {
	Exports cloudz.CloudExports
}

LoadBalancerCloudMetadata describes the load balancer cloud metadata.

type LoadBalancerConfig

type LoadBalancerConfig struct {
	Stage cloudz.Stage `validate:"required"`
}

LoadBalancerConfig describes the load balancer config.

func (*LoadBalancerConfig) MustValidate

func (c *LoadBalancerConfig) MustValidate(_ cloudz.StageTarget)

MustValidate validates the load balancer config.

type LoadBalancerConfigFunc

type LoadBalancerConfigFunc func(cloudz.Stage, *LoadBalancerDependencies) *LoadBalancerConfig

LoadBalancerConfigFunc returns the load balancer config for a given Stage.

type LoadBalancerDependencies

type LoadBalancerDependencies struct {
	Certificate       Certificate `validate:"required"`
	Network           Network     `validate:"required"`
	OtherDependencies cloudz.OtherDependencies
}

LoadBalancerDependencies describes the load balancer dependencies.

func (*LoadBalancerDependencies) MustValidate

func (d *LoadBalancerDependencies) MustValidate()

MustValidate validates the load balancer dependencies.

type Mailer

type Mailer interface {
	cloudz.Plugin
	GetConfig() *MailerConfig
	GetDependencies() *MailerDependencies
	GetLocalMetadata() *MailerLocalMetadata
}

Mailer describes a mailer.

func NewMailer

func NewMailer(cfgFunc MailerConfigFunc, deps *MailerDependencies) Mailer

NewMailer initializes a new Mailer.

type MailerConfig

type MailerConfig struct {
	Stage cloudz.Stage `validate:"required"`
	Local *MailerConfigLocal
}

MailerConfig describes the mailer config.

func (*MailerConfig) MustValidate

func (c *MailerConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the mailer config.

type MailerConfigFunc

type MailerConfigFunc func(cloudz.Stage, *MailerDependencies) *MailerConfig

MailerConfigFunc returns the mailer config for a given Stage.

type MailerConfigLocal

type MailerConfigLocal struct {
	ExternalPort     uint16 `validate:"required"`
	SMTPExternalPort uint16 `validate:"required"`
}

MailerConfigLocal describes part of the mailer config.

type MailerDependencies

type MailerDependencies struct {
	OtherDependencies cloudz.OtherDependencies
}

MailerDependencies describes the mailer dependencies.

func (*MailerDependencies) MustValidate

func (d *MailerDependencies) MustValidate()

MustValidate validates the mailer dependencies.

type MailerLocalMetadata

type MailerLocalMetadata struct {
	ContainerName string
	ExternalURL   *url.URL
	InternalURL   *url.URL
	ExternalSMTP  *MailerLocalMetadataSMTP
	InternalSMTP  *MailerLocalMetadataSMTP
}

MailerLocalMetadata describes the mailer local metadata.

type MailerLocalMetadataSMTP

type MailerLocalMetadataSMTP struct {
	Username string
	Password string
	Host     string
	Port     uint16
}

MailerLocalMetadataSMTP describes part of the mailer local metadata.

type Network

type Network interface {
	cloudz.Plugin
	GetConfig() *NetworkConfig
	GetCloudMetadata() *NetworkCloudMetadata
}

Network describes a network.

func NewNetwork

func NewNetwork(cfgFunc NetworkConfigFunc, deps *NetworkDependencies) Network

NewNetwork initializes a new Network.

type NetworkCloudMetadata

type NetworkCloudMetadata struct {
	Exports cloudz.CloudExports
}

NetworkCloudMetadata describes the network cloud metadata.

type NetworkConfig

type NetworkConfig struct {
	Stage cloudz.Stage `validate:"required"`
}

NetworkConfig describes the network config.

func (*NetworkConfig) MustValidate

func (c *NetworkConfig) MustValidate(_ cloudz.StageTarget)

MustValidate validates the network config.

type NetworkConfigFunc

type NetworkConfigFunc func(cloudz.Stage, *NetworkDependencies) *NetworkConfig

NetworkConfigFunc returns the network config for a given Stage.

type NetworkDependencies

type NetworkDependencies struct {
	OtherDependencies cloudz.OtherDependencies
}

NetworkDependencies describes the network dependencies.

func (*NetworkDependencies) MustValidate

func (d *NetworkDependencies) MustValidate()

MustValidate validates the network dependencies.

type Postgres

type Postgres interface {
	cloudz.Plugin
	GetConfig() *PostgresConfig
	GetDependencies() *PostgresDependencies
	GetLocalMetadata() *PostgresLocalMetadata
	GetCloudMetadata() *PostgresCloudMetadata
}

Postgres describes a postgres.

func NewPostgres

func NewPostgres(cfgFunc PostgresConfigFunc, deps *PostgresDependencies) Postgres

NewPostgres initializes a new Postgres.

type PostgresCloudMetadata

type PostgresCloudMetadata struct {
	Exports cloudz.CloudExports
	// contains filtered or unexported fields
}

PostgresCloudMetadata describes the postgres cloud metadata.

func (*PostgresCloudMetadata) GetURL

func (m *PostgresCloudMetadata) GetURL() string

GetURL returns the postgres URL.

type PostgresConfig

type PostgresConfig struct {
	Stage cloudz.Stage `validate:"required"`
	Local *PostgresConfigLocal
	Cloud *PostgresConfigCloud
}

PostgresConfig describes the postgres config.

func (*PostgresConfig) MustValidate

func (c *PostgresConfig) MustValidate(stageTarget cloudz.StageTarget)

MustValidate validates the postgres config.

type PostgresConfigCloud

type PostgresConfigCloud struct {
	Password            string `validate:"required,min=16"`
	AllocatedStorageGBs int    `validate:"required,min=5"`
	InstanceClass       string `validate:"required"`
}

PostgresConfigCloud describes part of the postgres config.

type PostgresConfigFunc

type PostgresConfigFunc func(cloudz.Stage, *PostgresDependencies) *PostgresConfig

PostgresConfigFunc returns the postgres config for a given Stage.

type PostgresConfigLocal

type PostgresConfigLocal struct {
	ExternalPort      uint16 `validate:"required"`
	AdminExternalPort uint16 `validate:"required"`
}

PostgresConfigLocal describes part of the postgres config.

type PostgresDependencies

type PostgresDependencies struct {
	Network           Network `validate:"required"`
	OtherDependencies cloudz.OtherDependencies
}

PostgresDependencies describes the postgres dependencies.

func (*PostgresDependencies) MustValidate

func (d *PostgresDependencies) MustValidate()

MustValidate validates the postgres dependencies.

type PostgresLocalMetadata

type PostgresLocalMetadata struct {
	ContainerName    string
	ExternalURL      *url.URL
	InternalURL      *url.URL
	AdminExternalURL *url.URL
}

PostgresLocalMetadata describes the postgres local metadata.

type PostgresProxy

type PostgresProxy interface {
	cloudz.Plugin
	GetConfig() *PostgresProxyConfig
	GetCloudMetadata() *PostgresProxyCloudMetadata
}

PostgresProxy describes a postgres proxy.

func NewPostgresProxy

func NewPostgresProxy(cfgFunc PostgresProxyConfigFunc, deps *PostgresProxyDependencies) PostgresProxy

NewPostgresProxy initializes a new PostgresProxy.

type PostgresProxyCloudMetadata

type PostgresProxyCloudMetadata struct {
	Exports cloudz.CloudExports
}

PostgresProxyCloudMetadata describes the postgres proxy cloud metadata.

type PostgresProxyConfig

type PostgresProxyConfig struct {
	Stage cloudz.Stage `validate:"required"`
}

PostgresProxyConfig describes the postgres proxy config.

func (*PostgresProxyConfig) MustValidate

func (c *PostgresProxyConfig) MustValidate(_ cloudz.StageTarget)

MustValidate validates the postgres proxy config.

type PostgresProxyConfigFunc

type PostgresProxyConfigFunc func(cloudz.Stage, *PostgresProxyDependencies) *PostgresProxyConfig

PostgresProxyConfigFunc returns the postgres proxy config for a given Stage.

type PostgresProxyDependencies

type PostgresProxyDependencies struct {
	Network           Network  `validate:"required"`
	Postgres          Postgres `validate:"required"`
	OtherDependencies []cloudz.Plugin
}

PostgresProxyDependencies describes the postgres proxy dependencies.

func (*PostgresProxyDependencies) MustValidate

func (d *PostgresProxyDependencies) MustValidate()

MustValidate validates the postgres proxy dependencies.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL