cloudsql

package
v5.1.0+incompatible Latest Latest
Warning

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

Go to latest
Published: May 27, 2020 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MySqlServiceId    = "4bc59b9a-8520-409f-85da-1c7552315863"
	CloudsqlMySQLName = "google-cloudsql-mysql"
)
View Source
const PostgresServiceId = "cbad6d78-a73c-432d-b8ff-b219a17a803a"

Variables

This section is empty.

Functions

func MySQLVPCServiceDefinition

func MySQLVPCServiceDefinition() *broker.ServiceDefinition

MySQLVPCServiceDefinition creates a new ServiceDefinition object for the MySQL service on a VPC.

func MysqlServiceDefinition

func MysqlServiceDefinition() *broker.ServiceDefinition

MysqlServiceDefinition creates a new ServiceDefinition object for the MySQL service.

func PostgresServiceDefinition

func PostgresServiceDefinition() *broker.ServiceDefinition

PostgresServiceDefinition creates a new ServiceDefinition object for the PostgreSQL service.

func PostgresVPCServiceDefinition

func PostgresVPCServiceDefinition() *broker.ServiceDefinition

PostgresVPCServiceDefinition creates a new ServiceDefinition object for the Postgres service on a VPC.

Types

type CloudSQLBroker

type CloudSQLBroker struct {
	base.BrokerBase
	// contains filtered or unexported fields
}

CloudSQLBroker is the service-broker back-end for creating and binding CloudSQL instances.

func (*CloudSQLBroker) Bind

func (b *CloudSQLBroker) Bind(ctx context.Context, vc *varcontext.VarContext) (map[string]interface{}, error)

Bind creates a new username, password, and set of ssl certs for the given instance. The function may be slow to return because CloudSQL operations are asynchronous. The default CF service broker timeout may need to be raised to 90 or 120 seconds to accommodate the long bind time.

func (*CloudSQLBroker) BuildInstanceCredentials

func (b *CloudSQLBroker) BuildInstanceCredentials(ctx context.Context, bindRecord models.ServiceBindingCredentials, instanceRecord models.ServiceInstanceDetails) (*brokerapi.Binding, error)

func (*CloudSQLBroker) Deprovision

Deprovision issues a delete call on the database instance.

func (*CloudSQLBroker) DeprovisionsAsync

func (b *CloudSQLBroker) DeprovisionsAsync() bool

DeprovisionsAsync indicates that CloudSQL uses asynchronous deprovisioning.

func (*CloudSQLBroker) PollInstance

func (b *CloudSQLBroker) PollInstance(ctx context.Context, instance models.ServiceInstanceDetails) (bool, error)

PollInstance gets the last operation for this instance and checks its status.

func (*CloudSQLBroker) Provision

func (b *CloudSQLBroker) Provision(ctx context.Context, provisionContext *varcontext.VarContext) (models.ServiceInstanceDetails, error)

Provision creates a new CloudSQL instance from the settings in the user-provided details and service plan.

func (*CloudSQLBroker) ProvisionsAsync

func (b *CloudSQLBroker) ProvisionsAsync() bool

ProvisionsAsync indicates that CloudSQL uses asynchronous provisioning.

func (*CloudSQLBroker) Unbind

Unbind deletes the database user, service account and invalidates the ssl certs associated with this binding. It returns early to make an unbind fail if any subcommand fails. -> It is possible that the deletion of a postgres sql user fails because of depending objects in the db. In that case, the service account should not be deleted (BrokerBase.Unbind) because the users would not be able to connect to the db anymore. Terraform handles the issue in a similar way.

func (*CloudSQLBroker) UpdateInstanceDetails

func (b *CloudSQLBroker) UpdateInstanceDetails(ctx context.Context, instance *models.ServiceInstanceDetails) error

refreshServiceInstanceDetails fetches the settings for the instance from GCP and upates the provided instance with the refreshed info.

type InstanceInformation

type InstanceInformation struct {
	InstanceName string `json:"instance_name"`
	DatabaseName string `json:"database_name"`
	Host         string `json:"host"`
	Region       string `json:"region"`

	LastMasterOperationId string `json:"last_master_operation_id"`
}

InstanceInformation holds the details needed to bind a service account to a CloudSQL instance after it has been provisioned.

Jump to

Keyboard shortcuts

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