conf

package
v3.0.3+incompatible Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2016 License: Apache-2.0 Imports: 11 Imported by: 7

README

conf

Why not call this thing config? Because you end up calling your variables something weird like cfg or conf.

It's better to have an abbreviated package name than abbreviated variables.

Documentation

Overview

Changing configuration fields or semantics? Make sure to update commands/help/files/config.go as well

  • Copyright 2016 Adobe Systems Incorporated. All rights reserved.

  • This file is licensed to you under the Apache License, Version 2.0 (the "License");

  • you may not use this file except in compliance with the License. You may obtain a copy

  • of the License at http://www.apache.org/licenses/LICENSE-2.0 *

  • Unless required by applicable law or agreed to in writing, software distributed under

  • the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS

  • OF ANY KIND, either express or implied. See the License for the specific language

  • governing permissions and limitations under the License.

  • Copyright 2016 Adobe Systems Incorporated. All rights reserved.

  • This file is licensed to you under the Apache License, Version 2.0 (the "License");

  • you may not use this file except in compliance with the License. You may obtain a copy

  • of the License at http://www.apache.org/licenses/LICENSE-2.0 *

  • Unless required by applicable law or agreed to in writing, software distributed under

  • the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS

  • OF ANY KIND, either express or implied. See the License for the specific language

  • governing permissions and limitations under the License.

  • Copyright 2016 Adobe Systems Incorporated. All rights reserved.

  • This file is licensed to you under the Apache License, Version 2.0 (the "License");

  • you may not use this file except in compliance with the License. You may obtain a copy

  • of the License at http://www.apache.org/licenses/LICENSE-2.0 *

  • Unless required by applicable law or agreed to in writing, software distributed under

  • the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS

  • OF ANY KIND, either express or implied. See the License for the specific language

  • governing permissions and limitations under the License.

Index

Constants

View Source
const (
	Topology_Inet   = "inet"
	Topology_Worker = "worker"
	Topology_Cron   = "cron"
)

Variables

This section is empty.

Functions

func ValidateRegion

func ValidateRegion(region *Region, validateRoleArn bool) error

Types

type AutoScalingGroup

type AutoScalingGroup struct {
	SecurityGroupEgress []SecurityGroupEgress `yaml:"security_group_egress"`
	SecretsExecName     string                `yaml:"secrets_exec_name"`
	SecretsExecArgs     []string              `yaml:"secrets_exec_args"`
}

type AvailabilityZone

type AvailabilityZone struct {
	Name     string `yaml:"name"`
	SubnetID string `yaml:"subnet_id"`
}

type BlackoutWindow

type BlackoutWindow struct {
	StartTime string `yaml:"start_time"`
	EndTime   string `yaml:"end_time"`
}

type Config

type Config struct {
	ServiceName    string `yaml:"service_name"`
	ServiceVersion string
	PorterVersion  string            `yaml:"porter_version"`
	Environments   []*Environment    `yaml:"environments"`
	Slack          Slack             `yaml:"slack"`
	Hooks          map[string][]Hook `yaml:"hooks"`
}

Config supports multi-container deployments

func GetAlteredConfig

func GetAlteredConfig(log log15.Logger) (*Config, bool)

func GetConfig

func GetConfig(log log15.Logger, validate bool) (config *Config, success bool)

func GetStdinConfig

func GetStdinConfig(log log15.Logger) (config *Config, success bool)

func (*Config) GetEnvironment

func (recv *Config) GetEnvironment(envName string) (*Environment, error)

func (*Config) Print

func (recv *Config) Print()

func (*Config) SetDefaults

func (recv *Config) SetDefaults()

Convention over configuration

func (*Config) Validate

func (recv *Config) Validate() (err error)

func (*Config) ValidateEnvironments

func (recv *Config) ValidateEnvironments() error

func (*Config) ValidateHooks

func (recv *Config) ValidateHooks() (err error)

func (*Config) ValidateRegistryConfig

func (recv *Config) ValidateRegistryConfig() error

func (*Config) ValidateTopLevelKeys

func (recv *Config) ValidateTopLevelKeys() error

type Container

type Container struct {
	Name            string `yaml:"name"`
	OriginalName    string
	Topology        string       `yaml:"topology"`
	InetPort        int          `yaml:"inet_port"`
	Uid             *int         `yaml:"uid"`
	ReadOnly        *bool        `yaml:"read_only"`
	Dockerfile      string       `yaml:"dockerfile"`
	DockerfileBuild string       `yaml:"dockerfile_build"`
	HealthCheck     *HealthCheck `yaml:"health_check"`
	SrcEnvFile      *SrcEnvFile  `yaml:"src_env_file"`
}

type ELB

type ELB struct {
	ELBTag string `yaml:"tag"`
	Name   string `yaml:"name"`
}

type Environment

type Environment struct {
	Name                string           `yaml:"name"`
	StackDefinitionPath string           `yaml:"stack_definition_path"`
	RoleARN             string           `yaml:"role_arn"`
	Hotswap             bool             `yaml:"hot_swap"`
	InstanceCount       uint             `yaml:"instance_count"`
	InstanceType        string           `yaml:"instance_type"`
	BlackoutWindows     []BlackoutWindow `yaml:"blackout_windows"`
	Regions             []*Region        `yaml:"regions"`
}

func (*Environment) GetELBForRegion

func (recv *Environment) GetELBForRegion(reg string, elb string) (string, error)

func (*Environment) GetRegion

func (recv *Environment) GetRegion(regionName string) (*Region, error)

func (*Environment) GetRoleARN

func (recv *Environment) GetRoleARN(regionName string) (string, error)

func (*Environment) GetStackDefinitionPath

func (recv *Environment) GetStackDefinitionPath(regionName string) (string, error)

func (*Environment) IsWithinBlackoutWindow

func (recv *Environment) IsWithinBlackoutWindow() error

type HealthCheck

type HealthCheck struct {
	Method string `yaml:"method"`
	Path   string `yaml:"path"`
}

type Hook

type Hook struct {
	Repo         string            `yaml:"repo"`
	Ref          string            `yaml:"ref"`
	Dockerfile   string            `yaml:"dockerfile"`
	Environment  map[string]string `yaml:"environment"`
	Concurrent   bool              `yaml:"concurrent"`
	RunCondition string            `yaml:"run_condition"`
}

type Region

type Region struct {
	Name                string             `yaml:"name"`
	StackDefinitionPath string             `yaml:"stack_definition_path"`
	VpcId               string             `yaml:"vpc_id"`
	AZs                 []AvailabilityZone `yaml:"azs"`
	ELBs                []*ELB             `yaml:"elbs"`
	ELB                 string             `yaml:"elb"`
	RoleARN             string             `yaml:"role_arn"`
	AutoScalingGroup    *AutoScalingGroup  `yaml:"auto_scaling_group"`
	SSLCertARN          string             `yaml:"ssl_cert_arn"`
	HostedZoneName      string             `yaml:"hosted_zone_name"`
	KeyPairName         string             `yaml:"key_pair_name"`
	S3Bucket            string             `yaml:"s3_bucket"`
	SSEKMSKeyId         *string            `yaml:"sse_kms_key_id"`
	Containers          []*Container       `yaml:"containers"`
}

func (*Region) HealthCheckMethod

func (recv *Region) HealthCheckMethod() string

func (*Region) HealthCheckPath

func (recv *Region) HealthCheckPath() string

func (*Region) PrimaryTopology

func (recv *Region) PrimaryTopology() (dominant string)

inet is a superset of worker which are almost identical to cron

func (*Region) ValidateContainers

func (recv *Region) ValidateContainers() error

type SecurityGroupEgress

type SecurityGroupEgress struct {
	CidrIp                     string `yaml:"cidr_ip" json:"CidrIp,omitempty"`
	FromPort                   int    `yaml:"from_port" json:"FromPort"`
	IpProtocol                 string `yaml:"ip_protocol" json:"IpProtocol,omitempty"`
	DestinationSecurityGroupId string `yaml:"destination_security_group_id" json:"DestinationSecurityGroupId,omitempty"`
	ToPort                     int    `yaml:"to_port" json:"ToPort"`
}

type Slack

type Slack struct {
	PackSuccessHook      string `yaml:"pack_success_webhook_url"`
	PackFailureHook      string `yaml:"pack_failure_webhook_url"`
	ProvisionSuccessHook string `yaml:"provision_success_webhook_url"`
	ProvisionFailureHook string `yaml:"provision_failure_webhook_url"`
	PromoteSuccessHook   string `yaml:"promote_success_webhook_url"`
	PromoteFailureHook   string `yaml:"promote_failure_webhook_url"`
}

type SrcEnvFile

type SrcEnvFile struct {
	S3Key    string   `yaml:"s3_key"`
	S3Bucket string   `yaml:"s3_bucket"`
	S3Region string   `yaml:"s3_region"`
	ExecName string   `yaml:"exec_name"`
	ExecArgs []string `yaml:"exec_args"`
}

Jump to

Keyboard shortcuts

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