gcp

package
v0.99.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2018 License: MIT Imports: 11 Imported by: 0

README

Google Cloud Storage Driver

This driver provides support for storing module files in Google Cloud storage.

Configuration

NOTE: The GCP storage driver currently only supports the uploading of modules and so can not be used at this time as a storage back end.

Minimal configuration is needed, just the name of a storage bucket and an authentication method for that project, and then tell Athens you want to use that as your storage medium.

Driver Configuration

You will need to set an environment variable for the bucket name. ATHENS_STORAGE_GCP_BUCKET should be set to the name of the bucket you wish to use. It should be something like fancy-pony-339288.appspot.com.

The only currently supported authentication type is a service account key file in json format. For more information on appengine service accounts see here.

The service account requires a minimum of Storage Object Creator level of permission for the project on GCP. This path to this file must be set in the environment variable ATHENS_STORAGE_GCP_SA.

Athens Configuration

NOTE: Again, this is not yet implemented. In order to tell Olympus to use GCP storage set ATHENS_STORAGE_TYPE to gcp.

Contributing

If you would like to contribute to this driver you will need a service account for the test project in order to run tests.

Please contact robbie for access.

Documentation

Overview

Package gcp provides a storage driver to upload module files to a google cloud platform storage bucket.

Configuration

Environment variables:

ATHENS_STORAGE_GCP_BUCKET	// full name of storage bucket
ATHENS_STORAGE_GCP_SA		// path to json keyfile of a service account

Example:

Bash:
	export ATHENS_STORAGE_GCP_BUCKET="fancy-pony-33928.appspot.com"
Fish:
	set -x ATHENS_STORAGE_GCP_BUCKET fancy-pony-339288.appspot.com

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

Storage implements the Saver interface (./pkg/storage).Saver

func New

func New(ctx context.Context, cred option.ClientOption) (*Storage, error)

New returns a new Storage instance authenticated using the provided ClientOptions. The bucket name to be used will be loaded from the environment variable ATHENS_STORAGE_GCP_BUCKET.

The ClientOptions should provide permissions sufficient to create objects in google cloud storage for your project.

func (*Storage) Save

func (s *Storage) Save(ctx context.Context, module, version string, mod []byte, zip io.Reader, info []byte) error

Save uploads the module .mod, .zip and .info files for a given version. It expects a context, which can be provided using context.Background from the standard library.

Please note the following limitations which will eventually be configurable:

All three uploads share a time out currently set to 300 seconds. After which all ongoing uploads will cancel.

Uploaded files are publicly accessable in the storage bucket as per an ACL rule.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL