@@ -11,13 +11,17 @@ import (
1111 "sigs.k8s.io/controller-runtime/pkg/client"
1212)
1313
14- // TemplateResolver handles the logic for fetching and merging templates
14+ // TemplateResolver handles the logic for fetching and merging templates.
1515type TemplateResolver struct {
16- Client client.Client
16+ // Client is the kubernetes client used to fetch templates.
17+ Client client.Client
18+ // Namespace is the namespace where templates are expected to exist.
1719 Namespace string
18- Defaults multigresv1alpha1.TemplateDefaults
20+ // Defaults contains the cluster-level template references to use when explicit ones are missing.
21+ Defaults multigresv1alpha1.TemplateDefaults
1922}
2023
24+ // ResolveCoreTemplate fetches and resolves a CoreTemplate by name, handling defaults.
2125func (r * TemplateResolver ) ResolveCoreTemplate (ctx context.Context , templateName string ) (* multigresv1alpha1.CoreTemplate , error ) {
2226 name := templateName
2327 if name == "" {
@@ -38,6 +42,7 @@ func (r *TemplateResolver) ResolveCoreTemplate(ctx context.Context, templateName
3842 return tpl , nil
3943}
4044
45+ // ResolveCellTemplate fetches and resolves a CellTemplate by name, handling defaults.
4146func (r * TemplateResolver ) ResolveCellTemplate (ctx context.Context , templateName string ) (* multigresv1alpha1.CellTemplate , error ) {
4247 name := templateName
4348 if name == "" {
@@ -58,6 +63,7 @@ func (r *TemplateResolver) ResolveCellTemplate(ctx context.Context, templateName
5863 return tpl , nil
5964}
6065
66+ // ResolveShardTemplate fetches and resolves a ShardTemplate by name, handling defaults.
6167func (r * TemplateResolver ) ResolveShardTemplate (ctx context.Context , templateName string ) (* multigresv1alpha1.ShardTemplate , error ) {
6268 name := templateName
6369 if name == "" {
@@ -78,7 +84,7 @@ func (r *TemplateResolver) ResolveShardTemplate(ctx context.Context, templateNam
7884 return tpl , nil
7985}
8086
81- // MergeCellConfig merges template spec with overrides
87+ // MergeCellConfig merges a template spec with overrides and an inline spec to produce the final configuration.
8288func MergeCellConfig (template * multigresv1alpha1.CellTemplate , overrides * multigresv1alpha1.CellOverrides , inline * multigresv1alpha1.CellInlineSpec ) (multigresv1alpha1.StatelessSpec , * multigresv1alpha1.LocalTopoServerSpec ) {
8389 var gateway multigresv1alpha1.StatelessSpec
8490 var localTopo * multigresv1alpha1.LocalTopoServerSpec
@@ -105,7 +111,7 @@ func MergeCellConfig(template *multigresv1alpha1.CellTemplate, overrides *multig
105111 return gateway , localTopo
106112}
107113
108- // MergeShardConfig merges template spec with overrides
114+ // MergeShardConfig merges a template spec with overrides and an inline spec to produce the final configuration.
109115func MergeShardConfig (template * multigresv1alpha1.ShardTemplate , overrides * multigresv1alpha1.ShardOverrides , inline * multigresv1alpha1.ShardInlineSpec ) (multigresv1alpha1.MultiOrchSpec , map [string ]multigresv1alpha1.PoolSpec ) {
110116 if inline != nil {
111117 return inline .MultiOrch , inline .Pools
@@ -202,6 +208,7 @@ func mergePoolSpec(base multigresv1alpha1.PoolSpec, override multigresv1alpha1.P
202208 return out
203209}
204210
211+ // ResolveGlobalTopo determines the final GlobalTopoServer configuration by preferring inline config over templates.
205212func ResolveGlobalTopo (spec * multigresv1alpha1.GlobalTopoServerSpec , coreTemplate * multigresv1alpha1.CoreTemplate ) * multigresv1alpha1.GlobalTopoServerSpec {
206213 // If inline config is present, use it.
207214 if spec .Etcd != nil || spec .External != nil {
@@ -218,6 +225,7 @@ func ResolveGlobalTopo(spec *multigresv1alpha1.GlobalTopoServerSpec, coreTemplat
218225 return spec
219226}
220227
228+ // ResolveMultiAdmin determines the final MultiAdmin configuration by preferring inline config over templates.
221229func ResolveMultiAdmin (spec * multigresv1alpha1.MultiAdminConfig , coreTemplate * multigresv1alpha1.CoreTemplate ) * multigresv1alpha1.StatelessSpec {
222230 // If inline spec is present, use it.
223231 if spec .Spec != nil {
0 commit comments