Documentation
¶
Index ¶
- type AppConfig
- func (a AppConfig) GetDevelopmentDependencyNames() []string
- func (a AppConfig) GetProductionDependencyNames() []string
- func (a AppConfig) GetServiceData() map[string]ServiceData
- func (a AppConfig) GetServiceNames() []string
- func (a AppConfig) GetServiceProtectionLevels() map[string]string
- func (a AppConfig) GetSilencedDevelopmentDependencyNames() []string
- func (a AppConfig) GetSilencedServiceNames() []string
- func (a AppConfig) VerifyServiceDoesNotExist(serviceRole string) error
- type AppDevelopmentConfig
- type AppProductionConfig
- type AwsConfig
- type DeployConfig
- type DevelopmentDependencyConfig
- type DevelopmentDependencyConfigOptions
- type DockerCompose
- type DockerConfig
- type DockerConfigs
- type EnvVars
- type MessageTranslation
- type ProductionDependencyConfig
- type ProductionDependencyConfigOptions
- type RdsConfig
- type Secrets
- type ServiceConfig
- type ServiceData
- type ServiceDevelopmentConfig
- type ServiceMessages
- type ServiceProductionConfig
- type Services
- type ShutdownConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppConfig ¶
type AppConfig struct {
Name string
Description string
Version string
Development AppDevelopmentConfig `yaml:",omitempty"`
Production AppProductionConfig `yaml:",omitempty"`
Services Services
Templates map[string]string `yaml:",omitempty"`
}
AppConfig represents the configuration of an application
func NewAppConfig ¶
NewAppConfig reads application.yml and returns the appConfig object
func (AppConfig) GetDevelopmentDependencyNames ¶ added in v0.26.0
GetDevelopmentDependencyNames returns the names of all dev dependencies listed in appConfig
func (AppConfig) GetProductionDependencyNames ¶ added in v0.26.0
GetProductionDependencyNames returns the names of all prod dependencies listed in appConfig
func (AppConfig) GetServiceData ¶
func (a AppConfig) GetServiceData() map[string]ServiceData
GetServiceData returns the configurations data for the given services
func (AppConfig) GetServiceNames ¶
GetServiceNames returns the service names for the given services
func (AppConfig) GetServiceProtectionLevels ¶
GetServiceProtectionLevels returns a map containing service names to their protection level
func (AppConfig) GetSilencedDevelopmentDependencyNames ¶ added in v0.26.0
GetSilencedDevelopmentDependencyNames returns the names of development dependencies that are configured as silent
func (AppConfig) GetSilencedServiceNames ¶
GetSilencedServiceNames returns the names of services that are configured as silent
func (AppConfig) VerifyServiceDoesNotExist ¶
VerifyServiceDoesNotExist returns an error if the service serviceRole already exists in existingServices, and return nil otherwise.
type AppDevelopmentConfig ¶ added in v0.26.0
type AppDevelopmentConfig struct {
Dependencies []DevelopmentDependencyConfig
}
AppDevelopmentConfig represents development specific configuration for an application
type AppProductionConfig ¶ added in v0.26.0
type AppProductionConfig struct {
Dependencies []ProductionDependencyConfig
URL string `yaml:",omitempty"`
Region string `yaml:",omitempty"`
AccountID string `yaml:"account-id,omitempty"`
SslCertificateArn string `yaml:"ssl-certificate-arn,omitempty"`
}
AppProductionConfig represents production specific configuration for an application
func (AppProductionConfig) ValidateFields ¶ added in v0.26.0
func (p AppProductionConfig) ValidateFields() error
ValidateFields validates that the production section contiains the required fields
type AwsConfig ¶
type AwsConfig struct {
Region string
AccountID string
SslCertificateArn string
Profile string
CredentialsFile string
SecretsBucket string
TerraformStateBucket string
TerraformLockTable string
}
AwsConfig contains top level information about an application's AWS account
type DeployConfig ¶
type DeployConfig struct {
AppConfig AppConfig
ServiceConfigs map[string]ServiceConfig
LogChannel chan string
AppDir string
HomeDir string
DockerComposeProjectName string
TerraformDir string
SecretsPath string
AwsConfig AwsConfig
}
DeployConfig contains information needed for deployment
type DevelopmentDependencyConfig ¶ added in v0.26.0
type DevelopmentDependencyConfig struct {
Config DevelopmentDependencyConfigOptions `yaml:",omitempty"`
Silent bool `yaml:",omitempty"`
Name string
Version string
}
DevelopmentDependencyConfig represents a development dependency
type DevelopmentDependencyConfigOptions ¶ added in v0.26.0
type DevelopmentDependencyConfigOptions struct {
Ports []string `yaml:",omitempty"`
Volumes []string `yaml:",omitempty"`
OnlineText string `yaml:"online-text,omitempty"`
DependencyEnvironment map[string]string `yaml:"dependency-environment,omitempty"`
ServiceEnvironment map[string]string `yaml:"service-environment,omitempty"`
}
DevelopmentDependencyConfigOptions represents the configuration of a dependency
func (*DevelopmentDependencyConfigOptions) IsEmpty ¶ added in v0.26.0
func (d *DevelopmentDependencyConfigOptions) IsEmpty() bool
IsEmpty returns true if the given dependencyConfig object is empty
type DockerCompose ¶
type DockerCompose struct {
Version string
Services DockerConfigs
}
DockerCompose represents the docker compose object
type DockerConfig ¶
type DockerConfig struct {
Image string `yaml:",omitempty"`
Build map[string]string `yaml:",omitempty"`
Command string `yaml:",omitempty"`
ContainerName string `yaml:"container_name,omitempty"`
Ports []string `yaml:",omitempty"`
Volumes []string `yaml:",omitempty"`
Links []string `yaml:",omitempty"`
Environment map[string]string `yaml:",omitempty"`
DependsOn []string `yaml:"depends_on,omitempty"`
}
DockerConfig represents the configuration of a service/dependency as provided in docker-compose.yml
type DockerConfigs ¶
type DockerConfigs map[string]DockerConfig
DockerConfigs represents a map of DockerConfig structs
func (DockerConfigs) Merge ¶
func (d DockerConfigs) Merge(maps ...DockerConfigs) DockerConfigs
Merge joins the given docker config maps into one
type EnvVars ¶
type EnvVars struct {
Default map[string]string `yaml:",omitempty"`
Development map[string]string `yaml:",omitempty"`
Production map[string]string `yaml:",omitempty"`
Secrets []string `yaml:",omitempty"`
}
EnvVars is the environment key listed in a ServiceConfig
type MessageTranslation ¶
MessageTranslation is the mapping from public to internal message names
type ProductionDependencyConfig ¶ added in v0.26.0
type ProductionDependencyConfig struct {
Config ProductionDependencyConfigOptions `yaml:",omitempty"`
Name string
Version string
}
ProductionDependencyConfig represents a production dependency
type ProductionDependencyConfigOptions ¶ added in v0.26.0
type ProductionDependencyConfigOptions struct {
Rds RdsConfig `yaml:",omitempty"`
}
ProductionDependencyConfigOptions represents the configuration of a development dependency
func (*ProductionDependencyConfigOptions) IsEmpty ¶ added in v0.26.0
func (d *ProductionDependencyConfigOptions) IsEmpty() bool
IsEmpty returns true if the given config object is empty
type RdsConfig ¶ added in v0.26.1
type RdsConfig struct {
AllocatedStorage string `yaml:"allocated-storage,omitempty"`
InstanceClass string `yaml:"instance-class,omitempty"`
DbName string `yaml:"db-name,omitempty"`
Username string `yaml:",omitempty"`
PasswordEnvVar string `yaml:"password-env-var,omitempty"` //TODO: verify this is set via exo configure
StorageType string `yaml:"storage-type,omitempty"`
}
RdsConfig holds configuration fields for an rds dependency
type Secrets ¶
Secrets map contains maps from secret keys to values
type ServiceConfig ¶
type ServiceConfig struct {
Type string `yaml:",omitempty"`
Description string `yaml:",omitempty"`
Author string `yaml:",omitempty"`
Startup map[string]string `yaml:",omitempty"`
Restart map[string]interface{} `yaml:",omitempty"`
ServiceMessages `yaml:"messages,omitempty"`
Docker DockerConfig `yaml:",omitempty"`
Environment EnvVars `yaml:",omitempty"`
Development ServiceDevelopmentConfig `yaml:",omitempty"`
Production ServiceProductionConfig `yaml:",omitempty"`
}
ServiceConfig represents the configuration of a service as provided in service.yml
func (ServiceConfig) GetEnvVars ¶
func (s ServiceConfig) GetEnvVars(environment string) (map[string]string, []string)
GetEnvVars compiles a service's environment variables It overwrites default variables with environemnt specific ones, returning a map of public env vars and a list of private env var keys
type ServiceData ¶
type ServiceData struct {
Location string `yaml:",omitempty"`
DockerImage string `yaml:"docker-image,omitempty"`
MessageTranslations []MessageTranslation `yaml:"message-translation,omitempty"`
Silent bool `yaml:",omitempty"`
}
ServiceData represents the service info as provided in application.yml
type ServiceDevelopmentConfig ¶ added in v0.26.0
type ServiceDevelopmentConfig struct {
Dependencies []DevelopmentDependencyConfig
Scripts map[string]string `yaml:",omitempty"`
}
ServiceDevelopmentConfig represents development specific configuration for a service
type ServiceMessages ¶
ServiceMessages represents the messages that the service sends and receives
type ServiceProductionConfig ¶ added in v0.26.0
type ServiceProductionConfig struct {
Dependencies []ProductionDependencyConfig
URL string `yaml:"url,omitempty"`
CPU string `yaml:"cpu,omitempty"`
Memory string `yaml:"memory,omitempty"`
PublicPort string `yaml:"public-port,omitempty"`
HealthCheck string `yaml:"health-check,omitempty"`
}
ServiceProductionConfig represents production specific configuration for an application
func (ServiceProductionConfig) ValidateFields ¶ added in v0.26.0
func (p ServiceProductionConfig) ValidateFields(serviceLocation, protectionLevel string) error
ValidateFields validates that service.yml contiains the required fields
type Services ¶
type Services struct {
Public map[string]ServiceData
Private map[string]ServiceData
Worker map[string]ServiceData
}
Services represents the mapping of protection level to services
type ShutdownConfig ¶
ShutdownConfig represents the configuration to use when shutting down an application
Source Files
¶
- app_config.go
- app_development_config.go
- app_production_config.go
- aws_config.go
- deploy_config.go
- development_dependency_config.go
- development_dependency_config_options.go
- docker_compose.go
- docker_config.go
- docker_configs.go
- env_vars.go
- message_translation.go
- production_dependency_config.go
- production_dependency_config_options.go
- rds_config.go
- secrets.go
- service_config.go
- service_data.go
- service_development_config.go
- service_messages.go
- service_production_config.go
- services.go
- shutdown_config.go