Documentation
¶
Overview ¶
Package v1beta1 contains API Schema definitions for the spanner v1beta1 API group +kubebuilder:object:generate=true +groupName=spanner.mercari.com
Index ¶
- Variables
- type ActiveSchedule
- type AuthType
- type Authentication
- type CPUMetricType
- type ComputeType
- type IAMKeySecret
- type ImpersonateConfig
- type InstanceState
- type ScaleConfig
- type ScaleConfigNodes
- type ScaleConfigPUs
- type Schedule
- type SpannerAutoscaleSchedule
- func (in *SpannerAutoscaleSchedule) DeepCopy() *SpannerAutoscaleSchedule
- func (in *SpannerAutoscaleSchedule) DeepCopyInto(out *SpannerAutoscaleSchedule)
- func (in *SpannerAutoscaleSchedule) DeepCopyObject() runtime.Object
- func (r *SpannerAutoscaleSchedule) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *SpannerAutoscaleSchedule) ValidateCreate() error
- func (r *SpannerAutoscaleSchedule) ValidateDelete() error
- func (r *SpannerAutoscaleSchedule) ValidateUpdate(old runtime.Object) error
- type SpannerAutoscaleScheduleList
- type SpannerAutoscaleScheduleSpec
- type SpannerAutoscaleScheduleStatus
- type SpannerAutoscaler
- func (in *SpannerAutoscaler) DeepCopy() *SpannerAutoscaler
- func (in *SpannerAutoscaler) DeepCopyInto(out *SpannerAutoscaler)
- func (in *SpannerAutoscaler) DeepCopyObject() runtime.Object
- func (r *SpannerAutoscaler) Default()
- func (*SpannerAutoscaler) Hub()
- func (r *SpannerAutoscaler) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *SpannerAutoscaler) ValidateCreate() error
- func (r *SpannerAutoscaler) ValidateDelete() error
- func (r *SpannerAutoscaler) ValidateUpdate(old runtime.Object) error
- type SpannerAutoscalerList
- type SpannerAutoscalerSpec
- type SpannerAutoscalerStatus
- type TargetCPUUtilization
- type TargetInstance
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "spanner.mercari.com", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ActiveSchedule ¶ added in v0.4.0
type ActiveSchedule struct {
// Name of the `SpannerAutoscaleSchedule`
ScheduleName string `json:"name"`
// The time until when this schedule will remain active
EndTime metav1.Time `json:"endTime"`
// The extra compute capacity which will be added because of this schedule
AdditionalPU int `json:"additionalPU"`
}
A `SpannerAutoscaleSchedule` which is currently active and will be used for calculating the autoscaling range.
func (*ActiveSchedule) DeepCopy ¶ added in v0.4.0
func (in *ActiveSchedule) DeepCopy() *ActiveSchedule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveSchedule.
func (*ActiveSchedule) DeepCopyInto ¶ added in v0.4.0
func (in *ActiveSchedule) DeepCopyInto(out *ActiveSchedule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthType ¶
type AuthType string
Type for specifying authentication methods +kubebuilder:validation:Enum=gcp-sa-key;impersonation;adc
type Authentication ¶
type Authentication struct {
// Authentication method to be used for GCP authentication.
// If `ImpersonateConfig` as well as `IAMKeySecret` is nil, this will be set to use ADC be default.
Type AuthType `json:"type,omitempty"`
// Details of the GCP service account which will be impersonated, for authentication to GCP.
// This can used only on GKE clusters, when workload identity is enabled.
// [[Ref](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity)].
// This is a pointer because structs with string slices can not be compared for zero values
ImpersonateConfig *ImpersonateConfig `json:"impersonateConfig,omitempty"`
// Details of the k8s secret which contains the GCP service account authentication key (in JSON).
// [[Ref](https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform)].
// This is a pointer because structs with string slices can not be compared for zero values
IAMKeySecret *IAMKeySecret `json:"iamKeySecret,omitempty"`
}
Authentication details for the Spanner instance
func (*Authentication) DeepCopy ¶
func (in *Authentication) DeepCopy() *Authentication
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authentication.
func (*Authentication) DeepCopyInto ¶
func (in *Authentication) DeepCopyInto(out *Authentication)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CPUMetricType ¶ added in v0.7.0
type CPUMetricType string
CPUMetricType identifies which Cloud Monitoring CPU metric is being used for autoscaling decisions. +kubebuilder:validation:Enum=HighPriority;Total
const ( // CPUMetricTypeHighPriority uses spanner.googleapis.com/instance/cpu/utilization_by_priority // with priority=high filter. CPUMetricTypeHighPriority CPUMetricType = "HighPriority" // CPUMetricTypeTotal uses spanner.googleapis.com/instance/cpu/utilization (all priorities). CPUMetricTypeTotal CPUMetricType = "Total" )
type ComputeType ¶
type ComputeType string
Type for specifying compute capacity categories +kubebuilder:validation:Enum=nodes;processing-units
const ( ComputeTypeNode ComputeType = "nodes" ComputeTypePU ComputeType = "processing-units" )
type IAMKeySecret ¶
type IAMKeySecret struct {
// Name of the secret which contains the authentication key
Name string `json:"name"`
// Namespace of the secret which contains the authentication key
Namespace string `json:"namespace,omitempty"`
// Name of the yaml 'key' under which the authentication value is stored
Key string `json:"key"`
}
Details of the secret which has the GCP service account key for authentication
func (*IAMKeySecret) DeepCopy ¶
func (in *IAMKeySecret) DeepCopy() *IAMKeySecret
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMKeySecret.
func (*IAMKeySecret) DeepCopyInto ¶
func (in *IAMKeySecret) DeepCopyInto(out *IAMKeySecret)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ImpersonateConfig ¶
type ImpersonateConfig struct {
// The service account which will be impersonated
TargetServiceAccount string `json:"targetServiceAccount"`
// Delegation chain for the service account impersonation.
// [[Ref](https://pkg.go.dev/google.golang.org/api/impersonate#hdr-Required_IAM_roles)]
Delegates []string `json:"delegates,omitempty"`
}
Details of the impersonation service account for GCP authentication
func (*ImpersonateConfig) DeepCopy ¶
func (in *ImpersonateConfig) DeepCopy() *ImpersonateConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImpersonateConfig.
func (*ImpersonateConfig) DeepCopyInto ¶
func (in *ImpersonateConfig) DeepCopyInto(out *ImpersonateConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceState ¶
type InstanceState string
const ( InstanceStateUnspecified InstanceState = "unspecified" // The instance is still being created. Resources may not be // available yet, and operations such as database creation may not // work. InstanceStateCreating InstanceState = "creating" // The instance is fully created and ready to do work such as // creating databases. InstanceStateReady InstanceState = "ready" )
type ScaleConfig ¶
type ScaleConfig struct {
// Whether to use `nodes` or `processing-units` for scaling.
// This is only used at the time of CustomResource creation. If compute capacity is provided in `nodes`, then it is automatically converted to `processing-units` at the time of resource creation, and internally, only `ProcessingUnits` are used for computations and scaling.
ComputeType ComputeType `json:"computeType,omitempty"`
// If `nodes` are provided at the time of resource creation, then they are automatically converted to `processing-units`. So it is recommended to use only the processing units. Ref: [Spanner Compute Capacity](https://cloud.google.com/spanner/docs/compute-capacity#compute_capacity)
Nodes ScaleConfigNodes `json:"nodes,omitempty"`
// ProcessingUnits for scaling of the Spanner instance. Ref: [Spanner Compute Capacity](https://cloud.google.com/spanner/docs/compute-capacity#compute_capacity)
ProcessingUnits ScaleConfigPUs `json:"processingUnits,omitempty"`
// The maximum number of processing units which can be deleted in one scale-down operation. It can be a multiple of 100 for values < 1000, or a multiple of 1000 otherwise.
// It can also be a percentage of the total number of processing units at the start of the scale-down operation.
// +kubebuilder:default=2000
ScaledownStepSize intstr.IntOrString `json:"scaledownStepSize,omitempty"`
// How often autoscaler is reevaluated for scale down.
// The cool down period between two consecutive scaledown operations. If this option is omitted, the value of the `--scale-down-interval` command line option is taken as the default value.
ScaledownInterval *metav1.Duration `json:"scaledownInterval,omitempty"`
// The maximum number of processing units which can be added in one scale-up operation. It can be a multiple of 100 for values < 1000, or a multiple of 1000 otherwise.
// It can also be a percentage of the total number of processing units at the start of the scale-up operation.
// +kubebuilder:default=0
ScaleupStepSize intstr.IntOrString `json:"scaleupStepSize,omitempty"`
// How often autoscaler is reevaluated for scale up.
// The warm up period between two consecutive scaleup operations. If this option is omitted, the value of the `--scale-up-interval` command line option is taken as the default value.
ScaleupInterval *metav1.Duration `json:"scaleupInterval,omitempty"`
// The CPU utilization which the autoscaling will try to achieve. Ref: [Spanner CPU utilization](https://cloud.google.com/spanner/docs/cpu-utilization#task-priority)
TargetCPUUtilization TargetCPUUtilization `json:"targetCPUUtilization"`
}
Details of the autoscaling parameters for the Spanner instance
func (*ScaleConfig) DeepCopy ¶
func (in *ScaleConfig) DeepCopy() *ScaleConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleConfig.
func (*ScaleConfig) DeepCopyInto ¶
func (in *ScaleConfig) DeepCopyInto(out *ScaleConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleConfigNodes ¶
type ScaleConfigNodes struct {
// Minimum number of Nodes for the autoscaling range
Min int `json:"min,omitempty"`
// Maximum number of Nodes for the autoscaling range
Max int `json:"max,omitempty"`
}
Compute capacity in terms of Nodes
func (*ScaleConfigNodes) DeepCopy ¶
func (in *ScaleConfigNodes) DeepCopy() *ScaleConfigNodes
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleConfigNodes.
func (*ScaleConfigNodes) DeepCopyInto ¶
func (in *ScaleConfigNodes) DeepCopyInto(out *ScaleConfigNodes)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleConfigPUs ¶
type ScaleConfigPUs struct {
// Minimum number of Processing Units for the autoscaling range
// +kubebuilder:validation:MultipleOf=100
Min int `json:"min"`
// Maximum number of Processing Units for the autoscaling range
// +kubebuilder:validation:MultipleOf=100
Max int `json:"max"`
}
Compute capacity in terms of Processing Units
func (*ScaleConfigPUs) DeepCopy ¶
func (in *ScaleConfigPUs) DeepCopy() *ScaleConfigPUs
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleConfigPUs.
func (*ScaleConfigPUs) DeepCopyInto ¶
func (in *ScaleConfigPUs) DeepCopyInto(out *ScaleConfigPUs)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Schedule ¶ added in v0.4.0
type Schedule struct {
// The recurring frequency of the schedule in [standard cron](https://en.wikipedia.org/wiki/Cron) format. Examples and verification utility: https://crontab.guru
Cron string `json:"cron"`
// The length of time for which this schedule will remain active each time the cron is triggered.
Duration string `json:"duration"`
}
The recurring frequency and the length of time for which a schedule will remain active
func (*Schedule) DeepCopy ¶ added in v0.4.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Schedule.
func (*Schedule) DeepCopyInto ¶ added in v0.4.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SpannerAutoscaleSchedule ¶ added in v0.4.0
type SpannerAutoscaleSchedule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SpannerAutoscaleScheduleSpec `json:"spec,omitempty"`
Status SpannerAutoscaleScheduleStatus `json:"status,omitempty"`
}
+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:printcolumn:name="Cron",type="string",JSONPath=".spec.schedule.cron" +kubebuilder:printcolumn:name="Duration",type="string",JSONPath=".spec.schedule.duration" +kubebuilder:printcolumn:name="Additional PU",type="integer",JSONPath=".spec.additionalProcessingUnits" SpannerAutoscaleSchedule is the Schema for the spannerautoscaleschedules API
func (*SpannerAutoscaleSchedule) DeepCopy ¶ added in v0.4.0
func (in *SpannerAutoscaleSchedule) DeepCopy() *SpannerAutoscaleSchedule
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscaleSchedule.
func (*SpannerAutoscaleSchedule) DeepCopyInto ¶ added in v0.4.0
func (in *SpannerAutoscaleSchedule) DeepCopyInto(out *SpannerAutoscaleSchedule)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SpannerAutoscaleSchedule) DeepCopyObject ¶ added in v0.4.0
func (in *SpannerAutoscaleSchedule) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SpannerAutoscaleSchedule) SetupWebhookWithManager ¶ added in v0.4.0
func (r *SpannerAutoscaleSchedule) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*SpannerAutoscaleSchedule) ValidateCreate ¶ added in v0.4.0
func (r *SpannerAutoscaleSchedule) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*SpannerAutoscaleSchedule) ValidateDelete ¶ added in v0.4.0
func (r *SpannerAutoscaleSchedule) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*SpannerAutoscaleSchedule) ValidateUpdate ¶ added in v0.4.0
func (r *SpannerAutoscaleSchedule) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type SpannerAutoscaleScheduleList ¶ added in v0.4.0
type SpannerAutoscaleScheduleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []SpannerAutoscaleSchedule `json:"items"`
}
SpannerAutoscaleScheduleList contains a list of SpannerAutoscaleSchedule
func (*SpannerAutoscaleScheduleList) DeepCopy ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleList) DeepCopy() *SpannerAutoscaleScheduleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscaleScheduleList.
func (*SpannerAutoscaleScheduleList) DeepCopyInto ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleList) DeepCopyInto(out *SpannerAutoscaleScheduleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SpannerAutoscaleScheduleList) DeepCopyObject ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SpannerAutoscaleScheduleSpec ¶ added in v0.4.0
type SpannerAutoscaleScheduleSpec struct {
// The `SpannerAutoscaler` resource name with which this schedule will be registered.
// Immutable after creation.
TargetResource string `json:"targetResource"`
// The extra compute capacity which will be added when this schedule is active.
// This is the only field that can be updated after creation.
AdditionalProcessingUnits int `json:"additionalProcessingUnits"`
// The details of when and for how long this schedule will be active.
// Immutable after creation.
Schedule Schedule `json:"schedule"`
}
SpannerAutoscaleScheduleSpec defines the desired state of SpannerAutoscaleSchedule
func (*SpannerAutoscaleScheduleSpec) DeepCopy ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleSpec) DeepCopy() *SpannerAutoscaleScheduleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscaleScheduleSpec.
func (*SpannerAutoscaleScheduleSpec) DeepCopyInto ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleSpec) DeepCopyInto(out *SpannerAutoscaleScheduleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SpannerAutoscaleScheduleStatus ¶ added in v0.4.0
type SpannerAutoscaleScheduleStatus struct{}
SpannerAutoscaleScheduleStatus defines the observed state of SpannerAutoscaleSchedule
func (*SpannerAutoscaleScheduleStatus) DeepCopy ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleStatus) DeepCopy() *SpannerAutoscaleScheduleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscaleScheduleStatus.
func (*SpannerAutoscaleScheduleStatus) DeepCopyInto ¶ added in v0.4.0
func (in *SpannerAutoscaleScheduleStatus) DeepCopyInto(out *SpannerAutoscaleScheduleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SpannerAutoscaler ¶
type SpannerAutoscaler struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec SpannerAutoscalerSpec `json:"spec,omitempty"`
Status SpannerAutoscalerStatus `json:"status,omitempty"`
}
SpannerAutoscaler is the Schema for the spannerautoscalers API
func (*SpannerAutoscaler) DeepCopy ¶
func (in *SpannerAutoscaler) DeepCopy() *SpannerAutoscaler
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscaler.
func (*SpannerAutoscaler) DeepCopyInto ¶
func (in *SpannerAutoscaler) DeepCopyInto(out *SpannerAutoscaler)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SpannerAutoscaler) DeepCopyObject ¶
func (in *SpannerAutoscaler) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*SpannerAutoscaler) Default ¶
func (r *SpannerAutoscaler) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*SpannerAutoscaler) Hub ¶
func (*SpannerAutoscaler) Hub()
Hub marks this type as a conversion hub.
func (*SpannerAutoscaler) SetupWebhookWithManager ¶
func (r *SpannerAutoscaler) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*SpannerAutoscaler) ValidateCreate ¶
func (r *SpannerAutoscaler) ValidateCreate() error
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*SpannerAutoscaler) ValidateDelete ¶
func (r *SpannerAutoscaler) ValidateDelete() error
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*SpannerAutoscaler) ValidateUpdate ¶
func (r *SpannerAutoscaler) ValidateUpdate(old runtime.Object) error
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type SpannerAutoscalerList ¶
type SpannerAutoscalerList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []SpannerAutoscaler `json:"items"`
}
SpannerAutoscalerList contains a list of SpannerAutoscaler
func (*SpannerAutoscalerList) DeepCopy ¶
func (in *SpannerAutoscalerList) DeepCopy() *SpannerAutoscalerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscalerList.
func (*SpannerAutoscalerList) DeepCopyInto ¶
func (in *SpannerAutoscalerList) DeepCopyInto(out *SpannerAutoscalerList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SpannerAutoscalerList) DeepCopyObject ¶
func (in *SpannerAutoscalerList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SpannerAutoscalerSpec ¶
type SpannerAutoscalerSpec struct {
// The Spanner instance which will be managed for autoscaling
TargetInstance TargetInstance `json:"targetInstance"`
// Authentication details for the Spanner instance
Authentication Authentication `json:"authentication,omitempty"`
// Details of the autoscaling parameters for the Spanner instance
ScaleConfig ScaleConfig `json:"scaleConfig"`
}
SpannerAutoscalerSpec defines the desired state of SpannerAutoscaler
func (*SpannerAutoscalerSpec) DeepCopy ¶
func (in *SpannerAutoscalerSpec) DeepCopy() *SpannerAutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscalerSpec.
func (*SpannerAutoscalerSpec) DeepCopyInto ¶
func (in *SpannerAutoscalerSpec) DeepCopyInto(out *SpannerAutoscalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SpannerAutoscalerStatus ¶
type SpannerAutoscalerStatus struct {
// List of schedules which are registered with this spanner-autoscaler instance
Schedules []string `json:"schedules,omitempty"`
// List of all the schedules which are currently active and will be used in calculating compute capacity
CurrentlyActiveSchedules []ActiveSchedule `json:"currentlyActiveSchedules,omitempty"`
// Last time the `SpannerAutoscaler` scaled the number of Spanner nodes.
// Used by the autoscaler to control how often the number of nodes are changed
LastScaleTime metav1.Time `json:"lastScaleTime,omitempty"`
// Last time the `SpannerAutoscaler` fetched and synced the metrics from Spanner
LastSyncTime metav1.Time `json:"lastSyncTime,omitempty"`
// Current number of processing-units in the Spanner instance
CurrentProcessingUnits int `json:"currentProcessingUnits,omitempty"`
// Desired number of processing-units in the Spanner instance
DesiredProcessingUnits int `json:"desiredProcessingUnits,omitempty"`
// Minimum number of processing units based on the currently active schedules
DesiredMinPUs int `json:"desiredMinPUs,omitempty"`
// Maximum number of processing units based on the currently active schedules
DesiredMaxPUs int `json:"desiredMaxPUs,omitempty"`
// State of the Cloud Spanner instance
InstanceState InstanceState `json:"instanceState,omitempty"`
// Current average CPU utilization for high priority task, represented as a percentage
CurrentHighPriorityCPUUtilization int `json:"currentHighPriorityCPUUtilization,omitempty"`
// Current total CPU utilization (all priorities), represented as a percentage.
// This field is populated only when spec.scaleConfig.targetCPUUtilization.total is specified.
CurrentTotalCPUUtilization int `json:"currentTotalCPUUtilization,omitempty"`
// CurrentCPUMetricType is the CPU metric type that was used in the last sync cycle.
// The controller uses this to detect metric-type switches and skip scaling until
// the status reflects the newly configured metric type.
CurrentCPUMetricType CPUMetricType `json:"currentCPUMetricType,omitempty"`
}
SpannerAutoscalerStatus defines the observed state of SpannerAutoscaler
func (*SpannerAutoscalerStatus) DeepCopy ¶
func (in *SpannerAutoscalerStatus) DeepCopy() *SpannerAutoscalerStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SpannerAutoscalerStatus.
func (*SpannerAutoscalerStatus) DeepCopyInto ¶
func (in *SpannerAutoscalerStatus) DeepCopyInto(out *SpannerAutoscalerStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetCPUUtilization ¶
type TargetCPUUtilization struct {
// Desired CPU utilization for 'High Priority' CPU consumption category. Ref: [Spanner CPU utilization](https://cloud.google.com/spanner/docs/cpu-utilization#task-priority)
// Mutually exclusive with 'total'. Exactly one of 'highPriority' or 'total' must be specified.
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
// +kubebuilder:validation:ExclusiveMinimum=true
// +kubebuilder:validation:ExclusiveMaximum=true
HighPriority *int `json:"highPriority,omitempty"`
// Desired total CPU utilization (all priorities combined). Ref: [Spanner CPU utilization](https://cloud.google.com/spanner/docs/cpu-utilization)
// Mutually exclusive with 'highPriority'. Exactly one of 'highPriority' or 'total' must be specified.
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
// +kubebuilder:validation:ExclusiveMinimum=true
// +kubebuilder:validation:ExclusiveMaximum=true
Total *int `json:"total,omitempty"`
}
func (*TargetCPUUtilization) DeepCopy ¶
func (in *TargetCPUUtilization) DeepCopy() *TargetCPUUtilization
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetCPUUtilization.
func (*TargetCPUUtilization) DeepCopyInto ¶
func (in *TargetCPUUtilization) DeepCopyInto(out *TargetCPUUtilization)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetInstance ¶
type TargetInstance struct {
// The GCP Project id of the Spanner instance
ProjectID string `json:"projectId"`
// The instance id of the Spanner instance
InstanceID string `json:"instanceId"`
}
The Spanner instance which will be managed for autoscaling
func (*TargetInstance) DeepCopy ¶
func (in *TargetInstance) DeepCopy() *TargetInstance
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetInstance.
func (*TargetInstance) DeepCopyInto ¶
func (in *TargetInstance) DeepCopyInto(out *TargetInstance)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.