Documentation
¶
Overview ¶
Package v1alpha2 contains managed resources for GCP database services such as CloudSQL. +kubebuilder:object:generate=true +groupName=database.gcp.crossplane.io +versionName=v1alpha2
Index ¶
- Constants
- Variables
- type CloudsqlInstance
- func (i *CloudsqlInstance) ConnectionSecret() *corev1.Secret
- func (i *CloudsqlInstance) DatabaseInstance(name string) *sqladmin.DatabaseInstance
- func (i *CloudsqlInstance) DatabaseUserName() string
- func (in *CloudsqlInstance) DeepCopy() *CloudsqlInstance
- func (in *CloudsqlInstance) DeepCopyInto(out *CloudsqlInstance)
- func (in *CloudsqlInstance) DeepCopyObject() runtime.Object
- func (i *CloudsqlInstance) GetBindingPhase() runtimev1alpha1.BindingPhase
- func (i *CloudsqlInstance) GetClaimReference() *corev1.ObjectReference
- func (i *CloudsqlInstance) GetNonPortableClassReference() *corev1.ObjectReference
- func (i *CloudsqlInstance) GetProviderReference() *corev1.ObjectReference
- func (i *CloudsqlInstance) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy
- func (i *CloudsqlInstance) GetResourceName() string
- func (i *CloudsqlInstance) GetWriteConnectionSecretToReference() corev1.LocalObjectReference
- func (i *CloudsqlInstance) IsRunnable() bool
- func (i *CloudsqlInstance) SetBindingPhase(p runtimev1alpha1.BindingPhase)
- func (i *CloudsqlInstance) SetClaimReference(r *corev1.ObjectReference)
- func (i *CloudsqlInstance) SetConditions(c ...runtimev1alpha1.Condition)
- func (i *CloudsqlInstance) SetNonPortableClassReference(r *corev1.ObjectReference)
- func (i *CloudsqlInstance) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)
- func (i *CloudsqlInstance) SetStatus(inst *sqladmin.DatabaseInstance)
- func (i *CloudsqlInstance) SetWriteConnectionSecretToReference(r corev1.LocalObjectReference)
- type CloudsqlInstanceClass
- func (in *CloudsqlInstanceClass) DeepCopy() *CloudsqlInstanceClass
- func (in *CloudsqlInstanceClass) DeepCopyInto(out *CloudsqlInstanceClass)
- func (in *CloudsqlInstanceClass) DeepCopyObject() runtime.Object
- func (i *CloudsqlInstanceClass) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy
- func (i *CloudsqlInstanceClass) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)
- type CloudsqlInstanceClassList
- type CloudsqlInstanceClassSpecTemplate
- type CloudsqlInstanceList
- type CloudsqlInstanceParameters
- type CloudsqlInstanceSpec
- type CloudsqlInstanceStatus
Constants ¶
const ( MysqlDBVersionPrefix = "MYSQL" MysqlDefaultUser = "root" PostgresqlDBVersionPrefix = "POSTGRES" PostgresqlDefaultUser = "postgres" PasswordLength = 20 DefaultStorageGB = 10 PrivateIPType = "PRIVATE" PublicIPType = "PRIMARY" PrivateIPKey = "privateIP" PublicIPKey = "publicIP" )
CloudSQL version prefixes.
const ( Group = "database.gcp.crossplane.io" Version = "v1alpha2" )
Package type metadata.
const (
// StateRunnable represents a CloudSQL instance in a running, available, and ready state
StateRunnable = "RUNNABLE"
)
CloudSQL instance states
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
var ( CloudsqlInstanceKind = reflect.TypeOf(CloudsqlInstance{}).Name() CloudsqlInstanceKindAPIVersion = CloudsqlInstanceKind + "." + SchemeGroupVersion.String() CloudsqlInstanceGroupVersionKind = SchemeGroupVersion.WithKind(CloudsqlInstanceKind) )
CloudsqlInstance type metadata.
var ( CloudsqlInstanceClassKind = reflect.TypeOf(CloudsqlInstanceClass{}).Name() CloudsqlInstanceClassKindAPIVersion = CloudsqlInstanceClassKind + "." + SchemeGroupVersion.String() CloudsqlInstanceClassGroupVersionKind = SchemeGroupVersion.WithKind(CloudsqlInstanceClassKind) )
CloudsqlInstanceClass type metadata.
Functions ¶
This section is empty.
Types ¶
type CloudsqlInstance ¶
type CloudsqlInstance struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CloudsqlInstanceSpec `json:"spec,omitempty"`
Status CloudsqlInstanceStatus `json:"status,omitempty"`
}
A CloudsqlInstance is a managed resource that represents a Google CloudSQL instance. +kubebuilder:subresource:status +kubebuilder:printcolumn:name="STATUS",type="string",JSONPath=".status.bindingPhase" +kubebuilder:printcolumn:name="STATE",type="string",JSONPath=".status.state" +kubebuilder:printcolumn:name="CLASS",type="string",JSONPath=".spec.classRef.name" +kubebuilder:printcolumn:name="VERSION",type="string",JSONPath=".spec.databaseVersion" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
func (*CloudsqlInstance) ConnectionSecret ¶
func (i *CloudsqlInstance) ConnectionSecret() *corev1.Secret
ConnectionSecret returns a connection secret for this instance
func (*CloudsqlInstance) DatabaseInstance ¶
func (i *CloudsqlInstance) DatabaseInstance(name string) *sqladmin.DatabaseInstance
DatabaseInstance representing spec of this instance
func (*CloudsqlInstance) DatabaseUserName ¶
func (i *CloudsqlInstance) DatabaseUserName() string
DatabaseUserName returns default database user name base on database version
func (*CloudsqlInstance) DeepCopy ¶
func (in *CloudsqlInstance) DeepCopy() *CloudsqlInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstance.
func (*CloudsqlInstance) DeepCopyInto ¶
func (in *CloudsqlInstance) DeepCopyInto(out *CloudsqlInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CloudsqlInstance) DeepCopyObject ¶
func (in *CloudsqlInstance) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*CloudsqlInstance) GetBindingPhase ¶
func (i *CloudsqlInstance) GetBindingPhase() runtimev1alpha1.BindingPhase
GetBindingPhase of this CloudsqlInstance.
func (*CloudsqlInstance) GetClaimReference ¶
func (i *CloudsqlInstance) GetClaimReference() *corev1.ObjectReference
GetClaimReference of this CloudsqlInstance.
func (*CloudsqlInstance) GetNonPortableClassReference ¶
func (i *CloudsqlInstance) GetNonPortableClassReference() *corev1.ObjectReference
GetNonPortableClassReference of this CloudsqlInstance.
func (*CloudsqlInstance) GetProviderReference ¶
func (i *CloudsqlInstance) GetProviderReference() *corev1.ObjectReference
GetProviderReference of this CloudsqlInstance
func (*CloudsqlInstance) GetReclaimPolicy ¶
func (i *CloudsqlInstance) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy
GetReclaimPolicy of this CloudsqlInstance.
func (*CloudsqlInstance) GetResourceName ¶
func (i *CloudsqlInstance) GetResourceName() string
GetResourceName based on the NameFormat spec value, If name format is not provided, resource name defaults to {{kind}}-UID If name format provided with '%s' value, resource name will result in formatted string + UID,
NOTE: only single %s substitution is supported
If name format does not contain '%s' substitution, i.e. a constant string, the constant string value is returned back
Examples:
For all examples assume "UID" = "test-uid",
and assume that "{{kind}}" = "mykind"
1. NameFormat = "", ResourceName = "mykind-test-uid"
2. NameFormat = "%s", ResourceName = "test-uid"
3. NameFormat = "foo", ResourceName = "foo"
4. NameFormat = "foo-%s", ResourceName = "foo-test-uid"
5. NameFormat = "foo-%s-bar-%s", ResourceName = "foo-test-uid-bar-%!s(MISSING)"
Note that CloudSQL instance names must begin with a letter, per: https://cloud.google.com/sql/docs/mysql/instance-settings
func (*CloudsqlInstance) GetWriteConnectionSecretToReference ¶
func (i *CloudsqlInstance) GetWriteConnectionSecretToReference() corev1.LocalObjectReference
GetWriteConnectionSecretToReference of this CloudsqlInstance.
func (*CloudsqlInstance) IsRunnable ¶
func (i *CloudsqlInstance) IsRunnable() bool
IsRunnable returns true if instance is in Runnable state
func (*CloudsqlInstance) SetBindingPhase ¶
func (i *CloudsqlInstance) SetBindingPhase(p runtimev1alpha1.BindingPhase)
SetBindingPhase of this CloudsqlInstance.
func (*CloudsqlInstance) SetClaimReference ¶
func (i *CloudsqlInstance) SetClaimReference(r *corev1.ObjectReference)
SetClaimReference of this CloudsqlInstance.
func (*CloudsqlInstance) SetConditions ¶
func (i *CloudsqlInstance) SetConditions(c ...runtimev1alpha1.Condition)
SetConditions of this CloudsqlInstance.
func (*CloudsqlInstance) SetNonPortableClassReference ¶
func (i *CloudsqlInstance) SetNonPortableClassReference(r *corev1.ObjectReference)
SetNonPortableClassReference of this CloudsqlInstance.
func (*CloudsqlInstance) SetReclaimPolicy ¶
func (i *CloudsqlInstance) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)
SetReclaimPolicy of this CloudsqlInstance.
func (*CloudsqlInstance) SetStatus ¶
func (i *CloudsqlInstance) SetStatus(inst *sqladmin.DatabaseInstance)
SetStatus and Available condition, and other fields base on the provided database instance
func (*CloudsqlInstance) SetWriteConnectionSecretToReference ¶
func (i *CloudsqlInstance) SetWriteConnectionSecretToReference(r corev1.LocalObjectReference)
SetWriteConnectionSecretToReference of this CloudsqlInstance.
type CloudsqlInstanceClass ¶
type CloudsqlInstanceClass struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// SpecTemplate is a template for the spec of a dynamically provisioned
// CloudsqlInstance.
SpecTemplate CloudsqlInstanceClassSpecTemplate `json:"specTemplate"`
}
A CloudsqlInstanceClass is a non-portable resource class. It defines the desired spec of resource claims that use it to dynamically provision a managed resource. +kubebuilder:printcolumn:name="PROVIDER-REF",type="string",JSONPath=".specTemplate.providerRef.name" +kubebuilder:printcolumn:name="RECLAIM-POLICY",type="string",JSONPath=".specTemplate.reclaimPolicy" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
func (*CloudsqlInstanceClass) DeepCopy ¶
func (in *CloudsqlInstanceClass) DeepCopy() *CloudsqlInstanceClass
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceClass.
func (*CloudsqlInstanceClass) DeepCopyInto ¶
func (in *CloudsqlInstanceClass) DeepCopyInto(out *CloudsqlInstanceClass)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CloudsqlInstanceClass) DeepCopyObject ¶
func (in *CloudsqlInstanceClass) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*CloudsqlInstanceClass) GetReclaimPolicy ¶
func (i *CloudsqlInstanceClass) GetReclaimPolicy() runtimev1alpha1.ReclaimPolicy
GetReclaimPolicy of this CloudsqlInstanceClass.
func (*CloudsqlInstanceClass) SetReclaimPolicy ¶
func (i *CloudsqlInstanceClass) SetReclaimPolicy(p runtimev1alpha1.ReclaimPolicy)
SetReclaimPolicy of this CloudsqlInstanceClass.
type CloudsqlInstanceClassList ¶
type CloudsqlInstanceClassList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CloudsqlInstanceClass `json:"items"`
}
CloudsqlInstanceClassList contains a list of cloud memorystore resource classes.
func (*CloudsqlInstanceClassList) DeepCopy ¶
func (in *CloudsqlInstanceClassList) DeepCopy() *CloudsqlInstanceClassList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceClassList.
func (*CloudsqlInstanceClassList) DeepCopyInto ¶
func (in *CloudsqlInstanceClassList) DeepCopyInto(out *CloudsqlInstanceClassList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CloudsqlInstanceClassList) DeepCopyObject ¶
func (in *CloudsqlInstanceClassList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CloudsqlInstanceClassSpecTemplate ¶
type CloudsqlInstanceClassSpecTemplate struct {
runtimev1alpha1.NonPortableClassSpecTemplate `json:",inline"`
CloudsqlInstanceParameters `json:",inline"`
}
A CloudsqlInstanceClassSpecTemplate is a template for the spec of a dynamically provisioned CloudsqlInstance.
func (*CloudsqlInstanceClassSpecTemplate) DeepCopy ¶
func (in *CloudsqlInstanceClassSpecTemplate) DeepCopy() *CloudsqlInstanceClassSpecTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceClassSpecTemplate.
func (*CloudsqlInstanceClassSpecTemplate) DeepCopyInto ¶
func (in *CloudsqlInstanceClassSpecTemplate) DeepCopyInto(out *CloudsqlInstanceClassSpecTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudsqlInstanceList ¶
type CloudsqlInstanceList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CloudsqlInstance `json:"items"`
}
CloudsqlInstanceList contains a list of CloudsqlInstance
func (*CloudsqlInstanceList) DeepCopy ¶
func (in *CloudsqlInstanceList) DeepCopy() *CloudsqlInstanceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceList.
func (*CloudsqlInstanceList) DeepCopyInto ¶
func (in *CloudsqlInstanceList) DeepCopyInto(out *CloudsqlInstanceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CloudsqlInstanceList) DeepCopyObject ¶
func (in *CloudsqlInstanceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CloudsqlInstanceParameters ¶
type CloudsqlInstanceParameters struct {
// AuthorizedNetworks is 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).
// +optional
AuthorizedNetworks []string `json:"authorizedNetworks,omitempty"`
// PrivateNetwork is the resource link for the VPC network from which the
// Cloud SQL instance is accessible for private IP. For example,
// /projects/myProject/global/networks/default. This setting can be
// updated, but it cannot be removed after it is set.
// +optional
PrivateNetwork string `json:"privateNetwork,omitempty"`
// Ipv4Enabled specifies whether the instance should be assigned an IP
// address or not.
// +optional
Ipv4Enabled bool `json:"ipv4Enabled,omitempty"`
// DatabaseVersion specifies he database engine type and version. MySQL
// Second Generation instances use MYSQL_5_7 (default) or MYSQL_5_6.
// MySQL First Generation instances use MYSQL_5_6 (default) or MYSQL_5_5
// PostgreSQL instances uses POSTGRES_9_6 (default) or POSTGRES_11.
DatabaseVersion string `json:"databaseVersion"`
// Labels to apply to this CloudSQL instance.
// +optional
Labels map[string]string `json:"labels,omitempty"`
// Region specifies the geographical region of this CloudSQL instance.
Region string `json:"region"`
// StorageType specifies the type of the data disk, either PD_SSD or PD_HDD.
StorageType string `json:"storageType"`
// StorageGB specifies the size of the data disk. The minimum is 10GB.
StorageGB int64 `json:"storageGB"`
// Tier (or machine type) for this instance, for example db-n1-standard-1
// (MySQL instances) or db-custom-1-3840 (PostgreSQL instances). For MySQL
// instances, this property determines whether the instance is First or
// Second Generation. For more information, see
// https://cloud.google.com/sql/docs/mysql/instance-settings
Tier string `json:"tier"`
// NameFormat specifies the name of the extenral CloudSQL instance. The
// first instance of the string '%s' will be replaced with the Kubernetes
// UID of this CloudsqlInstance.
NameFormat string `json:"nameFormat,omitempty"`
}
CloudsqlInstanceParameters define the desired state of a Google CloudSQL instance.
func (*CloudsqlInstanceParameters) DeepCopy ¶
func (in *CloudsqlInstanceParameters) DeepCopy() *CloudsqlInstanceParameters
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceParameters.
func (*CloudsqlInstanceParameters) DeepCopyInto ¶
func (in *CloudsqlInstanceParameters) DeepCopyInto(out *CloudsqlInstanceParameters)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudsqlInstanceSpec ¶
type CloudsqlInstanceSpec struct {
runtimev1alpha1.ResourceSpec `json:",inline"`
CloudsqlInstanceParameters `json:",inline"`
}
A CloudsqlInstanceSpec defines the desired state of a CloudsqlInstance.
func (*CloudsqlInstanceSpec) DeepCopy ¶
func (in *CloudsqlInstanceSpec) DeepCopy() *CloudsqlInstanceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceSpec.
func (*CloudsqlInstanceSpec) DeepCopyInto ¶
func (in *CloudsqlInstanceSpec) DeepCopyInto(out *CloudsqlInstanceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudsqlInstanceStatus ¶
type CloudsqlInstanceStatus struct {
runtimev1alpha1.ResourceStatus `json:",inline"`
// State of this CloudsqlInstance.
State string `json:"state,omitempty"`
// PublicIP is used to connect to this resource from other authorized
// networks.
PublicIP string `json:"publicIp,omitempty"`
// PrivateIP is used to connect to this instance from the same Network.
PrivateIP string `json:"privateIp,omitempty"`
}
A CloudsqlInstanceStatus represents the observed state of a CloudsqlInstance.
func (*CloudsqlInstanceStatus) DeepCopy ¶
func (in *CloudsqlInstanceStatus) DeepCopy() *CloudsqlInstanceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudsqlInstanceStatus.
func (*CloudsqlInstanceStatus) DeepCopyInto ¶
func (in *CloudsqlInstanceStatus) DeepCopyInto(out *CloudsqlInstanceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.