mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-27 16:17:34 +00:00
refactor extend trait feature and doc
Signed-off-by: 天元 <jianbo.sjb@alibaba-inc.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/crossplane/oam-kubernetes-runtime/apis/core"
|
||||
certmanager "github.com/wonderflow/cert-manager-api/pkg/apis/certmanager/v1"
|
||||
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
|
||||
|
||||
"github.com/oam-dev/kubevela/api/types"
|
||||
"github.com/oam-dev/kubevela/api/v1alpha1"
|
||||
k8sruntime "k8s.io/apimachinery/pkg/runtime"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
)
|
||||
|
||||
var (
|
||||
Scheme = k8sruntime.NewScheme()
|
||||
)
|
||||
|
||||
func init() {
|
||||
_ = clientgoscheme.AddToScheme(Scheme)
|
||||
_ = certmanager.AddToScheme(Scheme)
|
||||
_ = core.AddToScheme(Scheme)
|
||||
_ = v1alpha1.AddToScheme(Scheme)
|
||||
// +kubebuilder:scaffold:scheme
|
||||
}
|
||||
|
||||
func InitBaseRestConfig() (types.Args, error) {
|
||||
restConf, err := config.GetConfig()
|
||||
if err != nil {
|
||||
fmt.Println("get kubeConfig err", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
return types.Args{
|
||||
Config: restConf,
|
||||
Schema: Scheme,
|
||||
}, nil
|
||||
}
|
||||
+33
-1
@@ -7,6 +7,8 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/oam-dev/kubevela/pkg/utils/common"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"helm.sh/helm/v3/pkg/action"
|
||||
"helm.sh/helm/v3/pkg/chart"
|
||||
@@ -15,17 +17,41 @@ import (
|
||||
"helm.sh/helm/v3/pkg/getter"
|
||||
"helm.sh/helm/v3/pkg/release"
|
||||
"helm.sh/helm/v3/pkg/repo"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/oam-dev/kubevela/api/types"
|
||||
cmdutil "github.com/oam-dev/kubevela/pkg/commands/util"
|
||||
)
|
||||
|
||||
const VelaDebugLog = "VELA_DEBUG"
|
||||
|
||||
var (
|
||||
settings = cli.New()
|
||||
)
|
||||
|
||||
func Install(ioStreams cmdutil.IOStreams, repoName, repoURL, chartName, version, namespace, releaseName string,
|
||||
vals map[string]interface{}) error {
|
||||
|
||||
if len(namespace) > 0 {
|
||||
args, err := common.InitBaseRestConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
kubeClient, err := client.New(args.Config, client.Options{Scheme: args.Schema})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
exist, err := cmdutil.DoesNamespaceExist(kubeClient, namespace)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exist {
|
||||
if err = cmdutil.NewNamespace(kubeClient, namespace); err != nil {
|
||||
return fmt.Errorf("create namespace (%s) failed for chart %s: %s", namespace, chartName, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !IsHelmRepositoryExist(repoName, repoURL) {
|
||||
err := AddHelmRepository(repoName, repoURL,
|
||||
"", "", "", "", "", false, ioStreams.Out)
|
||||
@@ -195,7 +221,9 @@ func GetHelmRelease(ns string) ([]*release.Release, error) {
|
||||
}
|
||||
|
||||
func GetChart(client *action.Install, name string) (*chart.Chart, error) {
|
||||
settings.Debug = true
|
||||
if os.Getenv(VelaDebugLog) != "" {
|
||||
settings.Debug = true
|
||||
}
|
||||
|
||||
chartPath, err := client.ChartPathOptions.LocateChart(name, settings)
|
||||
if err != nil {
|
||||
@@ -208,3 +236,7 @@ func GetChart(client *action.Install, name string) (*chart.Chart, error) {
|
||||
}
|
||||
return chartRequested, nil
|
||||
}
|
||||
|
||||
func InstallHelmChart(ioStreams cmdutil.IOStreams, c types.Chart) error {
|
||||
return Install(ioStreams, c.Repo, c.URL, c.Name, c.Version, c.Namespace, c.Name, c.Values)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user