| 
									
										
										
										
											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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-26 12:27:25 +08:00
										 |  |  | 	core "github.com/oam-dev/kubevela/apis/core.oam.dev" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-25 17:29:23 +08:00
										 |  |  | 	"github.com/oam-dev/kubevela/apis/standard.oam.dev/v1alpha1" | 
					
						
							| 
									
										
										
										
											2020-11-25 17:25:12 +08:00
										 |  |  | 	"github.com/oam-dev/kubevela/apis/types" | 
					
						
							| 
									
										
										
										
											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) | 
					
						
							|  |  |  | } |