v1alpha1

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 27, 2025 License: AGPL-3.0 Imports: 8 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the parameters v1alpha1 API group +kubebuilder:object:generate=true +groupName=parameters.kubeblocks.io

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "parameters.kubeblocks.io", Version: "v1alpha1"}

	// 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
)
View Source
var SchemeGroupVersion = GroupVersion

SchemeGroupVersion is group version used to register these objects.

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AutoTrigger

type AutoTrigger struct {
	// The name of the process.
	//
	// +optional
	ProcessName string `json:"processName,omitempty"`
}

AutoTrigger automatically perform the reload when specified conditions are met.

func (*AutoTrigger) DeepCopy

func (in *AutoTrigger) DeepCopy() *AutoTrigger

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoTrigger.

func (*AutoTrigger) DeepCopyInto

func (in *AutoTrigger) DeepCopyInto(out *AutoTrigger)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CfgFileFormat

type CfgFileFormat string

CfgFileFormat defines formatter of configuration files. +enum +kubebuilder:validation:Enum={xml,ini,yaml,json,hcl,dotenv,toml,properties,redis,props-plus}

const (
	Ini            CfgFileFormat = "ini"
	YAML           CfgFileFormat = "yaml"
	JSON           CfgFileFormat = "json"
	XML            CfgFileFormat = "xml"
	HCL            CfgFileFormat = "hcl"
	Dotenv         CfgFileFormat = "dotenv"
	TOML           CfgFileFormat = "toml"
	Properties     CfgFileFormat = "properties"
	RedisCfg       CfgFileFormat = "redis"
	PropertiesPlus CfgFileFormat = "props-plus"
)

type ComponentConfigDescription

type ComponentConfigDescription struct {
	// Specifies the config file name in the config template.
	//
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Specifies the name of the referenced componentTemplateSpec.
	//
	// +optional
	TemplateName string `json:"templateName"`

	// Specifies the format of the configuration file and any associated parameters that are specific to the chosen format.
	// Supported formats include `ini`, `xml`, `yaml`, `json`, `hcl`, `dotenv`, `properties`, and `toml`.
	//
	// Each format may have its own set of parameters that can be configured.
	// For instance, when using the `ini` format, you can specify the section name.
	//
	// Example:
	// “`
	// fileFormatConfig:
	//  format: ini
	//  iniConfig:
	//    sectionName: mysqld
	// “`
	//
	// +optional
	FileFormatConfig *FileFormatConfig `json:"fileFormatConfig,omitempty"`

	// Specifies whether the configuration needs to be re-rendered after v-scale or h-scale operations to reflect changes.
	//
	// In some scenarios, the configuration may need to be updated to reflect the changes in resource allocation
	// or cluster topology. Examples:
	//
	// - Redis: adjust maxmemory after v-scale operation.
	// - MySQL: increase max connections after v-scale operation.
	// - Zookeeper: update zoo.cfg with new node addresses after h-scale operation.
	//
	// +listType=set
	// +optional
	ReRenderResourceTypes []RerenderResourceType `json:"reRenderResourceTypes,omitempty"`
}

func (*ComponentConfigDescription) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentConfigDescription.

func (*ComponentConfigDescription) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentParameter

type ComponentParameter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ComponentParameterSpec   `json:"spec,omitempty"`
	Status ComponentParameterStatus `json:"status,omitempty"`
}

ComponentParameter is the Schema for the componentparameters API

func (*ComponentParameter) DeepCopy

func (in *ComponentParameter) DeepCopy() *ComponentParameter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameter.

func (*ComponentParameter) DeepCopyInto

func (in *ComponentParameter) DeepCopyInto(out *ComponentParameter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ComponentParameter) DeepCopyObject

func (in *ComponentParameter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ComponentParameterList

type ComponentParameterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ComponentParameter `json:"items"`
}

ComponentParameterList contains a list of ComponentParameter

