move controller config to the spec package

This commit is contained in:
Murat Kabilov
2017-08-15 11:41:46 +02:00
parent 606d000022
commit 58572bb43f
4 changed files with 21 additions and 18 deletions
+6 -16
View File
@@ -17,20 +17,9 @@ import (
"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
type Controller struct {
config Config
config spec.ControllerConfig
opConfig *config.Config
logger *logrus.Entry
@@ -45,22 +34,23 @@ type Controller struct {
podInformer cache.SharedIndexInformer
podCh chan spec.PodEvent
clusterEventQueues []*cache.FIFO
clusterEventQueues []*cache.FIFO // [workerID]Queue
lastClusterSyncTime int64
}
// NewController creates a new controller
func NewController(controllerConfig *Config) *Controller {
func NewController(controllerConfig *spec.ControllerConfig) *Controller {
logger := logrus.New()
return &Controller{
c := &Controller{
config: *controllerConfig,
opConfig: &config.Config{},
logger: logger.WithField("pkg", "controller"),
clusters: make(map[spec.NamespacedName]*cluster.Cluster),
stopChs: make(map[spec.NamespacedName]chan struct{}),
podCh: make(chan spec.PodEvent),
}
return c
}
func (c *Controller) initClients() {
+1 -1
View File
@@ -48,7 +48,7 @@ func newMockKubernetesClient() k8sutil.KubernetesClient {
}
func newMockController() *Controller {
controller := NewController(&Config{})
controller := NewController(&spec.ControllerConfig{})
controller.opConfig.ClusterNameLabel = "cluster-name"
controller.opConfig.InfrastructureRolesSecretName =
spec.NamespacedName{Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesSecretName}
+12
View File
@@ -7,6 +7,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"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
@@ -72,6 +73,17 @@ type UserSyncer interface {
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 {
return types.NamespacedName(n).String()
}