@@ -43,6 +43,7 @@ import (
43
43
capiutil "sigs.k8s.io/cluster-api/util"
44
44
ctrl "sigs.k8s.io/controller-runtime"
45
45
"sigs.k8s.io/controller-runtime/pkg/client"
46
+ "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
46
47
"sigs.k8s.io/controller-runtime/pkg/handler"
47
48
)
48
49
@@ -108,15 +109,13 @@ func (r *ClusterDeploymentReconciler) ensureAgentClusterInstall(
108
109
if err != nil {
109
110
return ctrl.Result {}, err
110
111
}
111
- imageSet := computeClusterImageSet (clusterDeployment .Name , getReleaseImage (oacp , arch ))
112
- err = util .CreateOrUpdate (ctx , r .Client , imageSet )
113
- if err != nil {
112
+ if err = ensureClusterImageSet (ctx , r .Client , clusterDeployment .Name , getReleaseImage (oacp , arch )); err != nil {
114
113
log .Error (err , "failed creating ClusterImageSet" )
115
114
return ctrl.Result {}, err
116
115
}
117
116
118
117
workerNodes := r .getWorkerNodesCount (ctx , cluster )
119
- aci , err := r .computeAgentClusterInstall (ctx , clusterDeployment , oacp , imageSet , cluster , workerNodes )
118
+ aci , err := r .computeAgentClusterInstall (ctx , clusterDeployment , oacp , clusterDeployment . Name , cluster , workerNodes )
120
119
if err != nil {
121
120
return ctrl.Result {}, err
122
121
}
@@ -172,22 +171,26 @@ func (r *ClusterDeploymentReconciler) updateClusterDeploymentRef(
172
171
return r .Client .Update (ctx , cd )
173
172
}
174
173
175
- func computeClusterImageSet ( imageSetName string , releaseImage string ) * hivev1. ClusterImageSet {
176
- return & hivev1.ClusterImageSet {
174
+ func ensureClusterImageSet ( ctx context. Context , c client. Client , imageSetName string , releaseImage string ) error {
175
+ imageSet := & hivev1.ClusterImageSet {
177
176
ObjectMeta : metav1.ObjectMeta {
178
177
Name : imageSetName ,
179
178
},
180
- Spec : hivev1.ClusterImageSetSpec {
181
- ReleaseImage : releaseImage ,
182
- },
183
179
}
180
+
181
+ _ , err := controllerutil .CreateOrUpdate (ctx , c , imageSet , func () error {
182
+ imageSet .Spec .ReleaseImage = releaseImage
183
+ return nil
184
+ })
185
+
186
+ return err
184
187
}
185
188
186
189
func (r * ClusterDeploymentReconciler ) computeAgentClusterInstall (
187
190
ctx context.Context ,
188
191
clusterDeployment * hivev1.ClusterDeployment ,
189
192
acp controlplanev1alpha2.OpenshiftAssistedControlPlane ,
190
- imageSet * hivev1. ClusterImageSet ,
193
+ imageSetName string ,
191
194
cluster * clusterv1.Cluster ,
192
195
workerReplicas int ,
193
196
) (* hiveext.AgentClusterInstall , error ) {
@@ -239,7 +242,7 @@ func (r *ClusterDeploymentReconciler) computeAgentClusterInstall(
239
242
MastersSchedulable : acp .Spec .Config .MastersSchedulable ,
240
243
Proxy : acp .Spec .Config .Proxy ,
241
244
SSHPublicKey : acp .Spec .Config .SSHAuthorizedKey ,
242
- ImageSetRef : & hivev1.ClusterImageSetReference {Name : imageSet . Name },
245
+ ImageSetRef : & hivev1.ClusterImageSetReference {Name : imageSetName },
243
246
Networking : hiveext.Networking {
244
247
ClusterNetwork : clusterNetwork ,
245
248
ServiceNetwork : serviceNetwork ,
0 commit comments