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:
- Environment variables: GOOGLE_PROJECT, GOOGLE_REGION, GOOGLE_ZONE
- Google Credentials file: only project id available from the GOOGLE_APPLICATION_CREDENTIALS file
- CLI: gcloud: project, region, and zone available
- 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.