@@ -19,15 +19,17 @@ package networking
19
19
import (
20
20
"time"
21
21
22
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/attributestags"
22
23
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips"
23
24
"k8s.io/apimachinery/pkg/util/wait"
24
25
25
26
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha4"
26
27
"sigs.k8s.io/cluster-api-provider-openstack/pkg/metrics"
27
28
"sigs.k8s.io/cluster-api-provider-openstack/pkg/record"
29
+ "sigs.k8s.io/cluster-api-provider-openstack/pkg/utils/names"
28
30
)
29
31
30
- func (s * Service ) GetOrCreateFloatingIP (openStackCluster * infrav1.OpenStackCluster , ip string ) (* floatingips.FloatingIP , error ) {
32
+ func (s * Service ) GetOrCreateFloatingIP (openStackCluster * infrav1.OpenStackCluster , clusterName , ip string ) (* floatingips.FloatingIP , error ) {
31
33
var fp * floatingips.FloatingIP
32
34
var err error
33
35
var fpCreateOpts floatingips.CreateOpts
@@ -45,6 +47,7 @@ func (s *Service) GetOrCreateFloatingIP(openStackCluster *infrav1.OpenStackClust
45
47
}
46
48
47
49
fpCreateOpts .FloatingNetworkID = openStackCluster .Status .ExternalNetwork .ID
50
+ fpCreateOpts .Description = names .GetDescription (clusterName )
48
51
49
52
mc := metrics .NewMetricPrometheusContext ("floating_ip" , "create" )
50
53
fp , err = floatingips .Create (s .client , fpCreateOpts ).Extract ()
@@ -53,6 +56,13 @@ func (s *Service) GetOrCreateFloatingIP(openStackCluster *infrav1.OpenStackClust
53
56
return nil , err
54
57
}
55
58
59
+ tagOpts := attributestags.ReplaceAllOpts {Tags : []string {ip }}
60
+ _ , err = attributestags .ReplaceAll (s .client , "floatingips" , fp .ID , tagOpts ).Extract ()
61
+ if err != nil {
62
+ record .Warnf (openStackCluster , "FailedCreateFloatingIP" , "Failed to add tag to floating IP %s: %v" , ip , err )
63
+ return nil , err
64
+ }
65
+
56
66
record .Eventf (openStackCluster , "SuccessfulCreateFloatingIP" , "Created floating IP %s with id %s" , fp .FloatingIP , fp .ID )
57
67
return fp , nil
58
68
}
0 commit comments