mirror of https://github.com/kubernetes/kops.git
Merge pull request #7670 from mitch000001/cherry-pick-7578-1.14
Cherry pick #7578 into release 1.14
This commit is contained in:
commit
24ae588fd9
|
@ -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",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -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
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue