diff --git a/cmd/main.go b/cmd/main.go index c39628355..3093cedb8 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -58,7 +58,7 @@ func main() { log.Fatalf("couldn't get REST config: %v", err) } - c := controller.New(&config) + c := controller.NewController(&config) c.Run(stop, wg) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 6ea208c5f..c52de6980 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -13,7 +13,6 @@ import ( "github.com/Sirupsen/logrus" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" "k8s.io/client-go/rest" @@ -127,7 +126,7 @@ func (c *Cluster) setStatus(status spec.PostgresStatus) { } request := []byte(fmt.Sprintf(`{"status": %s}`, string(b))) //TODO: Look into/wait for k8s go client methods - _, err = c.KubeClient.CoreV1().RESTClient().Patch(types.MergePatchType). + _, err = c.KubeClient.RESTClient.Patch(types.MergePatchType). RequestURI(c.Metadata.GetSelfLink()). Body(request). DoRaw() diff --git a/pkg/cluster/exec.go b/pkg/cluster/exec.go index 50eba794f..1f6cb76e2 100644 --- a/pkg/cluster/exec.go +++ b/pkg/cluster/exec.go @@ -28,7 +28,7 @@ func (c *Cluster) ExecCommand(podName *spec.NamespacedName, command ...string) ( return "", fmt.Errorf("could not determine which container to use") } - req := c.KubeClient.CoreV1().RESTClient().Post(). + req := c.KubeClient.RESTClient.Post(). Resource("pods"). Name(podName.Name). Namespace(podName.Namespace). diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index ba8a98d16..dc3504d86 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -6,7 +6,6 @@ import ( "github.com/Sirupsen/logrus" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" @@ -35,7 +34,7 @@ type Controller struct { opConfig *config.Config logger *logrus.Entry - KubeClient *kubernetes.Clientset + KubeClient k8sutil.KubernetesClient RestClient rest.Interface TeamsAPIClient *teams.API @@ -56,7 +55,7 @@ func NewController(controllerConfig *Config) *Controller { configMapData := make(map[string]string) logger := logrus.New() - client, err := k8sutil.KubernetesClient(controllerConfig.RestConfig) + client, err := k8sutil.ClientSet(controllerConfig.RestConfig) if err != nil { logger.Fatalf("couldn't create client: %v", err) } @@ -102,7 +101,7 @@ func NewController(controllerConfig *Config) *Controller { stopChs: make(map[spec.NamespacedName]chan struct{}), podCh: make(chan spec.PodEvent), TeamsAPIClient: teams.NewTeamsAPI(operatorConfig.TeamsAPIUrl, logger), - KubeClient: client, + KubeClient: k8sutil.NewFromKubernetesInterface(client), RestClient: restClient, } } diff --git a/pkg/controller/util.go b/pkg/controller/util.go index 546d6c342..e6abeefae 100644 --- a/pkg/controller/util.go +++ b/pkg/controller/util.go @@ -48,7 +48,7 @@ func (c *Controller) clusterWorkerID(clusterName spec.NamespacedName) uint32 { func (c *Controller) createTPR() error { tpr := thirdPartyResource(constants.TPRName) - _, err := c.KubeClient.ExtensionsV1beta1().ThirdPartyResources().Create(tpr) + _, err := c.KubeClient.ThirdPartyResources().Create(tpr) if err != nil { if !k8sutil.ResourceAlreadyExists(err) { return err @@ -69,7 +69,7 @@ func (c *Controller) getInfrastructureRoles(rolesSecret *spec.NamespacedName) (r infraRolesSecret, err := c.KubeClient. Secrets(rolesSecret.Namespace). - Get(rolesSecret.Name) + Get(rolesSecret.Name, meta_v1.GetOptions{}) if err != nil { c.logger.Debugf("Infrastructure roles secret name: %q", *rolesSecret) return nil, fmt.Errorf("could not get infrastructure roles secret: %v", err) diff --git a/pkg/spec/types.go b/pkg/spec/types.go index 687421bdf..1a43cde05 100644 --- a/pkg/spec/types.go +++ b/pkg/spec/types.go @@ -1,9 +1,9 @@ package spec import ( + "database/sql" "fmt" "strings" - "database/sql" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/pkg/api/v1" diff --git a/pkg/util/k8sutil/k8sutil.go b/pkg/util/k8sutil/k8sutil.go index 367a23858..09ad38444 100644 --- a/pkg/util/k8sutil/k8sutil.go +++ b/pkg/util/k8sutil/k8sutil.go @@ -28,6 +28,7 @@ type KubernetesClient struct { v1core.ConfigMapsGetter v1beta1.StatefulSetsGetter extensions.ThirdPartyResourcesGetter + RESTClient rest.Interface } func NewFromKubernetesInterface(src kubernetes.Interface) (c KubernetesClient) { @@ -41,6 +42,7 @@ func NewFromKubernetesInterface(src kubernetes.Interface) (c KubernetesClient) { c.PersistentVolumesGetter = src.CoreV1() c.StatefulSetsGetter = src.AppsV1beta1() c.ThirdPartyResourcesGetter = src.ExtensionsV1beta1() + c.RESTClient = src.CoreV1().RESTClient() return }