@@ -6,10 +6,14 @@ import (
66
77 agonesv1 "agones.dev/agones/pkg/apis/agones/v1"
88 "agones.dev/agones/pkg/client/clientset/versioned"
9+ v1Informers "agones.dev/agones/pkg/client/informers/externalversions/agones/v1"
910 "go.uber.org/zap"
1011 corev1 "k8s.io/api/core/v1"
1112 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
13+ "k8s.io/apimachinery/pkg/labels"
14+ "k8s.io/apimachinery/pkg/util/wait"
1215 "k8s.io/client-go/rest"
16+ "k8s.io/client-go/tools/cache"
1317
1418 k8s "agones-minecraft/services/k8s"
1519)
@@ -61,6 +65,7 @@ var agonesClient *AgonesClient
6165// Agones clientset wrapper
6266type AgonesClient struct {
6367 clientSet * versioned.Clientset
68+ informer v1Informers.GameServerInformer
6469}
6570
6671// Initializes Agones client
@@ -69,6 +74,8 @@ func Init() {
6974 if err != nil {
7075 zap .L ().Fatal ("error initializing agones client" , zap .Error (err ))
7176 }
77+ go c .informer .Informer ().Run (wait .NeverStop )
78+ cache .WaitForCacheSync (wait .NeverStop , c .informer .Informer ().HasSynced )
7279 agonesClient = c
7380}
7481
@@ -80,27 +87,31 @@ func Client() *AgonesClient {
8087// Creates new Agones client
8188func New (config * rest.Config ) (* AgonesClient , error ) {
8289 agonesClient , err := versioned .NewForConfig (config )
90+ gameServerInformer := NewGameServerInformer (agonesClient )
8391 if err != nil {
8492 return nil , err
8593 }
8694
87- return & AgonesClient {agonesClient }, nil
95+ return & AgonesClient {agonesClient , gameServerInformer }, nil
8896}
8997
9098// Gets a GameServer by name
9199func (c * AgonesClient ) Get (serverName string ) (* agonesv1.GameServer , error ) {
92- return c .clientSet .
93- AgonesV1 ().
94- GameServers (metav1 .NamespaceDefault ).
95- Get (context .Background (), serverName , metav1.GetOptions {})
100+ return c .informer .Lister ().GameServers (metav1 .NamespaceDefault ).Get (serverName )
101+
102+ // return c.clientSet.
103+ // AgonesV1().
104+ // GameServers(metav1.NamespaceDefault).
105+ // Get(context.Background(), serverName, metav1.GetOptions{})
96106}
97107
98108// Gets all GameServers for default namespace
99- func (c * AgonesClient ) List () (* agonesv1.GameServerList , error ) {
100- return c .clientSet .
101- AgonesV1 ().
102- GameServers (metav1 .NamespaceDefault ).
103- List (context .Background (), metav1.ListOptions {})
109+ func (c * AgonesClient ) List () ([]* agonesv1.GameServer , error ) {
110+ return c .informer .Lister ().GameServers (metav1 .NamespaceDefault ).List (labels .Everything ())
111+ // return c.clientSet.
112+ // AgonesV1().
113+ // GameServers(metav1.NamespaceDefault).
114+ // List(context.Background(), metav1.ListOptions{})
104115}
105116
106117// Creates a new GameServer
0 commit comments