move controller config to the spec package

This commit is contained in:
Murat Kabilov 2017-08-15 10:56:14 +02:00
parent 606d000022
commit 58572bb43f
4 changed files with 21 additions and 18 deletions

View File

@ -9,6 +9,7 @@ import (
"syscall"
"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"
)
@ -16,7 +17,7 @@ var (
kubeConfigFile string
outOfCluster bool
version string
config controller.Config
config spec.ControllerConfig
)
func init() {

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() {

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}

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()
}