All Projects → fog → Fog Google

fog / Fog Google

Licence: mit
Fog for Google Cloud Platform

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Fog Google

deploy-cloudrun
This action deploys your container image to Cloud Run.
Stars: ✭ 238 (+186.75%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Grpc Gke Nlb Tutorial
gRPC load-balancing on GKE using Envoy
Stars: ✭ 42 (-49.4%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
GoogleCloudLogging
Swift (Darwin) library for logging application events in Google Cloud.
Stars: ✭ 24 (-71.08%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
deploy-appengine
A GitHub Action that deploys source code to Google App Engine.
Stars: ✭ 184 (+121.69%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
restme
Template to bootstrap a fully functional, multi-region, REST service on GCP with a developer release pipeline.
Stars: ✭ 19 (-77.11%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
augle
Auth + Google = Augle
Stars: ✭ 22 (-73.49%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
iris3
An upgraded and improved version of the Iris automatic GCP-labeling project
Stars: ✭ 38 (-54.22%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Unity Solutions
Use Firebase tools to incorporate common features into your games!
Stars: ✭ 95 (+14.46%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Google-Cloud-Study-Jams
Resources for 30 Days of Google Cloud program workshops and events conducted by GDSC VJTI
Stars: ✭ 13 (-84.34%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
argon
Campaign Manager 360 and Display & Video 360 Reports to BigQuery connector
Stars: ✭ 31 (-62.65%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
auth
A GitHub Action for authenticating to Google Cloud.
Stars: ✭ 567 (+583.13%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
All About Programming
Everything about programming!!
Stars: ✭ 314 (+278.31%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Googlecloudarchitectprofessional
Resources to prepare for Google Certified Cloud Architect Professional Exam - 2017
Stars: ✭ 177 (+113.25%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
awesome-bigquery-views
Useful SQL queries for Blockchain ETL datasets in BigQuery.
Stars: ✭ 325 (+291.57%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Gcpsketchnote
If you are looking to become a Google Cloud Engineer , then you are at the right place. GCPSketchnote is series where I share Google Cloud concepts in quick and easy to learn format.
Stars: ✭ 2,631 (+3069.88%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
zorya
Google Cloud Instance Scheduler helping to reduce costs by 60% on average for non-production environments.
Stars: ✭ 127 (+53.01%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Cloud-Service-Providers-Free-Tier-Overview
Comparing the free tier offers of the major cloud providers like AWS, Azure, GCP, Oracle etc.
Stars: ✭ 226 (+172.29%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
rowy
Open-source Airtable-like experience for your database (Firestore) with GCP's scalability. Build any automation or cloud functions for your product. ⚡️✨
Stars: ✭ 2,676 (+3124.1%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Cloud Functions Go
Unofficial Native Go Runtime for Google Cloud Functions
Stars: ✭ 427 (+414.46%)
Mutual labels:  gcp, google-cloud, google-cloud-platform
Sirix
SirixDB is a temporal, evolutionary database system, which uses an accumulate only approach. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach called sliding snapshot.
Stars: ✭ 638 (+668.67%)
Mutual labels:  hacktoberfest, storage

⚠️ ATTENTION ⚠️ HELP NEEDED WITH CI

With both me and [email protected] departing Google fog-google no longer has a CI stack as we don't have access to a sponsored GCP account anymore and I've been unsuccessful in finding someone who would volunteer to maintain this project or CI at the time of my departure.

There is no easy way to say this but we need help as costs of running a CI stack that touches almost all GCP resources is significant. We know there's a lot of companies out there that are using this lib, as well as tooling based on it so if you want to help us with running a CI stack or provide sponsorship for a GCP account - please contact me at code <at> temik.me

--
Artem ([email protected]) - Lead maintainer

Fog::Google

Gem Version Build Status codecov Dependabot Status Doc coverage

The main maintainers for the Google sections are @icco, @Temikus and @plribeiro3000. Please send pull requests to them.

Important notices

  • As of v1.0.0, fog-google includes google-api-client as a dependency, there is no need to include it separately anymore.

  • Fog-google is currently supported on Ruby 2.4+ See supported ruby versions for more info.

See MIGRATING.md for migration between major versions.

Storage

There are two ways to access Google Cloud Storage. The old S3 API and the new JSON API. Fog::Storage::Google will automatically direct you to the appropriate API based on the credentials you provide it.

Compute

Google Compute Engine is a Virtual Machine hosting service. Currently it is built on version v1 of the GCE API.

As of 2017-12-15, we are still working on making Fog for Google Compute engine (Fog::Compute::Google) feature complete. If you are using Fog to interact with GCE, please keep Fog up to date and file issues for any anomalies you see or features you would like.

SQL

Fog implements v1beta4 of the Google Cloud SQL Admin API. As of 2017-11-06, Cloud SQL is mostly feature-complete. Please file issues for any anomalies you see or features you would like as we finish adding remaining features.

DNS

Fog implements v1 of the Google Cloud DNS API. We are always looking for people to improve our code and test coverage, so please file issues for any anomalies you see or features you would like.

Monitoring

Fog implements v3 of the Google Cloud Monitoring API. As of 2017-10-05, we believe Fog for Google Cloud Monitoring is feature complete for metric-related resources and are working on supporting groups.

We are always looking for people to improve our code and test coverage, so please file issues for any anomalies you see or features you would like.

Pubsub

Fog mostly implements v1 of the Google Cloud Pub/Sub API; however some less common API methods are missing. Pull requests for additions would be greatly appreciated.

Installation

Add the following two lines to your application's Gemfile:

gem 'fog-google'

And then execute:

$ bundle

Or install it yourself as:

$ gem install fog-google

Testing

Integration tests can be kicked off via following rake tasks. Important note: As those tests are running against real API's YOU WILL BE BILLED.

rake test               # Run all integration tests
rake test:parallel      # Run all integration tests in parallel

rake test:compute       # Run Compute API tests
rake test:monitoring    # Run Monitoring API tests
rake test:pubsub        # Run PubSub API tests
rake test:sql           # Run SQL API tests
rake test:storage       # Run Storage API tests

Since some resources can be expensive to test, we have a self-hosted CI server. Due to security considerations a repo maintainer needs to add the label integrate to kick off the CI.

Setup

Credentials

Follow the instructions to generate a private key. A sample credentials file can be found in .fog.example in this directory:

cat .fog.example >> ~/.fog # appends the sample configuration
vim ~/.fog                 # edit file with yout config

As of 1.9.0 fog-google supports Google application default credentials (ADC) The auth method uses Google::Auth.get_application_default under the hood.

Example workflow for a GCE instance with service account scopes defined:

> connection = Fog::Compute::Google.new(:google_project => "my-project", :google_application_default => true)
=> #<Fog::Compute::Google::Real:32157700...
> connection.servers
=> [  <Fog::Compute::Google::Server ...  ]

CarrierWave integration

It is common to integrate Fog with Carrierwave. Here's a minimal config that's commonly put in config/initializers/carrierwave.rb:

CarrierWave.configure do |config|
    config.fog_provider = 'fog/google'
    config.fog_credentials = {
        provider: 'Google',
        google_project: Rails.application.secrets.google_cloud_storage_project_name,
        google_json_key_string: Rails.application.secrets.google_cloud_storage_credential_content
        # can optionally use google_json_key_location if using an actual file;
    }
    config.fog_directory = Rails.application.secrets.google_cloud_storage_bucket_name
end

This needs a corresponding secret in config/secrets.yml, e.g.:

development:
    google_cloud_storage_project_name: your-project-name
    google_cloud_storage_credential_content: '{
        "type": "service_account",
        "project_id": "your-project-name",
        "private_key_id": "REDACTED",
        "private_key": "-----BEGIN PRIVATE KEY-----REDACTED-----END PRIVATE KEY-----\n",
        "client_email": "[email protected]",
        "client_id": "REDACTED",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://accounts.google.com/o/oauth2/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/REDACTED%40your-project-name.iam.gserviceaccount.com"
    }'
    google_cloud_storage_bucket_name: your-bucket-name

SSH-ing into instances

If you want to be able to bootstrap SSH-able instances, (using servers.bootstrap,) be sure you have a key in ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub

Quickstart

Once you've specified your credentials, you should be good to go!

$ bundle exec pry
[1] pry(main)> require 'fog/google'
=> true
[2] pry(main)> connection = Fog::Compute::Google.new
[3] pry(main)> connection.servers
=> [  <Fog::Compute::Google::Server
    name="xxxxxxx",
    kind="compute#instance",

Supported Ruby Versions

Fog-google is currently supported on Ruby 2.4+.

In general we support (and run our CI) for Ruby versions that are actively supported by Ruby Core - that is, Ruby versions that are not end of life. Older versions of Ruby may still work, but are unsupported and not recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby support schedule.

Contributing

See CONTRIBUTING.md in this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].