Documentation ¶
Overview ¶
Package gce provides tools to deploy Camlistore on Google Compute Engine.
Index ¶
Constants ¶
const ( DefaultInstanceName = "camlistore-server" DefaultMachineType = "g1-small" DefaultRegion = "us-central1" ConsoleURL = "https://console.developers.google.com" HelpCreateProject = "Go to " + ConsoleURL + " to create a new Google Cloud project" HelpEnableAPIs = `` /* 192-byte string literal not displayed */ HelpManageSSHKeys = `` /* 175-byte string literal not displayed */ HelpManageHTTPCreds = `` /* 232-byte string literal not displayed */ )
Variables ¶
var ( // Verbose enables more info to be printed. Verbose bool )
Functions ¶
func LooksLikeRegion ¶
LooksLikeRegion reports whether s looks like a GCE region.
func NewOAuthConfig ¶
NewOAuthConfig returns an OAuth configuration template.
Types ¶
type Config ¶
type Config struct { ClientID string `json:"clientID"` // handler's credentials for OAuth. Required. ClientSecret string `json:"clientSecret"` // handler's credentials for OAuth. Required. Project string `json:"project"` // any Google Cloud project we can query to get the valid Google Cloud zones. Optional. Set from metadata on GCE. ServiceAccount string `json:"serviceAccount"` // JSON file with credentials to Project. Optional. Unused on GCE. DataDir string `json:"dataDir"` // where to store the instances configurations and states. Optional. }
Config is the set of parameters to initialize the DeployHandler.
type DeployHandler ¶
type DeployHandler struct {
// contains filtered or unexported fields
}
DeployHandler serves a wizard that helps with the deployment of Camlistore on Google Compute Engine. It must be initialized with NewDeployHandler.
func NewDeployHandler ¶
func NewDeployHandler(host, prefix string) (*DeployHandler, error)
NewDeployHandler initializes a DeployHandler that serves at https://host/prefix/ and returns it. A Google account client ID should be set in CAMLI_GCE_CLIENTID with its corresponding client secret in CAMLI_GCE_CLIENTSECRET.
func NewDeployHandlerFromConfig ¶
func NewDeployHandlerFromConfig(host, prefix string, cfg *Config) (*DeployHandler, error)
NewDeployHandlerFromConfig initializes a DeployHandler from cfg. Host and prefix have the same meaning as for NewDeployHandler. cfg should not be nil.
func (*DeployHandler) AddTemplateTheme ¶
func (h *DeployHandler) AddTemplateTheme(text string) error
AddTemplateTheme allows to enhance the aesthetics of the default template. To that effect, text can provide the template definitions for "header", "banner", "toplinks", and "footer".
func (*DeployHandler) ServeHTTP ¶
func (h *DeployHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*DeployHandler) SetLogger ¶
func (h *DeployHandler) SetLogger(lg *log.Logger)
func (*DeployHandler) SetScheme ¶
func (h *DeployHandler) SetScheme(scheme string)
type Deployer ¶
type Deployer struct { // Client is an OAuth2 client, authenticated for working with // the user's Google Cloud resources. Client *http.Client Conf *InstanceConf *log.Logger // Cannot be nil. // contains filtered or unexported fields }
Deployer creates and starts an instance such as defined in Conf.
type InstanceConf ¶
type InstanceConf struct { Name string // Name given to the virtual machine instance. Project string // Google project ID where the instance is created. Machine string // Machine type. Zone string // GCE zone; see https://cloud.google.com/compute/docs/zones SSHPub string // SSH public key. CertFile string // HTTPS certificate file. KeyFile string // HTTPS key file. Hostname string // Fully qualified domain name. Ctime time.Time // Timestamp for this configuration. WIP bool // Whether to use the camlistored-WORKINPROGRESS.tar.gz tarball instead of the "production" one // contains filtered or unexported fields }
InstanceConf is the configuration for the Google Compute Engine instance that will be deployed.
type TemplateData ¶
type TemplateData struct { Title string Help map[string]template.HTML // help bits within the form. Hints []string // helping hints printed in case of an error. Err error Prefix string // handler prefix. InstanceKey string // instance creation identifier, for the JS code to regularly poll for progress. PiggyGIF string // URI to the piggy gif for progress animation. Conf *InstanceConf // Configuration requested by the user InstanceIP string // instance IP address that we display after successful creation. CertFingerprintSHA1 string // SHA-1 fingerprint of the self-signed HTTPS certificate. CertFingerprintSHA256 string // SHA-256 fingerprint of the self-signed HTTPS certificate. ProjectConsoleURL string ZoneValues []string MachineValues []string }
TemplateData is the data passed for templates of tplHTML.