Selaa lähdekoodia

Add Kube client

Signed-off-by: Guillaume Tardif <[email protected]>
Guillaume Tardif 4 vuotta sitten
vanhempi
sitoutus
73e94b4ba5
2 muutettua tiedostoa jossa 50 lisäystä ja 2 poistoa
  1. 43 0
      kube/client/client.go
  2. 7 2
      kube/compose.go

+ 43 - 0
kube/client/client.go

@@ -0,0 +1,43 @@
+// +build kube
+
+/*
+   Copyright 2020 Docker Compose CLI authors
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package client
+
+import (
+	"k8s.io/cli-runtime/pkg/genericclioptions"
+	"k8s.io/client-go/kubernetes"
+)
+
+type KubeClient struct {
+	client *kubernetes.Clientset
+}
+
+func NewKubeClient(config genericclioptions.RESTClientGetter) (*KubeClient, error) {
+	restConfig, err := config.ToRESTConfig()
+	if err != nil {
+		return nil, err
+	}
+
+	clientset, err := kubernetes.NewForConfig(restConfig)
+	if err != nil {
+		return nil, err
+	}
+	return &KubeClient{
+		client: clientset,
+	}, nil
+}

+ 7 - 2
kube/compose.go

@@ -30,12 +30,14 @@ import (
 	"github.com/docker/compose-cli/api/context/store"
 	"github.com/docker/compose-cli/api/errdefs"
 	"github.com/docker/compose-cli/api/progress"
+	"github.com/docker/compose-cli/kube/client"
 	"github.com/docker/compose-cli/kube/helm"
 	"github.com/docker/compose-cli/kube/resources"
 )
 
 type composeService struct {
-	sdk *helm.Actions
+	sdk    *helm.Actions
+	client *client.KubeClient
 }
 
 // NewComposeService create a kubernetes implementation of the compose.Service API
@@ -52,11 +54,14 @@ func NewComposeService(ctx context.Context) (compose.Service, error) {
 		return nil, err
 	}
 	actions, err := helm.NewActions(config)
+	apiClient, err := client.NewKubeClient(config)
 	if err != nil {
 		return nil, err
 	}
+
 	return &composeService{
-		sdk: actions,
+		sdk:    actions,
+		client: apiClient,
 	}, nil
 }