Move controller config to the spec package
This commit is contained in:
		
						commit
						9c7492f38c
					
				|  | @ -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