Skip to content
Snippets Groups Projects
Commit 58572bb4 authored by Murat Kabilov's avatar Murat Kabilov
Browse files

move controller config to the spec package

parent 606d0000
Branches
Tags
No related merge requests found
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"syscall" "syscall"
"github.com/zalando-incubator/postgres-operator/pkg/controller" "github.com/zalando-incubator/postgres-operator/pkg/controller"
"github.com/zalando-incubator/postgres-operator/pkg/spec"
"github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil" "github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil"
) )
...@@ -16,7 +17,7 @@ var ( ...@@ -16,7 +17,7 @@ var (
kubeConfigFile string kubeConfigFile string
outOfCluster bool outOfCluster bool
version string version string
config controller.Config config spec.ControllerConfig
) )
func init() { func init() {
......
...@@ -17,20 +17,9 @@ import ( ...@@ -17,20 +17,9 @@ import (
"github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil" "github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil"
) )
// Config describes configuration of the controller
type Config struct {
RestConfig *rest.Config
InfrastructureRoles map[string]spec.PgUser
NoDatabaseAccess bool
NoTeamsAPI bool
ConfigMapName spec.NamespacedName
Namespace string
}
// Controller represents operator controller // Controller represents operator controller
type Controller struct { type Controller struct {
config Config config spec.ControllerConfig
opConfig *config.Config opConfig *config.Config
logger *logrus.Entry logger *logrus.Entry
...@@ -45,22 +34,23 @@ type Controller struct { ...@@ -45,22 +34,23 @@ type Controller struct {
podInformer cache.SharedIndexInformer podInformer cache.SharedIndexInformer
podCh chan spec.PodEvent podCh chan spec.PodEvent
clusterEventQueues []*cache.FIFO clusterEventQueues []*cache.FIFO // [workerID]Queue
lastClusterSyncTime int64 lastClusterSyncTime int64
} }
// NewController creates a new controller // NewController creates a new controller
func NewController(controllerConfig *Config) *Controller { func NewController(controllerConfig *spec.ControllerConfig) *Controller {
logger := logrus.New() logger := logrus.New()
return &Controller{ c := &Controller{
config: *controllerConfig, config: *controllerConfig,
opConfig: &config.Config{}, opConfig: &config.Config{},
logger: logger.WithField("pkg", "controller"), logger: logger.WithField("pkg", "controller"),
clusters: make(map[spec.NamespacedName]*cluster.Cluster), clusters: make(map[spec.NamespacedName]*cluster.Cluster),
stopChs: make(map[spec.NamespacedName]chan struct{}),
podCh: make(chan spec.PodEvent), podCh: make(chan spec.PodEvent),
} }
return c
} }
func (c *Controller) initClients() { func (c *Controller) initClients() {
......
...@@ -48,7 +48,7 @@ func newMockKubernetesClient() k8sutil.KubernetesClient { ...@@ -48,7 +48,7 @@ func newMockKubernetesClient() k8sutil.KubernetesClient {
} }
func newMockController() *Controller { func newMockController() *Controller {
controller := NewController(&Config{}) controller := NewController(&spec.ControllerConfig{})
controller.opConfig.ClusterNameLabel = "cluster-name" controller.opConfig.ClusterNameLabel = "cluster-name"
controller.opConfig.InfrastructureRolesSecretName = controller.opConfig.InfrastructureRolesSecretName =
spec.NamespacedName{Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesSecretName} spec.NamespacedName{Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesSecretName}
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/api/v1"
"k8s.io/client-go/rest"
) )
// EventType contains type of the events for the TPRs and Pods received from Kubernetes // EventType contains type of the events for the TPRs and Pods received from Kubernetes
...@@ -72,6 +73,17 @@ type UserSyncer interface { ...@@ -72,6 +73,17 @@ type UserSyncer interface {
ExecuteSyncRequests(req []PgSyncUserRequest, db *sql.DB) error ExecuteSyncRequests(req []PgSyncUserRequest, db *sql.DB) error
} }
// ControllerConfig describes configuration of the controller
type ControllerConfig struct {
RestConfig *rest.Config `json:"-"`
InfrastructureRoles map[string]PgUser
NoDatabaseAccess bool
NoTeamsAPI bool
ConfigMapName NamespacedName
Namespace string
}
func (n NamespacedName) String() string { func (n NamespacedName) String() string {
return types.NamespacedName(n).String() return types.NamespacedName(n).String()
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment