Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion data/data/openstack/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ module "masters" {
)
root_volume_size = var.openstack_master_root_volume_size
root_volume_type = var.openstack_master_root_volume_type
server_group_id = var.openstack_master_server_group_id
server_group_name = var.openstack_master_server_group_name
additional_network_ids = var.openstack_additional_network_ids
}

Expand Down
7 changes: 6 additions & 1 deletion data/data/openstack/masters/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ resource "openstack_blockstorage_volume_v3" "master_volume" {
image_id = var.base_image_id
}

resource "openstack_compute_servergroup_v2" "master_group" {
name = var.server_group_name
policies = ["soft-anti-affinity"]
}

resource "openstack_compute_instance_v2" "master_conf" {
name = "${var.cluster_id}-master-${count.index}"
count = var.instance_count
Expand Down Expand Up @@ -64,7 +69,7 @@ resource "openstack_compute_instance_v2" "master_conf" {
}

scheduler_hints {
group = var.server_group_id
group = openstack_compute_servergroup_v2.master_group.id
}

dynamic network {
Expand Down
4 changes: 2 additions & 2 deletions data/data/openstack/masters/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ variable "root_volume_type" {
description = "The type of volume for the root block device."
}

variable "server_group_id" {
variable "server_group_name" {
type = string
description = "ID of the server group to assign the servers to."
description = "Name of the server group for the master nodes."
}

variable "additional_network_ids" {
Expand Down
4 changes: 2 additions & 2 deletions data/data/openstack/variables-openstack.tf
Original file line number Diff line number Diff line change
Expand Up @@ -336,9 +336,9 @@ EOF

}

variable "openstack_master_server_group_id" {
variable "openstack_master_server_group_name" {
type = string
description = "ID of the server group to assign the master servers to."
description = "Name of the server group for the master nodes."
}

variable "openstack_machines_subnet_id" {
Expand Down
3 changes: 1 addition & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ require (
golang.org/x/lint v0.0.0-20200302205851-738671d3881b
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6
golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab
golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
google.golang.org/api v0.14.0
gopkg.in/AlecAivazis/survey.v1 v1.8.9-0.20200217094205-6773bdf39b7f
Expand Down Expand Up @@ -166,6 +165,6 @@ replace (
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.17.1 // Replaced by MCO/CRI-O
sigs.k8s.io/cluster-api-provider-aws => github.com/openshift/cluster-api-provider-aws v0.2.1-0.20200506073438-9d49428ff837 // Pin OpenShift fork
sigs.k8s.io/cluster-api-provider-azure => github.com/openshift/cluster-api-provider-azure v0.1.0-alpha.3.0.20200120114645-8a9592f1f87b // Pin OpenShift fork
sigs.k8s.io/cluster-api-provider-openstack => github.com/openshift/cluster-api-provider-openstack v0.0.0-20200323110431-3311de91e078 // Pin OpenShift fork
sigs.k8s.io/cluster-api-provider-openstack => github.com/openshift/cluster-api-provider-openstack v0.0.0-20200526112135-319a35b2e38e // Pin OpenShift fork
sigs.k8s.io/controller-tools => github.com/abhinavdahiya/controller-tools v0.3.1-0.20200430222905-6fdf2d5fc069 // Using fork for sigs.k8s.io/controller-tools#427
)
7 changes: 5 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1177,11 +1177,13 @@ github.com/gophercloud/gophercloud v0.0.0-20190212181753-892256c46858/go.mod h1:
github.com/gophercloud/gophercloud v0.0.0-20190509032623-7892efa714f1/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
github.com/gophercloud/gophercloud v0.2.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8=
github.com/gophercloud/gophercloud v0.6.1-0.20191025185032-6ad562af8c1f/go.mod h1:GICNByuaEBibcjmjvI7QvYJSZEbGkcYwAR7EZK2WMqM=
github.com/gophercloud/gophercloud v0.7.1-0.20191210042042-7aa2e52d21f9/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
github.com/gophercloud/gophercloud v0.7.1-0.20191211202411-f940f50ff1f7 h1:iYD//82P8YSpKrCUaYhLMoxnIXmT5qvNNKTy5iGgc30=
github.com/gophercloud/gophercloud v0.7.1-0.20191211202411-f940f50ff1f7/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss=
github.com/gophercloud/gophercloud v0.8.0 h1:1ylFFLRx7otpfRPSuOm77q8HLSlSOwYCGDeXmXJhX7A=
github.com/gophercloud/gophercloud v0.8.0/go.mod h1:Kc/QKr9thLKruO/dG0szY8kRIYS+iENz0ziI0hJf76A=
github.com/gophercloud/utils v0.0.0-20190124231947-9c3b9f2457ef/go.mod h1:wjDF8z83zTeg5eMLml5EBSlAhbF7G8DobyI1YsMuyzw=
github.com/gophercloud/utils v0.0.0-20190313033024-0bcc8e728cb5/go.mod h1:SZ9FTKibIotDtCrxAU/evccoyu1yhKST6hgBvwTB5Eg=
github.com/gophercloud/utils v0.0.0-20191129022341-463e26ffa30d/go.mod h1:SZ9FTKibIotDtCrxAU/evccoyu1yhKST6hgBvwTB5Eg=
github.com/gophercloud/utils v0.0.0-20191212191830-4533a07bd492 h1:NAwq2GgRiqbNLw1cA7KUdt7lDR/NzJtk4EXGxO3gqas=
Expand Down Expand Up @@ -1795,8 +1797,8 @@ github.com/openshift/cluster-api-provider-gcp v0.0.1-0.20200120152131-1b09fd9e71
github.com/openshift/cluster-api-provider-gcp v0.0.1-0.20200120152131-1b09fd9e7156/go.mod h1:KCyjaBfEkifs9bqV1HEXDJUyQylgeLSqiqt2QnMn7is=
github.com/openshift/cluster-api-provider-libvirt v0.2.1-0.20191219173431-2336783d4603 h1:MC6BSZYxFPoqqKj9PdlGjHGVKcMsvn6Kv1NiVzQErZ8=
github.com/openshift/cluster-api-provider-libvirt v0.2.1-0.20191219173431-2336783d4603/go.mod h1:7pQ9Bzha+ug/5zd+0ufbDEcnn2OnNlPwRwYrzhXk4NM=
github.com/openshift/cluster-api-provider-openstack v0.0.0-20200323110431-3311de91e078 h1:Irj9ROcWhbeH6t2DEUDIpdIJgSLBaXww6AP/FMCmGmw=
github.com/openshift/cluster-api-provider-openstack v0.0.0-20200323110431-3311de91e078/go.mod h1:ntMRKZlv++TExGO4g2jgsVIaHKJt8kKe72BAvMPV5vA=
github.com/openshift/cluster-api-provider-openstack v0.0.0-20200526112135-319a35b2e38e h1:qDiAnW8lxrOqt3iiC1Ph1W+2E1s05OGO4NlIs4YIcOc=
github.com/openshift/cluster-api-provider-openstack v0.0.0-20200526112135-319a35b2e38e/go.mod h1:1DDDZ7uXsauiUvCDUxq6XmsToaTh9WipPoW1qASkL9c=
github.com/openshift/cluster-api-provider-ovirt v0.1.1-0.20200504092944-27473ea1ae43 h1:JO7t5tJcLiE0gk7VrdzKrJAcOv73GirpUxH/OvrOVms=
github.com/openshift/cluster-api-provider-ovirt v0.1.1-0.20200504092944-27473ea1ae43/go.mod h1:Vl/bvZulLw6PdUADIFWGfoTWH1O4L1B80eN7BtLYEuo=
github.com/openshift/cluster-autoscaler-operator v0.0.0-20190521201101-62768a6ba480/go.mod h1:/XmV44Fh28Vo3Ye93qFrxAbcFJ/Uy+7LPD+jGjmfJYc=
Expand Down Expand Up @@ -2498,6 +2500,7 @@ golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20191002091554-b397fe3ad8ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191029155521-f43be2a4598c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
Expand Down
53 changes: 1 addition & 52 deletions pkg/asset/machines/openstack/machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ package openstack
import (
"fmt"

"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups"
"github.com/gophercloud/utils/openstack/clientconfig"
machineapi "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand Down Expand Up @@ -44,12 +42,7 @@ func Machines(clusterID string, config *types.InstallConfig, pool *types.Machine
provider := generateProvider(clusterID, platform, pool.Platform.OpenStack, osImage, az, role, userDataSecret, trunk)

if role == "master" {
sg, err := getOrCreateServerGroup(platform.Cloud, clusterID+"-"+role, "soft-anti-affinity")
if err != nil {
return nil, err
}

provider.ServerGroupID = sg.ID
provider.ServerGroupName = clusterID + "-master"
}

total := int64(1)
Expand Down Expand Up @@ -164,50 +157,6 @@ func trunkSupportBoolean(trunkSupport string) (result bool) {
return
}

// getOrCreateServerGroup gets a Nova server group with the given name and
// policy or creates a new one if it doesn't exist.
//
// https://docs.openstack.org/api-ref/compute/?expanded=create-server-group-detail#server-groups-os-server-groups
func getOrCreateServerGroup(cloud, serverGroupName, policy string) (*servergroups.ServerGroup, error) {
conn, err := clientconfig.NewServiceClient(
"compute",
&clientconfig.ClientOpts{
Cloud: cloud,
},
)
if err != nil {
return nil, err
}

// Microversion "2.15" is the first that supports "soft"-anti-affinity.
// Note that microversions starting from "2.64" use a new field
// accepting policies as a string instead of an array.
conn.Microversion = "2.15"

allPages, err := servergroups.List(conn).AllPages()
if err != nil {
return nil, err
}

allServerGroups, err := servergroups.ExtractServerGroups(allPages)
if err != nil {
return nil, err
}

for _, serverGroup := range allServerGroups {
// Reuse the server group if it already exists and is empty
if serverGroup.Name == serverGroupName && len(serverGroup.Members) == 0 {
return &serverGroup, nil
}
}

// Create a new group otherwise
return servergroups.Create(conn, &servergroups.CreateOpts{
Name: serverGroupName,
Policies: []string{policy},
}).Extract()
}

// ConfigMasters sets the PublicIP flag and assigns a set of load balancers to the given machines
func ConfigMasters(machines []machineapi.Machine, clusterID string) {
/*for _, machine := range machines {
Expand Down
8 changes: 6 additions & 2 deletions pkg/tfvars/openstack/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ type config struct {
RootVolumeType string `json:"openstack_master_root_volume_type,omitempty"`
BootstrapShim string `json:"openstack_bootstrap_shim_ignition,omitempty"`
ExternalDNS []string `json:"openstack_external_dns,omitempty"`
MasterServerGroupID string `json:"openstack_master_server_group_id,omitempty"`
MasterServerGroupName string `json:"openstack_master_server_group_name,omitempty"`
AdditionalNetworkIDs []string `json:"openstack_additional_network_ids,omitempty"`
AdditionalSecurityGroupIDs []string `json:"openstack_master_extra_sg_ids,omitempty"`
MachinesSubnet string `json:"openstack_machines_subnet_id,omitempty"`
Expand Down Expand Up @@ -132,7 +132,11 @@ func TFVars(masterConfig *v1alpha1.OpenstackProviderSpec, cloud string, external
cfg.RootVolumeType = masterConfig.RootVolume.VolumeType
}

cfg.MasterServerGroupID = masterConfig.ServerGroupID
cfg.MasterServerGroupName = masterConfig.ServerGroupName

if masterConfig.ServerGroupID != "" {
return nil, errors.Errorf("ServerGroupID is not implemented in the Installer. Please use ServerGroupName for automatic creation of the Control Plane server group.")
}

cfg.AdditionalNetworkIDs = []string{}
if mpool.AdditionalNetworkIDs != nil {
Expand Down

This file was deleted.

Loading