Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the crdb v1alpha1 API group +k8s:deepcopy-gen=package +k8s:defaulter-gen=TypeMeta +groupName=crdb.cockroachlabs.com +groupGoName=crdb
Package v1alpha1 contains API Schema definitions for the crdb v1alpha1 API group +k8s:deepcopy-gen=package +groupName=crdb.cockroachlabs.com
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- func SetClusterSpecDefaults(cs *CrdbClusterSpec)
- type ActionStatus
- type ActionType
- type ClusterAction
- type ClusterCondition
- type ClusterConditionType
- type ClusterRestartType
- type CrdbCluster
- type CrdbClusterList
- type CrdbClusterSpec
- type CrdbClusterStatus
- type PodImage
- type Volume
- type VolumeClaim
Constants ¶
const ( //Failed status Failed = iota //Starting status Starting //Finished status Finished //Unknown status Unknown )
const ( //RollingRestart used trigger an rolling restart RollingRestart = iota //FullCluster used to trigger a full cluster restart FullCluster )
Variables ¶
var ( DefaultGRPCPort int32 = 26258 DefaultSQLPort int32 = 26257 DefaultHTTPPort int32 = 8080 )
var ( // SchemeGroupVersion is group version used to register these objects with the k8s schema SchemeGroupVersion = schema.GroupVersion{Group: "crdb.cockroachlabs.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
func SetClusterSpecDefaults ¶
func SetClusterSpecDefaults(cs *CrdbClusterSpec)
SetClusterSpecDefaults sets various values to the default vars set above.
Types ¶
type ActionStatus ¶
type ActionStatus int
ActionStatus struct used to save the status of each action that the controller runs
func (ActionStatus) String ¶
func (a ActionStatus) String() string
type ActionType ¶
type ActionType string
ActionType type alias
const ( //VersionCheckerAction string VersionCheckerAction ActionType = "VersionCheckerAction" //ClusterRestartAction string ClusterRestartAction ActionType = "ClusterRestart" //DeployAction string DeployAction ActionType = "Deploy" //DecommissionAction string DecommissionAction ActionType = "Decommission" //InitializeAction string InitializeAction ActionType = "Initialize" //RequestCertAction string RequestCertAction ActionType = "RequestCert" //GenerateCert string GenerateCertAction ActionType = "GenerateCert" //RequestCertAction string ResizePVCAction ActionType = "ResizePVC" //UpgradeAction string UpgradeAction ActionType = "Upgrade" //PartialUpdateAction string PartialUpdateAction ActionType = "PartialUpdate" //UnknownAction string UnknownAction ActionType = "Unknown" )
type ClusterAction ¶
type ClusterAction struct {
// +required
// Type/Name of the action
Type ActionType `json:"type"`
// +optional
// Message related to the status of the action
Message string `json:"message"`
// +required
// Action status: Failed, Finished or Unknown
Status string `json:"status"`
// +required
// The time when the condition was updated
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
}
ClusterAction represents cluster status as it is perceived by the operator +k8s:deepcopy-gen=true
func (*ClusterAction) DeepCopy ¶
func (in *ClusterAction) DeepCopy() *ClusterAction
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAction.
func (*ClusterAction) DeepCopyInto ¶
func (in *ClusterAction) DeepCopyInto(out *ClusterAction)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterCondition ¶
type ClusterCondition struct {
// +required
// Type/Name of the condition
Type ClusterConditionType `json:"type"`
// +required
// Condition status: True, False or Unknown
Status metav1.ConditionStatus `json:"status"`
// +required
// The time when the condition was updated
LastTransitionTime metav1.Time `json:"lastTransitionTime"`
}
ClusterCondition represents cluster status as it is perceived by the operator
func (*ClusterCondition) DeepCopy ¶
func (in *ClusterCondition) DeepCopy() *ClusterCondition
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterCondition.
func (*ClusterCondition) DeepCopyInto ¶
func (in *ClusterCondition) DeepCopyInto(out *ClusterCondition)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterConditionType ¶
type ClusterConditionType string
ClusterConditionType type alias
const ( //CrdbCertificateGenerated condition used to run the version checker and sync other actions CertificateGenerated ClusterConditionType = "CertificateGenerated" //CrdbVersionChecked condition used to run the version checker and sync other actions CrdbVersionChecked ClusterConditionType = "CrdbVersionChecked" //DecommissionCondition string DecommissionCondition ClusterConditionType = "Decommission" //InitializedCondition string InitializedCondition ClusterConditionType = "Initialized" //ClusterRestartCondition string ClusterRestartCondition ClusterConditionType = "RestartedCluster" )
type ClusterRestartType ¶
type ClusterRestartType int
ClusterRestartType type alias
func (ClusterRestartType) String ¶
func (r ClusterRestartType) String() string
type CrdbCluster ¶
type CrdbCluster struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec CrdbClusterSpec `json:"spec,omitempty"`
Status CrdbClusterStatus `json:"status,omitempty"`
}
CrdbCluster is the CRD for the cockroachDB clusters API
func (*CrdbCluster) DeepCopy ¶
func (in *CrdbCluster) DeepCopy() *CrdbCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrdbCluster.
func (*CrdbCluster) DeepCopyInto ¶
func (in *CrdbCluster) DeepCopyInto(out *CrdbCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CrdbCluster) DeepCopyObject ¶
func (in *CrdbCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CrdbClusterList ¶
type CrdbClusterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CrdbCluster `json:"items"`
}
CrdbClusterList contains a list of Cluster
func (*CrdbClusterList) DeepCopy ¶
func (in *CrdbClusterList) DeepCopy() *CrdbClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrdbClusterList.
func (*CrdbClusterList) DeepCopyInto ¶
func (in *CrdbClusterList) DeepCopyInto(out *CrdbClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CrdbClusterList) DeepCopyObject ¶
func (in *CrdbClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CrdbClusterSpec ¶
type CrdbClusterSpec struct {
// Number of nodes (pods) in the cluster
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Number of nodes",xDescriptors="urn:alm:descriptor:com.tectonic.ui:podCount"
// +required
Nodes int32 `json:"nodes"`
// (Required) Container image information
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Cockroach Database Image"
// +optional
Image PodImage `json:"image"`
// (Optional) The database port (`--port` CLI parameter when starting the service)
// Default: 26258
// +optional
GRPCPort *int32 `json:"grpcPort,omitempty"`
// The web UI port (`--http-port` CLI parameter when starting the service)
// Default: 8080
// +optional
HTTPPort *int32 `json:"httpPort,omitempty"`
// The SQL Port number
// Default: 26257
// +optional
SQLPort *int32 `json:"sqlPort,omitempty"`
// (Optional) TLSEnabled determines if TLS is enabled for your CockroachDB Cluster
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS Enabled",xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
// +optional
TLSEnabled bool `json:"tlsEnabled,omitempty"`
// (Optional) The secret with certificates and a private key for the TLS endpoint
// on the database port. The standard naming of files is expected (tls.key, tls.crt, ca.crt)
// Default: ""
// +optional
NodeTLSSecret string `json:"nodeTLSSecret,omitempty"`
// (Optional) The secret with a certificate and a private key for root database user
// Default: ""
// +optional
ClientTLSSecret string `json:"clientTLSSecret,omitempty"`
// This number is set in the PodDistruptionBudget and defaults to 1.
// +optional
MaxUnavailable *int32 `json:"maxUnavailable,omitempty"`
// (Optional) The min number of pods that can be unavailable during a rolling update.
// This number is set in the PodDistruptionBudget and defaults to 1.
// +optional
MinAvailable *int32 `json:"minAvailable,omitempty"`
// (Optional) The total size for caches (`--cache` command line parameter)
// Default: "25%"
// +optional
Cache string `json:"cache,omitempty"`
// (Optional) The maximum in-memory storage capacity available to store temporary
// data for SQL queries (`--max-sql-memory` parameter)
// Default: "25%"
// +optional
MaxSQLMemory string `json:"maxSQLMemory,omitempty"`
// (Optional) Additional command line arguments for the `cockroach` binary
// Default: ""
// +optional
AdditionalArgs []string `json:"additionalArgs,omitempty"`
// (Optional) Database container resource limits. Any container limits
// can be specified.
// Default: (not specified)
// +optional
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// (Required) Database disk storage configuration
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Data Store"
// +required
DataStore Volume `json:"dataStore,omitempty"`
// (Optional) CockroachDBVersion sets the explicit version of the cockroachDB image
// Default: ""
// +optional
CockroachDBVersion string `json:"cockroachDBVersion,omitempty"`
// (Optional) PodEnvVariables is a slice of Environment Variables that are added to the pods
// Default: ""
// +optional
PodEnvVariables []corev1.EnvVar `json:"podEnvVariables,omitempty"`
}
CrdbClusterSpec defines the desired state of a CockroachDB Cluster that the operator maintains.
func (*CrdbClusterSpec) DeepCopy ¶
func (in *CrdbClusterSpec) DeepCopy() *CrdbClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrdbClusterSpec.
func (*CrdbClusterSpec) DeepCopyInto ¶
func (in *CrdbClusterSpec) DeepCopyInto(out *CrdbClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CrdbClusterStatus ¶
type CrdbClusterStatus struct {
// List of conditions representing the current status of the cluster resource.
// +operator-sdk:csv:customresourcedefinitions:type=status, displayName="Cluster Conditions",xDescriptors="urn:alm:descriptor:io.kubernetes.conditions"
Conditions []ClusterCondition `json:"conditions,omitempty"`
// +operator-sdk:csv:customresourcedefinitions:type=status, displayName="Crdb Actions",xDescriptors="urn:alm:descriptor:com.tectonic.ui:hidden"
OperatorActions []ClusterAction `json:"operatorActions,omitempty"`
// Database service version. Not populated and is just a placeholder currently.
// +operator-sdk:csv:customresourcedefinitions:type=status, displayName="Version",xDescriptors="urn:alm:descriptor:com.tectonic.ui:hidden"
Version string `json:"version,omitempty"`
// CrdbContainerImage is the container that will be installed
// +operator-sdk:csv:customresourcedefinitions:type=status, displayName="CrdbContainerImage",xDescriptors="urn:alm:descriptor:com.tectonic.ui:hidden"
CrdbContainerImage string `json:"crdbcontainerimage,omitempty"`
// OperatorStatus represent the status of the operator(Failed, Starting, Running or Other)
// +operator-sdk:csv:customresourcedefinitions:type=status, displayName="OperatorStatus"
ClusterStatus string `json:"clusterStatus,omitempty"`
}
CrdbClusterStatus defines the observed state of Cluster
func (*CrdbClusterStatus) DeepCopy ¶
func (in *CrdbClusterStatus) DeepCopy() *CrdbClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrdbClusterStatus.
func (*CrdbClusterStatus) DeepCopyInto ¶
func (in *CrdbClusterStatus) DeepCopyInto(out *CrdbClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodImage ¶
type PodImage struct {
// Container image with supported CockroachDB version.
// This defaults to the version pinned to the operator and requires a full container and tag/sha name.
// For instance: cockroachdb/cockroachdb:v20.1
// +required
Name string `json:"name,omitempty"`
// PullPolicy for the image, which defaults to IfNotPresent.
// +required
PullPolicyName *corev1.PullPolicy `json:"pullPolicy,omitempty"`
// Secret name containing the dockerconfig to use for a
// registry that requires authentication. The secret
// must be configured first by the user.
// +optional
PullSecret *string `json:"pullSecret,omitempty"`
}
PodImage represents the image information for a container that is used to build the StatefulSet.
func (*PodImage) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodImage.
func (*PodImage) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Volume ¶
type Volume struct {
// Directory from the host node's filesystem
// +optional
HostPath *corev1.HostPathVolumeSource `json:"hostPath,omitempty"`
// Persistent volume to use
// +optional
VolumeClaim *VolumeClaim `json:"pvc,omitempty"`
// SupportsAutoResize marks that a PVC will resize without restarting the entire cluster
// Default: false
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="PVC Supports Auto Resizing",xDescriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
// +optional
SupportsAutoResize bool `json:"supportsAutoResize"`
}
Volume defined storage configuration for the container with the Database. Only one of the fields should set
func (*Volume) Apply ¶
func (v *Volume) Apply(name string, container string, path string, spec *appsv1.StatefulSetSpec, metaMutator func(name string) metav1.ObjectMeta) error
func (*Volume) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.
func (*Volume) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeClaim ¶
type VolumeClaim struct {
// PVC to request a new persistent volume
// +required
PersistentVolumeClaimSpec corev1.PersistentVolumeClaimSpec `json:"spec,omitempty"`
// Existing PVC in the same namespace
// +required
PersistentVolumeSource corev1.PersistentVolumeClaimVolumeSource `json:"source,omitempty"`
}
VolumeClaim wraps a persistent volume claim (PVC) to use with the container. Only one of the fields should set
func (*VolumeClaim) DeepCopy ¶
func (in *VolumeClaim) DeepCopy() *VolumeClaim
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeClaim.
func (*VolumeClaim) DeepCopyInto ¶
func (in *VolumeClaim) DeepCopyInto(out *VolumeClaim)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.