Documentation ¶
Index ¶
- func AppsInstanceToWorkloadInstance(instance *kbappsv1.InstanceTemplate) *workloads.InstanceTemplate
- func BuildComponent(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, ...) (*appsv1.Component, error)
- func BuildComponentExt(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, ...) (*appsv1.Component, error)
- func BuildWorkloadFrom(synthesizeComp *SynthesizedComponent, protoITS *workloads.InstanceSet) (*workloads.InstanceSet, error)
- func CompareServiceVersion(required, provided string) (bool, error)
- func CompatibleCompVersions4Definition(ctx context.Context, cli client.Reader, compDef *appsv1.ComponentDefinition) ([]*appsv1.ComponentVersion, error)
- func ConvertSynthesizeCompRoleToInstanceSetRole(synthesizedComp *SynthesizedComponent) []workloads.ReplicaRole
- func FullName(clusterName, compName string) string
- func GenerateAllPodNames(compReplicas int32, instances []appsv1.InstanceTemplate, ...) ([]string, error)
- func GenerateAllPodNamesToSet(compReplicas int32, instances []appsv1.InstanceTemplate, ...) (map[string]string, error)
- func GetClusterName(comp *appsv1.Component) (string, error)
- func GetClusterUID(comp *appsv1.Component) (string, error)
- func GetCompDefByName(ctx context.Context, cli client.Reader, compDefName string) (*appsv1.ComponentDefinition, error)
- func GetCompNCompDefByName(ctx context.Context, cli client.Reader, namespace, fullCompName string) (*appsv1.Component, *appsv1.ComponentDefinition, error)
- func GetComponentAvailablePolicy(compDef *appsv1.ComponentDefinition) appsv1.ComponentAvailable
- func GetComponentByName(ctx context.Context, cli client.Reader, namespace, fullCompName string) (*appsv1.Component, error)
- func GetComponentNameFromObj(obj client.Object) string
- func GetComponentNameLabelKey(cluster *appsv1.Cluster, componentName string) string
- func GetConfigSpecByName(synthesizedComp *SynthesizedComponent, configSpec string) *appsv1.ComponentConfigSpec
- func GetExporter(componentDef appsv1.ComponentDefinitionSpec) *common.Exporter
- func GetMinReadySeconds(ctx context.Context, cli client.Client, cluster appsv1.Cluster, ...) (minReadySeconds int32, err error)
- func GetTemplateNameAndOrdinal(workloadName, podName string) (string, int32, error)
- func InjectEnvVars(synthesizedComp *SynthesizedComponent, envVars []corev1.EnvVar, ...)
- func InjectEnvVars4Containers(synthesizedComp *SynthesizedComponent, envVars []corev1.EnvVar, ...)
- func IsHostNetworkEnabled(synthesizedComp *SynthesizedComponent) bool
- func IsKBAgentContainer(c *corev1.Container) bool
- func ListOwnedPVCs(ctx context.Context, cli client.Reader, ...) ([]*corev1.PersistentVolumeClaim, error)
- func ListOwnedPods(ctx context.Context, cli client.Reader, ...) ([]*corev1.Pod, error)
- func ListOwnedPodsWithRole(ctx context.Context, cli client.Reader, ...) ([]*corev1.Pod, error)
- func ListOwnedServices(ctx context.Context, cli client.Reader, ...) ([]*corev1.Service, error)
- func ListOwnedWorkloads(ctx context.Context, cli client.Reader, ...) ([]*workloads.InstanceSet, error)
- func PodFQDN(namespace, compName, podName string) string
- func PrefixOrRegexMatched(defName, defNamePattern string) bool
- func ResolveTemplateNEnvVars(ctx context.Context, cli client.Reader, synthesizedComp *SynthesizedComponent, ...) (map[string]any, []corev1.EnvVar, error)
- func ShortName(clusterName, compName string) (string, error)
- func ToVolumeClaimTemplates(vcts []appsv1.ClusterComponentVolumeClaimTemplate) []corev1.PersistentVolumeClaimTemplate
- func UpdateCompDefinitionImages4ServiceVersion(ctx context.Context, cli client.Reader, compDef *appsv1.ComponentDefinition, ...) error
- func UpdateKBAgentContainer4HostNetwork(synthesizedComp *SynthesizedComponent)
- func ValidateDefNameRegexp(defNamePattern string) error
- func VarReferenceRegExp() *regexp.Regexp
- type AvailableEventHandler
- type SynthesizedComponent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppsInstanceToWorkloadInstance ¶ added in v0.9.0
func AppsInstanceToWorkloadInstance(instance *kbappsv1.InstanceTemplate) *workloads.InstanceTemplate
func BuildComponent ¶
func BuildComponent(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, labels, annotations map[string]string) (*appsv1.Component, error)
BuildComponent builds a new Component object from cluster component spec and definition.
func BuildComponentExt ¶
func BuildWorkloadFrom ¶ added in v0.9.0
func BuildWorkloadFrom(synthesizeComp *SynthesizedComponent, protoITS *workloads.InstanceSet) (*workloads.InstanceSet, error)
BuildWorkloadFrom builds a new Component object based on SynthesizedComponent.
func CompareServiceVersion ¶ added in v0.9.0
CompareServiceVersion compares whether two service version have the same major, minor and patch version.
func CompatibleCompVersions4Definition ¶ added in v0.9.0
func CompatibleCompVersions4Definition(ctx context.Context, cli client.Reader, compDef *appsv1.ComponentDefinition) ([]*appsv1.ComponentVersion, error)
CompatibleCompVersions4Definition returns all component versions that are compatible with specified component definition.
func ConvertSynthesizeCompRoleToInstanceSetRole ¶ added in v0.9.0
func ConvertSynthesizeCompRoleToInstanceSetRole(synthesizedComp *SynthesizedComponent) []workloads.ReplicaRole
ConvertSynthesizeCompRoleToInstanceSetRole converts the component.SynthesizedComponent.Roles to workloads.ReplicaRole.
func GenerateAllPodNames ¶ added in v0.9.0
func GenerateAllPodNames( compReplicas int32, instances []appsv1.InstanceTemplate, offlineInstances []string, fullCompName string) ([]string, error)
GenerateAllPodNames generate all pod names for a component.
func GenerateAllPodNamesToSet ¶ added in v0.9.0
func GenerateAllPodNamesToSet( compReplicas int32, instances []appsv1.InstanceTemplate, offlineInstances []string, clusterName, fullCompName string) (map[string]string, error)
GenerateAllPodNamesToSet generate all pod names for a component and return a set which key is the pod name and value is a template name.
func GetCompDefByName ¶ added in v0.9.0
func GetCompDefByName(ctx context.Context, cli client.Reader, compDefName string) (*appsv1.ComponentDefinition, error)
GetCompDefByName gets the component definition by component definition name.
func GetCompNCompDefByName ¶ added in v0.9.0
func GetComponentAvailablePolicy ¶
func GetComponentAvailablePolicy(compDef *appsv1.ComponentDefinition) appsv1.ComponentAvailable
func GetComponentByName ¶ added in v0.9.0
func GetComponentNameFromObj ¶
GetComponentNameFromObj gets the component name from the k8s object.
func GetComponentNameLabelKey ¶
GetComponentNameLabelKey gets the component name label key.
func GetConfigSpecByName ¶
func GetConfigSpecByName(synthesizedComp *SynthesizedComponent, configSpec string) *appsv1.ComponentConfigSpec
func GetExporter ¶ added in v0.9.0
func GetExporter(componentDef appsv1.ComponentDefinitionSpec) *common.Exporter
func GetMinReadySeconds ¶ added in v0.9.0
func GetMinReadySeconds(ctx context.Context, cli client.Client, cluster appsv1.Cluster, compName string) (minReadySeconds int32, err error)
GetMinReadySeconds gets the underlying workload's minReadySeconds of the component.
func GetTemplateNameAndOrdinal ¶ added in v0.9.0
func InjectEnvVars ¶ added in v0.8.0
func InjectEnvVars(synthesizedComp *SynthesizedComponent, envVars []corev1.EnvVar, envFromSources []corev1.EnvFromSource)
func InjectEnvVars4Containers ¶ added in v0.8.0
func InjectEnvVars4Containers(synthesizedComp *SynthesizedComponent, envVars []corev1.EnvVar, envFromSources []corev1.EnvFromSource, filter func(container *corev1.Container) bool)
func IsHostNetworkEnabled ¶ added in v0.9.0
func IsHostNetworkEnabled(synthesizedComp *SynthesizedComponent) bool
func IsKBAgentContainer ¶
func ListOwnedPVCs ¶
func ListOwnedPVCs(ctx context.Context, cli client.Reader, namespace, clusterName, compName string, opts ...client.ListOption) ([]*corev1.PersistentVolumeClaim, error)
func ListOwnedPods ¶ added in v0.9.0
func ListOwnedPodsWithRole ¶
func ListOwnedServices ¶ added in v0.9.0
func ListOwnedWorkloads ¶ added in v0.9.1
func PrefixOrRegexMatched ¶
func ResolveTemplateNEnvVars ¶ added in v0.8.0
func ResolveTemplateNEnvVars(ctx context.Context, cli client.Reader, synthesizedComp *SynthesizedComponent, definedVars []appsv1.EnvVar) (map[string]any, []corev1.EnvVar, error)
ResolveTemplateNEnvVars resolves all built-in and user-defined vars for config template and Env usage.
func ToVolumeClaimTemplates ¶
func ToVolumeClaimTemplates(vcts []appsv1.ClusterComponentVolumeClaimTemplate) []corev1.PersistentVolumeClaimTemplate
func UpdateCompDefinitionImages4ServiceVersion ¶ added in v0.9.0
func UpdateCompDefinitionImages4ServiceVersion(ctx context.Context, cli client.Reader, compDef *appsv1.ComponentDefinition, serviceVersion string) error
UpdateCompDefinitionImages4ServiceVersion resolves and updates images for the component definition.
func UpdateKBAgentContainer4HostNetwork ¶
func UpdateKBAgentContainer4HostNetwork(synthesizedComp *SynthesizedComponent)
func ValidateDefNameRegexp ¶
func VarReferenceRegExp ¶ added in v0.8.0
Types ¶
type AvailableEventHandler ¶
type AvailableEventHandler struct{}
func (*AvailableEventHandler) Handle ¶
func (h *AvailableEventHandler) Handle(cli client.Client, reqCtx intctrlutil.RequestCtx, recorder record.EventRecorder, event *corev1.Event) error
type SynthesizedComponent ¶
type SynthesizedComponent struct { Namespace string `json:"namespace,omitempty"` ClusterName string `json:"clusterName,omitempty"` ClusterUID string `json:"clusterUID,omitempty"` Comp2CompDefs map[string]string `json:"comp2CompDefs,omitempty"` // {compName: compDefName} Name string `json:"name,omitempty"` // the name of the component w/o clusterName prefix FullCompName string `json:"fullCompName,omitempty"` // the full name of the component w/ clusterName prefix Generation string CompDefName string `json:"compDefName,omitempty"` // the name of the componentDefinition ServiceKind string ServiceVersion string `json:"serviceVersion,omitempty"` Replicas int32 `json:"replicas"` Resources corev1.ResourceRequirements `json:"resources,omitempty"` PodSpec *corev1.PodSpec `json:"podSpec,omitempty"` VolumeClaimTemplates []corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplates,omitempty"` LogConfigs []kbappsv1.LogConfig `json:"logConfigs,omitempty"` ConfigTemplates []kbappsv1.ComponentConfigSpec `json:"configTemplates,omitempty"` ScriptTemplates []kbappsv1.ComponentTemplateSpec `json:"scriptTemplates,omitempty"` TLSConfig *kbappsv1.TLSConfig `json:"tlsConfig"` ServiceAccountName string `json:"serviceAccountName,omitempty"` ServiceReferences map[string]*kbappsv1.ServiceDescriptor `json:"serviceReferences,omitempty"` Labels map[string]string `json:"labels,omitempty"` StaticLabels map[string]string // labels defined by the component definition DynamicLabels map[string]string // labels defined by the cluster and component API Annotations map[string]string `json:"annotations,omitempty"` StaticAnnotations map[string]string // annotations defined by the component definition DynamicAnnotations map[string]string // annotations defined by the cluster and component API TemplateVars map[string]any `json:"templateVars,omitempty"` EnvVars []corev1.EnvVar `json:"envVars,omitempty"` EnvFromSources []corev1.EnvFromSource `json:"envFromSources,omitempty"` Instances []kbappsv1.InstanceTemplate `json:"instances,omitempty"` OfflineInstances []string `json:"offlineInstances,omitempty"` Roles []kbappsv1.ReplicaRole `json:"roles,omitempty"` UpdateStrategy *kbappsv1.UpdateStrategy `json:"updateStrategy,omitempty"` PodManagementPolicy *appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"` ParallelPodManagementConcurrency *intstr.IntOrString `json:"parallelPodManagementConcurrency,omitempty"` PodUpdatePolicy *kbappsv1.PodUpdatePolicyType `json:"podUpdatePolicy,omitempty"` PolicyRules []rbacv1.PolicyRule `json:"policyRules,omitempty"` LifecycleActions *kbappsv1.ComponentLifecycleActions `json:"lifecycleActions,omitempty"` SystemAccounts []kbappsv1.SystemAccount `json:"systemAccounts,omitempty"` Volumes []kbappsv1.ComponentVolume `json:"volumes,omitempty"` HostNetwork *kbappsv1.HostNetwork `json:"hostNetwork,omitempty"` ComponentServices []kbappsv1.ComponentService `json:"componentServices,omitempty"` MinReadySeconds int32 `json:"minReadySeconds,omitempty"` DisableExporter *bool `json:"disableExporter,omitempty"` Stop *bool // TODO(xingran): The following fields will be deprecated after KubeBlocks version 0.8.0 ClusterDefName string `json:"clusterDefName,omitempty"` // the name of the clusterDefinition HorizontalScaleBackupPolicyTemplate *string }
func BuildSynthesizedComponent ¶ added in v0.8.0
func BuildSynthesizedComponent(ctx context.Context, cli client.Reader, compDef *appsv1.ComponentDefinition, comp *appsv1.Component, cluster *appsv1.Cluster) (*SynthesizedComponent, error)
BuildSynthesizedComponent builds a new SynthesizedComponent object, which is a mixture of component-related configs from ComponentDefinition and Component. TODO: remove @ctx & @cli