Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rlancer/gae-ayaml-env-generator
Generates an app.yaml file populated with environment variables, for use with CI / CD systems.
https://github.com/rlancer/gae-ayaml-env-generator
Last synced: 3 months ago
JSON representation
Generates an app.yaml file populated with environment variables, for use with CI / CD systems.
- Host: GitHub
- URL: https://github.com/rlancer/gae-ayaml-env-generator
- Owner: rlancer
- License: mit
- Created: 2019-04-10T16:11:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-21T21:42:51.000Z (over 1 year ago)
- Last Synced: 2024-10-08T14:40:24.184Z (3 months ago)
- Language: TypeScript
- Size: 25.4 KB
- Stars: 2
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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.
[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/gae-ayaml-env.svg)](https://npmjs.org/package/gae-ayaml-env)
[![Downloads/week](https://img.shields.io/npm/dw/gae-ayaml-env.svg)](https://npmjs.org/package/gae-ayaml-env)
[![License](https://img.shields.io/npm/l/gae-ayaml-env.svg)](https://github.com/code/gae-ayaml-env/blob/master/package.json)# Usage
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](https://gitlab.com/collaborizm-community/gae-appyaml-env-generate/uploads/a490e948a1f26f08d6cf77e180b826c6/image.png)
Create an app.template.yaml file include everything sans environment variables
```yaml
runtime: nodejs10
env: standardautomatic_scaling:
min_instances: 0
max_instances: 2service: 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
```yaml
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\_".
```yaml
runtime: nodejs10
env: standardenv_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](https://github.com/dannyzen) from Google for helping Collaborizm move to GCP.