2020-11-16 18:55:01 +08:00
|
|
|
package common
|
2020-09-24 16:30:12 +08:00
|
|
|
|
|
|
|
|
import (
|
2020-11-18 16:08:16 +08:00
|
|
|
"context"
|
2020-09-24 16:30:12 +08:00
|
|
|
"fmt"
|
2020-11-18 16:08:16 +08:00
|
|
|
"io/ioutil"
|
|
|
|
|
"net/http"
|
2020-09-24 16:30:12 +08:00
|
|
|
"os"
|
|
|
|
|
|
|
|
|
|
"github.com/crossplane/oam-kubernetes-runtime/apis/core"
|
2020-10-15 11:51:41 +08:00
|
|
|
certmanager "github.com/wonderflow/cert-manager-api/pkg/apis/certmanager/v1"
|
2020-11-17 14:25:58 +08:00
|
|
|
k8sruntime "k8s.io/apimachinery/pkg/runtime"
|
2020-09-24 16:30:12 +08:00
|
|
|
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
|
2020-11-17 14:25:58 +08:00
|
|
|
"sigs.k8s.io/controller-runtime/pkg/client/config"
|
2020-09-24 16:30:12 +08:00
|
|
|
|
|
|
|
|
"github.com/oam-dev/kubevela/api/types"
|
2020-10-27 17:07:01 +08:00
|
|
|
"github.com/oam-dev/kubevela/api/v1alpha1"
|
2020-09-24 16:30:12 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
2020-11-17 17:46:56 +08:00
|
|
|
// Scheme defines the default KubeVela schema
|
2020-09-24 16:30:12 +08:00
|
|
|
Scheme = k8sruntime.NewScheme()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
_ = clientgoscheme.AddToScheme(Scheme)
|
|
|
|
|
_ = certmanager.AddToScheme(Scheme)
|
|
|
|
|
_ = core.AddToScheme(Scheme)
|
2020-10-27 17:07:01 +08:00
|
|
|
_ = v1alpha1.AddToScheme(Scheme)
|
2020-09-24 16:30:12 +08:00
|
|
|
// +kubebuilder:scaffold:scheme
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-17 17:46:56 +08:00
|
|
|
// InitBaseRestConfig will return reset config for create controller runtime client
|
2020-11-16 18:55:01 +08:00
|
|
|
func InitBaseRestConfig() (types.Args, error) {
|
2020-09-24 16:30:12 +08:00
|
|
|
restConf, err := config.GetConfig()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Println("get kubeConfig err", err)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-12 13:25:06 +08:00
|
|
|
return types.Args{
|
2020-09-24 16:30:12 +08:00
|
|
|
Config: restConf,
|
|
|
|
|
Schema: Scheme,
|
2020-11-12 13:25:06 +08:00
|
|
|
}, nil
|
2020-09-24 16:30:12 +08:00
|
|
|
}
|
2020-11-18 16:08:16 +08:00
|
|
|
|
|
|
|
|
// HTTPGet will send GET http request with context
|
|
|
|
|
func HTTPGet(ctx context.Context, url string) ([]byte, error) {
|
|
|
|
|
// Change NewRequest to NewRequestWithContext and pass context it
|
|
|
|
|
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
resp, err := http.DefaultClient.Do(req)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
//nolint:errcheck
|
|
|
|
|
defer resp.Body.Close()
|
|
|
|
|
return ioutil.ReadAll(resp.Body)
|
|
|
|
|
}
|