1.1.1 • Published 9 months ago

@bonniernews/gcpohoy v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

gcpohoy

A node-module that helps you deploy, monitor and rollback your (mainly GCP) services managed with Terraform.

Requirements

To run this package successfully you need GCloud CLI and Terraform:

Install

Install this script in the project(s) you want it or globally. Note that conflicts with node version might occur when installing globally

  • npm i @bonniernews/gcpohoy
  • npm i @bonniernews/gcpohoy -g

Usage

In a project running Terraform and GCloud with Expressen's standard setup you can run for example:

  • gcpohoy help
  • gcpohoy login
  • gcpohoy deploy <environment>
  • gcpohoy rollback <environment> -r <revision>
  • gcpohoy forward-db <environment> -p <port> -s <secret_pw_name>

You can run --help for any given command to see all available arguments/options:

  • gcpohoy deploy <environment> --help

Multi Cloud Run projects

This package handles multi-cloudrun projects (Note: Uses the same docker image with different args)

  • gcpohoy deploy <environment> - Default: Deploys all cloud runs it can find in Terraform.

To manage your services use --serviceName (-s)

  • gcpohoy <deploy|changes|status> <environment> -s <service-name>
  • gcpohoy status <environment> -s <service-name>

Note: gcpohoy apply doesn't support --serviceName flag, it runs everything.

Rollback works the same:

  • gcpohoy rollback <environment> -s <service-name> -r <revision>

CI/CD (Github Actions)

Detailed instructions found here examples/workflow-example.md

gcpohoy can easily be used in CI/CD with the benefit of working mostly the same as locally.

  • gcpohoy needs to be installed in the project and not globally for it to work in CI/CD.
  • Since gcpohoy don't have access to terraform in the cloud you need to point out serviceName and projectId
  • View caveats in examples/workflow-example.md

A final deploy step using gcpohoy can look something like:

- name: "Deploy"
    run: npm run deploy ${{inputs.environment}} -- --serviceName=layout-service-${{inputs.environment}} --projectId=${{secrets.gcp-project-id}}
1.1.1

9 months ago

1.1.0

9 months ago

1.0.0

9 months ago

0.9.4

10 months ago

0.9.3

11 months ago

0.9.2

11 months ago

0.9.0

11 months ago

0.9.1

11 months ago

0.8.1

2 years ago

0.8.0

2 years ago

0.6.2

2 years ago

0.8.3

2 years ago

0.8.2

2 years ago

0.7.0

2 years ago

0.6.1

2 years ago

0.6.0

2 years ago

0.5.3

2 years ago

0.5.1

2 years ago