func (*ComponentParameterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameterList.

func (*ComponentParameterList) DeepCopyInto

func (in *ComponentParameterList) DeepCopyInto(out *ComponentParameterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ComponentParameterList) DeepCopyObject

func (in *ComponentParameterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ComponentParameterSpec

type ComponentParameterSpec struct {

	// Specifies the name of the Cluster that this configuration is associated with.
	//
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterRef"
	// +optional
	ClusterName string `json:"clusterName,omitempty"`

	// Represents the name of the Component that this configuration pertains to.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterRef"
	ComponentName string `json:"componentName"`

	// ConfigItemDetails is an array of ConfigTemplateItemDetail objects.
	//
	// Each ConfigTemplateItemDetail corresponds to a configuration template,
	// which is a ConfigMap that contains multiple configuration files.
	// Each configuration file is stored as a key-value pair within the ConfigMap.
	//
	// The ConfigTemplateItemDetail includes information such as:
	//
	// - The configuration template (a ConfigMap)
	// - The corresponding ConfigConstraint (constraints and validation rules for the configuration)
	// - Volume mounts (for mounting the configuration files)
	//
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	ConfigItemDetails []ConfigTemplateItemDetail `json:"configItemDetails,omitempty"`
}

ComponentParameterSpec defines the desired state of ComponentConfiguration

func (*ComponentParameterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameterSpec.

func (*ComponentParameterSpec) DeepCopyInto

func (in *ComponentParameterSpec) DeepCopyInto(out *ComponentParameterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentParameterStatus

type ComponentParameterStatus struct {

	// Provides a description of any abnormal status.
	// +optional
	Message string `json:"message,omitempty"`

	// Indicates the current status of the configuration item.
	//
	// Possible values include "Creating", "Init", "Running", "Pending", "Merged", "MergeFailed", "FailedAndPause",
	// "Upgrading", "Deleting", "FailedAndRetry", "Finished".
	//
	// +optional
	Phase ParameterPhase `json:"phase,omitempty"`

	// Represents the latest generation observed for this
	// ClusterDefinition. It corresponds to the ConfigConstraint's generation, which is
	// updated by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Provides detailed status information for opsRequest.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Provides the status of each component undergoing reconfiguration.
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	ConfigurationItemStatus []ConfigTemplateItemDetailStatus `json:"configurationStatus"`
}

ComponentParameterStatus defines the observed state of ComponentConfiguration

func (*ComponentParameterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameterStatus.

func (*ComponentParameterStatus) DeepCopyInto

func (in *ComponentParameterStatus) DeepCopyInto(out *ComponentParameterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentParameters

type ComponentParameters map[string]*string

func (ComponentParameters) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParameters.

func (ComponentParameters) DeepCopyInto

func (in ComponentParameters) DeepCopyInto(out *ComponentParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentParametersSpec

type ComponentParametersSpec struct {

	// Specifies the name of the Component.
	// +kubebuilder:validation:Required
	ComponentName string `json:"componentName"`

	// Specifies the user-defined configuration template or parameters.
	//
	// +optional
	Parameters ComponentParameters `json:"parameters,omitempty"`

	// Specifies the user-defined configuration template.
	//
	// When provided, the `importTemplateRef` overrides the default configuration template
	// specified in `configSpec.templateRef`.
	// This allows users to customize the configuration template according to their specific requirements.
	//
	// +optional
	CustomTemplates map[string]ConfigTemplateExtension `json:"userConfigTemplates,omitempty"`
}

func (*ComponentParametersSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentParametersSpec.

func (*ComponentParametersSpec) DeepCopyInto

func (in *ComponentParametersSpec) DeepCopyInto(out *ComponentParametersSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComponentReconfiguringStatus

type ComponentReconfiguringStatus struct {
	// Specifies the name of the Component.
	// +kubebuilder:validation:Required
	ComponentName string `json:"componentName"`

	// Indicates the current status of the configuration item.
	//
	// Possible values include "Creating", "Init", "Running", "Pending", "Merged", "MergeFailed", "FailedAndPause",
	// "Upgrading", "Deleting", "FailedAndRetry", "Finished".
	//
	// +optional
	Phase ParameterPhase `json:"phase,omitempty"`

	// Describes the status of the component reconfiguring.
	// +kubebuilder:validation:Required
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	ParameterStatus []ReconfiguringStatus `json:"parameterStatus,omitempty"`
}

func (*ComponentReconfiguringStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentReconfiguringStatus.

func (*ComponentReconfiguringStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigTemplateExtension

type ConfigTemplateExtension struct {
	// Specifies the name of the referenced configuration template ConfigMap object.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
	TemplateRef string `json:"templateRef"`

	// Specifies the namespace of the referenced configuration template ConfigMap object.
	// An empty namespace is equivalent to the "default" namespace.
	//
	// +kubebuilder:default="default"
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$`
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// Defines the strategy for merging externally imported templates into component templates.
	//
	// +kubebuilder:default="none"
	// +optional
	Policy MergedPolicy `json:"policy,omitempty"`
}

func (*ConfigTemplateExtension) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigTemplateExtension.

func (*ConfigTemplateExtension) DeepCopyInto

func (in *ConfigTemplateExtension) DeepCopyInto(out *ConfigTemplateExtension)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigTemplateItemDetail

type ConfigTemplateItemDetail struct {
	// Defines the unique identifier of the configuration template.
	//
	// It must be a string of maximum 63 characters, and can only include lowercase alphanumeric characters,
	// hyphens, and periods.
	// The name must start and end with an alphanumeric character.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
	Name string `json:"name"`

	// External controllers can trigger a configuration rerender by modifying this field.
	//
	// Note: Currently, the `payload` field is opaque and its content is not interpreted by the system.
	// Modifying this field will cause a rerender, regardless of the specific content of this field.
	//
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:Type=object
	// +optional
	Payload Payload `json:"payload,omitempty"`

	// Specifies the name of the configuration template (a ConfigMap), ConfigConstraint, and other miscellaneous options.
	//
	// The configuration template is a ConfigMap that contains multiple configuration files.
	// Each configuration file is stored as a key-value pair within the ConfigMap.
	//
	// ConfigConstraint allows defining constraints and validation rules for configuration parameters.
	// It ensures that the configuration adheres to certain requirements and limitations.
	//
	// +optional
	ConfigSpec *appsv1.ComponentFileTemplate `json:"configSpec,omitempty"`

	// Specifies the user-defined configuration template.
	//
	// When provided, the `importTemplateRef` overrides the default configuration template
	// specified in `configSpec.templateRef`.
	// This allows users to customize the configuration template according to their specific requirements.
	//
	// +optional
	CustomTemplates *ConfigTemplateExtension `json:"userConfigTemplates,omitempty"`

	// Specifies the user-defined configuration parameters.
	//
	// When provided, the parameter values in `configFileParams` override the default configuration parameters.
	// This allows users to override the default configuration according to their specific needs.
	//
	// +optional
	ConfigFileParams map[string]ParametersInFile `json:"configFileParams,omitempty"`
}

ConfigTemplateItemDetail corresponds to settings of a configuration template (a ConfigMap).

func (*ConfigTemplateItemDetail) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigTemplateItemDetail.

func (*ConfigTemplateItemDetail) DeepCopyInto

func (in *ConfigTemplateItemDetail) DeepCopyInto(out *ConfigTemplateItemDetail)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigTemplateItemDetailStatus

type ConfigTemplateItemDetailStatus struct {
	// Specifies the name of the configuration template. It is a required field and must be a string of maximum 63 characters.
	// The name should only contain lowercase alphanumeric characters, hyphens, or periods. It should start and end with an alphanumeric character.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
	Name string `json:"name"`

	// Indicates the current status of the configuration item.
	//
	// Possible values include "Creating", "Init", "Running", "Pending", "Merged", "MergeFailed", "FailedAndPause",
	// "Upgrading", "Deleting", "FailedAndRetry", "Finished".
	//
	// +optional
	Phase ParameterPhase `json:"phase,omitempty"`

	// Represents the last completed revision of the configuration item. This field is optional.
	//
	// +optional
	LastDoneRevision string `json:"lastDoneRevision,omitempty"`

	// Represents the updated revision of the configuration item. This field is optional.
	//
	// +optional
	UpdateRevision string `json:"updateRevision,omitempty"`

	// Provides a description of any abnormal status. This field is optional.
	//
	// +optional
	Message *string `json:"message,omitempty"`

	// Provides detailed information about the execution of the configuration change. This field is optional.
	//
	// +optional
	ReconcileDetail *ReconcileDetail `json:"reconcileDetail,omitempty"`
}

func (*ConfigTemplateItemDetailStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigTemplateItemDetailStatus.

func (*ConfigTemplateItemDetailStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DownwardAPIChangeTriggeredAction

type DownwardAPIChangeTriggeredAction struct {
	// Specifies the name of the field. It must be a string of maximum length 63.
	// The name should match the regex pattern `^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$`
	Name string `json:"name"`

	// Specifies the mount point of the Downward API volume.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=128
	MountPoint string `json:"mountPoint"`

	// Represents a list of files under the Downward API volume.
	//
	// +kubebuilder:validation:Required
	Items []corev1.DownwardAPIVolumeFile `json:"items"`

	// Specifies the command to be triggered when changes are detected in Downward API volume files.
	// It relies on the inotify mechanism in the config-manager sidecar to monitor file changes.
	//
	// +optional
	Command []string `json:"command,omitempty"`

	// ScriptConfig object specifies a ConfigMap that contains script files that should be mounted inside the pod.
	// The scripts are mounted as volumes and can be referenced and executed by the DownwardAction to perform specific tasks or configurations.
	//
	// +optional
	ScriptConfig *ScriptConfig `json:"scriptConfig,omitempty"`
}

DownwardAPIChangeTriggeredAction defines an action that triggers specific commands in response to changes in Pod labels. For example, a command might be executed when the 'role' label of the Pod is updated.

func (*DownwardAPIChangeTriggeredAction) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIChangeTriggeredAction.

func (*DownwardAPIChangeTriggeredAction) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DynamicParameterSelectedPolicy

type DynamicParameterSelectedPolicy string

DynamicParameterSelectedPolicy determines how to select the parameters of dynamic reload actions

+enum +kubebuilder:validation:Enum={all,dynamic}

const (
	SelectedAllParameters     DynamicParameterSelectedPolicy = "all"
	SelectedDynamicParameters DynamicParameterSelectedPolicy = "dynamic"
)

type DynamicReloadType

type DynamicReloadType string

DynamicReloadType defines reload method. +enum

const (
	UnixSignalType DynamicReloadType = "signal"
	SQLType        DynamicReloadType = "sql"
	ShellType      DynamicReloadType = "exec"
	HTTPType       DynamicReloadType = "http"
	TPLScriptType  DynamicReloadType = "tpl"
	AutoType       DynamicReloadType = "auto"
)

type FileFormatConfig

type FileFormatConfig struct {
	// Each format may have its own set of parameters that can be configured.
	// For instance, when using the `ini` format, you can specify the section name.
	//
	// +optional
	FormatterAction `json:",inline"`

	// The config file format. Valid values are `ini`, `xml`, `yaml`, `json`,
	// `hcl`, `dotenv`, `properties` and `toml`. Each format has its own characteristics and use cases.
	//
	// - ini: is a text-based content with a structure and syntax comprising key–value pairs for properties, reference wiki: https://en.wikipedia.org/wiki/INI_file
	// - xml: refers to wiki: https://en.wikipedia.org/wiki/XML
	// - yaml: supports for complex data types and structures.
	// - json: refers to wiki: https://en.wikipedia.org/wiki/JSON
	// - hcl: The HashiCorp Configuration Language (HCL) is a configuration language authored by HashiCorp, reference url: https://www.linode.com/docs/guides/introduction-to-hcl/
	// - dotenv: is a plain text file with simple key–value pairs, reference wiki: https://en.wikipedia.org/wiki/Configuration_file#MS-DOS
	// - properties: a file extension mainly used in Java, reference wiki: https://en.wikipedia.org/wiki/.properties
	// - toml: refers to wiki: https://en.wikipedia.org/wiki/TOML
	// - props-plus: a file extension mainly used in Java, supports CamelCase(e.g: brokerMaxConnectionsPerIp)
	//
	// +kubebuilder:validation:Required
	Format CfgFileFormat `json:"format"`
}

FileFormatConfig specifies the format of the configuration file and any associated parameters that are specific to the chosen format.

func (*FileFormatConfig) DeepCopy

func (in *FileFormatConfig) DeepCopy() *FileFormatConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileFormatConfig.

func (*FileFormatConfig) DeepCopyInto

func (in *FileFormatConfig) DeepCopyInto(out *FileFormatConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FormatterAction

type FormatterAction struct {
	// Holds options specific to the 'ini' file format.
	//
	// +optional
	IniConfig *IniConfig `json:"iniConfig,omitempty"`
}

FormatterAction configures format-specific options for different configuration file format. Note: Only one of its members should be specified at any given time.

func (*FormatterAction) DeepCopy

func (in *FormatterAction) DeepCopy() *FormatterAction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FormatterAction.

func (*FormatterAction) DeepCopyInto

func (in *FormatterAction) DeepCopyInto(out *FormatterAction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IniConfig

type IniConfig struct {
	// A string that describes the name of the ini section.
	//
	// +optional
	SectionName string `json:"sectionName,omitempty"`
}

IniConfig holds options specific to the 'ini' file format.

func (*IniConfig) DeepCopy

func (in *IniConfig) DeepCopy() *IniConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IniConfig.

func (*IniConfig) DeepCopyInto

func (in *IniConfig) DeepCopyInto(out *IniConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MergedPolicy

type MergedPolicy string

MergedPolicy defines how to merge external imported templates into component templates. +enum +kubebuilder:validation:Enum={patch,replace,none}

const (
	PatchPolicy     MergedPolicy = "patch"
	ReplacePolicy   MergedPolicy = "replace"
	OnlyAddPolicy   MergedPolicy = "add"
	NoneMergePolicy MergedPolicy = "none"
)

type ParamConfigRenderer

type ParamConfigRenderer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ParamConfigRendererSpec   `json:"spec,omitempty"`
	Status ParamConfigRendererStatus `json:"status,omitempty"`
}

ParamConfigRenderer is the Schema for the paramconfigrenderers API

func (*ParamConfigRenderer) DeepCopy

func (in *ParamConfigRenderer) DeepCopy() *ParamConfigRenderer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamConfigRenderer.

func (*ParamConfigRenderer) DeepCopyInto

func (in *ParamConfigRenderer) DeepCopyInto(out *ParamConfigRenderer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParamConfigRenderer) DeepCopyObject

func (in *ParamConfigRenderer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParamConfigRendererList

type ParamConfigRendererList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ParamConfigRenderer `json:"items"`
}

ParamConfigRendererList contains a list of ParamConfigRenderer

func (*ParamConfigRendererList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamConfigRendererList.

func (*ParamConfigRendererList) DeepCopyInto

func (in *ParamConfigRendererList) DeepCopyInto(out *ParamConfigRendererList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParamConfigRendererList) DeepCopyObject

func (in *ParamConfigRendererList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParamConfigRendererSpec

type ParamConfigRendererSpec struct {
	// Specifies the ComponentDefinition custom resource (CR) that defines the Component's characteristics and behavior.
	//
	// +kubebuilder:validation:Required
	ComponentDef string `json:"componentDef"`

	// ServiceVersion specifies the version of the Service expected to be provisioned by this Component.
	// The version should follow the syntax and semantics of the "Semantic Versioning" specification (http://semver.org/).
	// If no version is specified, the latest available version will be used.
	//
	// +optional
	ServiceVersion string `json:"serviceVersion,omitempty"`

	// Specifies the ParametersDefinition custom resource (CR) that defines the Component parameter's schema and behavior.
	//
	// +optional
	ParametersDefs []string `json:"parametersDefs,omitempty"`

	// Specifies the configuration files.
	//
	// +patchMergeKey=name
	// +patchStrategy=merge,retainKeys
	// +listType=map
	// +listMapKey=name
	// +optional
	Configs []ComponentConfigDescription `json:"configs,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name"`
}

ParamConfigRendererSpec defines the desired state of ParamConfigRenderer

func (*ParamConfigRendererSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamConfigRendererSpec.

func (*ParamConfigRendererSpec) DeepCopyInto

func (in *ParamConfigRendererSpec) DeepCopyInto(out *ParamConfigRendererSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParamConfigRendererStatus

type ParamConfigRendererStatus struct {
	// The most recent generation number of the ParamsDesc object that has been observed by the controller.
	//
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Provides additional information about the current phase.
	//
	// +optional
	Message string `json:"message,omitempty"`

	// Specifies the status of the configuration template.
	// When set to PDAvailablePhase, the ParamsDesc can be referenced by ComponentDefinition.
	//
	// +optional
	Phase ParametersDescPhase `json:"phase,omitempty"`
}

ParamConfigRendererStatus defines the observed state of ParamConfigRenderer

func (*ParamConfigRendererStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamConfigRendererStatus.

func (*ParamConfigRendererStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Parameter

type Parameter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ParameterSpec   `json:"spec,omitempty"`
	Status ParameterStatus `json:"status,omitempty"`
}

Parameter is the Schema for the parameters API

func (*Parameter) DeepCopy

func (in *Parameter) DeepCopy() *Parameter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.

func (*Parameter) DeepCopyInto

func (in *Parameter) DeepCopyInto(out *Parameter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Parameter) DeepCopyObject

func (in *Parameter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParameterDeletedMethod

type ParameterDeletedMethod string

ParameterDeletedMethod defines how to handle parameter remove +enum +kubebuilder:validation:Enum={RestoreToDefault, Reset}

const (
	PDPDefault ParameterDeletedMethod = "RestoreToDefault"
	PDPReset   ParameterDeletedMethod = "Reset"
)

type ParameterDeletedPolicy

type ParameterDeletedPolicy struct {

	// Specifies the method to handle the deletion of a parameter.
	// If set to "RestoreToDefault", the parameter will be restored to its default value,
	// which requires engine support, such as pg.
	// If set to "Reset", the parameter will be re-rendered through the configuration template.
	//
	// +kubebuilder:validation:Required
	DeletedMethod ParameterDeletedMethod `json:"deletedMethod"`

	// Specifies the value to use if DeletedMethod is RestoreToDefault.
	// Example: pg
	// SET configuration_parameter TO DEFAULT;
	//
	// +optional
	DefaultValue *string `json:"defaultValue,omitempty"`
}

func (*ParameterDeletedPolicy) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterDeletedPolicy.

func (*ParameterDeletedPolicy) DeepCopyInto

func (in *ParameterDeletedPolicy) DeepCopyInto(out *ParameterDeletedPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParameterList

type ParameterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Parameter `json:"items"`
}

ParameterList contains a list of Parameter

func (*ParameterList) DeepCopy

func (in *ParameterList) DeepCopy() *ParameterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterList.

func (*ParameterList) DeepCopyInto

func (in *ParameterList) DeepCopyInto(out *ParameterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParameterList) DeepCopyObject

func (in *ParameterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParameterPhase

type ParameterPhase string

ParameterPhase defines the Configuration FSM phase +enum +kubebuilder:validation:Enum={Creating,Init,Running,Pending,Merged,MergeFailed,FailedAndPause,Upgrading,Deleting,FailedAndRetry,Finished}

const (
	CCreatingPhase       ParameterPhase = "Creating"
	CInitPhase           ParameterPhase = "Init"
	CRunningPhase        ParameterPhase = "Running"
	CPendingPhase        ParameterPhase = "Pending"
	CFailedPhase         ParameterPhase = "FailedAndRetry"
	CFailedAndPausePhase ParameterPhase = "FailedAndPause"
	CMergedPhase         ParameterPhase = "Merged"
	CMergeFailedPhase    ParameterPhase = "MergeFailed"
	CDeletingPhase       ParameterPhase = "Deleting"
	CUpgradingPhase      ParameterPhase = "Upgrading"
	CFinishedPhase       ParameterPhase = "Finished"
)

type ParameterSpec

type ParameterSpec struct {
	// Specifies the name of the Cluster resource that this operation is targeting.
	//
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="forbidden to update spec.clusterName"
	ClusterName string `json:"clusterName,omitempty"`

	// Lists ComponentParametersSpec objects, each specifying a Component and its parameters and template updates.
	//
	// +kubebuilder:validation:Required
	ComponentParameters []ComponentParametersSpec `json:"componentParameters"`
}

ParameterSpec defines the desired state of Parameter

func (*ParameterSpec) DeepCopy

func (in *ParameterSpec) DeepCopy() *ParameterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterSpec.

func (*ParameterSpec) DeepCopyInto

func (in *ParameterSpec) DeepCopyInto(out *ParameterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParameterStatus

type ParameterStatus struct {
	// Provides a description of any abnormal status.
	// +optional
	Message string `json:"message,omitempty"`

	// Indicates the current status of the configuration item.
	//
	// Possible values include "Creating", "Init", "Running", "Pending", "Merged", "MergeFailed", "FailedAndPause",
	// "Upgrading", "Deleting", "FailedAndRetry", "Finished".
	//
	// +optional
	Phase ParameterPhase `json:"phase,omitempty"`

	// Represents the latest generation observed for this
	// ClusterDefinition. It corresponds to the ConfigConstraint's generation, which is
	// updated by the API Server.
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Records the status of a reconfiguring operation if `opsRequest.spec.type` equals to "Reconfiguring".
	// +optional
	ReconfiguringStatus []ComponentReconfiguringStatus `json:"componentReconfiguringStatus"`
}

ParameterStatus defines the observed state of Parameter

func (*ParameterStatus) DeepCopy

func (in *ParameterStatus) DeepCopy() *ParameterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterStatus.

func (*ParameterStatus) DeepCopyInto

func (in *ParameterStatus) DeepCopyInto(out *ParameterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParametersDefinition

type ParametersDefinition struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ParametersDefinitionSpec   `json:"spec,omitempty"`
	Status ParametersDefinitionStatus `json:"status,omitempty"`
}

ParametersDefinition is the Schema for the parametersdefinitions API

func (*ParametersDefinition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersDefinition.

func (*ParametersDefinition) DeepCopyInto

func (in *ParametersDefinition) DeepCopyInto(out *ParametersDefinition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParametersDefinition) DeepCopyObject

func (in *ParametersDefinition) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParametersDefinitionList

type ParametersDefinitionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ParametersDefinition `json:"items"`
}

ParametersDefinitionList contains a list of ParametersDefinition

func (*ParametersDefinitionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersDefinitionList.

func (*ParametersDefinitionList) DeepCopyInto

func (in *ParametersDefinitionList) DeepCopyInto(out *ParametersDefinitionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ParametersDefinitionList) DeepCopyObject

func (in *ParametersDefinitionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ParametersDefinitionSpec

type ParametersDefinitionSpec struct {
	// Specifies the config file name in the config template.
	//
	// +optional
	FileName string `json:"fileName,omitempty"`

	// Defines a list of parameters including their names, default values, descriptions,
	// types, and constraints (permissible values or the range of valid values).
	//
	// +optional
	ParametersSchema *ParametersSchema `json:"parametersSchema,omitempty"`

	// Specifies the dynamic reload (dynamic reconfiguration) actions supported by the engine.
	// When set, the controller executes the scripts defined in these actions to handle dynamic parameter updates.
	//
	// Dynamic reloading is triggered only if both of the following conditions are met:
	//
	// 1. The modified parameters are listed in the `dynamicParameters` field.
	//    If `dynamicParameterSelectedPolicy` is set to "all", modifications to `staticParameters`
	//    can also trigger a reload.
	// 2. `reloadAction` is set.
	//
	// If `reloadAction` is not set or the modified parameters are not listed in `dynamicParameters`,
	// dynamic reloading will not be triggered.
	//
	// Example:
	// “`yaml
	// dynamicReloadAction:
	//  tplScriptTrigger:
	//    namespace: kb-system
	//    scriptConfigMapRef: mysql-reload-script
	//    sync: true
	// “`
	//
	// +optional
	ReloadAction *ReloadAction `json:"reloadAction,omitempty"`

	// TODO: migrate DownwardAPITriggeredActions to ComponentDefinition.spec.lifecycleActions
	// Specifies a list of actions to execute specified commands based on Pod labels.
	//
	// It utilizes the K8s Downward API to mount label information as a volume into the pod.
	// The 'config-manager' sidecar container watches for changes in the role label and dynamically invoke
	// registered commands (usually execute some SQL statements) when a change is detected.
	//
	// It is designed for scenarios where:
	//
	// - Replicas with different roles have different configurations, such as Redis primary & secondary replicas.
	// - After a role switch (e.g., from secondary to primary), some changes in configuration are needed
	//   to reflect the new role.
	//
	// +optional
	DownwardAPIChangeTriggeredActions []DownwardAPIChangeTriggeredAction `json:"downwardAPIChangeTriggeredActions,omitempty"`

	// Specifies the policy when parameter be removed.
	//
	// +optional
	ParameterDeletedPolicy *ParameterDeletedPolicy `json:"deletedPolicy,omitempty"`

	// Indicates whether to consolidate dynamic reload and restart actions into a single restart.
	//
	// - If true, updates requiring both actions will result in only a restart, merging the actions.
	// - If false, updates will trigger both actions executed sequentially: first dynamic reload, then restart.
	//
	// This flag allows for more efficient handling of configuration changes by potentially eliminating
	// an unnecessary reload step.
	//
	// +optional
	MergeReloadAndRestart *bool `json:"mergeReloadAndRestart,omitempty"`

	// Configures whether the dynamic reload specified in `reloadAction` applies only to dynamic parameters or
	// to all parameters (including static parameters).
	//
	// - false (default): Only modifications to the dynamic parameters listed in `dynamicParameters`
	//   will trigger a dynamic reload.
	// - true: Modifications to both dynamic parameters listed in `dynamicParameters` and static parameters
	//   listed in `staticParameters` will trigger a dynamic reload.
	//   The "all" option is for certain engines that require static parameters to be set
	//   via SQL statements before they can take effect on restart.
	//
	// +optional
	ReloadStaticParamsBeforeRestart *bool `json:"reloadStaticParamsBeforeRestart,omitempty"`

	// List static parameters.
	// Modifications to any of these parameters require a restart of the process to take effect.
	//
	// +listType=set
	// +optional
	StaticParameters []string `json:"staticParameters,omitempty"`

	// List dynamic parameters.
	// Modifications to these parameters trigger a configuration reload without requiring a process restart.
	//
	// +listType=set
	// +optional
	DynamicParameters []string `json:"dynamicParameters,omitempty"`

	// Lists the parameters that cannot be modified once set.
	// Attempting to change any of these parameters will be ignored.
	//
	// +listType=set
	// +optional
	ImmutableParameters []string `json:"immutableParameters,omitempty"`
}

ParametersDefinitionSpec defines the desired state of ParametersDefinition

func (*ParametersDefinitionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersDefinitionSpec.

func (*ParametersDefinitionSpec) DeepCopyInto

func (in *ParametersDefinitionSpec) DeepCopyInto(out *ParametersDefinitionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParametersDefinitionStatus

type ParametersDefinitionStatus struct {
	// The most recent generation number of the ParamsDesc object that has been observed by the controller.
	//
	// +optional
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`

	// Specifies the status of the configuration template.
	// When set to PDAvailablePhase, the ParamsDesc can be referenced by ComponentDefinition.
	//
	// +optional
	Phase ParametersDescPhase `json:"phase,omitempty"`

	// Represents a list of detailed status of the ParametersDescription object.
	//
	// This field is crucial for administrators and developers to monitor and respond to changes within the ParametersDescription.
	// It provides a history of state transitions and a snapshot of the current state that can be used for
	// automated logic or direct inspection.
	//
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ParametersDefinitionStatus defines the observed state of ParametersDefinition

func (*ParametersDefinitionStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersDefinitionStatus.

func (*ParametersDefinitionStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParametersDescPhase

type ParametersDescPhase string

ParametersDescPhase defines the ParametersDescription CR .status.phase +enum +kubebuilder:validation:Enum={Available,Unavailable, Deleting}

const (
	PDAvailablePhase   ParametersDescPhase = "Available"
	PDUnavailablePhase ParametersDescPhase = "Unavailable"
	PDDeletingPhase    ParametersDescPhase = "Deleting"
)

type ParametersInFile

type ParametersInFile struct {
	// Holds the configuration keys and values. This field is a workaround for issues found in kubebuilder and code-generator.
	// Refer to https://github.com/kubernetes-sigs/kubebuilder/issues/528 and https://github.com/kubernetes/code-generator/issues/50 for more details.
	//
	// Represents the content of the configuration file.
	//
	// +optional
	Content *string `json:"content"`

	// Represents the updated parameters for a single configuration file.
	//
	// +optional
	Parameters map[string]*string `json:"parameters,omitempty"`
}

func (*ParametersInFile) DeepCopy

func (in *ParametersInFile) DeepCopy() *ParametersInFile

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersInFile.

func (*ParametersInFile) DeepCopyInto

func (in *ParametersInFile) DeepCopyInto(out *ParametersInFile)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParametersSchema

type ParametersSchema struct {
	// Specifies the top-level key in the 'configSchema.cue' that organizes the validation rules for parameters.
	// This key must exist within the CUE script defined in 'configSchema.cue'.
	//
	// +optional
	TopLevelKey string `json:"topLevelKey,omitempty"`

	// Hold a string that contains a script written in CUE language that defines a list of configuration items.
	// Each item is detailed with its name, default value, description, type (e.g. string, integer, float),
	// and constraints (permissible values or the valid range of values).
	//
	// CUE (Configure, Unify, Execute) is a declarative language designed for defining and validating
	// complex data configurations.
	// It is particularly useful in environments like K8s where complex configurations and validation rules are common.
	//
	// This script functions as a validator for user-provided configurations, ensuring compliance with
	// the established specifications and constraints.
	//
	// +optional
	CUE string `json:"cue,omitempty"`

	// Generated from the 'cue' field and transformed into a JSON format.
	//
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:validation:ComponentDefRef=object
	// +kubebuilder:pruning:PreserveUnknownFields
	SchemaInJSON *apiext.JSONSchemaProps `json:"schemaInJSON,omitempty"`
}

ParametersSchema Defines a list of configuration items with their names, default values, descriptions, types, and constraints.

func (*ParametersSchema) DeepCopy

func (in *ParametersSchema) DeepCopy() *ParametersSchema

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametersSchema.

func (*ParametersSchema) DeepCopyInto

func (in *ParametersSchema) DeepCopyInto(out *ParametersSchema)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Payload

type Payload map[string]json.RawMessage

Payload holds the payload data. This field is optional and can contain any type of data. Not included in the JSON representation of the object.

func (Payload) DeepCopy

func (in Payload) DeepCopy() Payload

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Payload.

func (Payload) DeepCopyInto

func (in Payload) DeepCopyInto(out *Payload)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReconcileDetail

type ReconcileDetail struct {
	// Represents the policy applied during the most recent execution.
	//
	// +optional
	Policy string `json:"policy"`

	// Represents the outcome of the most recent execution.
	//
	// +optional
	ExecResult string `json:"execResult"`

	// Represents the current revision of the configuration item.
	//
	// +optional
	CurrentRevision string `json:"currentRevision,omitempty"`

	// Represents the number of pods where configuration changes were successfully applied.
	//
	// +kubebuilder:default=-1
	// +optional
	SucceedCount int32 `json:"succeedCount,omitempty"`

	// Represents the total number of pods that require execution of configuration changes.
	//
	// +kubebuilder:default=-1
	// +optional
	ExpectedCount int32 `json:"expectedCount,omitempty"`

	// Represents the error message generated when the execution of configuration changes fails.
	//
	// +optional
	ErrMessage string `json:"errMessage,omitempty"`
}

func (*ReconcileDetail) DeepCopy

func (in *ReconcileDetail) DeepCopy() *ReconcileDetail

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconcileDetail.

func (*ReconcileDetail) DeepCopyInto

func (in *ReconcileDetail) DeepCopyInto(out *ReconcileDetail)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReconfiguringStatus

type ReconfiguringStatus struct {
	ConfigTemplateItemDetailStatus `json:",inline"`

	// Contains the updated parameters.
	//
	// +optional
	UpdatedParameters map[string]ParametersInFile `json:"updatedParameters,omitempty"`

	// Specifies the user-defined configuration template.
	//
	// When provided, the `importTemplateRef` overrides the default configuration template
	// specified in `configSpec.templateRef`.
	// This allows users to customize the configuration template according to their specific requirements.
	//
	// +optional
	CustomTemplate *ConfigTemplateExtension `json:"userConfigTemplates,omitempty"`
}

func (*ReconfiguringStatus) DeepCopy

func (in *ReconfiguringStatus) DeepCopy() *ReconfiguringStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReconfiguringStatus.

func (*ReconfiguringStatus) DeepCopyInto

func (in *ReconfiguringStatus) DeepCopyInto(out *ReconfiguringStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReloadAction

type ReloadAction struct {
	// Used to trigger a reload by sending a specific Unix signal to the process.
	//
	// +optional
	UnixSignalTrigger *UnixSignalTrigger `json:"unixSignalTrigger,omitempty"`

	// Allows to execute a custom shell script to reload the process.
	//
	// +optional
	ShellTrigger *ShellTrigger `json:"shellTrigger,omitempty"`

	// Enables reloading process using a Go template script.
	//
	// +optional
	TPLScriptTrigger *TPLScriptTrigger `json:"tplScriptTrigger"`

	// Automatically perform the reload when specified conditions are met.
	//
	// +optional
	AutoTrigger *AutoTrigger `json:"autoTrigger,omitempty"`

	// Used to match labels on the pod to determine whether a dynamic reload should be performed.
	//
	// In some scenarios, only specific pods (e.g., primary replicas) need to undergo a dynamic reload.
	// The `reloadedPodSelector` allows you to specify label selectors to target the desired pods for the reload process.
	//
	// If the `reloadedPodSelector` is not specified or is nil, all pods managed by the workload will be considered for the dynamic
	// reload.
	//
	// +optional
	TargetPodSelector *metav1.LabelSelector `json:"targetPodSelector,omitempty"`
}

ReloadAction defines the mechanisms available for dynamically reloading a process within K8s without requiring a restart.

Only one of the mechanisms can be specified at a time.

func (*ReloadAction) DeepCopy

func (in *ReloadAction) DeepCopy() *ReloadAction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReloadAction.

func (*ReloadAction) DeepCopyInto

func (in *ReloadAction) DeepCopyInto(out *ReloadAction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReloadPolicy

type ReloadPolicy string

ReloadPolicy defines the policy of reconfiguring. +enum +kubebuilder:validation:Enum={none,restart,rolling,asyncReload,syncReload,dynamicReloadBeginRestart}

const (
	NonePolicy                    ReloadPolicy = "none"
	RestartPolicy                 ReloadPolicy = "restart"
	RestartContainerPolicy        ReloadPolicy = "restartContainer"
	RollingPolicy                 ReloadPolicy = "rolling"
	AsyncDynamicReloadPolicy      ReloadPolicy = "asyncReload"
	SyncDynamicReloadPolicy       ReloadPolicy = "syncReload"
	DynamicReloadAndRestartPolicy ReloadPolicy = "dynamicReloadBeginRestart"
)

type RerenderResourceType

type RerenderResourceType string

RerenderResourceType defines the resource requirements for a component. +enum +kubebuilder:validation:Enum={vscale,hscale,tls,shardingHScale}

const (
	ComponentVScaleType         RerenderResourceType = "vscale"
	ComponentHScaleType         RerenderResourceType = "hscale"
	ComponentTLSType            RerenderResourceType = "tls"
	ShardingComponentHScaleType RerenderResourceType = "shardingHScale"
)

type ScriptConfig

type ScriptConfig struct {
	// Specifies the reference to the ConfigMap containing the scripts.
	//
	// +kubebuilder:validation:Required
	ScriptConfigMapRef string `json:"scriptConfigMapRef"`

	// Specifies the namespace for the ConfigMap.
	// If not specified, it defaults to the "default" namespace.
	//
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:default="default"
	// +kubebuilder:validation:Pattern:=`^[a-z0-9]([a-z0-9\-]*[a-z0-9])?$`
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

func (*ScriptConfig) DeepCopy

func (in *ScriptConfig) DeepCopy() *ScriptConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScriptConfig.

func (*ScriptConfig) DeepCopyInto

func (in *ScriptConfig) DeepCopyInto(out *ScriptConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ShellTrigger

type ShellTrigger struct {
	// Specifies the command to execute in order to reload the process. It should be a valid shell command.
	//
	// +kubebuilder:validation:Required
	Command []string `json:"command"`

	// Determines the synchronization mode of parameter updates with "config-manager".
	//
	// - 'True': Executes reload actions synchronously, pausing until completion.
	// - 'False': Executes reload actions asynchronously, without waiting for completion.
	//
	// +optional
	Sync *bool `json:"sync,omitempty"`

	// Controls whether parameter updates are processed individually or collectively in a batch:
	//
	// - 'True': Processes all changes in one batch reload.
	// - 'False': Processes each change individually.
	//
	// Defaults to 'False' if unspecified.
	//
	// +optional
	BatchReload *bool `json:"batchReload,omitempty"`

	// Specifies a Go template string for formatting batch input data.
	// It's used when `batchReload` is 'True' to format data passed into STDIN of the script.
	// The template accesses key-value pairs of updated parameters via the '$' variable.
	// This allows for custom formatting of the input data.
	//
	// Example template:
	//
	// “`yaml
	// batchParamsFormatterTemplate: |-
	// {{- range $pKey, $pValue := $ }}
	// {{ printf "%s:%s" $pKey $pValue }}
	// {{- end }}
	// “`
	//
	// This example generates batch input data in a key:value format, sorted by keys.
	// “`
	// key1:value1
	// key2:value2
	// key3:value3
	// “`
	//
	// If not specified, the default format is key=value, sorted by keys, for each updated parameter.
	// “`
	// key1=value1
	// key2=value2
	// key3=value3
	// “`
	//
	// +optional
	BatchParamsFormatterTemplate string `json:"batchParamsFormatterTemplate,omitempty"`

	// Specifies the tools container image used by ShellTrigger for dynamic reload.
	// If the dynamic reload action is triggered by a ShellTrigger, this field is required.
	// This image must contain all necessary tools for executing the ShellTrigger scripts.
	//
	// Usually the specified image is referenced by the init container,
	// which is then responsible for copy the tools from the image to a bin volume.
	// This ensures that the tools are available to the 'config-manager' sidecar.
	//
	// +optional
	ToolsSetup *ToolsSetup `json:"toolsSetup,omitempty"`

	// ScriptConfig object specifies a ConfigMap that contains script files that should be mounted inside the pod.
	// The scripts are mounted as volumes and can be referenced and executed by the dynamic reload.
	//
	// +optional
	ScriptConfig *ScriptConfig `json:"scriptConfig,omitempty"`
}

ShellTrigger allows to execute a custom shell script to reload the process.

func (*ShellTrigger) DeepCopy

func (in *ShellTrigger) DeepCopy() *ShellTrigger

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShellTrigger.

func (*ShellTrigger) DeepCopyInto

func (in *ShellTrigger) DeepCopyInto(out *ShellTrigger)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SignalType

type SignalType string

SignalType defines which signals are valid. +enum +kubebuilder:validation:Enum={SIGHUP,SIGINT,SIGQUIT,SIGILL,SIGTRAP,SIGABRT,SIGBUS,SIGFPE,SIGKILL,SIGUSR1,SIGSEGV,SIGUSR2,SIGPIPE,SIGALRM,SIGTERM,SIGSTKFLT,SIGCHLD,SIGCONT,SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU,SIGURG,SIGXCPU,SIGXFSZ,SIGVTALRM,SIGPROF,SIGWINCH,SIGIO,SIGPWR,SIGSYS}

const (
	SIGHUP    SignalType = "SIGHUP"
	SIGINT    SignalType = "SIGINT"
	SIGQUIT   SignalType = "SIGQUIT"
	SIGILL    SignalType = "SIGILL"
	SIGTRAP   SignalType = "SIGTRAP"
	SIGABRT   SignalType = "SIGABRT"
	SIGBUS    SignalType = "SIGBUS"
	SIGFPE    SignalType = "SIGFPE"
	SIGKILL   SignalType = "SIGKILL"
	SIGUSR1   SignalType = "SIGUSR1"
	SIGSEGV   SignalType = "SIGSEGV"
	SIGUSR2   SignalType = "SIGUSR2"
	SIGPIPE   SignalType = "SIGPIPE"
	SIGALRM   SignalType = "SIGALRM"
	SIGTERM   SignalType = "SIGTERM"
	SIGSTKFLT SignalType = "SIGSTKFLT"
	SIGCHLD   SignalType = "SIGCHLD"
	SIGCONT   SignalType = "SIGCONT"
	SIGSTOP   SignalType = "SIGSTOP"
	SIGTSTP   SignalType = "SIGTSTP"
	SIGTTIN   SignalType = "SIGTTIN"
	SIGTTOU   SignalType = "SIGTTOU"
	SIGURG    SignalType = "SIGURG"
	SIGXCPU   SignalType = "SIGXCPU"
	SIGXFSZ   SignalType = "SIGXFSZ"
	SIGVTALRM SignalType = "SIGVTALRM"
	SIGPROF   SignalType = "SIGPROF"
	SIGWINCH  SignalType = "SIGWINCH"
	SIGIO     SignalType = "SIGIO"
	SIGPWR    SignalType = "SIGPWR"
	SIGSYS    SignalType = "SIGSYS"
)

type TPLScriptTrigger

type TPLScriptTrigger struct {
	// Specifies the ConfigMap that contains the script to be executed for reload.
	//
	ScriptConfig `json:",inline"`

	// Determines whether parameter updates should be synchronized with the "config-manager".
	// Specifies the controller's reload strategy:
	//
	// - If set to 'True', the controller executes the reload action in synchronous mode,
	//   pausing execution until the reload completes.
	// - If set to 'False', the controller executes the reload action in asynchronous mode,
	//   updating the ConfigMap without waiting for the reload process to finish.
	//
	// +optional
	Sync *bool `json:"sync,omitempty"`
}

TPLScriptTrigger Enables reloading process using a Go template script.

func (*TPLScriptTrigger) DeepCopy

func (in *TPLScriptTrigger) DeepCopy() *TPLScriptTrigger

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TPLScriptTrigger.

func (*TPLScriptTrigger) DeepCopyInto

func (in *TPLScriptTrigger) DeepCopyInto(out *TPLScriptTrigger)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ToolConfig

type ToolConfig struct {
	// Specifies the name of the init container.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=63
	// +kubebuilder:validation:Pattern:=`^[a-z]([a-z0-9\-]*[a-z0-9])?$`
	Name string `json:"name,omitempty"`

	// Indicates whether the tool image should be used as the container image for a sidecar.
	// This is useful for large tool images, such as those for C++ tools, which may depend on
	// numerous libraries (e.g., *.so files).
	//
	// If enabled, the tool image is deployed as a sidecar container image.
	//
	// Examples:
	// “`yaml
	//  toolsSetup::
	//    mountPoint: /kb_tools
	//    toolConfigs:
	//      - name: kb-tools
	//        asContainerImage: true
	//        image:  apecloud/oceanbase:4.2.0.0-100010032023083021
	// “`
	//
	// generated containers:
	// “`yaml
	// initContainers:
	//  - name: install-config-manager-tool
	//    image: apecloud/kubeblocks-tools:${version}
	//    command:
	//    - cp
	//    - /bin/config_render
	//    - /opt/tools
	//    volumemounts:
	//    - name: kb-tools
	//      mountpath: /opt/tools
	//
	// containers:
	//  - name: config-manager
	//    image: apecloud/oceanbase:4.2.0.0-100010032023083021
	//    imagePullPolicy: IfNotPresent
	// 	  command:
	//    - /opt/tools/reloader
	//    - --log-level
	//    - info
	//    - --operator-update-enable
	//    - --tcp
	//    - "9901"
	//    - --config
	//    - /opt/config-manager/config-manager.yaml
	//    volumemounts:
	//    - name: kb-tools
	//      mountpath: /opt/tools
	// “`
	//
	// +optional
	AsContainerImage *bool `json:"asContainerImage,omitempty"`

	// Specifies the tool container image.
	//
	// +optional
	Image string `json:"image,omitempty"`

	// Specifies the command to be executed by the init container.
	//
	// +optional
	Command []string `json:"command,omitempty"`
}

ToolConfig specifies the settings of an init container that prepare tools for dynamic reload.

func (*ToolConfig) DeepCopy

func (in *ToolConfig) DeepCopy() *ToolConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToolConfig.

func (*ToolConfig) DeepCopyInto

func (in *ToolConfig) DeepCopyInto(out *ToolConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ToolsSetup

type ToolsSetup struct {

	// Specifies the directory path in the container where the tools-related files are to be copied.
	// This field is typically used with an emptyDir volume to ensure a temporary, empty directory is provided at pod creation.
	//
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MaxLength=128
	MountPoint string `json:"mountPoint"`

	// Specifies a list of settings of init containers that prepare tools for dynamic reload.
	//
	// +optional
	ToolConfigs []ToolConfig `json:"toolConfigs,omitempty"`
}

ToolsSetup prepares the tools for dynamic reloads used in ShellTrigger from a specified container image.

Example: ```yaml

toolsSetup:
 mountPoint: /kb_tools
 toolConfigs:
   - name: kb-tools
     command:
       - cp
       - /bin/ob-tools
       - /kb_tools/obtools
     image: docker.io/apecloud/obtools

``` This example copies the "/bin/ob-tools" binary from the image to "/kb_tools/obtools".

func (*ToolsSetup) DeepCopy

func (in *ToolsSetup) DeepCopy() *ToolsSetup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToolsSetup.

func (*ToolsSetup) DeepCopyInto

func (in *ToolsSetup) DeepCopyInto(out *ToolsSetup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UnixSignalTrigger

type UnixSignalTrigger struct {
	// Specifies a valid Unix signal to be sent.
	// For a comprehensive list of all Unix signals, see: ../../pkg/configuration/configmap/handler.go:allUnixSignals
	//
	// +kubebuilder:validation:Required
	Signal SignalType `json:"signal"`

	// Identifies the name of the process to which the Unix signal will be sent.
	//
	// +kubebuilder:validation:Required
	ProcessName string `json:"processName"`
}

UnixSignalTrigger is used to trigger a reload by sending a specific Unix signal to the process.

func (*UnixSignalTrigger) DeepCopy

func (in *UnixSignalTrigger) DeepCopy() *UnixSignalTrigger

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnixSignalTrigger.

func (*UnixSignalTrigger) DeepCopyInto

func (in *UnixSignalTrigger) DeepCopyInto(out *UnixSignalTrigger)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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