in pkg/dubboctl/internal/operator/component.go [524:567]
func renderManifest(spec any, renderer render.Renderer, addOn bool, name ComponentName, namespace string) (string, error) {
var valsBytes []byte
var valsYaml string
var err error
if addOn {
// see /deploy/addons
// values-*.yaml is the base yaml for addon component
valsYaml, err = manifest.ReadAndOverlayYamls([]string{
path.Join(identifier.Addons, "values-"+string(name)+".yaml"),
})
if err != nil {
return "", err
}
}
// do not use spec != nil cause spec's type is not nil
if !util.IsValueNil(spec) {
valsBytes, err = yaml.Marshal(spec)
if err != nil {
return "", err
}
valsYaml, err = util.OverlayYAML(valsYaml, string(valsBytes))
if err != nil {
return "", err
}
}
final, err := renderer.RenderManifest(valsYaml)
if err != nil {
return "", err
}
// grafana needs to add dashboard json file as configmap
if name == Grafana {
final, err = addDashboards(final, namespace)
if err != nil {
return "", err
}
}
// manifest rendered by some charts may lack namespace, we set it there
final, err = setNamespace(final, namespace)
if err != nil {
return "", err
}
return final, nil
}