@@ -19,11 +19,12 @@ package controllers
19
19
import (
20
20
"context"
21
21
"fmt"
22
- "k8s.io/utils/pointer"
23
22
"math/rand"
24
23
"reflect"
25
24
"regexp"
26
25
26
+ "k8s.io/utils/pointer"
27
+
27
28
"github.com/pkg/errors"
28
29
corev1 "k8s.io/api/core/v1"
29
30
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -135,18 +136,32 @@ func (r *CloudStackMachineReconciliationRunner) ConsiderAffinity() (ctrl.Result,
135
136
r .ReconciliationSubject .Spec .Affinity == "" { // No managed affinity.
136
137
return ctrl.Result {}, nil
137
138
}
139
+ var agName string
140
+ var err error
138
141
139
- agName , err := utils .GenerateAffinityGroupName (* r .ReconciliationSubject , r .CAPIMachine )
140
- if err != nil {
141
- return ctrl.Result {}, err
142
+ if r .ReconciliationSubject .Spec .AffinityGroupRef != nil {
143
+ agName = r .ReconciliationSubject .Spec .AffinityGroupRef .Name
144
+ } else {
145
+ agName , err = utils .GenerateAffinityGroupName (* r .ReconciliationSubject , r .CAPIMachine , r .CAPICluster )
146
+ if err != nil {
147
+ return ctrl.Result {}, err
148
+ }
142
149
}
143
150
144
151
// Set failure domain name and owners.
145
152
r .AffinityGroup .Spec .FailureDomainName = r .ReconciliationSubject .Spec .FailureDomainName
146
- if res , err := r .GetOrCreateAffinityGroup (
147
- agName , r .ReconciliationSubject .Spec .Affinity , r .AffinityGroup , r .FailureDomain )(); r .ShouldReturn (res , err ) {
153
+ res , err := r .GetOrCreateAffinityGroup (
154
+ agName , r .ReconciliationSubject .Spec .Affinity , r .AffinityGroup , r .FailureDomain )()
155
+ if r .ShouldReturn (res , err ) {
148
156
return res , err
149
157
}
158
+ // Set affinity group reference.
159
+ r .ReconciliationSubject .Spec .AffinityGroupRef = & corev1.ObjectReference {
160
+ Kind : r .AffinityGroup .Kind ,
161
+ UID : r .AffinityGroup .UID ,
162
+ Name : r .AffinityGroup .Name ,
163
+ Namespace : r .AffinityGroup .Namespace ,
164
+ }
150
165
if ! r .AffinityGroup .Status .Ready {
151
166
return r .RequeueWithMessage ("Required affinity group not ready." )
152
167
}
0 commit comments