@@ -50,7 +50,10 @@ import (
50
50
type DNSRecordReconciler struct {
51
51
client.Client
52
52
Scheme * runtime.Scheme
53
- Cf * cloudflare.API
53
+
54
+ RetryInterval time.Duration
55
+
56
+ CloudflareAPI * cloudflare.API
54
57
}
55
58
56
59
// SetupWithManager sets up the controller with the Manager.
@@ -122,7 +125,7 @@ func (r *DNSRecordReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
122
125
zones := & cloudflareoperatoriov1.ZoneList {}
123
126
if err := r .List (ctx , zones , client.MatchingFields {cloudflareoperatoriov1 .ZoneNameIndexKey : zoneName }); err != nil {
124
127
log .Error (err , "Failed to list zones" )
125
- return ctrl.Result {RequeueAfter : time . Second * 30 }, nil
128
+ return ctrl.Result {RequeueAfter : r . RetryInterval }, nil
126
129
}
127
130
128
131
if len (zones .Items ) == 0 {
@@ -150,26 +153,26 @@ func (r *DNSRecordReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
150
153
151
154
// reconcileDNSRecord reconciles the dnsrecord
152
155
func (r * DNSRecordReconciler ) reconcileDNSRecord (ctx context.Context , dnsrecord * cloudflareoperatoriov1.DNSRecord , zone * cloudflareoperatoriov1.Zone ) ctrl.Result {
153
- if r .Cf .APIToken == "" {
156
+ if r .CloudflareAPI .APIToken == "" {
154
157
intconditions .MarkUnknown (dnsrecord , "Cloudflare account is not ready" )
155
- return ctrl.Result {RequeueAfter : time . Second * 5 }
158
+ return ctrl.Result {RequeueAfter : r . RetryInterval }
156
159
}
157
160
158
161
if ! conditions .IsTrue (zone , cloudflareoperatoriov1 .ConditionTypeReady ) {
159
162
intconditions .MarkUnknown (dnsrecord , "Zone is not ready" )
160
- return ctrl.Result {RequeueAfter : time . Second * 5 }
163
+ return ctrl.Result {RequeueAfter : r . RetryInterval }
161
164
}
162
165
163
166
var existingRecord cloudflare.DNSRecord
164
167
if dnsrecord .Status .RecordID != "" {
165
168
var err error
166
- existingRecord , err = r .Cf .GetDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), dnsrecord .Status .RecordID )
169
+ existingRecord , err = r .CloudflareAPI .GetDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), dnsrecord .Status .RecordID )
167
170
if err != nil {
168
171
intconditions .MarkFalse (dnsrecord , err )
169
172
return ctrl.Result {}
170
173
}
171
174
} else {
172
- cfExistingRecords , _ , err := r .Cf .ListDNSRecords (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.ListDNSRecordsParams {
175
+ cloudflareExistingRecord , _ , err := r .CloudflareAPI .ListDNSRecords (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.ListDNSRecordsParams {
173
176
Type : dnsrecord .Spec .Type ,
174
177
Name : dnsrecord .Spec .Name ,
175
178
Content : dnsrecord .Spec .Content ,
@@ -178,8 +181,8 @@ func (r *DNSRecordReconciler) reconcileDNSRecord(ctx context.Context, dnsrecord
178
181
intconditions .MarkFalse (dnsrecord , err )
179
182
return ctrl.Result {}
180
183
}
181
- if len (cfExistingRecords ) > 0 {
182
- existingRecord = cfExistingRecords [0 ]
184
+ if len (cloudflareExistingRecord ) > 0 {
185
+ existingRecord = cloudflareExistingRecord [0 ]
183
186
}
184
187
dnsrecord .Status .RecordID = existingRecord .ID
185
188
}
@@ -188,7 +191,7 @@ func (r *DNSRecordReconciler) reconcileDNSRecord(ctx context.Context, dnsrecord
188
191
ip := & cloudflareoperatoriov1.IP {}
189
192
if err := r .Get (ctx , client.ObjectKey {Name : dnsrecord .Spec .IPRef .Name }, ip ); err != nil {
190
193
intconditions .MarkFalse (dnsrecord , err )
191
- return ctrl.Result {RequeueAfter : time . Second * 30 }
194
+ return ctrl.Result {RequeueAfter : r . RetryInterval }
192
195
}
193
196
dnsrecord .Spec .Content = ip .Spec .Address
194
197
}
@@ -199,7 +202,7 @@ func (r *DNSRecordReconciler) reconcileDNSRecord(ctx context.Context, dnsrecord
199
202
}
200
203
201
204
if existingRecord .ID == "" {
202
- newDNSRecord , err := r .Cf .CreateDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.CreateDNSRecordParams {
205
+ newDNSRecord , err := r .CloudflareAPI .CreateDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.CreateDNSRecordParams {
203
206
Name : dnsrecord .Spec .Name ,
204
207
Type : dnsrecord .Spec .Type ,
205
208
Content : dnsrecord .Spec .Content ,
@@ -210,11 +213,11 @@ func (r *DNSRecordReconciler) reconcileDNSRecord(ctx context.Context, dnsrecord
210
213
})
211
214
if err != nil {
212
215
intconditions .MarkFalse (dnsrecord , err )
213
- return ctrl.Result {RequeueAfter : time . Second * 30 }
216
+ return ctrl.Result {RequeueAfter : r . RetryInterval }
214
217
}
215
218
dnsrecord .Status .RecordID = newDNSRecord .ID
216
219
} else if ! r .compareDNSRecord (dnsrecord .Spec , existingRecord ) {
217
- if _ , err := r .Cf .UpdateDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.UpdateDNSRecordParams {
220
+ if _ , err := r .CloudflareAPI .UpdateDNSRecord (ctx , cloudflare .ZoneIdentifier (zone .Status .ID ), cloudflare.UpdateDNSRecordParams {
218
221
ID : dnsrecord .Status .RecordID ,
219
222
Name : dnsrecord .Spec .Name ,
220
223
Type : dnsrecord .Spec .Type ,
@@ -225,7 +228,7 @@ func (r *DNSRecordReconciler) reconcileDNSRecord(ctx context.Context, dnsrecord
225
228
Data : dnsrecord .Spec .Data ,
226
229
}); err != nil {
227
230
intconditions .MarkFalse (dnsrecord , err )
228
- return ctrl.Result {RequeueAfter : time . Second * 30 }
231
+ return ctrl.Result {RequeueAfter : r . RetryInterval }
229
232
}
230
233
}
231
234
@@ -319,7 +322,7 @@ func (r *DNSRecordReconciler) requestsForIPChange(ctx context.Context, o client.
319
322
320
323
// reconcileDelete reconciles the deletion of the dnsrecord
321
324
func (r * DNSRecordReconciler ) reconcileDelete (ctx context.Context , zoneID string , dnsrecord * cloudflareoperatoriov1.DNSRecord ) error {
322
- if err := r .Cf .DeleteDNSRecord (ctx , cloudflare .ZoneIdentifier (zoneID ), dnsrecord .Status .RecordID ); err != nil && err .Error () != "Record does not exist. (81044)" && dnsrecord .Status .RecordID != "" {
325
+ if err := r .CloudflareAPI .DeleteDNSRecord (ctx , cloudflare .ZoneIdentifier (zoneID ), dnsrecord .Status .RecordID ); err != nil && err .Error () != "Record does not exist. (81044)" && dnsrecord .Status .RecordID != "" {
323
326
return err
324
327
}
325
328
metrics .DnsRecordFailureCounter .DeleteLabelValues (dnsrecord .Namespace , dnsrecord .Name , dnsrecord .Spec .Name )
0 commit comments