@@ -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
110121func (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
124135func 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