Skip to content

Commit

Permalink
Merge pull request #3818 from Fedosin/delete_servers
Browse files Browse the repository at this point in the history
OpenStack: Deleting servers using tag-based filtering
  • Loading branch information
openshift-merge-robot committed Jul 16, 2020
2 parents 63b670b + e7bf767 commit 9944c1a
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 31 deletions.
6 changes: 1 addition & 5 deletions data/data/openstack/bootstrap/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,7 @@ resource "openstack_compute_instance_v2" "bootstrap" {
port = openstack_networking_port_v2.bootstrap_port.id
}

metadata = {
Name = "${var.cluster_id}-bootstrap"
# "kubernetes.io/cluster/${var.cluster_id}" = "owned"
openshiftClusterID = var.cluster_id
}
tags = ["openshiftClusterID=${var.cluster_id}"]
}

resource "openstack_networking_floatingip_v2" "bootstrap_fip" {
Expand Down
7 changes: 1 addition & 6 deletions data/data/openstack/masters/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,5 @@ resource "openstack_compute_instance_v2" "master_conf" {
}
}

metadata = {
# FIXME(mandre) shouldn't it be "${var.cluster_id}-master-${count.index}" ?
Name = "${var.cluster_id}-master"
# "kubernetes.io/cluster/${var.cluster_id}" = "owned"
openshiftClusterID = var.cluster_id
}
tags = ["openshiftClusterID=${var.cluster_id}"]
}
4 changes: 0 additions & 4 deletions pkg/asset/machines/openstack/machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,6 @@ func generateProvider(clusterID string, platform *openstack.Platform, mpool *ope
Tags: []string{
fmt.Sprintf("openshiftClusterID=%s", clusterID),
},
ServerMetadata: map[string]string{
"Name": fmt.Sprintf("%s-%s", clusterID, role),
"openshiftClusterID": clusterID,
},
}
if mpool.RootVolume != nil {
spec.RootVolume = &openstackprovider.RootVolume{
Expand Down
20 changes: 4 additions & 16 deletions pkg/destroy/openstack/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,14 +200,11 @@ func deleteServers(opts *clientconfig.ClientOpts, filter Filter, logger logrus.F
logger.Error(err)
return false, nil
}
// Microversion "2.26" is the first that supports server tags
conn.Microversion = "2.26"

listOpts := servers.ListOpts{
// FIXME(shardy) when gophercloud supports tags we should
// filter by tag here
// https://github.com/gophercloud/gophercloud/pull/1115
// and Nova doesn't seem to support filter by Metadata, so for
// now we do client side filtering below based on the
// Metadata key (which matches the server properties).
TagsAny: strings.Join(filterTags(filter), ","),
}

allPages, err := servers.List(conn, listOpts).AllPages()
Expand All @@ -222,16 +219,7 @@ func deleteServers(opts *clientconfig.ClientOpts, filter Filter, logger logrus.F
return false, nil
}

serverObjects := []ObjectWithTags{}
for _, server := range allServers {
serverObjects = append(
serverObjects, ObjectWithTags{
ID: server.ID,
Tags: server.Metadata})
}

filteredServers := filterObjects(serverObjects, filter)
for _, server := range filteredServers {
logger.Debugf("Deleting Server %q", server.ID)
err = servers.Delete(conn, server.ID).ExtractErr()
if err != nil {
Expand All @@ -243,7 +231,7 @@ func deleteServers(opts *clientconfig.ClientOpts, filter Filter, logger logrus.F
logger.Debugf("Cannot find server %q. It's probably already been deleted.", server.ID)
}
}
return len(filteredServers) == 0, nil
return len(allServers) == 0, nil
}

func deleteServerGroups(opts *clientconfig.ClientOpts, filter Filter, logger logrus.FieldLogger) (bool, error) {
Expand Down

0 comments on commit 9944c1a

Please sign in to comment.