mirror of https://github.com/kubernetes/kops.git
Merge pull request #9821 from olemarkus/openstack-newer-nova-3
Reconcile ports and floating ips
This commit is contained in:
commit
e5e8908cce
|
|
@ -51,8 +51,6 @@ func (b *ServerGroupModelBuilder) buildInstances(c *fi.ModelBuilderContext, sg *
|
|||
|
||||
sshKeyName := strings.Replace(sshKeyNameFull, ":", "_", -1)
|
||||
|
||||
clusterTag := "KubernetesCluster:" + strings.Replace(b.ClusterName(), ".", "-", -1)
|
||||
|
||||
igMeta := make(map[string]string)
|
||||
cloudTags, err := b.KopsModelContext.CloudTagsForInstanceGroup(ig)
|
||||
if err != nil {
|
||||
|
|
@ -149,7 +147,6 @@ func (b *ServerGroupModelBuilder) buildInstances(c *fi.ModelBuilderContext, sg *
|
|||
Image: fi.String(ig.Spec.Image),
|
||||
SSHKey: fi.String(sshKeyName),
|
||||
ServerGroup: sg,
|
||||
Tags: []string{clusterTag},
|
||||
Role: fi.String(string(ig.Spec.Role)),
|
||||
Port: portTask,
|
||||
UserData: startupScript,
|
||||
|
|
|
|||
|
|
@ -124,7 +124,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-master"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -171,7 +170,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -314,7 +312,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -361,7 +358,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -404,7 +400,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: bastionServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Bastion"),
|
||||
Port: bastionPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[2]),
|
||||
|
|
@ -585,7 +580,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -633,7 +627,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -681,7 +674,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -728,7 +720,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -775,7 +766,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -822,7 +812,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1023,7 +1012,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1066,7 +1054,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1109,7 +1096,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1152,7 +1138,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1199,7 +1184,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1246,7 +1230,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1488,7 +1471,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1532,7 +1514,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1576,7 +1557,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1619,7 +1599,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeAServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1662,7 +1641,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeBServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1705,7 +1683,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeCServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -1850,7 +1827,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1890,7 +1866,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1930,7 +1905,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -1977,7 +1951,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeAPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -2016,7 +1989,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeBPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -2055,7 +2027,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodeCPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -2184,7 +2155,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-master"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2227,7 +2197,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -2364,7 +2333,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: masterServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Master"),
|
||||
Port: masterPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2407,7 +2375,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[1]),
|
||||
|
|
@ -2450,7 +2417,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: bastionServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Bastion"),
|
||||
Port: bastionPort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[2]),
|
||||
|
|
@ -2548,7 +2514,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2646,7 +2611,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2742,7 +2706,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2835,7 +2798,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -2926,7 +2888,6 @@ func Test_ServerGroupModelBuilder(t *testing.T) {
|
|||
Image: s("image-node"),
|
||||
SSHKey: s("kubernetes.cluster-ba_d8_85_a0_5b_50_b0_01_e0_b2_b0_ae_5d_f6_7a_d1"),
|
||||
ServerGroup: nodeServerGroup,
|
||||
Tags: []string{"KubernetesCluster:cluster"},
|
||||
Role: s("Node"),
|
||||
Port: nodePort,
|
||||
UserData: mustUserdataForClusterInstance(cluster, instanceGroups[0]),
|
||||
|
|
@ -3178,9 +3139,6 @@ func compareInstances(t *testing.T, actualTask fi.Task, expected *openstacktasks
|
|||
compareStrings(t, "AvailabilityZone", actual.AvailabilityZone, expected.AvailabilityZone)
|
||||
comparePorts(t, actual.Port, expected.Port)
|
||||
compareServerGroups(t, actual.ServerGroup, expected.ServerGroup)
|
||||
if !reflect.DeepEqual(actual.Tags, expected.Tags) {
|
||||
t.Errorf("Tags differ:\n%v\n\tinstead of\n%v", actual.Tags, expected.Tags)
|
||||
}
|
||||
if !reflect.DeepEqual(actual.Metadata, expected.Metadata) {
|
||||
t.Errorf("Metadata differ:\n%v\n\tinstead of\n%v", actual.Metadata, expected.Metadata)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,7 +153,9 @@ func (e *FloatingIP) Find(c *fi.Context) (*FloatingIP, error) {
|
|||
e.ID = actual.ID
|
||||
return actual, nil
|
||||
}
|
||||
fips, err := cloud.ListL3FloatingIPs(l3floatingip.ListOpts{})
|
||||
fips, err := cloud.ListL3FloatingIPs(l3floatingip.ListOpts{
|
||||
Description: fi.StringValue(e.Name),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to list layer 3 floating ip's: %v", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import (
|
|||
"strconv"
|
||||
|
||||
l3floatingip "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips"
|
||||
"github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
|
||||
|
||||
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/bootfromvolume"
|
||||
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs"
|
||||
|
|
@ -41,7 +42,6 @@ type Instance struct {
|
|||
Image *string
|
||||
SSHKey *string
|
||||
ServerGroup *ServerGroup
|
||||
Tags []string
|
||||
Role *string
|
||||
UserData *fi.ResourceHolder
|
||||
Metadata map[string]string
|
||||
|
|
@ -115,8 +115,9 @@ func (e *Instance) Find(c *fi.Context) (*Instance, error) {
|
|||
if e == nil || e.Name == nil {
|
||||
return nil, nil
|
||||
}
|
||||
client := c.Cloud.(openstack.OpenstackCloud).ComputeClient()
|
||||
serverPage, err := servers.List(client, servers.ListOpts{
|
||||
cloud := c.Cloud.(openstack.OpenstackCloud)
|
||||
computeClient := cloud.ComputeClient()
|
||||
serverPage, err := servers.List(computeClient, servers.ListOpts{
|
||||
Name: fmt.Sprintf("^%s$", fi.StringValue(e.Name)),
|
||||
}).AllPages()
|
||||
if err != nil {
|
||||
|
|
@ -139,9 +140,63 @@ func (e *Instance) Find(c *fi.Context) (*Instance, error) {
|
|||
Name: fi.String(server.Name),
|
||||
SSHKey: fi.String(server.KeyName),
|
||||
Lifecycle: e.Lifecycle,
|
||||
Metadata: server.Metadata,
|
||||
Role: fi.String(server.Metadata["KopsRole"]),
|
||||
AvailabilityZone: e.AvailabilityZone,
|
||||
}
|
||||
|
||||
ports, err := cloud.ListPorts(ports.ListOpts{
|
||||
DeviceID: server.ID,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to fetch port for instance %v: %v", server.ID, err)
|
||||
}
|
||||
|
||||
if len(ports) == 1 {
|
||||
port := ports[0]
|
||||
porttask, err := newPortTaskFromCloud(cloud, e.Lifecycle, &port, nil)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to fetch port for instance %v: %v", server.ID, err)
|
||||
}
|
||||
actual.Port = porttask
|
||||
|
||||
} else if len(ports) > 1 {
|
||||
return nil, fmt.Errorf("found more than one port for instance %v", server.ID)
|
||||
}
|
||||
|
||||
if e.FloatingIP != nil && e.Port != nil {
|
||||
fips, err := cloud.ListL3FloatingIPs(l3floatingip.ListOpts{
|
||||
PortID: fi.StringValue(e.Port.ID),
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to fetch floating ips for instance %v: %v", server.ID, err)
|
||||
}
|
||||
|
||||
if len(fips) == 1 {
|
||||
fip := fips[0]
|
||||
fipTask := &FloatingIP{
|
||||
ID: fi.String(fip.ID),
|
||||
Name: fi.String(fip.Description),
|
||||
}
|
||||
|
||||
actual.FloatingIP = fipTask
|
||||
} else if len(fips) > 1 {
|
||||
return nil, fmt.Errorf("found more than one floating ip for instance %v", server.ID)
|
||||
}
|
||||
}
|
||||
|
||||
// Avoid flapping
|
||||
e.ID = actual.ID
|
||||
actual.ForAPIServer = e.ForAPIServer
|
||||
|
||||
// Immutable fields
|
||||
actual.Flavor = e.Flavor
|
||||
actual.Image = e.Image
|
||||
actual.UserData = e.UserData
|
||||
actual.Region = e.Region
|
||||
actual.SSHKey = e.SSHKey
|
||||
actual.ServerGroup = e.ServerGroup
|
||||
|
||||
return actual, nil
|
||||
}
|
||||
|
|
@ -170,14 +225,20 @@ func (_ *Instance) ShouldCreate(a, e, changes *Instance) (bool, error) {
|
|||
if a == nil {
|
||||
return true, nil
|
||||
}
|
||||
if changes.Port != nil {
|
||||
return true, nil
|
||||
}
|
||||
if changes.FloatingIP != nil {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func (_ *Instance) RenderOpenstack(t *openstack.OpenstackAPITarget, a, e, changes *Instance) error {
|
||||
cloud := t.Cloud.(openstack.OpenstackCloud)
|
||||
if a == nil {
|
||||
klog.V(2).Infof("Creating Instance with name: %q", fi.StringValue(e.Name))
|
||||
cloud := t.Cloud.(openstack.OpenstackCloud)
|
||||
|
||||
imageName := fi.StringValue(e.Image)
|
||||
image, err := cloud.GetImage(imageName)
|
||||
|
|
@ -240,15 +301,26 @@ func (_ *Instance) RenderOpenstack(t *openstack.OpenstackAPITarget, a, e, change
|
|||
|
||||
if e.FloatingIP != nil {
|
||||
err = associateFloatingIP(t, e)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
klog.V(2).Infof("Creating a new Openstack instance, id=%s", v.ID)
|
||||
|
||||
return nil
|
||||
}
|
||||
if changes.Port != nil {
|
||||
ports.Update(cloud.NetworkingClient(), fi.StringValue(changes.Port.ID), ports.UpdateOpts{
|
||||
DeviceID: e.ID,
|
||||
})
|
||||
}
|
||||
if changes.FloatingIP != nil {
|
||||
err := associateFloatingIP(t, e)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue