This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 1997d56d [operator] add generate manifest logic
1997d56d is described below

commit 1997d56d38c8dbea987c30a97f1b39aadd96b657
Author: mfordjody <[email protected]>
AuthorDate: Sat Dec 14 08:08:55 2024 +0800

    [operator] add generate manifest logic
---
 operator/pkg/render/manifest.go | 37 +++++++++++++++++++++++++++++++++++--
 1 file changed, 35 insertions(+), 2 deletions(-)

diff --git a/operator/pkg/render/manifest.go b/operator/pkg/render/manifest.go
index ee0c2d18..c946c1a7 100644
--- a/operator/pkg/render/manifest.go
+++ b/operator/pkg/render/manifest.go
@@ -6,6 +6,7 @@ import (
        "github.com/apache/dubbo-kubernetes/operator/cmd/validation"
        "github.com/apache/dubbo-kubernetes/operator/pkg/apis"
        "github.com/apache/dubbo-kubernetes/operator/pkg/component"
+       "github.com/apache/dubbo-kubernetes/operator/pkg/helm"
        "github.com/apache/dubbo-kubernetes/operator/pkg/manifest"
        "github.com/apache/dubbo-kubernetes/operator/pkg/util"
        "github.com/apache/dubbo-kubernetes/operator/pkg/util/clog"
@@ -120,9 +121,38 @@ func GenerateManifest(files []string, setFlags []string, 
logger clog.Logger) ([]
                }
                for _, spec := range specs {
                        compVals := applyComponentValuesToHelmValues(comp, 
spec, merged)
+                       rendered, warnings, err := helm.Reader(spec.Namespace, 
comp.HelmSubDir, compVals)
+                       if err != nil {
+                               return nil, nil, fmt.Errorf("helm render: %v", 
err)
+                       }
+                       chartWarnings = util.AppendErrs(chartWarnings, warnings)
+                       finalized, err := postProcess(comp, rendered, compVals)
+                       if err != nil {
+                               return nil, nil, fmt.Errorf("post process: %v", 
err)
+                       }
+                       mfs, found := allManifests[comp.UserFacingName]
+                       if found {
+                               mfs.Manifests = append(mfs.Manifests, 
finalized...)
+                               allManifests[comp.UserFacingName] = mfs
+                       } else {
+                               allManifests[comp.UserFacingName] = 
manifest.ManifestSet{
+                                       Components: comp.UserFacingName,
+                                       Manifests:  finalized,
+                               }
+                       }
+               }
+       }
+       if logger != nil {
+               for _, w := range chartWarnings {
+                       logger.LogAndErrorf("%s %v", "❗", w)
                }
        }
-       return nil, merged, nil
+
+       val := make([]manifest.ManifestSet, 0, len(allManifests))
+       for _, v := range allManifests {
+               val = append(val, v)
+       }
+       return val, merged, nil
 }
 
 func validateDubboOperator(dop values.Map, logger clog.Logger) error {
@@ -139,9 +169,12 @@ func validateDubboOperator(dop values.Map, logger 
clog.Logger) error {
 }
 
 func applyComponentValuesToHelmValues(comp component.Component, spec 
apis.MetadataCompSpec, merged values.Map) values.Map {
-       root := comp.HelmTreeRoot
        if spec.Namespace != "" {
                spec.Namespace = "dubbo-system"
        }
        return merged
 }
+
+func postProcess(comp component.Component, manifests []manifest.Manifest, vals 
values.Map) ([]manifest.Manifest, error) {
+       return manifests, nil
+}
\ No newline at end of file

Reply via email to