11package main
22
33import (
4+ "log"
45 "os"
56 "runtime"
67
@@ -9,8 +10,11 @@ import (
910 "github.com/deis/builder/pkg"
1011 "github.com/deis/builder/pkg/conf"
1112 "github.com/deis/builder/pkg/gitreceive"
13+ "github.com/deis/builder/pkg/gitreceive/storage"
14+ "github.com/deis/builder/pkg/healthsrv"
1215 "github.com/deis/builder/pkg/sshd"
1316 pkglog "github.com/deis/pkg/log"
17+ kcl "k8s.io/kubernetes/pkg/client/unversioned"
1418)
1519
1620const (
@@ -26,8 +30,8 @@ func main() {
2630 if os .Getenv ("DEBUG" ) == "true" {
2731 pkglog .DefaultLogger .SetDebug (true )
2832 cookoolog .Level = cookoolog .LogDebug
33+ log .Printf ("Running in debug mode" )
2934 }
30- pkglog .Debug ("Running in debug mode" )
3135
3236 app := cli .NewApp ()
3337
@@ -42,8 +46,40 @@ func main() {
4246 pkglog .Err ("getting config for %s [%s]" , serverConfAppName , err )
4347 os .Exit (1 )
4448 }
45- pkglog .Info ("starting SSH server on %s:%d" , cnf .SSHHostIP , cnf .SSHHostPort )
46- os .Exit (pkg .Run (cnf .SSHHostIP , cnf .SSHHostPort , "boot" ))
49+ circ := sshd .NewCircuit ()
50+
51+ s3Client , err := storage .GetClient (cnf .HealthSrvTestStorageRegion )
52+ if err != nil {
53+ log .Printf ("Error getting s3 client (%s)" , err )
54+ os .Exit (1 )
55+ }
56+ kubeClient , err := kcl .NewInCluster ()
57+ if err != nil {
58+ log .Printf ("Error getting kubernetes client [%s]" , err )
59+ os .Exit (1 )
60+ }
61+ log .Printf ("Starting health check server on port %d" , cnf .HealthSrvPort )
62+ healthSrvCh := make (chan error )
63+ go func () {
64+ if err := healthsrv .Start (cnf .HealthSrvPort , kubeClient .Namespaces (), s3Client , circ ); err != nil {
65+ healthSrvCh <- err
66+ }
67+ }()
68+
69+ log .Printf ("Starting SSH server on %s:%d" , cnf .SSHHostIP , cnf .SSHHostPort )
70+ sshCh := make (chan int )
71+ go func () {
72+ sshCh <- pkg .RunBuilder (cnf .SSHHostIP , cnf .SSHHostPort , circ )
73+ }()
74+
75+ select {
76+ case err := <- healthSrvCh :
77+ log .Printf ("Error running health server (%s)" , err )
78+ os .Exit (1 )
79+ case i := <- sshCh :
80+ log .Printf ("Unexpected SSH server stop with code %d" , i )
81+ os .Exit (i )
82+ }
4783 },
4884 },
4985 {
@@ -53,13 +89,13 @@ func main() {
5389 Action : func (c * cli.Context ) {
5490 cnf := new (gitreceive.Config )
5591 if err := conf .EnvConfig (gitReceiveConfAppName , cnf ); err != nil {
56- pkglog . Err ("Error getting config for %s [%s]" , gitReceiveConfAppName , err )
92+ log . Printf ("Error getting config for %s [%s]" , gitReceiveConfAppName , err )
5793 os .Exit (1 )
5894 }
5995 cnf .CheckDurations ()
6096
6197 if err := gitreceive .Run (cnf ); err != nil {
62- pkglog . Err ( " running git receive hook [%s]" , err )
98+ log . Printf ( "Error running git receive hook [%s]" , err )
6399 os .Exit (1 )
64100 }
65101 },
0 commit comments