move controller config to the spec package
This commit is contained in:
parent
606d000022
commit
58572bb43f
|
|
@ -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 (
|
||||||
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 (
|
||||||
"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 {
|
||||||
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 {
|
||||||
}
|
}
|
||||||
|
|
||||||
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 (
|
||||||
|
|
||||||
"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 {
|
||||||
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()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue