Move hostname detection logic to allow replacement

pull/6/head
Daniel Smith 2014-06-11 18:57:15 -07:00
parent 187f7d2534
commit 7c17db672e
3 changed files with 13 additions and 10 deletions

View File

@ -57,7 +57,13 @@ func main() {
log.Fatal("Couldn't connnect to docker.") log.Fatal("Couldn't connnect to docker.")
} }
hostname, err := exec.Command("hostname", "-f").Output()
if err != nil {
log.Fatalf("Couldn't determine hostname: %v", err)
}
my_kubelet := kubelet.Kubelet{ my_kubelet := kubelet.Kubelet{
Hostname: hostname,
DockerClient: dockerClient, DockerClient: dockerClient,
FileCheckFrequency: *fileCheckFrequency, FileCheckFrequency: *fileCheckFrequency,
SyncFrequency: *syncFrequency, SyncFrequency: *syncFrequency,

View File

@ -49,14 +49,14 @@ var (
// master flags // master flags
var ( var (
master_port = flag.Uint("master_port", 8080, "The port to listen on. Default 8080.") master_port = flag.Uint("master_port", 8080, "The port for the master to listen on. Default 8080.")
master_address = flag.String("master_address", "127.0.0.1", "The address on the local server to listen to. Default 127.0.0.1") master_address = flag.String("master_address", "127.0.0.1", "The address for the master to listen to. Default 127.0.0.1")
apiPrefix = flag.String("api_prefix", "/api/v1beta1", "The prefix for API requests on the server. Default '/api/v1beta1'") apiPrefix = flag.String("api_prefix", "/api/v1beta1", "The prefix for API requests on the server. Default '/api/v1beta1'")
) )
// flags that affect both // flags that affect both
var ( var (
etcd_server = flag.String("etcd_servers", "http://localhost:4001", "Url of local etcd server") etcd_server = flag.String("etcd_server", "http://localhost:4001", "Url of local etcd server")
) )
// Starts kubelet services. Never returns. // Starts kubelet services. Never returns.
@ -68,6 +68,7 @@ func fake_kubelet() {
} }
my_kubelet := kubelet.Kubelet{ my_kubelet := kubelet.Kubelet{
Hostname: *kubelet_address,
DockerClient: dockerClient, DockerClient: dockerClient,
FileCheckFrequency: *fileCheckFrequency, FileCheckFrequency: *fileCheckFrequency,
SyncFrequency: *syncFrequency, SyncFrequency: *syncFrequency,

View File

@ -60,6 +60,7 @@ type DockerInterface interface {
// The main kubelet implementation // The main kubelet implementation
type Kubelet struct { type Kubelet struct {
Hostname string
Client registry.EtcdClient Client registry.EtcdClient
DockerClient DockerInterface DockerClient DockerInterface
FileCheckFrequency time.Duration FileCheckFrequency time.Duration
@ -427,15 +428,10 @@ func (kl *Kubelet) getKubeletStateFromEtcd(key string, changeChannel chan<- []ap
// The channel to send new configurations across // The channel to send new configurations across
// This function loops forever and is intended to be run in a go routine. // This function loops forever and is intended to be run in a go routine.
func (kl *Kubelet) SyncAndSetupEtcdWatch(changeChannel chan<- []api.ContainerManifest) { func (kl *Kubelet) SyncAndSetupEtcdWatch(changeChannel chan<- []api.ContainerManifest) {
hostname, err := exec.Command("hostname", "-f").Output() key := "/registry/hosts/" + strings.TrimSpace(string(kl.Hostname))
if err != nil {
log.Printf("Couldn't determine hostname : %v", err)
return
}
key := "/registry/hosts/" + strings.TrimSpace(string(hostname))
// First fetch the initial configuration (watch only gives changes...) // First fetch the initial configuration (watch only gives changes...)
for { for {
err = kl.getKubeletStateFromEtcd(key, changeChannel) err := kl.getKubeletStateFromEtcd(key, changeChannel)
if err == nil { if err == nil {
// We got a successful response, etcd is up, set up the watch. // We got a successful response, etcd is up, set up the watch.
break break