Procházet zdrojové kódy

addon resources work

Mohammed Nafees před 3 roky
rodič
revize
14e85bac2d

+ 42 - 0
cli/cmd/preview/v2beta1/addon_resource.go

@@ -0,0 +1,42 @@
+package v2beta1
+
+import "github.com/porter-dev/switchboard/pkg/types"
+
+func (a *AddonResource) GetName() string {
+	if a == nil || a.Name == nil {
+		return ""
+	}
+
+	return *a.Name
+}
+
+func (a *AddonResource) GetDependsOn() []string {
+	var dependsOn []string
+
+	if a == nil || a.DependsOn == nil {
+		return dependsOn
+	}
+
+	for _, d := range a.DependsOn {
+		if d == nil {
+			continue
+		}
+
+		dependsOn = append(dependsOn, *d)
+	}
+
+	return dependsOn
+}
+
+func (a *AddonResource) getV1Addon() (*types.Resource, error) {
+	return &types.Resource{
+		Name: a.GetName(),
+		Source: map[string]interface{}{
+			"name":    a.Chart.GetName(),
+			"repo":    a.Chart.GetURL(),
+			"version": a.Chart.GetVersion(),
+		},
+		DependsOn: a.GetDependsOn(),
+		Config:    a.HelmValues,
+	}, nil
+}

+ 14 - 0
cli/cmd/preview/v2beta1/apply.go

@@ -196,6 +196,20 @@ func (a *PreviewApplier) DowngradeToV1() (*types.ResourceGroup, error) {
 		v1File.Resources = append(v1File.Resources, ai)
 	}
 
+	for _, addon := range a.parsed.Addons {
+		if addon == nil {
+			continue
+		}
+
+		ai, err := addon.getV1Addon()
+
+		if err != nil {
+			return nil, err
+		}
+
+		v1File.Resources = append(v1File.Resources, ai)
+	}
+
 	return v1File, nil
 }