MCPcopy Create free account
hub / github.com/apecloud/kubeblocks / BuildComponent

Function BuildComponent

pkg/controller/component/component.go:58–94  ·  view source on GitHub ↗

BuildComponent builds a new Component object from cluster component spec and definition.

(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, labels, annotations map[string]string)

Source from the content-addressed store, hash-verified

56
57// BuildComponent builds a new Component object from cluster component spec and definition.
58func BuildComponent(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, labels, annotations map[string]string) (*appsv1.Component, error) {
59 compBuilder := builder.NewComponentBuilder(cluster.Namespace, FullName(cluster.Name, compSpec.Name), compSpec.ComponentDef).
60 AddAnnotations(constant.KubeBlocksGenerationKey, strconv.FormatInt(cluster.Generation, 10)).
61 AddAnnotations(constant.CRDAPIVersionAnnotationKey, appsv1.GroupVersion.String()).
62 AddAnnotations(constant.KBAppClusterUIDKey, string(cluster.UID)).
63 AddAnnotationsInMap(inheritedAnnotations(cluster)).
64 AddAnnotationsInMap(annotations). // annotations added by the cluster controller
65 AddLabelsInMap(constant.GetCompLabelsWithDef(cluster.Name, compSpec.Name, compSpec.ComponentDef, labels)).
66 SetTerminationPolicy(cluster.Spec.TerminationPolicy).
67 SetServiceVersion(compSpec.ServiceVersion).
68 SetLabels(compSpec.Labels).
69 SetAnnotations(compSpec.Annotations).
70 SetEnv(compSpec.Env).
71 SetSchedulingPolicy(scheduling.BuildSchedulingPolicy(cluster, compSpec)).
72 SetDisableExporter(compSpec.DisableExporter).
73 SetReplicas(compSpec.Replicas).
74 SetResources(compSpec.Resources).
75 SetServiceAccountName(compSpec.ServiceAccountName).
76 SetParallelPodManagementConcurrency(compSpec.ParallelPodManagementConcurrency).
77 SetPodUpdatePolicy(compSpec.PodUpdatePolicy).
78 SetPodUpgradePolicy(compSpec.PodUpgradePolicy).
79 SetInstanceUpdateStrategy(compSpec.InstanceUpdateStrategy).
80 SetVolumeClaimTemplates(compSpec.VolumeClaimTemplates).
81 SetPVCRetentionPolicy(compSpec.PersistentVolumeClaimRetentionPolicy).
82 SetVolumes(compSpec.Volumes).
83 SetServices(compSpec.Services).
84 SetConfigs(compSpec.Configs).
85 SetServiceRefs(compSpec.ServiceRefs).
86 SetTLSConfig(compSpec.TLS, compSpec.Issuer).
87 SetInstances(compSpec.Instances).
88 SetOfflineInstances(compSpec.OfflineInstances).
89 SetRuntimeClassName(cluster.Spec.RuntimeClassName).
90 SetSystemAccounts(compSpec.SystemAccounts).
91 SetStop(compSpec.Stop).
92 SetSidecars(nil)
93 return compBuilder.GetObject(), nil
94}
95
96func inheritedAnnotations(cluster *appsv1.Cluster) map[string]string {
97 m := map[string]string{}

Calls 15

NewComponentBuilderFunction · 0.92
GetCompLabelsWithDefFunction · 0.92
BuildSchedulingPolicyFunction · 0.92
FullNameFunction · 0.85
inheritedAnnotationsFunction · 0.85
SetSidecarsMethod · 0.80
SetSystemAccountsMethod · 0.80
SetRuntimeClassNameMethod · 0.80
SetServicesMethod · 0.80
SetVolumesMethod · 0.80
SetDisableExporterMethod · 0.80
SetEnvMethod · 0.80

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…