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 8dc835c3 [operator] Parsing the manifests file (#520)
8dc835c3 is described below
commit 8dc835c39e9d885c79778e473de24630485b9948
Author: mfordjody <[email protected]>
AuthorDate: Mon Dec 2 18:04:35 2024 +0800
[operator] Parsing the manifests file (#520)
---
operator/manifest/manifest.go | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/operator/manifest/manifest.go b/operator/manifest/manifest.go
index 58027288..bf757d07 100644
--- a/operator/manifest/manifest.go
+++ b/operator/manifest/manifest.go
@@ -1,8 +1,10 @@
package manifest
import (
+ "encoding/json"
"github.com/apache/dubbo-kubernetes/operator/pkg/component"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
+ "sigs.k8s.io/yaml"
)
type Manifest struct {
@@ -14,3 +16,43 @@ type ManifestSet struct {
Components component.Name
Manifests []Manifest
}
+
+func FromJSON(j []byte) (Manifest, error) {
+ us := &unstructured.Unstructured{}
+ if err := json.Unmarshal(j, us); err != nil {
+ return Manifest{}, err
+ }
+ y, err := yaml.Marshal(us)
+ if err != nil {
+ return Manifest{}, err
+ }
+ return Manifest{Unstructured: us, Content: string(y)}, nil
+}
+
+func FromYAML(y []byte) (Manifest, error) {
+ us := &unstructured.Unstructured{}
+ if err := yaml.Unmarshal(y, us); err != nil {
+ return Manifest{}, err
+ }
+ return Manifest{Unstructured: us, Content: string(y)}, nil
+}
+
+func Parse(output []string) ([]Manifest, error) {
+ result := make([]Manifest, 0, len(output))
+ for _, m := range output {
+ mf, err := FromYAML([]byte(m))
+ if err != nil {
+ return nil, err
+ }
+ if mf.GetObjectKind().GroupVersionKind().Kind == "" {
+ continue
+ }
+ result = append(result, mf)
+ }
+ return result, nil
+
+}
+
+func ParseMultiple(output string) ([]Manifest, error) {
+ return nil, nil
+}