 Documentation
      ¶
      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 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 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, clusterName, 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 GetComponentByName ¶ added in v0.9.0
func GetComponentNameFromObj ¶ added in v1.0.0
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 ¶ added in v1.0.0
func ListOwnedPVCs ¶ added in v1.0.0
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 ¶ added in v1.0.0
func ListOwnedServices ¶ added in v0.9.0
func ListOwnedWorkloads ¶ added in v0.9.1
func PrefixOrRegexMatched ¶ added in v1.0.0
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 ¶ added in v1.0.0
func UpdateKBAgentContainer4HostNetwork(synthesizedComp *SynthesizedComponent)
func ValidateDefNameRegexp ¶ added in v1.0.0
func VarReferenceRegExp ¶ added in v0.8.0
Types ¶
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