Merge pull request #7670 from mitch000001/cherry-pick-7578-1.14

Cherry pick #7578 into release 1.14
This commit is contained in:
Kubernetes Prow Robot 2019-09-25 02:57:59 -07:00 committed by GitHub
commit 24ae588fd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 2026 additions and 3 deletions

View File

@ -1,4 +1,4 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
@ -24,3 +24,17 @@ go_library(
"//vendor/k8s.io/klog:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["servergroup_test.go"],
embed = [":go_default_library"],
deps = [
"//pkg/apis/kops:go_default_library",
"//pkg/apis/nodeup:go_default_library",
"//pkg/model:go_default_library",
"//upup/pkg/fi:go_default_library",
"//upup/pkg/fi/cloudup/openstacktasks:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
],
)

View File

@ -90,19 +90,23 @@ func (b *ServerGroupModelBuilder) buildInstances(c *fi.ModelBuilderContext, sg *
securityGroupName := b.SecurityGroupName(ig.Spec.Role)
securityGroup := b.LinkToSecurityGroup(securityGroupName)
var az *string
var subnets []*openstacktasks.Subnet
if len(ig.Spec.Subnets) > 0 {
subnet := ig.Spec.Subnets[int(i)%len(ig.Spec.Subnets)]
// bastion subnet name is not actual zone name, it contains "utility-" prefix
if ig.Spec.Role == kops.InstanceGroupRoleBastion {
az = fi.String(strings.Replace(ig.Spec.Subnets[int(i)%len(ig.Spec.Subnets)], "utility-", "", 1))
az = fi.String(strings.Replace(subnet, "utility-", "", 1))
} else {
az = fi.String(ig.Spec.Subnets[int(i)%len(ig.Spec.Subnets)])
az = fi.String(subnet)
}
subnets = append(subnets, b.LinkToSubnet(s(fmt.Sprintf("%s.%s", subnet, b.ClusterName()))))
}
// Create instance port task
portTask := &openstacktasks.Port{
Name: fi.String(fmt.Sprintf("%s-%s", "port", *instanceName)),
Network: b.LinkToNetwork(),
SecurityGroups: append([]*openstacktasks.SecurityGroup{}, securityGroup),
Subnets: subnets,
Lifecycle: b.Lifecycle,
}
c.AddTask(portTask)

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,7 @@ type Port struct {
ID *string
Name *string
Network *Network
Subnets []*Subnet
SecurityGroups []*SecurityGroup
Lifecycle *fi.Lifecycle
}
@ -65,12 +66,20 @@ func NewPortTaskFromCloud(cloud openstack.OpenstackCloud, lifecycle *fi.Lifecycl
Lifecycle: lifecycle,
}
}
subnets := make([]*Subnet, len(port.FixedIPs))
for i, subn := range port.FixedIPs {
subnets[i] = &Subnet{
ID: fi.String(subn.SubnetID),
Lifecycle: lifecycle,
}
}
actual := &Port{
ID: fi.String(port.ID),
Name: fi.String(port.Name),
Network: &Network{ID: fi.String(port.NetworkID)},
SecurityGroups: sgs,
Subnets: subnets,
Lifecycle: lifecycle,
}
if find != nil {
@ -128,11 +137,18 @@ func (_ *Port) RenderOpenstack(t *openstack.OpenstackAPITarget, a, e, changes *P
for i, sg := range e.SecurityGroups {
sgs[i] = fi.StringValue(sg.ID)
}
fixedIPs := make([]ports.IP, len(e.Subnets))
for i, subn := range e.Subnets {
fixedIPs[i] = ports.IP{
SubnetID: fi.StringValue(subn.ID),
}
}
opt := ports.CreateOpts{
Name: fi.StringValue(e.Name),
NetworkID: fi.StringValue(e.Network.ID),
SecurityGroups: &sgs,
FixedIPs: fixedIPs,
}
v, err := t.Cloud.CreatePort(opt)