gae-ayaml-env
v0.0.20
Published
Generates an app.yaml file from a template and environment variables
Downloads
274
Maintainers
Readme
Google App Engine - app.yaml environment variable generator for CI / CD systems
Generates an app.yaml file from a template and environment variables, designed for use with GitLab's CI / CD system.
Usage
Set your environment variables in GitLab (or other system), prefix variables you'd like to persist in app.yaml with "APP_", for example:
Create an app.template.yaml file include everything sans environment variables
runtime: nodejs10
env: standard
automatic_scaling:
min_instances: 0
max_instances: 2
service: default
env_variables:
NODE_ENV: 'production'
In your CI / CD process run gae-ayaml-env
to emit a populated app.yaml file, make sure you do not commit an actual app.yaml file as it will be overwritten.
Example for GitLab
deploy:
image: 'rlancer/gcloud-node:LTS-229'
script:
- npm i
- npm run build
- npx gae-ayaml-env
- echo $GCLOUD_SERVICE > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud --quiet --project $GCLOUD_PROJECT_ID app deploy app.yaml
only:
- prod
The system will write an app.yaml file fully populated with all the variables prefixed with "APP_".
runtime: nodejs10
env: standard
env_variables:
APIMARKET_FROM: '******************'
DB_DATABASE: '******************'
DB_HOST: '******************'
DB_PASSWORD: '******************'
DB_USER: '******************'
NODE_ENV: production
SLACK_APP_ID: '******************'
SLACK_BOT_TOKEN: '******************'
SLACK_CLIENT_ID: '******************'
SLACK_CLIENT_SECRET: '******************'
SLACK_OAUTH_REDIR: '******************'
SLACK_SIGNING_SECRET: '******************'
SLACK_TOKEN: '******************'
SLACK_VERIFICATION_TOKEN: '******************'
automatic_scaling:
max_instances: 2
Hide Output in Console
to hide the output of the generated file in the console you can use the flag: no-output
Example using npx:
npx gae-ayaml-env --no-output
Special thanks
to @dannyzen from Google for helping Collaborizm move to GCP.