43 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Go
		
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"flag"
 | |
| 	"log"
 | |
| 	"os"
 | |
| 	"os/signal"
 | |
| 	"sync"
 | |
| 	"syscall"
 | |
| 
 | |
| 	"github.bus.zalan.do/acid/postgres-operator/operator"
 | |
| 	"github.com/spf13/pflag"
 | |
| )
 | |
| 
 | |
| var options operator.Options
 | |
| 
 | |
| func init() {
 | |
| 	pflag.StringVar(&options.KubeConfig, "kubeconfig", "", "Path to kubeconfig file with authorization and master location information.")
 | |
| }
 | |
| 
 | |
| func main() {
 | |
| 	// Set logging output to standard console out
 | |
| 	log.SetOutput(os.Stdout)
 | |
| 
 | |
| 	pflag.CommandLine.AddGoFlagSet(flag.CommandLine)
 | |
| 	pflag.Parse()
 | |
| 
 | |
| 	sigs := make(chan os.Signal, 1)
 | |
| 	stop := make(chan struct{})
 | |
| 	signal.Notify(sigs, os.Interrupt, syscall.SIGTERM) // Push signals into channel
 | |
| 
 | |
| 	wg := &sync.WaitGroup{} // Goroutines can add themselves to this to be waited on
 | |
| 
 | |
| 	spiloOperator := operator.New(options)
 | |
| 	spiloOperator.Run(stop, wg)
 | |
| 
 | |
| 	sig := <-sigs // Wait for signals (this hangs until a signal arrives)
 | |
| 	log.Printf("Shutting down... %+v", sig)
 | |
| 
 | |
| 	close(stop) // Tell goroutines to stop themselves
 | |
| 	wg.Wait()   // Wait for all to be stopped
 | |
| }
 |