Skip to content

Commit

Permalink
Merge pull request #10 from xishengcai/caixisheng
Browse files Browse the repository at this point in the history
add Conf
  • Loading branch information
caixisheng authored Mar 22, 2023
2 parents 14ba6b6 + ed44e30 commit 543e1b8
Show file tree
Hide file tree
Showing 8 changed files with 593 additions and 28 deletions.
471 changes: 471 additions & 0 deletions go.sum

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion k8s/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ func GetK8sClientSetFromCache(dbg DataBaseConfig) (*KubernetesClient, error) {

// addNewClientToMap 传递一个获取kubernetes config的方法和数据库解耦
func addNewClientToMap(dbg DataBaseConfig) (err error) {
ClientCache.Add(dbg.ClusterID, dbg.GetClient())
c, err := dbg.GetClient()
if err != nil {
return err
}
ClientCache.Add(dbg.ClusterID, c)
klog.V(1).Infof("cluster id :%d, add new kubernetes all k8s success", dbg.ClusterID)
return
}
37 changes: 28 additions & 9 deletions k8s/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ var (
)

type KubernetesClient struct {
RestClient rest.RESTClient
Client client.Client
CoreClient *kubernetes.Clientset
DynamicClient dynamic.Interface
Expand Down Expand Up @@ -60,22 +61,39 @@ func (k *KubernetesClient) SetVersion() error {
return err
}

func (k *KubernetesClient) SetClient() *KubernetesClient {
k.Client, _ = client.New(k.RestConfig, client.Options{})
k.CoreClient, _ = kubernetes.NewForConfig(k.RestConfig)
k.DynamicClient, _ = dynamic.NewForConfig(k.RestConfig)
k.DiscoveryClient, _ = discovery.NewDiscoveryClientForConfig(k.RestConfig)
k.refreshApiResources()
return k
// SetClient ...
func (k *KubernetesClient) SetClient() (*KubernetesClient, error) {
var err error
k.Client, err = client.New(k.RestConfig, client.Options{})
if err != nil {
return nil, err
}
k.CoreClient, err = kubernetes.NewForConfig(k.RestConfig)
if err != nil {
return nil, err
}
k.DynamicClient, err = dynamic.NewForConfig(k.RestConfig)
if err != nil {
return nil, err
}
k.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(k.RestConfig)
if err != nil {
return nil, err
}
err = k.refreshApiResources()
return k, err
}

func (k *KubernetesClient) SetCRDGetter() *KubernetesClient {
k.CRDGetter = CRDFromDynamic(k.DynamicClient, GetCrdGVR(k.ServerVersion))
return k
}

func (k *KubernetesClient) refreshApiResources() {
resources, _ := k.DiscoveryClient.ServerPreferredResources()
func (k *KubernetesClient) refreshApiResources() error {
resources, err := k.DiscoveryClient.ServerPreferredResources()
if err != nil {
return err
}
for _, rList := range resources {
for _, r := range rList.APIResources {
if k.resourceMapper == nil {
Expand All @@ -84,6 +102,7 @@ func (k *KubernetesClient) refreshApiResources() {
k.resourceMapper[r.Kind] = r.Name
}
}
return nil
}

func (k KubernetesClient) SetConfig(g GetConfig) *KubernetesClient {
Expand Down
27 changes: 26 additions & 1 deletion k8s/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package k8s
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"os"

"k8s.io/client-go/rest"
Expand Down Expand Up @@ -63,7 +65,7 @@ func (dbg DataBaseConfig) GetConfig() (*rest.Config, error) {
return getRestConfig(config)
}

func (dbg DataBaseConfig) GetClient() *KubernetesClient {
func (dbg DataBaseConfig) GetClient() (*KubernetesClient, error) {
return KubernetesClient{}.SetConfig(dbg).SetClient()
}

Expand Down Expand Up @@ -95,3 +97,26 @@ func getRestConfigWithContext(context []byte) (*rest.Config, error) {
clientConfig := clientcmd.NewDefaultClientConfig(*config, &clientcmd.ConfigOverrides{})
return clientConfig.ClientConfig()
}

type Conf struct {
KubeConfig string
ProxyURL string
}

func (c Conf) GetConfig() (*rest.Config, error) {
if c.KubeConfig == "" {
panic("KubeConfig is null")
}
restConfig, err := getRestConfigWithContext([]byte(c.KubeConfig))
if err != nil {
return nil, err
}
if len(c.ProxyURL) > 0 {
u, err := url.Parse(c.ProxyURL)
if err != nil {
return nil, err
}
restConfig.Proxy = http.ProxyURL(u)
}
return restConfig, nil
}
27 changes: 26 additions & 1 deletion k8s/kubeapp.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,31 @@ type KubApp struct {
ObjectList []interface{}
}

// NewDefaultKubApp ... use ~/.kube/config
func NewDefaultKubApp() (*KubApp, error) {
c, err := NewClient().SetConfig(PathConfig{}).SetClient()
if err != nil {
return nil, err
}

return &KubApp{
KubernetesClient: c,
}, nil
}

// NewKubApp ... pass kubeConfig
func NewKubApp(conf Conf) (*KubApp, error) {
c, err := NewClient().
SetConfig(conf).SetClient()
if err != nil {
return nil, err
}

return &KubApp{
KubernetesClient: c,
}, nil
}

type OperationFunc func(*KubernetesClient, []interface{}) error

func (k *KubApp) SetKubernetesClient(c *KubernetesClient) *KubApp {
Expand Down Expand Up @@ -208,7 +233,7 @@ func DecodeToGvrObj(obj runtime.Object, k *KubernetesClient) (*GvrObj, error) {
}

// PatchObjectList when not found create new, if exists ,
//run patch with merge type: "application/merge-patch+json"
// run patch with merge type: "application/merge-patch+json"
// another patch type:server-side patch, will add manage field
func PatchObjectList(k *KubernetesClient, objList []interface{}) error {
var errors []error
Expand Down
39 changes: 28 additions & 11 deletions k8s/kubeapp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import (
)

func TestCreate(t *testing.T) {
k := KubApp{
KubernetesClient: KubernetesClient{}.SetConfig(PathConfig{}).SetClient(),
k, err := NewDefaultKubApp()
if err != nil {
t.Fatal(err)
}
testCases := []struct {
name string
Expand Down Expand Up @@ -39,9 +40,8 @@ func TestCreate(t *testing.T) {
}

func TestPatch(t *testing.T) {
k := KubApp{
KubernetesClient: KubernetesClient{}.SetConfig(PathConfig{}).SetClient(),
}
k, _ := NewDefaultKubApp()

if err := k.SetVersion(); err != nil {
t.Fatal(err)
}
Expand All @@ -68,9 +68,7 @@ func TestPatch(t *testing.T) {
}

func TestApply(t *testing.T) {
k := KubApp{
KubernetesClient: NewClient().SetConfig(PathConfig{}).SetClient(),
}
k, _ := NewDefaultKubApp()
if err := k.SetVersion(); err != nil {
t.Fatal(err)
}
Expand All @@ -96,9 +94,7 @@ func TestApply(t *testing.T) {
}

func TestDelete(t *testing.T) {
k := KubApp{
KubernetesClient: KubernetesClient{}.SetConfig(PathConfig{}).SetClient(),
}
k, _ := NewDefaultKubApp()
if err := k.SetVersion(); err != nil {
t.Fatal(err)
}
Expand Down Expand Up @@ -130,3 +126,24 @@ func TestGetKubernetesObjectByPath(t *testing.T) {
}
t.Logf("%v", obj[0])
}

const xConfig = `apiVersion: v1
clusters:
- cluster:
server: https://121.41.2.222:6443
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURUakNDQWphZ0F3SUJBZ0lVY2N1RzY1V1BvQ2VhWVVDYWtpUnU2dVl6clljd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1BqRW5NQThHQTFVRUNoTUlhR0Z1WjNwb2IzVXdGQVlEVlFRS0V3MWhiR2xpWVdKaElHTnNiM1ZrTVJNdwpFUVlEVlFRREV3cHJkV0psY201bGRHVnpNQ0FYRFRJek1ETXlNREV5TWpFd01Gb1lEekl3TlRNd016RXlNVEl5Ck1UQXdXakErTVNjd0R3WURWUVFLRXdob1lXNW5lbWh2ZFRBVUJnTlZCQW9URFdGc2FXSmhZbUVnWTJ4dmRXUXgKRXpBUkJnTlZCQU1UQ210MVltVnlibVYwWlhNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFEZjNXWGYvSHJhMW54eVBkUVVjbnBhZ3dYYm9tOHhRb0I5RGxpeEsyWmFKNFVLUmhpcXRqK0RNdnhqClNnWnZKTkdsbTdrdVNrdDlBdmZaclYrNmN3NlM1T0Zyd1JLTG1hZWtjSFYyUXNZMlVJWStHUlZIMkZkZHQrZ28KeDdRQU1DY29XQXM5b05iMlBFcGdhMFMveGJHTVBQVjFrYzBNcG85azcxMy9tQWYvRENZUVhSWldnNlpydWVnbQpVS1NPRnFFaUNPUXJYTXE0SEdac3J1TTNnVElQeDN6SU5PanViMVVVdHBrZ2lkUEtyWmN2OXkrTnArZ0FmWVQ5CklPeE03OUNTZUhhOTZwNzJjYzlkSXYxVlNEVWxpZEk1Z0tmUGNjMUNKVjZvZEF6UVV5V05YeTd1SnpMSTYzUW8KWll4YW5kN0hWRmsycnFsNmFBOGJDL1ozRWVNakFnTUJBQUdqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDckRBUApCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUnVaYmFoNVRGNXNyQVIzd1AyL2c5bjJlRWtwekFOCkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVZKM0tBS0JuTGpBd3Vjc09WR2dFdXlyeGp0TUJBaGZ1L1BEeDdYUGQKeHBWY3E1ay9vZWlFOWpqMGtITm4vbWhBa1FnMWU2NzZ4V0g4U1phSE13TmNkV3dvYWZCelpjRmVLSFFtOUx3dgp3YVNrM1RBcUZwb3lSMmNuZnFtTmpobVgvN05MYzV6alI0eDJRRGdYMSswT0VBYUt1L2JUa2I0TXc0bm1ZaHYyCmFFbWxuNkxSK1lCaVI3OER1M3B6em4xanQzNVd5UW5xSTUrZW0wRnVKcnNmVmVHQit4czJRdS9zOWFxMTQvd2MKa2ZSQXl6Q2YrT3NmWmtwK29BVytWVUZpN01hMWFBVSt3U3pxN3dpajlqNE0yWGFOWlF6RGFWWk5qVjllZVhWSwp1MWVRQi9oVmZnZWZTT0lBeHhXTTVSL0FMWlFPaGlKWFhWV1hadnFJTWMwREJRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: "kubernetes-admin"
name: kubernetes-admin-c4cea0542845f4f72b7736deac61095f6
current-context: kubernetes-admin-c4cea0542845f4f72b7736deac61095f6
kind: Config
preferences: {}
users:
- name: "kubernetes-admin"
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUQvVENDQXVXZ0F3SUJBZ0lFQUtxSnZ6QU5CZ2txaGtpRzl3MEJBUXNGQURCcU1Tb3dLQVlEVlFRS0V5RmoKTkdObFlUQTFOREk0TkRWbU5HWTNNbUkzTnpNMlpHVmhZell4TURrMVpqWXhFREFPQmdOVkJBc1RCMlJsWm1GMQpiSFF4S2pBb0JnTlZCQU1USVdNMFkyVmhNRFUwTWpnME5XWTBaamN5WWpjM016WmtaV0ZqTmpFd09UVm1OakFlCkZ3MHlNekF6TWpBeE1qRTRNREJhRncweU5qQXpNVGt4TWpJek1qVmFNRWd4RlRBVEJnTlZCQW9UREhONWMzUmwKYlRwMWMyVnljekVKTUFjR0ExVUVDeE1BTVNRd0lnWURWUVFERXhzeE1UZzNOakEwTlRJeE1EUXlNVGN6TFRFMgpOemt6TVRVd01EVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEVWNTS3VENElGCkllT0oySGZJMWU2ZVRlUUR5c1ZRMnBUWklUbkdsNldTU0FVTFJWTlJBN3F3NjZBS2pQb2JlTTJ5elFRTm15RVYKQlNGL0gzenFZWitPbnhNYUZWcXVjbzVUQUd3eGw4U0Y5Q2pQV0doOGxPZmZtQ0REYzR5OGQ2UFRxWkRFOXh4dApCQUIxMUNUWXE5MkYxdjE2aFZIR2M0VkpuUWFkZmlVYWNpMGhuRUJ2dDB3WVQwZXhJaDZWNTRQcTR3MWM1Sy8wCnpxakZkTklRUmc2QWJGd25mZXV6alViV3NIY2pjYkhHSXZuWlZ3VTRQZEJjT1VIc2MyNWlxNVFNUStXS0xVNDEKYU0wSEdPSERZTlZ5UVM1QUpzaVVDOFBBdGlYcFJFenUvYmYzM3d2OVM2dHhOYnJ5NU0xQVFoNlVycmNTaWpDSwo5OHZMTDk3ZzZLL0pBZ01CQUFHamdjd3dnY2t3RGdZRFZSMFBBUUgvQkFRREFnZUFNQk1HQTFVZEpRUU1NQW9HCkNDc0dBUVVGQndNQ01Bd0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVStOR0lmb2ZZOU8vbVRrb24KclZ4cm9nVUpvZW93UEFZSUt3WUJCUVVIQVFFRU1EQXVNQ3dHQ0NzR0FRVUZCekFCaGlCb2RIUndPaTh2WTJWeQpkSE11WVdOekxtRnNhWGwxYmk1amIyMHZiMk56Y0RBMUJnTlZIUjhFTGpBc01DcWdLS0FtaGlSb2RIUndPaTh2ClkyVnlkSE11WVdOekxtRnNhWGwxYmk1amIyMHZjbTl2ZEM1amNtd3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUIKQUZwelFtL1I2aGNXOU5tNTR4b08xSFVBVllFeTFzMHZQTnNOZmxlQ2p6dERwZTFsV2NVaHJMZkZWU2Q4SkJvZQo2MXNnbXRSSDRlZkdGSU9hUTlpNHVBTlNhTFozTHhqOGJxSjljRzIyK1g0Y2IxRStaZ1hzam9kanIweHhJRUZYCndaRHFKNkRCc1JoNXZITWNndlNFL3Y1Z1crV05wUGRlRjFFVlFNbkZwajBvdDdVK3kyN3FPWnhDN2ZQMVVkLzgKeW12Z0kxMlErSCtycXhYQ2tlUWRlR1ZkRE4yTC9Ca0QrV0p5dTF6S0NvaTZSRk9vMVpWbklpbmNzbUcrSWxEYgpMUjBoN2dJeGtBNVg1TEs1WXFTcVNScVdxQUFoNDIyWjNhMk9wcXhTbGlYZmJoS2xTMy8ydi9hUi9UdWozTmxJCmMyWndVTVlZeHFDMXFOMDF4aUQrNVpnPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlEb3pDQ0F3eWdBd0lCQWdJRUFLcUp2VEFOQmdrcWhraUc5dzBCQVFzRkFEQmlNUXN3Q1FZRFZRUUdFd0pEClRqRVJNQThHQTFVRUNBd0lXbWhsU21saGJtY3hFVEFQQmdOVkJBY01DRWhoYm1kYWFHOTFNUkF3RGdZRFZRUUsKREFkQmJHbGlZV0poTVF3d0NnWURWUVFMREFOQlExTXhEVEFMQmdOVkJBTU1CSEp2YjNRd0hoY05Nak13TXpJdwpNVEl4T0RBd1doY05ORE13TXpFMU1USXlNekl5V2pCcU1Tb3dLQVlEVlFRS0V5RmpOR05sWVRBMU5ESTRORFZtCk5HWTNNbUkzTnpNMlpHVmhZell4TURrMVpqWXhFREFPQmdOVkJBc1RCMlJsWm1GMWJIUXhLakFvQmdOVkJBTVQKSVdNMFkyVmhNRFUwTWpnME5XWTBaamN5WWpjM016WmtaV0ZqTmpFd09UVm1OakNDQVNJd0RRWUpLb1pJaHZjTgpBUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS0RrUXk0Z0NrL3FkQ0hEbTZPYlJsTmwxSDFCWVhSYi8wY3ovclp6CjFaQVd3a3UyRThZd3doc2VKaGRqOHNxcGRtWUJxMWZBV0ZaQm93OGZNNUNRMUhsRVN2QXF5d05ZdXNIRzNjeXUKd3o4Sk5oK1J6bU5YQmJiWDR3YytkTStoVWNZK3R2ZVFjY0xTZzhpY3paSCtDWDRtSWFvMWR4NWMvQytrZUlLWAoreENEY1lHZ3VQUmNzRkNGT0RYNVkxT2JjN25TNWhKTUx4ZHRkcjFFQllEenZXVHV5YUUyREFKVU9wVGxlaklNCmhVeHBsZDBRZ0FJVDNPSE1tSnVUaDlXVEhsVnF2R2p5MjhPYkh4ZUJET0JjUVV1bGZtRG5wVE1YeWdYZCtNNTkKczU0RFFaOEpDb0N2dWdCcHN6TUt1WUpsS2JRY0Q4b0l0dzJ5ZlBHQ0NJbkV4TmNDQXdFQUFhT0IyVENCMWpBTwpCZ05WSFE4QkFmOEVCQU1DQXF3d0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVStOR0lmb2ZZCjlPL21Ua29uclZ4cm9nVUpvZW93SHdZRFZSMGpCQmd3Rm9BVWhWci8zU1BOSlc5WVFXK2ViVVU1bTFoOWRmOHcKUEFZSUt3WUJCUVVIQVFFRU1EQXVNQ3dHQ0NzR0FRVUZCekFCaGlCb2RIUndPaTh2WTJWeWRITXVZV056TG1GcwphWGwxYmk1amIyMHZiMk56Y0RBMUJnTlZIUjhFTGpBc01DcWdLS0FtaGlSb2RIUndPaTh2WTJWeWRITXVZV056CkxtRnNhWGwxYmk1amIyMHZjbTl2ZEM1amNtd3dEUVlKS29aSWh2Y05BUUVMQlFBRGdZRUFKbnR2UTlnNEJQYXUKYTc5eTNJbkRleFBwbk5PdFJrUkV2dVpCYmpQYkZQbTYwOVFOR3dXc0p1YXZVZUtPeTZwa051N3Q2czd5Ry9XcApWK2JQL0xhWUFwYzFweTlxaFI3UWZaSUcwT29WdVYvcW40N01XSFRac0ZUem9IK25FN0ZQTExIQm1udDY1NlBFCjVFUGlKUm9LcEU2OEIwRC9BWDRWa1F6RHExalFtcXc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMUhFaXJnK0NCU0hqaWRoM3lOWHVuazNrQThyRlVOcVUyU0U1eHBlbGtrZ0ZDMFZUClVRTzZzT3VnQ296Nkczak5zczBFRFpzaEZRVWhmeDk4Nm1HZmpwOFRHaFZhcm5LT1V3QnNNWmZFaGZRb3oxaG8KZkpUbjM1Z2d3M09NdkhlajA2bVF4UGNjYlFRQWRkUWsyS3ZkaGRiOWVvVlJ4bk9GU1owR25YNGxHbkl0SVp4QQpiN2RNR0U5SHNTSWVsZWVENnVNTlhPU3Y5TTZveFhUU0VFWU9nR3hjSjMzcnM0MUcxckIzSTNHeHhpTDUyVmNGCk9EM1FYRGxCN0hOdVlxdVVERVBsaWkxT05Xak5CeGpodzJEVmNrRXVRQ2JJbEF2RHdMWWw2VVJNN3YyMzk5OEwKL1V1cmNUVzY4dVROUUVJZWxLNjNFb293aXZmTHl5L2U0T2l2eVFJREFRQUJBb0lCQVFDVUNlYTF6cjYzSHQ5MQp2bS95ZHduYUxNTVkxV05jcllVT0xiWWFLckRKV0FDVDB4SjFJUmtta251cS9vU0hRazV0SzZxSVpMTFArQXhZCmpyTzRqS0RvZlBlTnRKWEZmTFNyS0Y4OHk5cTUwZVBpWVdRbWRJbUVhWGxqV2hFWGdIT2NXc3cwUlZMOHNNNDEKVGNrRFovaHRmTnlVVlhVZnluNTJSc05HV3BJMmMxYkpvSHppZGRrMXVDYm1ZUkhuMkJGRTRVdkZNNzljS0srZApnRW9Bb3VLRjhWVEREcjBuWDRHMlozNng2dy9HbG93V3N4UStqRGN0emlIaVpsa2U4UGE2eXNzdDJ0bDhBeWZMCmJmQ3RuVE9ZZnhpY0M2NTBtQW5tZEY4bGtTRVZjNFdxeXV4R3dVSlZlTm9qblpxaWFSNlE2TTJIVkxIZnBZRE4KZkF1eE1KWUJBb0dCQVBET1I3T1VvQiticzFPZFFZOEpaTzdFeFR4N2VmdGxxRHA5dVhpY2hCY2h3VzRMSHR6aQo5eWVpT1RocEM3a0dkazdmNU85Y2pkK1N1MGVTMnhsL1VzK0ZrS0doQks2Zk1hUENqdG9oYzh4WTNHUlVtcEc2Cktzc25peWRUbUVvbVZKZHhLeDY3WUZvKzlPb0x0dlFYTTRUOUt5ODY3NnVvZnVKU0tzTGtOOFlKQW9HQkFPSFkKc2pBb05wVml5Ym1UT3R2bkQvV3FaS1RoTjd5SlVmRTkzMGluR3V6dTU2M2RDQWZOTnJuaWxDYjk3SmM3RzJFZApQMVBSaENiS2RjbzZtekxmT0hobmRTT2JvanZramhxNnNGd24waUloTXNmd3lCdFdaZFRGUEw1dlg0d241cldBCjBiNEp3b0N0UlloUWFlQnlrR1FkWGVHYjJONVdEb1FlYWFOcENndkJBb0dCQU5PckR2MjhqQStjcGtHK1BpMUQKL2JPZnhSdklFYzQ0YW1xWHJ0dGxBUHJ3VWYydnlyNHd4ejNRYSttNDlIUDhTU3hGeEEvZTFGcU11UkJOOTBkdgpVdFJWUEcvR2dMNFo4dUZXbUlrRzFLbndCakl1NS90bW9FMFpBa2xjUXNZUzhWSjVTSVRvQWVieDVnaUFxWjNmCmN3cllHd2lXRHF4ZUhNSkZwWTdRV25JNUFvR0FZS2NMUXY3Q3RWWE12T1djWitYUDk3UFBWSnlwN0w3YjJhRkEKQUdpN1pqQ3I1OFZUSFh1ZWN4amJqSUJaRXpPUmVSTTZPZFhOZDRobnRuODBVaVlqbGF1NC90OHBJL2FoTmlFMQpQb3N3SzdrSGNYZkRPNmZTOXFiZVl5Vm92Nk9INFo5YW83aXJpOFFib01YQk9mUHRoVnJvQlpoYnpITUp6Vkx5CnBLTmNVRUVDZ1lCSFJmRmN2N2h4THhpMjQwZ3RiWVBtNmNRQ0FwQTVmR2RUMDlOY1hPZ1h2ZTN3VlB4NHhCNW0KcmhhajNLaHVjOUt5UnFjaHNnbithdituQ3FiVVVDSkc3UDZocDZsZVFiRHBuTFllOC9vNWhiUWU0R3RJR3AzYwo5a3JzaXRpVkRwOU1QQUxzbkJFVHZKTWVvMC8vYzNBbTZYcVYwRlRuWmJwU1F3UWs5eXFoZGc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
`
12 changes: 8 additions & 4 deletions k8s/test/example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,20 @@ import (
)

func main() {
k := KubApp{
KubernetesClient: KubernetesClient{}.SetConfig(PathConfig{}).SetClient(),
app, err := NewDefaultKubApp()
//app, err := NewKubApp(Conf{
// KubeConfig: "",
// ProxyURL: "http://127.0.0.1:1087",
//})
if err != nil {
panic(err)
}

// todo: modify you yaml path
objs, err := GetObjList("../yaml/patch")
if err != nil {
panic(err)
}
err = k.SetObjectList(objs).Do(PatchObjectList)
err = app.SetObjectList(objs).Do(ApplyObjectList)
if err != nil {
panic(err)
}
Expand Down
2 changes: 1 addition & 1 deletion k8s/test/yaml/all_in_one/svc.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v1
kind: Namespace
metadata:
name: launcher-test
name: x-test
---
apiVersion: v1
kind: Service
Expand Down

0 comments on commit 543e1b8

Please sign in to comment.