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.")
}
hostname, err := exec.Command("hostname", "-f").Output()
if err != nil {
log.Fatalf("Couldn't determine hostname: %v", err)
}
my_kubelet := kubelet.Kubelet{
Hostname: hostname,
DockerClient: dockerClient,
FileCheckFrequency: *fileCheckFrequency,
SyncFrequency: *syncFrequency,

View File

@ -49,14 +49,14 @@ var (
// master flags
var (
master_port = flag.Uint("master_port", 8080, "The port 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_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 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'")
)
// flags that affect both
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.
@ -68,6 +68,7 @@ func fake_kubelet() {
}
my_kubelet := kubelet.Kubelet{
Hostname: *kubelet_address,
DockerClient: dockerClient,
FileCheckFrequency: *fileCheckFrequency,
SyncFrequency: *syncFrequency,

View File

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