gae-yaml-env

1.1.0 • Public • Published

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.

Version Downloads/week License

Usage

gae-yaml-env [file]

Generate the app.yaml file for App Engine

Positionals:
  file  The name of the template file, use 0 for stdin
                                                  [default: "app.template.yaml"]

Options:
  --prefix   Environment variable prefix, defaults to APP_     [default: "APP_"]
  --service  Change the service name in the yaml
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

Gitlab Example

Set your environment variables in GitLab (or other system), prefix variables you'd like to persist in app.yaml with "APP_", for example:

Environment variables in GitLab

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-yaml-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

generate_app_yaml:
  image: node:14-alpine
  script:
  - npx gae-yaml-env > app.yaml
  artifacts:
    paths:
      - app.yaml
  only:
      - master
 
deploy:
  image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
  dependencies:
    - generate_app_yaml
  script:
    - gcloud auth activate-service-account --key-file $GCLOUD_KEY
    - gcloud --quiet --project $GCLOUD_PROJECT_ID app deploy app.yaml
  only:
    - master

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

Special thanks to @dannyzen from Google for helping Collaborizm move to GCP.

Package Sidebar

Install

npm i gae-yaml-env

Weekly Downloads

43

Version

1.1.0

License

MIT

Unpacked Size

10.5 kB

Total Files

10

Last publish

Collaborators

  • mcfedr