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 88e8edf2 [fix] update read profile logic
88e8edf2 is described below

commit 88e8edf2739189dc0135d7cd20a33e1984cc8dc3
Author: mfordjody <[email protected]>
AuthorDate: Sun Dec 15 09:26:29 2024 +0800

    [fix] update read profile logic
---
 manifests/charts/base/values.yaml     |  3 ++-
 operator/cmd/cluster/install.go       |  2 +-
 operator/cmd/validation/validation.go |  3 ++-
 operator/pkg/render/manifest.go       | 17 +++++++++++++----
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/manifests/charts/base/values.yaml 
b/manifests/charts/base/values.yaml
index 868a5f25..5b243433 100644
--- a/manifests/charts/base/values.yaml
+++ b/manifests/charts/base/values.yaml
@@ -16,4 +16,5 @@
 base:
   ## dubboctl disable dubbo configuration crds in base.
   enableDubboConfigCRD: true
-defaultRevision: "default"
\ No newline at end of file
+
+defaultRevision: "default"
diff --git a/operator/cmd/cluster/install.go b/operator/cmd/cluster/install.go
index a9f2f289..641a346d 100644
--- a/operator/cmd/cluster/install.go
+++ b/operator/cmd/cluster/install.go
@@ -64,7 +64,7 @@ func InstallCmdWithArgs(ctx cli.Context, rootArgs *RootArgs, 
iArgs *installArgs)
                        p := NewPrinterForWriter(cmd.OutOrStderr())
                        cl := clog.NewConsoleLogger(cmd.OutOrStdout(), 
cmd.ErrOrStderr(), installerScope)
                        p.Printf("%v\n", art.DubboArt())
-                       return Install(kubeClient, rootArgs, iArgs)
+                       return Install(kubeClient, rootArgs, iArgs, cl, 
cmd.OutOrStdout(), p)
                },
        }
        return ic
diff --git a/operator/cmd/validation/validation.go 
b/operator/cmd/validation/validation.go
index e9d9848a..c59ea24b 100644
--- a/operator/cmd/validation/validation.go
+++ b/operator/cmd/validation/validation.go
@@ -7,12 +7,13 @@ import (
        "github.com/apache/dubbo-kubernetes/operator/pkg/apis"
        "github.com/apache/dubbo-kubernetes/operator/pkg/util"
        "github.com/apache/dubbo-kubernetes/operator/pkg/values"
+       "github.com/apache/dubbo-kubernetes/pkg/kube"
        "sigs.k8s.io/yaml"
 )
 
 type Warnings = util.Errors
 
-func ParseAndValidateDubboOperator(dopMap values.Map) (Warnings, util.Errors) {
+func ParseAndValidateDubboOperator(dopMap values.Map, client kube.Client) 
(Warnings, util.Errors) {
        dop := &apis.DubboOperator{}
        dec := json.NewDecoder(bytes.NewBufferString(dopMap.JSON()))
        dec.DisallowUnknownFields()
diff --git a/operator/pkg/render/manifest.go b/operator/pkg/render/manifest.go
index 30c0d27b..54897fe6 100644
--- a/operator/pkg/render/manifest.go
+++ b/operator/pkg/render/manifest.go
@@ -27,6 +27,7 @@ func MergeInputs(filenames []string, flags []string, client 
kube.Client) (values
        if err != nil {
                return nil, err
        }
+
        for i, fn := range filenames {
                var b []byte
                var err error
@@ -50,16 +51,24 @@ func MergeInputs(filenames []string, flags []string, client 
kube.Client) (values
                }
                ConfigBase.MergeFrom(m)
        }
+
        if err := ConfigBase.SetSpecPaths(flags...); err != nil {
                return nil, err
        }
+
        path := ConfigBase.GetPathString("")
        profile := ConfigBase.GetPathString("spec.profile")
+       value, _ := ConfigBase.GetPathMap("spec.values")
        base, err := readProfile(path, profile)
        if err != nil {
                return base, err
        }
        base.MergeFrom(ConfigBase)
+
+       if value != nil {
+               base.MergeFrom(values.Map{"spec": values.Map{"values": value}})
+       }
+
        return base, nil
 }
 
@@ -86,7 +95,7 @@ func readBuiltinProfile(path, profile string) (values.Map, 
error) {
        fs := manifests.BuiltinDir(path)
        file, err := fs.Open(fmt.Sprintf("profiles/%v.yaml", profile))
        if err != nil {
-               return nil, err
+               return nil, fmt.Errorf("profile %q not found: %v", profile, err)
        }
        pb, err := io.ReadAll(file)
        if err != nil {
@@ -111,7 +120,7 @@ func GenerateManifest(files []string, setFlags []string, 
logger clog.Logger, cli
        if err != nil {
                return nil, nil, fmt.Errorf("merge inputs: %v", err)
        }
-       if err := validateDubboOperator(merged, logger); err != nil {
+       if err := validateDubboOperator(merged, client, logger); err != nil {
                return nil, nil, fmt.Errorf("validateDubboOperator err:%v", err)
        }
        allManifests := map[component.Name]manifest.ManifestSet{}
@@ -156,8 +165,8 @@ func GenerateManifest(files []string, setFlags []string, 
logger clog.Logger, cli
        return val, merged, nil
 }
 
-func validateDubboOperator(dop values.Map, logger clog.Logger) error {
-       warnings, errs := validation.ParseAndValidateDubboOperator(dop)
+func validateDubboOperator(dop values.Map, client kube.Client, logger 
clog.Logger) error {
+       warnings, errs := validation.ParseAndValidateDubboOperator(dop, client)
        if err := errs.ToErrors(); err != nil {
                return err
        }

Reply via email to