Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No DNS in vagrant cross minions, need explicit IP as host #1279

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion cluster/vagrant/config-default.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ INSTANCE_PREFIX=kubernetes
MASTER_NAME="${INSTANCE_PREFIX}-master"
MASTER_TAG="${INSTANCE_PREFIX}-master"
MINION_TAG="${INSTANCE_PREFIX}-minion"
MINION_NAMES=($(eval echo ${INSTANCE_PREFIX}-minion-{1..${NUM_MINIONS}}))
# Unable to use hostnames yet because DNS is not in cluster, so we revert external look-up name to use the minion IP
#MINION_NAMES=($(eval echo ${INSTANCE_PREFIX}-minion-{1..${NUM_MINIONS}}))

# IP LOCATIONS FOR INTERACTING WITH THE MINIONS
MINION_IP_BASE="10.245.2."
for (( i=0; i <${NUM_MINIONS}; i++)) do
KUBE_MINION_IP_ADDRESSES[$i]="${MINION_IP_BASE}$[$i+2]"
MINION_IP[$i]="${MINION_IP_BASE}$[$i+2]"
MINION_NAMES[$i]="${MINION_IP[$i]}"
VAGRANT_MINION_NAMES[$i]="minion-$[$i+1]"
done
1 change: 1 addition & 0 deletions cluster/vagrant/provision-minion.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ grains:
roles:
- kubernetes-pool
cbr-cidr: $MINION_IP_RANGE
minion_ip: $MINION_IP
EOF

# we will run provision to update code each time we test, so we do not want to do salt install each time
Expand Down
7 changes: 4 additions & 3 deletions pkg/cloudprovider/vagrant/vagrant.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ func (v *VagrantCloud) IPAddress(instance string) (net.IP, error) {
}
filteredMinions := v.saltMinionsByRole(minions, "kubernetes-pool")
for _, minion := range filteredMinions {
fmt.Println("Minion: ", minion.Host, " , ", instance, " IP: ", minion.IP)
if minion.Host == instance {
// Due to vagrant not running with a dedicated DNS setup, we return the IP address of a minion as its hostname at this time
if minion.IP == instance {
return net.ParseIP(minion.IP), nil
}
}
Expand Down Expand Up @@ -203,7 +203,8 @@ func (v *VagrantCloud) List(filter string) ([]string, error) {
filteredMinions := v.saltMinionsByRole(minions, "kubernetes-pool")
var instances []string
for _, instance := range filteredMinions {
instances = append(instances, instance.Host)
// With no dedicated DNS setup in cluster, IP address is used as hostname
instances = append(instances, instance.IP)
}

return instances, nil
Expand Down
8 changes: 6 additions & 2 deletions pkg/cloudprovider/vagrant/vagrant_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@ func TestVagrantCloud(t *testing.T) {
t.Fatalf("Incorrect number of instances returned")
}

if instances[0] != "kubernetes-minion-1" {
// no DNS in vagrant cluster, so we return IP as hostname
expectedInstanceHost := "10.245.2.2"
expectedInstanceIP := "10.245.2.2"

if instances[0] != expectedInstanceHost {
t.Fatalf("Invalid instance returned")
}

Expand All @@ -82,7 +86,7 @@ func TestVagrantCloud(t *testing.T) {
t.Fatalf("Unexpected error, should have returned a valid IP address: %s", err)
}

if ip.String() != "10.245.2.2" {
if ip.String() != expectedInstanceIP {
t.Fatalf("Invalid IP address returned")
}
}
5 changes: 0 additions & 5 deletions pkg/registry/pod/rest.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package pod

import (
"fmt"
"strings"
"sync"
"time"

Expand Down Expand Up @@ -195,10 +194,6 @@ func getInstanceIP(cloud cloudprovider.Interface, host string) string {
if instances == nil || !ok {
return ""
}
ix := strings.Index(host, ".")
if ix != -1 {
host = host[:ix]
}
addr, err := instances.IPAddress(host)
if err != nil {
glog.Errorf("Error getting instance IP: %#v", err)
Expand Down