Project

gcp_data

0.0
Low commit activity in last 3 years
No release in over a year
Simple module to get current gcp data project and region
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

GcpData

Simple library to get current gcp data like project and region.

Installation

Add this line to your application's Gemfile:

gem 'gcp_data'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install gcp_data

This library can rely on the gcloud command, so it should be installed.

Usage

GcpData.project
GcpData.region

Precedence

This library will return project and region info using different sources with this precedence:

  1. Environment variables: GOOGLE_PROJECT, GOOGLE_REGION, GOOGLE_ZONE
  2. Google Credentials file: only project id available from the GOOGLE_APPLICATION_CREDENTIALS file
  3. CLI: gcloud: project, region, and zone available
  4. Defaults: region=us-central1 and zone==us-central1a

1. Environment variables

The environment variables take the highest precedence: GOOGLE_PROJECT, GOOGLE_REGION, GOOGLE_ZONE

2. Google credentials file

You can also authenticate to the Google API by setting a GOOGLE_APPLICATION_CREDENTIALS env var that points to file a JSON file on your system. Example: GOOGLE_APPLICATION_CREDENTIALS=~/.gcp/credentials.json. More info at google docs: Getting Started with Authentication.

This file contains a project_id key. So if you have set the GOOGLE_APPLICATION_CREDENTIALS and not set the GOOGLE_PROJECT var, then this library will use the project_id from the GOOGLE_APPLICATION_CREDENTIALS file.

3. CLI: gcloud

The gcloud cli can also be used to set and get google project and region info. Here's a cheatsheet of the commands:

gcloud config list
gcloud config set project project-123
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-b

The commands saves to a file in ~/.config/gcloud. The file looks something like this:

~/.config/gcloud/configurations/config_default

[core]
project = project-12345

[compute]
region = us-central1
zone   = us-central1-a

4. Defaults

The library will fall back to default values when it's unable to lookup the region and zone. The default values are:

region=us-central1
zone==us-central1a

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/boltops-tools/gcp_data.