@@ -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,16 @@ func (s *Service) GetOrCreateFloatingIP(openStackCluster *infrav1.OpenStackClust
53
56
return nil , err
54
57
}
55
58
59
+ if len (openStackCluster .Spec .Tags ) > 0 {
60
+ mc := metrics .NewMetricPrometheusContext ("floating_ip" , "update" )
61
+ _ , err = attributestags .ReplaceAll (s .client , "floatingips" , fp .ID , attributestags.ReplaceAllOpts {
62
+ Tags : openStackCluster .Spec .Tags ,
63
+ }).Extract ()
64
+ if mc .ObserveRequest (err ) != nil {
65
+ return nil , err
66
+ }
67
+ }
68
+
56
69
record .Eventf (openStackCluster , "SuccessfulCreateFloatingIP" , "Created floating IP %s with id %s" , fp .FloatingIP , fp .ID )
57
70
return fp , nil
58
71
}
0 commit comments