Skip to content

Commit 8fb2625

Browse files
committed
fix: Add gameServerisReady to Reconcile
Check for allocated GameServer will be done at the reconcile level instead of the SetExternalDNS level
1 parent 7c946d7 commit 8fb2625

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

‎controller/internal/controller/annotations.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func setExternalDnsAnnotation(recordName string, gs *agonesv1.GameServer) string
1616
return recordName
1717
}
1818

19-
func findeExternalDnsAnnotation(gs *agonesv1.GameServer) bool {
19+
func findExternalDnsAnnotation(gs *agonesv1.GameServer) bool {
2020
_, ok := getAnnotation(ExternalDnsAnnotation, gs)
2121
return ok
2222
}

‎controller/internal/controller/controller.go‎

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,26 @@ func (r *GameServerReconciler) Reconcile(ctx context.Context, req reconcile.Requ
3232
gs := agonesv1.GameServer{}
3333

3434
if err := r.getGameServer(ctx, req.NamespacedName, &gs); err != nil {
35-
return reconcile.Result{}, err
35+
return reconcile.Result{}, nil
36+
}
37+
38+
if !r.gameServerIsReady(&gs) {
39+
return reconcile.Result{}, nil
3640
}
3741

38-
exists := findeExternalDnsAnnotation(&gs)
42+
exists := findExternalDnsAnnotation(&gs)
3943
hostname, hostnameFound := getHostnameAnnotation(&gs)
4044

4145
if exists {
4246
if isGameServerDeleted(&gs) {
4347
if err := r.cleanUpGameServer(hostname, &gs); err != nil {
4448
return reconcile.Result{}, err
4549
}
50+
51+
return reconcile.Result{}, nil
4652
}
4753

48-
r.log.Info(fmt.Sprintf("External DNS set for %s", gs.Name))
54+
r.log.Info(fmt.Sprintf("ExternalDNS set for %s", gs.Name))
4955
return reconcile.Result{}, nil
5056
}
5157

@@ -84,7 +90,7 @@ func (r *GameServerReconciler) setGameServerDNS(ctx context.Context, hostname st
8490
return err
8591
}
8692

87-
r.log.Info(fmt.Sprintf("GameServer %s externalDNS set to %s", gs.Name, externalDns))
93+
r.log.Info(fmt.Sprintf("GameServer %s ExternalDNS set to %s", gs.Name, externalDns))
8894
return nil
8995
}
9096

@@ -103,8 +109,13 @@ func (r *GameServerReconciler) getGameServer(ctx context.Context, namespacedName
103109
return nil
104110
}
105111

106-
func isGameServerDeleted(gs *agonesv1.GameServer) bool {
107-
return !gs.ObjectMeta.DeletionTimestamp.IsZero()
112+
func (r *GameServerReconciler) gameServerIsReady(gs *agonesv1.GameServer) bool {
113+
if gs.Status.Address == "" && len(gs.Status.Ports) == 0 {
114+
r.log.Info("GameServer not ready to set ExternalDNS", "GameServer name", gs.Name)
115+
return false
116+
}
117+
118+
return true
108119
}
109120

110121
func (r *GameServerReconciler) cleanUpGameServer(hostname string, gs *agonesv1.GameServer) error {
@@ -117,10 +128,14 @@ func (r *GameServerReconciler) cleanUpGameServer(hostname string, gs *agonesv1.G
117128
}
118129
}
119130

120-
r.log.Info(fmt.Sprintf("GameServer %s externalDNS records removed", gs.Name))
131+
r.log.Info(fmt.Sprintf("GameServer %s ExternalDNS records removed", gs.Name))
121132
return nil
122133
}
123134

124135
func NewReconciler(client client.Client, scheme *runtime.Scheme, log logr.Logger, dns provider.DnsClient) reconcile.Reconciler {
125136
return &GameServerReconciler{client, scheme, log, dns}
126137
}
138+
139+
func isGameServerDeleted(gs *agonesv1.GameServer) bool {
140+
return !gs.ObjectMeta.DeletionTimestamp.IsZero()
141+
}

0 commit comments

Comments
 (0)