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