ci-auto-deploy
Version:
Automatic Deployment for Continuous Delivery Pipelines
174 lines (146 loc) • 6.92 kB
YAML
--- # Amazon Web Services Deployment Configurations
cloudProvider/:
aws:
defaults:
activeCname: ${current.application.name}-${current.environment.name}-active
# AWS Elasticbeanstalk EB Tool Configurations
platform/:
awsElasticbeanstalkEb:
defaults:
inherit|: ${current.cloudProvider.defaults}
create:
configFile$: ${args.launchFile}
launch$: single-private-server
disableLines: [.env]
ebignoreContent:
- '*'
- '!${args.buildPath}/**'
- '!${args.packageFile}'
- '!server.js'
environment/:
# STAGING ENVIRONMENT CONFIGURATIONS
staging:
defaults:
inherit|: ${current.platform.defaults}
tokenFile: ${args.secretsPath}/.staging_tokens.yaml
envConfigFile: ${args.envPath}/env_config.yaml
prompt: password
create:
launch$: single-private-server
group:
all: [myApi1, myApi2]
application/:
myApi1:
defaults:
inherit|: ${current.environment.defaults}
env:
appName$: ${current.application.name}
envName$: ${current.environment.name}.${appName$}
# envName$ results in 'environment.<environmentName>.application.myApi1'
# variable name ending with $ sign makes it temporary
# If you would like to start with a seperate env file, move this part and multi environment config part below, to application defaults for each app seperately.
# environmentFile$: ${args.envPath}/.env.myApi1.staging
# Start with reading specified env file
# readEnv|: ${environmentFile$}
# Evaluate multi environment config file and get leaf with name specified by envName$
readYaml|: ${envConfigFile},${envName$},{tokenFile:\ ${tokenFile},appName:\ ${appName$}}
# App Configurations
configuration/:
# Default Configuration
default:
inherit|: ${current.application.defaults}
create:
readYaml|: ${configFile$},${launch$}
# readYml function reads yml file as first argument and
# returns value of key that is passed as second argument
envvars:
- API_PATH=${env.API_PATH}
- API_ENDPOINT=${env.API_ENDPOINT}
# High Security Configuration
highSecurity:
inherit|: ${current.application.defaults}
create:
vpc:
securitygroups: [sg-#hash2]
myApi2:
defaults:
inherit|: ${current.environment.defaults}
env:
appName$: ${current.application.name}
envName$: ${current.environment.name}.${appName$}
readYaml|: ${envConfigFile},${envName$},{tokenFile:\ ${tokenFile},appName:\ ${appName$}}
# App Configurations
configuration/:
onOut|: ${checkVariables}
# Default Configuration
default:
inherit|: ${current.application.defaults}
launch$: vpc-private-server
create:
readYaml|: ${configFile$},${launch$}
# High Security Configuration
highSecurity:
inherit|: ${current.application.defaults}
create:
vpc:
securitygroups: [sg-#hash2]
# PRODUCTION ENVIRONMENT CONFIGURATIONS
production:
defaults:
inherit|: ${current.platform.defaults}
tokenFile: ${args.secretsPath}/.production_tokens.yaml
envConfigFile: ${args.envPath}/env_config.yaml
accessProfile: cirplus-production
prompt: password
create:
launch$: vpc-private-cluster
buildRun: true
buildDeploy: true
group:
all: [myApi1, myApi2]
application/:
myApi1:
defaults:
inherit|: ${current.environment.defaults}
env:
appName$: ${current.application.name}
envName$: ${current.environment.name}.${appName$}
readYaml|: ${envConfigFile},${envName$},{tokenFile:\ ${tokenFile},appName:\ ${appName$}}
# App Configurations
configuration/:
# Default Configuration
default:
inherit|: ${current.application.defaults}
create:
readYaml|: ${configFile$},${launch$}
envvars:
- API_PATH=${env.API_PATH}
- API_ENDPOINT=${env.API_ENDPOINT}
# High Security Configuration
highSecurity:
inherit|: ${current.application.defaults}
create:
vpc:
securitygroups: [sg-#hash2]
myApi2:
defaults:
inherit|: ${current.environment.defaults}
env:
appName$: ${current.application.name}
envName$: ${current.environment.name}.${appName$}
readYaml|: ${envConfigFile},${envName$},{tokenFile:\ ${tokenFile},appName:\ ${appName$}}
# App Configurations
configuration/:
onOut|: ${checkVariables}
# Default Configuration
default:
inherit|: ${current.application.defaults}
launch$: vpc-private-server
create:
readYaml|: ${configFile$},${launch$}
# High Security Configuration
highSecurity:
inherit|: ${current.application.defaults}
create:
vpc:
securitygroups: [sg-#hash2]