func main() { port := os.Getenv("PORT") if port == "" { port = "3000" } addr := ":" + port db, err := postgres.Open("", "") if err != nil { log.Fatal(err) } if err := migrateDB(db.DB); err != nil { log.Fatal(err) } cc, err := cluster.NewClient() if err != nil { log.Fatal(err) } sc, err := strowgerc.New() if err != nil { log.Fatal(err) } if err := discoverd.Register("flynn-controller", addr); err != nil { log.Fatal(err) } handler, _ := appHandler(handlerConfig{db: db, cc: cc, sc: sc, dc: discoverd.DefaultClient, key: os.Getenv("AUTH_KEY")}) log.Fatal(http.ListenAndServe(addr, handler)) }
func (c *context) HandleDomainMigration(job *que.Job) (err error) { log := c.logger.New("fn", "HandleDomainMigration") log.Info("handling domain migration", "job_id", job.ID, "error_count", job.ErrorCount) var dm *ct.DomainMigration if err := json.Unmarshal(job.Args, &dm); err != nil { log.Error("error unmarshaling job", "err", err) return err } log = log.New("domain_migration", dm.ID) m := &migration{ db: c.db, client: c.client, rc: routerc.New(), logger: log, dm: dm, activeRouteUpdates: make(chan struct{}, maxActiveRouteUpdates), } if err := m.db.QueryRow("SELECT old_domain, domain, old_tls_cert, tls_cert, created_at, finished_at FROM domain_migrations WHERE migration_id = $1", dm.ID).Scan(&dm.OldDomain, &dm.Domain, &dm.OldTLSCert, &dm.TLSCert, &dm.CreatedAt, &dm.FinishedAt); err != nil { log.Error("error fetching postgres record", "err", err) m.createEvent(err) return err } if dm.FinishedAt != nil { // Already done return nil } return m.Run() }
func main() { certPath := flag.String("cert", "", "path to DER encoded certificate for SSL, - for stdin") keyPath := flag.String("key", "", "path to DER encoded private key for SSL, - for stdin") flag.Parse() if len(flag.Args()) != 2 { fmt.Fprintf(os.Stderr, "Usage: %s [flags] domain service-name\n", os.Args[0]) flag.PrintDefaults() os.Exit(64) } domain, serviceName := flag.Arg(0), flag.Arg(1) var stdin []byte var err error if *certPath == "-" || *keyPath == "-" { stdin, err = ioutil.ReadAll(os.Stdin) if err != nil { log.Fatal("Failed to read from stdin: ", err) } } tlsCert, err := readCert(*certPath, stdin) if err != nil { return } tlsKey, err := readKey(*keyPath, stdin) if err != nil { return } client, err := client.New() if err != nil { log.Fatal(err) } conf := &strowger.HTTPRoute{ Service: serviceName, Domain: domain, TLSCert: string(tlsCert), TLSKey: string(tlsKey), } if err := client.CreateRoute(conf.ToRoute()); err != nil { log.Fatal(err) } }
func main() { port := os.Getenv("PORT") if port == "" { port = "3000" } addr := ":" + port if seed := os.Getenv("NAME_SEED"); seed != "" { s, err := hex.DecodeString(seed) if err != nil { log.Fatalln("error decoding NAME_SEED:", err) } name.SetSeed(s) } db, err := postgres.Open("", "") if err != nil { log.Fatal(err) } if err := migrateDB(db.DB); err != nil { log.Fatal(err) } cc, err := cluster.NewClient() if err != nil { log.Fatal(err) } sc, err := routerc.New() if err != nil { log.Fatal(err) } if err := discoverd.Register("flynn-controller", addr); err != nil { log.Fatal(err) } shutdown.BeforeExit(func() { discoverd.Unregister("flynn-controller", addr) }) handler, _ := appHandler(handlerConfig{db: db, cc: cc, sc: sc, dc: discoverd.DefaultClient, key: os.Getenv("AUTH_KEY")}) log.Fatal(http.ListenAndServe(addr, handler)) }
func main() { defer shutdown.Exit() port := os.Getenv("PORT") if port == "" { port = "3000" } addr := ":" + port if seed := os.Getenv("NAME_SEED"); seed != "" { s, err := hex.DecodeString(seed) if err != nil { log.Fatalln("error decoding NAME_SEED:", err) } name.SetSeed(s) } db := postgres.Wait("", "") if err := migrateDB(db.DB); err != nil { shutdown.Fatal(err) } pgxcfg, err := pgx.ParseURI(fmt.Sprintf("http://%s:%s@%s/%s", os.Getenv("PGUSER"), os.Getenv("PGPASSWORD"), db.Addr(), os.Getenv("PGDATABASE"))) if err != nil { log.Fatal(err) } pgxcfg.Dial = dialer.Retry.Dial pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{ ConnConfig: pgxcfg, AfterConnect: que.PrepareStatements, }) if err != nil { log.Fatal(err) } shutdown.BeforeExit(func() { pgxpool.Close() }) lc, err := logaggc.New("") if err != nil { shutdown.Fatal(err) } rc := routerc.New() hb, err := discoverd.DefaultClient.AddServiceAndRegisterInstance("flynn-controller", &discoverd.Instance{ Addr: addr, Proto: "http", Meta: map[string]string{ "AUTH_KEY": os.Getenv("AUTH_KEY"), }, }) if err != nil { shutdown.Fatal(err) } shutdown.BeforeExit(func() { hb.Close() }) handler := appHandler(handlerConfig{ db: db, cc: clusterClientWrapper{cluster.NewClient()}, lc: lc, rc: rc, pgxpool: pgxpool, keys: strings.Split(os.Getenv("AUTH_KEY"), ","), }) shutdown.Fatal(http.ListenAndServe(addr, handler)) }