NewController creates a new controller
(controllerConfig *spec.ControllerConfig, controllerId string)
| 76 | |
| 77 | // NewController creates a new controller |
| 78 | func NewController(controllerConfig *spec.ControllerConfig, controllerId string) *Controller { |
| 79 | logger := logrus.New() |
| 80 | if controllerConfig.EnableJsonLogging { |
| 81 | logger.SetFormatter(&logrus.JSONFormatter{}) |
| 82 | } else { |
| 83 | if os.Getenv("LOG_NOQUOTE") != "" { |
| 84 | logger.SetFormatter(&logrus.TextFormatter{PadLevelText: true, DisableQuote: true}) |
| 85 | } |
| 86 | } |
| 87 | |
| 88 | var myComponentName = "postgres-operator" |
| 89 | if controllerId != "" { |
| 90 | myComponentName += "/" + controllerId |
| 91 | } |
| 92 | |
| 93 | eventBroadcaster := record.NewBroadcaster() |
| 94 | |
| 95 | // disabling the sending of events also to the logoutput |
| 96 | // the operator currently duplicates a lot of log entries with this setup |
| 97 | // eventBroadcaster.StartLogging(logger.Infof) |
| 98 | scheme := scheme.Scheme |
| 99 | acidv1.AddToScheme(scheme) |
| 100 | recorder := eventBroadcaster.NewRecorder(scheme, v1.EventSource{Component: myComponentName}) |
| 101 | |
| 102 | c := &Controller{ |
| 103 | config: *controllerConfig, |
| 104 | opConfig: &config.Config{}, |
| 105 | logger: logger.WithField("pkg", "controller"), |
| 106 | eventRecorder: recorder, |
| 107 | eventBroadcaster: eventBroadcaster, |
| 108 | controllerID: controllerId, |
| 109 | curWorkerCluster: sync.Map{}, |
| 110 | clusterWorkers: make(map[spec.NamespacedName]uint32), |
| 111 | clusters: make(map[spec.NamespacedName]*cluster.Cluster), |
| 112 | clusterLogs: make(map[spec.NamespacedName]ringlog.RingLogger), |
| 113 | clusterHistory: make(map[spec.NamespacedName]ringlog.RingLogger), |
| 114 | teamClusters: make(map[string][]spec.NamespacedName), |
| 115 | stopCh: make(chan struct{}), |
| 116 | podCh: make(chan cluster.PodEvent), |
| 117 | } |
| 118 | logger.Hooks.Add(c) |
| 119 | |
| 120 | return c |
| 121 | } |
| 122 | |
| 123 | func (c *Controller) initClients() { |
| 124 | var err error |
no outgoing calls