1.1.1 • Published 10 months ago

@bonniernews/gcpohoy v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 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

10 months ago

1.1.0

10 months ago

1.0.0

10 months ago

0.9.4

11 months ago

0.9.3

12 months ago

0.9.2

12 months ago

0.9.0

12 months ago

0.9.1

12 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