Skip to content

Commit 8f7b92f

Browse files
committed
Add tags to status
This commit adds tags to network, subnet, and router status.
1 parent 67b49c0 commit 8f7b92f

File tree

6 files changed

+86
-26
lines changed

6 files changed

+86
-26
lines changed

api/v1alpha3/types.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ type Network struct {
149149
Name string `json:"name"`
150150
ID string `json:"id"`
151151

152+
//+optional
153+
Tags []string `json:"tags,omitempty"`
154+
152155
Subnet *Subnet `json:"subnet,omitempty"`
153156
Router *Router `json:"router,omitempty"`
154157

@@ -163,12 +166,17 @@ type Subnet struct {
163166
ID string `json:"id"`
164167

165168
CIDR string `json:"cidr"`
169+
170+
//+optional
171+
Tags []string `json:"tags,omitempty"`
166172
}
167173

168174
// Router represents basic information about the associated OpenStack Neutron Router
169175
type Router struct {
170176
Name string `json:"name"`
171177
ID string `json:"id"`
178+
//+optional
179+
Tags []string `json:"tags,omitempty"`
172180
}
173181

174182
// LoadBalancer represents basic information about the associated OpenStack LoadBalancer

api/v1alpha3/zz_generated.deepcopy.go

Lines changed: 17 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclusters.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,10 @@ spec:
442442
type: string
443443
name:
444444
type: string
445+
tags:
446+
items:
447+
type: string
448+
type: array
445449
required:
446450
- id
447451
- name
@@ -456,11 +460,19 @@ spec:
456460
type: string
457461
name:
458462
type: string
463+
tags:
464+
items:
465+
type: string
466+
type: array
459467
required:
460468
- cidr
461469
- id
462470
- name
463471
type: object
472+
tags:
473+
items:
474+
type: string
475+
type: array
464476
required:
465477
- id
466478
- name
@@ -518,6 +530,10 @@ spec:
518530
type: string
519531
name:
520532
type: string
533+
tags:
534+
items:
535+
type: string
536+
type: array
521537
required:
522538
- id
523539
- name
@@ -532,11 +548,19 @@ spec:
532548
type: string
533549
name:
534550
type: string
551+
tags:
552+
items:
553+
type: string
554+
type: array
535555
required:
536556
- cidr
537557
- id
538558
- name
539559
type: object
560+
tags:
561+
items:
562+
type: string
563+
type: array
540564
required:
541565
- id
542566
- name

controllers/openstackcluster_controller.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ func (r *OpenStackClusterReconciler) reconcileNetworkComponents(log logr.Logger,
283283
openStackCluster.Status.Network = &infrav1.Network{
284284
ID: networkList[0].ID,
285285
Name: networkList[0].Name,
286+
Tags: networkList[0].Tags,
286287
}
287288

288289
subnetOpts := subnets.ListOpts(openStackCluster.Spec.Subnet)
@@ -298,6 +299,7 @@ func (r *OpenStackClusterReconciler) reconcileNetworkComponents(log logr.Logger,
298299
ID: subnetList[0].ID,
299300
Name: subnetList[0].Name,
300301
CIDR: subnetList[0].CIDR,
302+
Tags: subnetList[0].Tags,
301303
}
302304
} else {
303305
err := networkingService.ReconcileNetwork(clusterName, openStackCluster)

pkg/cloud/services/networking/network.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ func (s *Service) ReconcileExternalNetwork(openStackCluster *infrav1.OpenStackCl
5151
openStackCluster.Status.ExternalNetwork = &infrav1.Network{
5252
ID: externalNetwork.ID,
5353
Name: externalNetwork.Name,
54+
Tags: externalNetwork.Tags,
5455
}
5556
return nil
5657
}
@@ -80,6 +81,7 @@ func (s *Service) ReconcileExternalNetwork(openStackCluster *infrav1.OpenStackCl
8081
openStackCluster.Status.ExternalNetwork = &infrav1.Network{
8182
ID: allNetworks[0].ID,
8283
Name: allNetworks[0].Name,
84+
Tags: allNetworks[0].Tags,
8385
}
8486
s.logger.Info("External network found:", "network id", allNetworks[0].ID)
8587
return nil
@@ -102,6 +104,7 @@ func (s *Service) ReconcileNetwork(clusterName string, openStackCluster *infrav1
102104
openStackCluster.Status.Network = &infrav1.Network{
103105
ID: res.ID,
104106
Name: res.Name,
107+
Tags: res.Tags,
105108
}
106109
sInfo := fmt.Sprintf("Reuse Existing Network %s with id %s", res.Name, res.ID)
107110
s.logger.V(6).Info(sInfo)
@@ -139,6 +142,7 @@ func (s *Service) ReconcileNetwork(clusterName string, openStackCluster *infrav1
139142
openStackCluster.Status.Network = &infrav1.Network{
140143
ID: network.ID,
141144
Name: network.Name,
145+
Tags: openStackCluster.Spec.Tags,
142146
}
143147
return nil
144148
}
@@ -198,33 +202,33 @@ func (s *Service) ReconcileSubnet(clusterName string, openStackCluster *infrav1.
198202
CIDR: openStackCluster.Spec.NodeCIDR,
199203
DNSNameservers: openStackCluster.Spec.DNSNameservers,
200204
}
201-
202205
newSubnet, err := subnets.Create(s.client, opts).Extract()
203206
if err != nil {
204207
record.Warnf(openStackCluster, "FailedCreateSubnet", "Failed to create subnet %s: %v", subnetName, err)
205208
return err
206209
}
207210
record.Eventf(openStackCluster, "SuccessfulCreateSubnet", "Created subnet %s with id %s", subnetName, newSubnet.ID)
211+
212+
if len(openStackCluster.Spec.Tags) > 0 {
213+
_, err = attributestags.ReplaceAll(s.client, "subnets", newSubnet.ID, attributestags.ReplaceAllOpts{
214+
Tags: openStackCluster.Spec.Tags}).Extract()
215+
if err != nil {
216+
return err
217+
}
218+
}
219+
208220
observedSubnet = infrav1.Subnet{
209221
ID: newSubnet.ID,
210222
Name: newSubnet.Name,
211-
212223
CIDR: newSubnet.CIDR,
224+
Tags: openStackCluster.Spec.Tags,
213225
}
214226
} else if len(subnetList) == 1 {
215227
observedSubnet = infrav1.Subnet{
216228
ID: subnetList[0].ID,
217229
Name: subnetList[0].Name,
218-
219230
CIDR: subnetList[0].CIDR,
220-
}
221-
}
222-
223-
if len(openStackCluster.Spec.Tags) > 0 {
224-
_, err = attributestags.ReplaceAll(s.client, "subnets", observedSubnet.ID, attributestags.ReplaceAllOpts{
225-
Tags: openStackCluster.Spec.Tags}).Extract()
226-
if err != nil {
227-
return err
231+
Tags: subnetList[0].Tags,
228232
}
229233
}
230234

pkg/cloud/services/networking/router.go

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ func (s *Service) ReconcileRouter(clusterName string, openStackCluster *infrav1.
6161
return err
6262
}
6363
var router routers.Router
64+
var observedRouter infrav1.Router
6465
if len(routerList) == 0 {
6566
opts := routers.CreateOpts{
6667
Name: routerName,
@@ -80,11 +81,30 @@ func (s *Service) ReconcileRouter(clusterName string, openStackCluster *infrav1.
8081
return err
8182
}
8283
record.Eventf(openStackCluster, "SuccessfulCreateRouter", "Created router %s with id %s", routerName, newRouter.ID)
84+
if len(openStackCluster.Spec.Tags) > 0 {
85+
_, err = attributestags.ReplaceAll(s.client, "routers", newRouter.ID, attributestags.ReplaceAllOpts{
86+
Tags: openStackCluster.Spec.Tags}).Extract()
87+
if err != nil {
88+
return err
89+
}
90+
}
8391
router = *newRouter
92+
observedRouter = infrav1.Router{
93+
Name: router.Name,
94+
ID: router.ID,
95+
Tags: openStackCluster.Spec.Tags,
96+
}
97+
8498
} else {
8599
router = routerList[0]
86100
sInfo := fmt.Sprintf("Reuse Existing Router %s with id %s", routerName, router.ID)
87101
s.logger.V(6).Info(sInfo)
102+
observedRouter = infrav1.Router{
103+
Name: router.Name,
104+
ID: router.ID,
105+
Tags: router.Tags,
106+
}
107+
88108
}
89109

90110
if len(openStackCluster.Spec.ExternalRouterIPs) > 0 {
@@ -119,11 +139,6 @@ func (s *Service) ReconcileRouter(clusterName string, openStackCluster *infrav1.
119139
record.Eventf(openStackCluster, "SuccessfulUpdateRouter", "Updated router %s with id %s", routerName, router.ID)
120140
}
121141

122-
observedRouter := infrav1.Router{
123-
Name: router.Name,
124-
ID: router.ID,
125-
}
126-
127142
routerInterfaces, err := s.getRouterInterfaces(router.ID)
128143
if err != nil {
129144
return err
@@ -153,14 +168,6 @@ INTERFACE_LOOP:
153168
s.logger.V(4).Info("Created RouterInterface", "id", routerInterface.ID)
154169
}
155170

156-
if len(openStackCluster.Spec.Tags) > 0 {
157-
_, err = attributestags.ReplaceAll(s.client, "routers", observedRouter.ID, attributestags.ReplaceAllOpts{
158-
Tags: openStackCluster.Spec.Tags}).Extract()
159-
if err != nil {
160-
return err
161-
}
162-
}
163-
164171
if observedRouter.ID != "" {
165172
openStackCluster.Status.Network.Router = &observedRouter
166173
}

0 commit comments

Comments
 (0)