BuildComponent builds a new Component object from cluster component spec and definition.
(cluster *appsv1.Cluster, compSpec *appsv1.ClusterComponentSpec, labels, annotations map[string]string)
| 56 | |
| 57 | // BuildComponent builds a new Component object from cluster component spec and definition. |
| 58 | func 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 | |
| 96 | func inheritedAnnotations(cluster *appsv1.Cluster) map[string]string { |
| 97 | m := map[string]string{} |
searching dependent graphs…