Skip to content

Commit 2a64c35

Browse files
authored
Merge pull request #617 from hidekazuna/status
Add tags to status
2 parents 3ecdd72 + 8f7b92f commit 2a64c35

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
@@ -398,6 +398,10 @@ spec:
398398
type: string
399399
name:
400400
type: string
401+
tags:
402+
items:
403+
type: string
404+
type: array
401405
required:
402406
- id
403407
- name
@@ -412,11 +416,19 @@ spec:
412416
type: string
413417
name:
414418
type: string
419+
tags:
420+
items:
421+
type: string
422+
type: array
415423
required:
416424
- cidr
417425
- id
418426
- name
419427
type: object
428+
tags:
429+
items:
430+
type: string
431+
type: array
420432
required:
421433
- id
422434
- name
@@ -474,6 +486,10 @@ spec:
474486
type: string
475487
name:
476488
type: string
489+
tags:
490+
items:
491+
type: string
492+
type: array
477493
required:
478494
- id
479495
- name
@@ -488,11 +504,19 @@ spec:
488504
type: string
489505
name:
490506
type: string
507+
tags:
508+
items:
509+
type: string
510+
type: array
491511
required:
492512
- cidr
493513
- id
494514
- name
495515
type: object
516+
tags:
517+
items:
518+
type: string
519+
type: array
496520
required:
497521
- id
498522
- 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)