Skip to content

Instantly share code, notes, and snippets.

@arapulido
Created June 14, 2018 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arapulido/66c026043fbd88fe5e9b183afcc35288 to your computer and use it in GitHub Desktop.
Save arapulido/66c026043fbd88fe5e9b183afcc35288 to your computer and use it in GitHub Desktop.
Cloud-SQL MySQL basic - ClusterServicePlan YAML
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ClusterServicePlan
metadata:
creationTimestamp: 2018-06-14T09:56:53Z
name: 9f62358e-ffb4-4fc5-b7a5-90462c15ce55
resourceVersion: "69"
selfLink: /apis/servicecatalog.k8s.io/v1beta1/clusterserviceplans/9f62358e-ffb4-4fc5-b7a5-90462c15ce55
uid: 43bc33aa-6fb9-11e8-84d3-0a580a14020d
spec:
bindable: true
clusterServiceBrokerName: gcp-broker
clusterServiceClassRef:
name: 85c5e53a-d70b-480e-afd3-737b0b1329f3
description: Cloud SQL - MySQL plan for the Beta release of the Google Cloud Platform
Service Broker
externalID: 9f62358e-ffb4-4fc5-b7a5-90462c15ce55
externalMetadata:
bullets:
- Provisioning an instance will create a new MySQL instance.
- Binding will grant one of available IAM roles on the Cloud SQL instance to the
specified service account. Optionally a new service account can be created and
given access to the MySQL instance.
displayName: Beta Plan
externalName: beta
free: false
instanceCreateParameterSchema:
$ref: '#/definitions/DatabaseInstance'
$schema: http://json-schema.org/draft-04/schema#
definitions:
AclEntry:
description: An entry for an Access Control list.
properties:
expirationTime:
description: The time when this access control entry expires in RFC 3339
format, for example 2012-11-15T16:19:00.094Z.
format: date-time
type: string
name:
description: An optional label to identify this entry.
type: string
value:
description: The whitelisted value for the access control list.
type: string
type: object
BackupConfiguration:
description: Database instance backup configuration.
properties:
binaryLogEnabled:
description: Whether binary log is enabled. If backup configuration is
disabled, binary log must be disabled as well.
type: boolean
enabled:
description: Whether this configuration is enabled.
type: boolean
startTime:
description: Start time for the daily backup configuration in UTC timezone
in the 24 hour format - HH:MM.
type: string
type: object
DatabaseFlags:
description: MySQL flags for Cloud SQL instances.
properties:
name:
description: The name of the flag. These flags are passed at instance
startup, so include both MySQL server options and MySQL system variables.
Flags should be specified with underscores, not hyphens. For more information,
see Configuring MySQL Flags in the Google Cloud SQL documentation, as
well as the official MySQL documentation for server options and system
variables.
type: string
value:
description: The value of the flag. Booleans should be set to on for true
and off for false. This field must be omitted if the flag doesn't take
a value.
type: string
type: object
DatabaseInstance:
description: Input parameters to create an instance - a MySQL instance.
properties:
databaseVersion:
default: MYSQL_5_7
description: The database engine type and version. Choice is permanent.
enum:
- MYSQL_5_7
- MYSQL_5_6
title: Database version
type: string
failoverReplica:
description: The name and status of the failover replica. This property
is applicable only to Second Generation instances.
properties:
name:
description: The name of the failover replica. If specified at instance
creation, a failover replica is created for the instance. The name
doesn't include the project ID. This property is applicable only
to Second Generation instances.
type: string
type: object
instanceId:
description: CloudSQL instance ID. Use lowercase letters, numbers, and
hyphens. Start with a letter. Choice is permanent.
maxLength: 78
minLength: 1
title: Instance ID
type: string
masterInstanceName:
description: The name of the instance which will act as master in the
replication setup.
type: string
onPremisesConfiguration:
$ref: '#/definitions/OnPremisesConfiguration'
description: Configuration specific to on-premises instances.
region:
default: us-central1
description: Determines where your CloudSQL data is located. For better
performance, keep your data close to the services that need it. Choice
is permanet.
enum:
- asia-east1
- asia-northeast1
- asia-south1
- australia-southeast1
- europe-west1
- europe-west2
- europe-west3
- europe-west4
- northamerica-northeast1
- southamerica-east1
- us-central1
- us-east1
- us-east4
- us-west1
title: Location
type: string
replicaConfiguration:
$ref: '#/definitions/ReplicaConfiguration'
description: Configuration specific to read-replicas replicating from
on-premises masters.
settings:
$ref: '#/definitions/Settings'
annotations:
required:
- sql.instances.insert
- sql.instances.update
description: The user settings.
required:
- instanceId
- settings
type: object
IpConfiguration:
description: IP Management configuration.
properties:
authorizedNetworks:
description: The list of external networks that are allowed to connect
to the instance using the IP. In CIDR notation, also known as 'slash'
notation (e.g. 192.168.100.0/24).
items:
$ref: '#/definitions/AclEntry'
type: array
ipv4Enabled:
description: Whether the instance should be assigned an IP address or
not.
type: boolean
requireSsl:
description: Whether SSL connections over IP should be enforced or not.
type: boolean
type: object
LocationPreference:
description: Preferred location. This specifies where a Cloud SQL instance
should preferably be located, either in a specific Compute Engine zone,
or co-located with an App Engine application. Note that if the preferred
location is not available, the instance will be located as close as possible
within the region. Only one location may be specified.
properties:
followGaeApplication:
description: The AppEngine application to follow, it must be in the same
region as the Cloud SQL instance.
type: string
zone:
description: The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b,
etc.).
type: string
type: object
MaintenanceWindow:
description: Maintenance window. This specifies when a v2 Cloud SQL instance
should preferably be restarted for system maintenance puruposes.
properties:
day:
description: day of week (1-7), starting on Monday.
type: integer
hour:
description: hour of day - 0 to 23.
type: integer
updateTrack:
description: |-
Maintenance timing setting: canary (Earlier) or stable (Later).
Learn more.
type: string
type: object
MySqlReplicaConfiguration:
description: Read-replica configuration specific to MySQL databases.
properties:
caCertificate:
description: PEM representation of the trusted CA's x509 certificate.
type: string
clientCertificate:
description: PEM representation of the slave's x509 certificate.
type: string
clientKey:
description: PEM representation of the slave's private key. The corresponsing
public key is encoded in the client's certificate.
type: string
connectRetryInterval:
description: Seconds to wait between connect retries. MySQL's default
is 60 seconds.
type: integer
dumpFilePath:
description: Path to a SQL dump file in Google Cloud Storage from which
the slave instance is to be created. The URI is in the form gs://bucketName/fileName.
Compressed gzip files (.gz) are also supported. Dumps should have the
binlog co-ordinates from which replication should begin. This can be
accomplished by setting --master-data to 1 when using mysqldump.
type: string
masterHeartbeatPeriod:
description: Interval in milliseconds between replication heartbeats.
type: string
password:
description: The password for the replication connection.
type: string
sslCipher:
description: A list of permissible ciphers to use for SSL encryption.
type: string
username:
description: The username for the replication connection.
type: string
verifyServerCertificate:
description: Whether or not to check the master's Common Name value in
the certificate that it sends during the SSL handshake.
type: boolean
type: object
OnPremisesConfiguration:
description: On-premises instance configuration.
properties:
hostPort:
description: The host and port of the on-premises instance in host:port
format
type: string
type: object
ReplicaConfiguration:
description: Read-replica configuration for connecting to the master.
properties:
failoverTarget:
description: |-
Specifies if the replica is the failover target. If the field is set to true the replica will be designated as a failover replica. In case the master instance fails, the replica instance will be promoted as the new master instance.
Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
type: boolean
mysqlReplicaConfiguration:
$ref: '#/definitions/MySqlReplicaConfiguration'
description: MySQL specific configuration when replicating from a MySQL
on-premises master. Replication configuration information such as the
username, password, certificates, and keys are not stored in the instance
metadata. The configuration information is used only to set up the replication
connection and is stored by MySQL in a file named master.info in the
data directory.
type: object
Settings:
description: Database instance settings.
properties:
activationPolicy:
description: |-
The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values:
ALWAYS: The instance is on, and remains so even in the absence of connection requests.
NEVER: The instance is off; it is not activated, even if a connection request arrives.
ON_DEMAND: First Generation instances only. The instance responds to incoming requests, and turns itself off when not in use. Instances with PER_USE pricing turn off after 15 minutes of inactivity. Instances with PER_PACKAGE pricing turn off after 12 hours of inactivity.
enum:
- ALWAYS
- NEVER
- ON_DEMAND
type: string
authorizedGaeApplications:
description: The App Engine app IDs that can access this instance. This
property is only applicable to First Generation instances.
items:
type: string
type: array
backupConfiguration:
$ref: '#/definitions/BackupConfiguration'
description: The daily backup configuration for the instance.
crashSafeReplicationEnabled:
description: Configuration specific to read replica instances. Indicates
whether database flags for crash-safe replication are enabled. This
property is only applicable to First Generation instances.
type: boolean
dataDiskSizeGb:
description: The size of data disk, in GB. The data disk size minimum
is 10GB. Applies only to Second Generation instances.
type: string
dataDiskType:
default: PD_SSD
description: The type of data disk. Only supported for Second Generation
instances. The default type is PD_SSD. Applies only to Second Generation
instances.
enum:
- PD_SSD
- PD_HDD
type: string
databaseFlags:
description: The database flags passed to the instance at startup.
items:
$ref: '#/definitions/DatabaseFlags'
type: array
databaseReplicationEnabled:
description: Configuration specific to read replica instances. Indicates
whether replication is enabled or not.
type: boolean
ipConfiguration:
$ref: '#/definitions/IpConfiguration'
description: The settings for IP Management. This allows to enable or
disable the instance IP and manage which external networks can connect
to the instance. The IPv4 address cannot be disabled for Second Generation
instances.
locationPreference:
$ref: '#/definitions/LocationPreference'
description: The location preference settings. This allows the instance
to be located as near as possible to either an App Engine app or Compute
Engine zone for better performance. App Engine co-location is only applicable
to First Generation instances.
maintenanceWindow:
$ref: '#/definitions/MaintenanceWindow'
description: The maintenance window for this instance. This specifies
when the instance may be restarted for maintenance purposes. Applies
only to Second Generation instances.
pricingPlan:
default: PER_USE
description: The pricing plan for this instance. This can be either PER_USE
or PACKAGE. Only PER_USE is supported for Second Generation instances.
enum:
- PER_USE
- PACKAGE
type: string
replicationType:
description: The type of replication this instance uses. This can be either
ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First
Generation instances.
enum:
- ASYNCHRONOUS
- SYNCHRONOUS
type: string
settingsVersion:
annotations:
required:
- sql.instances.update
description: The version of instance settings. This is a required field
for update method to make sure concurrent updates are handled properly.
During update, use the most recent settingsVersion value for this instance
and do not try to update this value.
type: string
storageAutoResize:
default: true
description: Configuration to increase storage size automatically. The
default value is true. Applies only to Second Generation instances.
type: boolean
storageAutoResizeLimit:
default: "0"
description: The maximum size to which storage capacity can be automatically
increased. The default value is 0, which specifies that there is no
limit. Applies only to Second Generation instances.
type: string
tier:
annotations:
required:
- sql.instances.insert
- sql.instances.update
default: db-n1-standard-1
description: For better performance, choose a CloudSQL machine type with
enough memory to hold your largest table.
enum:
- db-f1-micro
- db-g1-small
- db-n1-standard-1
- db-n1-standard-2
- db-n1-standard-4
- db-n1-standard-8
- db-n1-standard-16
- db-n1-standard-32
- db-n1-standard-64
- db-n1-highmem-2
- db-n1-highmem-4
- db-n1-highmem-8
- db-n1-highmem-16
- db-n1-highmem-32
- db-n1-highmem-64
title: Machine type
type: string
userLabels:
additionalProperties:
description: An individual label entry, composed of a key and a value.
type: string
description: To organize your project, add arbitrary labels as key/value
pairs to CloudSQL. Use labels to indicate different environments, services,
teams, and so on.
title: Labels
type: object
x-googleProperty:
type: LABELS
required:
- tier
type: object
form:
- instanceId
- region
- key: databaseVersion
titleMap:
- name: MySQL 5.7
value: MYSQL_5_7
- name: MySQL 5.6
value: MYSQL_5_6
- settings.tier
- settings.userLabels
instanceUpdateParameterSchema:
$ref: '#/definitions/DatabaseInstance'
$schema: http://json-schema.org/draft-04/schema#
definitions:
AclEntry:
description: An entry for an Access Control list.
properties:
expirationTime:
description: The time when this access control entry expires in RFC 3339
format, for example 2012-11-15T16:19:00.094Z.
format: date-time
type: string
name:
description: An optional label to identify this entry.
type: string
value:
description: The whitelisted value for the access control list.
type: string
type: object
BackupConfiguration:
description: Database instance backup configuration.
properties:
binaryLogEnabled:
description: Whether binary log is enabled. If backup configuration is
disabled, binary log must be disabled as well.
type: boolean
enabled:
description: Whether this configuration is enabled.
type: boolean
startTime:
description: Start time for the daily backup configuration in UTC timezone
in the 24 hour format - HH:MM.
type: string
type: object
DatabaseFlags:
description: MySQL flags for Cloud SQL instances.
properties:
name:
description: The name of the flag. These flags are passed at instance
startup, so include both MySQL server options and MySQL system variables.
Flags should be specified with underscores, not hyphens. For more information,
see Configuring MySQL Flags in the Google Cloud SQL documentation, as
well as the official MySQL documentation for server options and system
variables.
type: string
value:
description: The value of the flag. Booleans should be set to on for true
and off for false. This field must be omitted if the flag doesn't take
a value.
type: string
type: object
DatabaseInstance:
description: Input parameters to create an instance - a MySQL instance.
properties:
databaseVersion:
default: MYSQL_5_7
description: The database engine type and version. Choice is permanent.
enum:
- MYSQL_5_7
- MYSQL_5_6
title: Database version
type: string
failoverReplica:
description: The name and status of the failover replica. This property
is applicable only to Second Generation instances.
properties:
name:
description: The name of the failover replica. If specified at instance
creation, a failover replica is created for the instance. The name
doesn't include the project ID. This property is applicable only
to Second Generation instances.
type: string
type: object
instanceId:
description: CloudSQL instance ID. Use lowercase letters, numbers, and
hyphens. Start with a letter. Choice is permanent.
maxLength: 78
minLength: 1
title: Instance ID
type: string
masterInstanceName:
description: The name of the instance which will act as master in the
replication setup.
type: string
onPremisesConfiguration:
$ref: '#/definitions/OnPremisesConfiguration'
description: Configuration specific to on-premises instances.
region:
default: us-central1
description: Determines where your CloudSQL data is located. For better
performance, keep your data close to the services that need it. Choice
is permanet.
enum:
- asia-east1
- asia-northeast1
- asia-south1
- australia-southeast1
- europe-west1
- europe-west2
- europe-west3
- europe-west4
- northamerica-northeast1
- southamerica-east1
- us-central1
- us-east1
- us-east4
- us-west1
title: Location
type: string
replicaConfiguration:
$ref: '#/definitions/ReplicaConfiguration'
description: Configuration specific to read-replicas replicating from
on-premises masters.
settings:
$ref: '#/definitions/Settings'
annotations:
required:
- sql.instances.insert
- sql.instances.update
description: The user settings.
required:
- instanceId
- settings
type: object
IpConfiguration:
description: IP Management configuration.
properties:
authorizedNetworks:
description: The list of external networks that are allowed to connect
to the instance using the IP. In CIDR notation, also known as 'slash'
notation (e.g. 192.168.100.0/24).
items:
$ref: '#/definitions/AclEntry'
type: array
ipv4Enabled:
description: Whether the instance should be assigned an IP address or
not.
type: boolean
requireSsl:
description: Whether SSL connections over IP should be enforced or not.
type: boolean
type: object
LocationPreference:
description: Preferred location. This specifies where a Cloud SQL instance
should preferably be located, either in a specific Compute Engine zone,
or co-located with an App Engine application. Note that if the preferred
location is not available, the instance will be located as close as possible
within the region. Only one location may be specified.
properties:
followGaeApplication:
description: The AppEngine application to follow, it must be in the same
region as the Cloud SQL instance.
type: string
zone:
description: The preferred Compute Engine zone (e.g. us-centra1-a, us-central1-b,
etc.).
type: string
type: object
MaintenanceWindow:
description: Maintenance window. This specifies when a v2 Cloud SQL instance
should preferably be restarted for system maintenance puruposes.
properties:
day:
description: day of week (1-7), starting on Monday.
type: integer
hour:
description: hour of day - 0 to 23.
type: integer
updateTrack:
description: |-
Maintenance timing setting: canary (Earlier) or stable (Later).
Learn more.
type: string
type: object
MySqlReplicaConfiguration:
description: Read-replica configuration specific to MySQL databases.
properties:
caCertificate:
description: PEM representation of the trusted CA's x509 certificate.
type: string
clientCertificate:
description: PEM representation of the slave's x509 certificate.
type: string
clientKey:
description: PEM representation of the slave's private key. The corresponsing
public key is encoded in the client's certificate.
type: string
connectRetryInterval:
description: Seconds to wait between connect retries. MySQL's default
is 60 seconds.
type: integer
dumpFilePath:
description: Path to a SQL dump file in Google Cloud Storage from which
the slave instance is to be created. The URI is in the form gs://bucketName/fileName.
Compressed gzip files (.gz) are also supported. Dumps should have the
binlog co-ordinates from which replication should begin. This can be
accomplished by setting --master-data to 1 when using mysqldump.
type: string
masterHeartbeatPeriod:
description: Interval in milliseconds between replication heartbeats.
type: string
password:
description: The password for the replication connection.
type: string
sslCipher:
description: A list of permissible ciphers to use for SSL encryption.
type: string
username:
description: The username for the replication connection.
type: string
verifyServerCertificate:
description: Whether or not to check the master's Common Name value in
the certificate that it sends during the SSL handshake.
type: boolean
type: object
OnPremisesConfiguration:
description: On-premises instance configuration.
properties:
hostPort:
description: The host and port of the on-premises instance in host:port
format
type: string
type: object
ReplicaConfiguration:
description: Read-replica configuration for connecting to the master.
properties:
failoverTarget:
description: |-
Specifies if the replica is the failover target. If the field is set to true the replica will be designated as a failover replica. In case the master instance fails, the replica instance will be promoted as the new master instance.
Only one replica can be specified as failover target, and the replica has to be in different zone with the master instance.
type: boolean
mysqlReplicaConfiguration:
$ref: '#/definitions/MySqlReplicaConfiguration'
description: MySQL specific configuration when replicating from a MySQL
on-premises master. Replication configuration information such as the
username, password, certificates, and keys are not stored in the instance
metadata. The configuration information is used only to set up the replication
connection and is stored by MySQL in a file named master.info in the
data directory.
type: object
Settings:
description: Database instance settings.
properties:
activationPolicy:
description: |-
The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values:
ALWAYS: The instance is on, and remains so even in the absence of connection requests.
NEVER: The instance is off; it is not activated, even if a connection request arrives.
ON_DEMAND: First Generation instances only. The instance responds to incoming requests, and turns itself off when not in use. Instances with PER_USE pricing turn off after 15 minutes of inactivity. Instances with PER_PACKAGE pricing turn off after 12 hours of inactivity.
enum:
- ALWAYS
- NEVER
- ON_DEMAND
type: string
authorizedGaeApplications:
description: The App Engine app IDs that can access this instance. This
property is only applicable to First Generation instances.
items:
type: string
type: array
backupConfiguration:
$ref: '#/definitions/BackupConfiguration'
description: The daily backup configuration for the instance.
crashSafeReplicationEnabled:
description: Configuration specific to read replica instances. Indicates
whether database flags for crash-safe replication are enabled. This
property is only applicable to First Generation instances.
type: boolean
dataDiskSizeGb:
description: The size of data disk, in GB. The data disk size minimum
is 10GB. Applies only to Second Generation instances.
type: string
dataDiskType:
default: PD_SSD
description: The type of data disk. Only supported for Second Generation
instances. The default type is PD_SSD. Applies only to Second Generation
instances.
enum:
- PD_SSD
- PD_HDD
type: string
databaseFlags:
description: The database flags passed to the instance at startup.
items:
$ref: '#/definitions/DatabaseFlags'
type: array
databaseReplicationEnabled:
description: Configuration specific to read replica instances. Indicates
whether replication is enabled or not.
type: boolean
ipConfiguration:
$ref: '#/definitions/IpConfiguration'
description: The settings for IP Management. This allows to enable or
disable the instance IP and manage which external networks can connect
to the instance. The IPv4 address cannot be disabled for Second Generation
instances.
locationPreference:
$ref: '#/definitions/LocationPreference'
description: The location preference settings. This allows the instance
to be located as near as possible to either an App Engine app or Compute
Engine zone for better performance. App Engine co-location is only applicable
to First Generation instances.
maintenanceWindow:
$ref: '#/definitions/MaintenanceWindow'
description: The maintenance window for this instance. This specifies
when the instance may be restarted for maintenance purposes. Applies
only to Second Generation instances.
pricingPlan:
default: PER_USE
description: The pricing plan for this instance. This can be either PER_USE
or PACKAGE. Only PER_USE is supported for Second Generation instances.
enum:
- PER_USE
- PACKAGE
type: string
replicationType:
description: The type of replication this instance uses. This can be either
ASYNCHRONOUS or SYNCHRONOUS. This property is only applicable to First
Generation instances.
enum:
- ASYNCHRONOUS
- SYNCHRONOUS
type: string
settingsVersion:
annotations:
required:
- sql.instances.update
description: The version of instance settings. This is a required field
for update method to make sure concurrent updates are handled properly.
During update, use the most recent settingsVersion value for this instance
and do not try to update this value.
type: string
storageAutoResize:
default: true
description: Configuration to increase storage size automatically. The
default value is true. Applies only to Second Generation instances.
type: boolean
storageAutoResizeLimit:
default: "0"
description: The maximum size to which storage capacity can be automatically
increased. The default value is 0, which specifies that there is no
limit. Applies only to Second Generation instances.
type: string
tier:
annotations:
required:
- sql.instances.insert
- sql.instances.update
default: db-n1-standard-1
description: For better performance, choose a CloudSQL machine type with
enough memory to hold your largest table.
enum:
- db-f1-micro
- db-g1-small
- db-n1-standard-1
- db-n1-standard-2
- db-n1-standard-4
- db-n1-standard-8
- db-n1-standard-16
- db-n1-standard-32
- db-n1-standard-64
- db-n1-highmem-2
- db-n1-highmem-4
- db-n1-highmem-8
- db-n1-highmem-16
- db-n1-highmem-32
- db-n1-highmem-64
title: Machine type
type: string
userLabels:
additionalProperties:
description: An individual label entry, composed of a key and a value.
type: string
description: To organize your project, add arbitrary labels as key/value
pairs to CloudSQL. Use labels to indicate different environments, services,
teams, and so on.
title: Labels
type: object
x-googleProperty:
type: LABELS
required:
- tier
type: object
form:
- instanceId
- region
- key: databaseVersion
titleMap:
- name: MySQL 5.7
value: MYSQL_5_7
- name: MySQL 5.6
value: MYSQL_5_6
- settings.tier
- settings.userLabels
serviceBindingCreateParameterSchema:
$schema: http://json-schema.org/draft-04/schema#
form:
- roles
- serviceAccount
- createServiceAccount
properties:
createServiceAccount:
default: false
description: Create a new service account for MySQL binding.
title: Create service account
type: boolean
roles:
default:
- roles/cloudsql.client
description: The list of CloudSQL roles for this binding. Affects the level
of access granted to the service account.
items:
enum:
- roles/cloudsql.client
type: string
title: Roles
type: array
uniqueItems: true
serviceAccount:
description: The GCP service account to which access will be granted. For
example <storage-service-account> or <storage-service-account>@<project-id>.iam.gserviceaccount.com
title: Service account ID
type: string
required:
- serviceAccount
- roles
type: object
status:
removedFromBrokerCatalog: false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment