66 "reflect"
77
88 "github.com/3scale-sre/basereconciler/config"
9+ "github.com/3scale-sre/basereconciler/runtimeconfig"
910 "github.com/3scale-sre/basereconciler/util"
1011 "k8s.io/apimachinery/pkg/runtime"
1112 "k8s.io/apimachinery/pkg/runtime/schema"
@@ -54,7 +55,7 @@ type TemplateInterface interface {
5455 // GetGVK returns the GVK of the resource this template describes.
5556 // If the template's GVK field is already set, it returns that value.
5657 // Otherwise, it infers the GVK from the generic type T using the provided scheme,
57- // or the package default scheme (resource.Scheme) if no scheme is provided.
58+ // or the package default scheme if no scheme is provided.
5859 GetGVK (s ... * runtime.Scheme ) schema.GroupVersionKind
5960}
6061
@@ -156,15 +157,15 @@ type Template[T client.Object] struct {
156157// The template is enabled by default and automatically infers its GVK from the generic type T.
157158//
158159// Scheme handling:
159- // - If no scheme is provided, uses the package default (resource.Scheme)
160+ // - If no scheme is provided, uses the shared default scheme managed by runtimeconfig
160161// - If a scheme is provided, uses that specific scheme for GVK inference
161162// - This allows for both convenient defaults and explicit overrides when needed
162163func NewTemplate [T client.Object ](tb TemplateBuilderFunction [T ], scheme ... * runtime.Scheme ) * Template [T ] {
163164 return & Template [T ]{
164165 TemplateBuilder : tb ,
165166 // default to true - resources should exist unless explicitly disabled
166167 IsEnabled : true ,
167- GVK : inferGVKFromType [T ](GetScheme (scheme ... )),
168+ GVK : inferGVKFromType [T ](runtimeconfig . SelectScheme (scheme ... )),
168169 }
169170}
170171
@@ -174,7 +175,7 @@ func NewTemplate[T client.Object](tb TemplateBuilderFunction[T], scheme ...*runt
174175// from the generic type T.
175176//
176177// Scheme handling:
177- // - If no scheme is provided, uses the package default (resource.Scheme)
178+ // - If no scheme is provided, uses the shared default scheme managed by runtimeconfig
178179// - If a scheme is provided, uses that specific scheme for GVK inference
179180// - This allows for both convenient defaults and explicit overrides when needed
180181//
@@ -188,7 +189,7 @@ func NewTemplateFromObjectFunction[T client.Object](fn func() T, scheme ...*runt
188189 TemplateBuilder : func (client.Object ) (T , error ) { return fn (), nil },
189190 // default to true - resources should exist unless explicitly disabled
190191 IsEnabled : true ,
191- GVK : inferGVKFromType [T ](GetScheme (scheme ... )),
192+ GVK : inferGVKFromType [T ](runtimeconfig . SelectScheme (scheme ... )),
192193 }
193194}
194195
@@ -263,7 +264,7 @@ func (t *Template[T]) GetGVK(s ...*runtime.Scheme) schema.GroupVersionKind {
263264 if t .GVK != (schema.GroupVersionKind {}) {
264265 return t .GVK
265266 }
266- gvk := inferGVKFromType [T ](GetScheme (s ... ))
267+ gvk := inferGVKFromType [T ](runtimeconfig . SelectScheme (s ... ))
267268 return gvk
268269}
269270
0 commit comments