Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metadata propagation from fleet allocation to game server #312

Merged
merged 1 commit into from
Jul 31, 2018

Conversation

victor-prodan
Copy link
Contributor

In the fleet allocation configuration you can add optional custom metadata that will be added to the game server in the moment of allocation

Implements #277
Contains fixes requested in #307 (which I closed because git and I have a mutual hate relationship)

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 0b0486f6-b76d-4a39-b9a4-c9a8e4a0e301

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 925af27b-e5b5-4866-8bcd-588826ba617d

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 95033e70-2676-4dfe-be95-63bbd244036b

Build Logs
starting build "95033e70-2676-4dfe-be95-63bbd244036b"

FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/agones-images/r/agones
 * branch            ae6c16bec2bbb218d3558cb321374f75ae9ec735 -> FETCH_HEAD
HEAD is now at ae6c16b Metadata propagation from fleet allocation to game server
BUILD
Starting Step #0
Step #0: Already have image (with digest): ubuntu
Finished Step #0
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/docker
Step #1: Sending build context to Docker daemon  110.4MB

Step #1: Step 1/3 : FROM gcr.io/cloud-builders/docker
Step #1:  ---> 141b573c6d0f
Step #1: Step 2/3 : RUN apt-get install make
Step #1:  ---> Running in 17dccc90581f
Step #1: Reading package lists...
Step #1: Building dependency tree...
Step #1: Reading state information...
Step #1: make is already the newest version (4.1-6).
Step #1: 0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
Step #1: Removing intermediate container 17dccc90581f
Step #1:  ---> 94c8c634c282
Step #1: Step 3/3 : ENTRYPOINT ["/usr/bin/make"]
Step #1:  ---> Running in bacd1f527f2a
Step #1: Removing intermediate container bacd1f527f2a
Step #1:  ---> 96c71a371de2
Step #1: Successfully built 96c71a371de2
Step #1: Successfully tagged make-docker:latest
Finished Step #1
Starting Step #2
Step #2: Already have image: make-docker
Step #2: docker pull gcr.io/agones-images/agones-build:7baad3fcaa && docker tag gcr.io/agones-images/agones-build:7baad3fcaa agones-build:7baad3fcaa
Step #2: 7baad3fcaa: Pulling from agones-images/agones-build
Step #2: cc1a78bfd46b: Pulling fs layer
Step #2: 65ec5fb8fee4: Pulling fs layer
Step #2: f792a8d67267: Pulling fs layer
Step #2: c61ddf10ea29: Pulling fs layer
Step #2: f11e4b9dca6d: Pulling fs layer
Step #2: f5de62cd774a: Pulling fs layer
Step #2: 84fd27122697: Pulling fs layer
Step #2: 0c424a61cc39: Pulling fs layer
Step #2: b5bfc6f2e8cf: Pulling fs layer
Step #2: 3b2702a6ad68: Pulling fs layer
Step #2: 5ab6afc7d65b: Pulling fs layer
Step #2: 24f531f817dd: Pulling fs layer
Step #2: 438f29967585: Pulling fs layer
Step #2: 84919d2a889b: Pulling fs layer
Step #2: 8e059271ff11: Pulling fs layer
Step #2: 6f621b6c2140: Pulling fs layer
Step #2: 2cc115bfdcc4: Pulling fs layer
Step #2: c83e29de64eb: Pulling fs layer
Step #2: c61ddf10ea29: Waiting
Step #2: 67b0b15947b1: Pulling fs layer
Step #2: 3b2702a6ad68: Waiting
Step #2: f11e4b9dca6d: Waiting
Step #2: 88d3d110e8a5: Pulling fs layer
Step #2: 5ab6afc7d65b: Waiting
Step #2: f5de62cd774a: Waiting
Step #2: 24f531f817dd: Waiting
Step #2: c83e29de64eb: Waiting
Step #2: 84fd27122697: Waiting
Step #2: 438f29967585: Waiting
Step #2: 67b0b15947b1: Waiting
Step #2: 88d3d110e8a5: Waiting
Step #2: 0c424a61cc39: Waiting
Step #2: b5bfc6f2e8cf: Waiting
Step #2: 84919d2a889b: Waiting
Step #2: 8e059271ff11: Waiting
Step #2: 6f621b6c2140: Waiting
Step #2: cc1a78bfd46b: Verifying Checksum
Step #2: cc1a78bfd46b: Download complete
Step #2: c61ddf10ea29: Verifying Checksum
Step #2: c61ddf10ea29: Download complete
Step #2: f11e4b9dca6d: Verifying Checksum
Step #2: f11e4b9dca6d: Download complete
Step #2: 65ec5fb8fee4: Verifying Checksum
Step #2: 65ec5fb8fee4: Download complete
Step #2: f5de62cd774a: Verifying Checksum
Step #2: f5de62cd774a: Download complete
Step #2: 0c424a61cc39: Verifying Checksum
Step #2: 0c424a61cc39: Download complete
Step #2: cc1a78bfd46b: Pull complete
Step #2: b5bfc6f2e8cf: Verifying Checksum
Step #2: b5bfc6f2e8cf: Download complete
Step #2: 3b2702a6ad68: Download complete
Step #2: 5ab6afc7d65b: Verifying Checksum
Step #2: 5ab6afc7d65b: Download complete
Step #2: 84fd27122697: Verifying Checksum
Step #2: 438f29967585: Verifying Checksum
Step #2: 438f29967585: Download complete
Step #2: 24f531f817dd: Verifying Checksum
Step #2: 24f531f817dd: Download complete
Step #2: 84919d2a889b: Verifying Checksum
Step #2: 84919d2a889b: Download complete
Step #2: 8e059271ff11: Verifying Checksum
Step #2: 8e059271ff11: Download complete
Step #2: 6f621b6c2140: Verifying Checksum
Step #2: 6f621b6c2140: Download complete
Step #2: 2cc115bfdcc4: Verifying Checksum
Step #2: 2cc115bfdcc4: Download complete
Step #2: 67b0b15947b1: Download complete
Step #2: 88d3d110e8a5: Verifying Checksum
Step #2: 88d3d110e8a5: Download complete
Step #2: c83e29de64eb: Verifying Checksum
Step #2: c83e29de64eb: Download complete
Step #2: f792a8d67267: Verifying Checksum
Step #2: f792a8d67267: Download complete
Step #2: 65ec5fb8fee4: Pull complete
Step #2: f792a8d67267: Pull complete
Step #2: c61ddf10ea29: Pull complete
Step #2: f11e4b9dca6d: Pull complete
Step #2: f5de62cd774a: Pull complete
Step #2: 84fd27122697: Pull complete
Step #2: 0c424a61cc39: Pull complete
Step #2: b5bfc6f2e8cf: Pull complete
Step #2: 3b2702a6ad68: Pull complete
Step #2: 5ab6afc7d65b: Pull complete
Step #2: 24f531f817dd: Pull complete
Step #2: 438f29967585: Pull complete
Step #2: 84919d2a889b: Pull complete
Step #2: 8e059271ff11: Pull complete
Step #2: 6f621b6c2140: Pull complete
Step #2: 2cc115bfdcc4: Pull complete
Step #2: c83e29de64eb: Pull complete
Step #2: 67b0b15947b1: Pull complete
Step #2: 88d3d110e8a5: Pull complete
Step #2: Digest: sha256:3b0633d147975b433dda6e16d40c801c793181fc0f7d9d3f704479605690080f
Step #2: Status: Downloaded newer image for gcr.io/agones-images/agones-build:7baad3fcaa
Finished Step #2
Starting Step #3 - "lint"
Step #3 - "lint": Already have image: make-docker
Step #3 - "lint": mkdir -p ~/.kube
Step #3 - "lint": mkdir -p /workspace/build//.config/gcloud
Step #3 - "lint": docker run --rm -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones -w /go/src/agones.dev/agones  agones-build:7baad3fcaa bash -c \
Step #3 - "lint": 	"/root/gen-lint-exclude.sh && gometalinter --config .exclude.gometalinter.json --deadline=15m -t --skip vendor ./..."
Finished Step #3 - "lint"
Starting Step #4 - "tests"
Starting Step #5 - "build"
Step #4 - "tests": Already have image: make-docker
Step #5 - "build": Already have image: make-docker
Step #5 - "build": mkdir -p ~/.kube
Step #4 - "tests": mkdir -p ~/.kube
Step #5 - "build": mkdir -p /workspace/build//.config/gcloud
Step #4 - "tests": mkdir -p /workspace/build//.config/gcloud
Step #4 - "tests": docker run --rm -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones agones-build:7baad3fcaa go test -race agones.dev/agones/...
Step #5 - "build": docker run --rm -e "CGO_ENABLED=0" -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones agones-build:7baad3fcaa go build \
Step #5 - "build": 	-o /go/src/agones.dev/agones/cmd/controller/bin/controller -a -ldflags "-X agones.dev/agones/pkg.Version=0.4.0-ae6c16b" -installsuffix cgo agones.dev/agones/cmd/controller
Step #4 - "tests": warning: ignoring symlink /go/src/agones.dev/agones/vendor/github.com/prometheus/procfs/fixtures/self
Step #4 - "tests": ?   	agones.dev/agones	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/cmd/controller	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/cmd/sdk-server	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/examples/simple-udp/client	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/examples/simple-udp/server	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/examples/xonotic	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/apis	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/apis/stable	[no test files]
Step #4 - "tests": ok  	agones.dev/agones/pkg/apis/stable/v1alpha1	1.103s
Step #4 - "tests": ?   	agones.dev/agones/pkg/client	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/clientset/versioned	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/clientset/versioned/fake	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/clientset/versioned/scheme	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/clientset/versioned/typed/stable/v1alpha1	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/clientset/versioned/typed/stable/v1alpha1/fake	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/informers/externalversions	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/informers/externalversions/internalinterfaces	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/informers/externalversions/stable	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/informers/externalversions/stable/v1alpha1	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/client/listers/stable/v1alpha1	[no test files]
Step #5 - "build": docker build /workspace/cmd/controller/ --tag=gcr.io/agones-images/agones-controller:0.4.0-ae6c16b 
Step #5 - "build": Sending build context to Docker daemon  41.79MB

Step #5 - "build": Step 1/6 : FROM alpine:3.7
Step #5 - "build": 3.7: Pulling from library/alpine
Step #5 - "build": 911c6d0c7995: Pulling fs layer
Step #5 - "build": 911c6d0c7995: Download complete
Step #5 - "build": 911c6d0c7995: Pull complete
Step #5 - "build": Digest: sha256:5ce5f501c457015c4b91f91a15ac69157d9b06f1a75cf9107bf2b62e0843983a
Step #5 - "build": Status: Downloaded newer image for alpine:3.7
Step #5 - "build":  ---> 791c3e2ebfcb
Step #5 - "build": Step 2/6 : RUN apk --update add ca-certificates &&     adduser -D agones
Step #5 - "build":  ---> Running in 18af8a9deb0e
Step #5 - "build": fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
Step #5 - "build": fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
Step #5 - "build": (1/1) Installing ca-certificates (20171114-r0)
Step #5 - "build": Executing busybox-1.27.2-r11.trigger
Step #5 - "build": Executing ca-certificates-20171114-r0.trigger
Step #5 - "build": OK: 5 MiB in 14 packages
Step #5 - "build": Removing intermediate container 18af8a9deb0e
Step #5 - "build":  ---> b9cf5549b948
Step #5 - "build": Step 3/6 : COPY ./bin/controller /home/agones/controller
Step #5 - "build":  ---> 2144a8621e21
Step #5 - "build": Step 4/6 : RUN chown -R agones /home/agones &&     chmod o+x /home/agones/controller
Step #5 - "build":  ---> Running in 1709fb176f1e
Step #5 - "build": Removing intermediate container 1709fb176f1e
Step #5 - "build":  ---> 88cc42d9bd0d
Step #5 - "build": Step 5/6 : USER agones
Step #5 - "build":  ---> Running in 4b46736c6e14
Step #5 - "build": Removing intermediate container 4b46736c6e14
Step #5 - "build":  ---> 20a300eeabd8
Step #5 - "build": Step 6/6 : ENTRYPOINT ["/home/agones/controller"]
Step #5 - "build":  ---> Running in e12edc0ea107
Step #5 - "build": Removing intermediate container e12edc0ea107
Step #5 - "build":  ---> e69a38a34ae5
Step #5 - "build": Successfully built e69a38a34ae5
Step #5 - "build": Successfully tagged gcr.io/agones-images/agones-controller:0.4.0-ae6c16b
Step #5 - "build": docker run --rm -e "CGO_ENABLED=0" -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones agones-build:7baad3fcaa go build \
Step #5 - "build": 	-o /go/src/agones.dev/agones/cmd/sdk-server/bin/sdk-server.linux.amd64 -a -ldflags "-X agones.dev/agones/pkg.Version=0.4.0-ae6c16b" -installsuffix cgo agones.dev/agones/cmd/sdk-server
Step #4 - "tests": ok  	agones.dev/agones/pkg/fleetallocation	11.834s
Step #4 - "tests": ok  	agones.dev/agones/pkg/fleets	2.595s
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Adding first fixture","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"crd":"","level":"info","msg":"custom resource definition established","source":"*gameservers.Controller","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","source":"*gameservers.Controller","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Running","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:28Z","workers":1}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:28Z","workers":1}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"default/test","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:28Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:29Z","workers":1}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"modify copyFixture","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"default/test","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"default/test","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Create State","source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"creating Pod for GameServer","pod":{"metadata":{"generateName":"test-","namespace":"default","creationTimestamp":null,"labels":{"stable.agones.dev/gameserver":"test","stable.agones.dev/role":"gameserver"},"annotations":{"stable.agones.dev/container":"container"},"ownerReferences":[{"apiVersion":"stable.agones.dev/v1alpha1","kind":"GameServer","name":"test","uid":"","controller":true,"blockOwnerDeletion":true}]},"spec":{"containers":[{"name":"container","image":"container/image","ports":[{"hostPort":9999,"containerPort":7777,"protocol":"UDP"}],"resources":{},"livenessProbe":{"httpGet":{"path":"/gshealthz","port":8080},"initialDelaySeconds":5,"periodSeconds":5,"failureThreshold":3}},{"name":"agones-gameserver-sidecar","image":"sidecar:dev","env":[{"name":"GAMESERVER_NAME","value":"test"},{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}],"resources":{},"livenessProbe":{"httpGet":{"path":"/healthz","port":8080},"initialDelaySeconds":3,"periodSeconds":3}}],"serviceAccountName":"agones-sdk"},"status":{}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:29Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Create State","source":"*gameservers.Controller","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Create State","source":"*gameservers.Controller","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"creating Pod for GameServer","pod":{"metadata":{"generateName":"test-","namespace":"default","creationTimestamp":null,"labels":{"stable.agones.dev/gameserver":"test","stable.agones.dev/role":"gameserver"},"annotations":{"stable.agones.dev/container":"container"},"ownerReferences":[{"apiVersion":"stable.agones.dev/v1alpha1","kind":"GameServer","name":"test","uid":"","controller":true,"blockOwnerDeletion":true}]},"spec":{"containers":[{"name":"container","image":"container/image","ports":[{"hostPort":9999,"containerPort":7777,"protocol":"UDP"}],"resources":{},"livenessProbe":{"httpGet":{"path":"/gshealthz","port":8080},"initialDelaySeconds":5,"periodSeconds":5,"failureThreshold":3}},{"name":"agones-gameserver-sidecar","image":"sidecar:dev","env":[{"name":"GAMESERVER_NAME","value":"test"},{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}],"resources":{},"livenessProbe":{"httpGet":{"path":"/healthz","port":8080},"initialDelaySeconds":3,"periodSeconds":3}}],"serviceAccountName":"agones-sdk"},"status":{}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"gameserver":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"error","msg":"Pod created is invalid","pod":null,"source":"*gameservers.Controller","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z","workers":1}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"GameServer container has terminated","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"default/test","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Synchronising","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Ready","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Marking GameServer as Unhealthy","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.HealthController","source":"*gameservers.HealthController","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Ready request has been received!","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Shutdown request has been received!","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received!","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Health stream closed.","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"getting GameServer details","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","maxPort":110,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":0}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":0}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":0}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":1}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":1}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":1}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":2}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":2}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":2}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":3}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":3}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":3}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":4}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":4}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":4}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":5}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":5}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":5}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":6}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":6}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":6}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":7}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":7}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":7}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":8}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":8}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":8}
Step #4 - "tests": {"i":0,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":9}
Step #4 - "tests": {"i":1,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":9}
Step #4 - "tests": {"i":2,"level":"info","msg":"allocating!","time":"2018-07-31T13:55:30Z","x":9}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Running","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z","workers":1}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"node1","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Already added node to port allocations. Skipping","node":"node1","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"node2","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Already added node to port allocations. Skipping","node":"node2","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"adding n3","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"node3","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"node3","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Adding Node to port allocations","node":"node3","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"unscheduling n3","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"SYNC+ALL","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"SYNC+ALL","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"scheduling n3","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"SYNC+ALL","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"SYNC+ALL","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"deleting n3","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"key":"SYNC+ALL","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"SYNC+ALL","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:30Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":50,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Test Running","test":"disabled, under timeout","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42000c3c0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"creationMutationHandler","review":{"request":{"uid":"","kind":{"group":"stable.agones.dev","version":"v1alpha1","kind":"GameServer"},"resource":{"group":"","version":"","resource":""},"operation":"CREATE","userInfo":{},"object":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null},"spec":{"ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999}],"health":{},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"","ports":null,"address":"","nodeName":""}},"oldObject":null},"response":{"uid":"","allowed":true}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"test","level":"info","msg":"patch created!","patch":"[{\"op\":\"add\",\"path\":\"/metadata/finalizers\",\"value\":[\"stable.agones.dev\"]},{\"op\":\"add\",\"path\":\"/spec/container\",\"value\":\"container\"},{\"op\":\"add\",\"path\":\"/spec/ports/0/protocol\",\"value\":\"UDP\"},{\"op\":\"add\",\"path\":\"/spec/health/periodSeconds\",\"value\":5},{\"op\":\"add\",\"path\":\"/spec/health/failureThreshold\",\"value\":3},{\"op\":\"add\",\"path\":\"/spec/health/initialDelaySeconds\",\"value\":5},{\"op\":\"replace\",\"path\":\"/status/state\",\"value\":\"Creating\"}]","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Received Ready request, adding to queue","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"RequestReady","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting SDKServer http health check...","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting GameServer health checking","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Synchronising","source":"*gameservers.HealthController","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4200d2b20), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420832ea0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z","workers":1}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"RequestReady","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"RequestReady","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":"http: Server closed","level":"info","msg":"health check: http server closed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node3","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Ready","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"State already unhealthy. Skipping update.","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Received Shutdown request, adding to queue","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"Shutdown","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting SDKServer http health check...","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting GameServer health checking","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node3","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42051c720), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Synchronising","source":"*gameservers.HealthController","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Ready","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Marking GameServer as Unhealthy","source":"*gameservers.HealthController","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": E0731 13:55:32.379364    4232 event.go:260] Could not construct reference to: '&v1alpha1.GameServer{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"test", GenerateName:"", Namespace:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string{"stable.agones.dev"}, ClusterName:""}, Spec:v1alpha1.GameServerSpec{Container:"container", GameServerPort:(*v1alpha1.GameServerPort)(nil), Ports:[]v1alpha1.GameServerPort{v1alpha1.GameServerPort{Name:"", PortPolicy:"static", ContainerPort:7777, HostPort:9999, Protocol:"UDP"}}, Health:v1alpha1.Health{Disabled:false, PeriodSeconds:5, FailureThreshold:3, InitialDelaySeconds:5}, Template:v1.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Spec:v1.PodSpec{Volumes:[]v1.Volume(nil), InitContainers:[]v1.Container(nil), Containers:[]v1.Container{v1.Container{Name:"container", Image:"container/image", Command:[]string(nil), Args:[]string(nil), WorkingDir:"", Ports:[]v1.ContainerPort(nil), EnvFrom:[]v1.EnvFromSource(nil), Env:[]v1.EnvVar(nil), Resources:v1.ResourceRequirements{Limits:v1.ResourceList(nil), Requests:v1.ResourceList(nil)}, VolumeMounts:[]v1.VolumeMount(nil), VolumeDevices:[]v1.VolumeDevice(nil), LivenessProbe:(*v1.Probe)(nil), ReadinessProbe:(*v1.Probe)(nil), Lifecycle:(*v1.Lifecycle)(nil), TerminationMessagePath:"", TerminationMessagePolicy:"", ImagePullPolicy:"", SecurityContext:(*v1.SecurityContext)(nil), Stdin:false, StdinOnce:false, TTY:false}}, RestartPolicy:"", TerminationGracePeriodSeconds:(*int64)(nil), ActiveDeadlineSeconds:(*int64)(nil), DNSPolicy:"", NodeSelector:map[string]string(nil), ServiceAccountName:"", DeprecatedServiceAccount:"", AutomountServiceAccountToken:(*bool)(nil), NodeName:"", HostNetwork:false, HostPID:false, HostIPC:false, ShareProcessNamespace:(*bool)(nil), SecurityContext:(*v1.PodSecurityContext)(nil), ImagePullSecrets:[]v1.LocalObjectReference(nil), Hostname:"", Subdomain:"", Affinity:(*v1.Affinity)(nil), SchedulerName:"", Tolerations:[]v1.Toleration(nil), HostAliases:[]v1.HostAlias(nil), PriorityClassName:"", Priority:(*int32)(nil), DNSConfig:(*v1.PodDNSConfig)(nil)}}}, Status:v1alpha1.GameServerStatus{State:"Ready", Ports:[]v1alpha1.GameServerStatusPort(nil), Address:"", NodeName:""}}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Warning' 'Unhealthy' 'GameServer container terminated'
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node3","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"gs3","uid":"3","creationTimestamp":null},"spec":{"ports":[{"portPolicy":"dynamic","containerPort":0,"hostPort":10}],"health":{},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":null}}},"status":{"state":"Ready","ports":[{"port":10}],"address":"","nodeName":"node2"}},"level":"info","msg":"syncing deleted GameServer","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z","workers":1}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Shutdown","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Shutdown","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":"http: Server closed","level":"info","msg":"health check: http server closed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting SDKServer http health check...","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting GameServer health checking","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4200d2d60), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":"no","level":"info","msg":"Did not allocate this GameServer. Ignoring for DeAllocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting SDKServer http health check...","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting GameServer health checking","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":"Could not listen on :8080: listen tcp :8080: bind: address already in use","level":"error","msg":"","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"Could not listen on :8080: listen tcp :8080: bind: address already in use","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).Run.func1\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:160","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420c5a5c0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Shutdown","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Shutdown State","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"created GameServer sidecar","namespace":"default","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":19,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z","workers":1}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Starting workers...","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:32Z","workers":1}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node2","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"warning","msg":"Could not find ExternalIP. Falling back to Internal","node":"node1","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"RequestReady","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing RequestReady State","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":14},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":17},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"0:10"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":16},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":18},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"0:11"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":15},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":19},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"0:12"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":10},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":11},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"0:13"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":12},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":13},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"0:14"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":18},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":19},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"1:10"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":10},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":11},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"1:11"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":12},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":15},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"1:12"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":17},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":16},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"1:13"}
Step #4 - "tests": {"error":null,"level":"info","msg":"Allocated Port","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":13},{"name":"another","portPolicy":"dynamic","containerPort":6666,"hostPort":14},{"name":"static","portPolicy":"static","containerPort":6666,"hostPort":9999}],"time":"2018-07-31T13:55:32Z","uid":"1:14"}
Step #4 - "tests": {"allocated":20,"count":20,"level":"info","msg":"How many allocated","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"creationValidationHandler","review":{"request":{"uid":"","kind":{"group":"stable.agones.dev","version":"v1alpha1","kind":"GameServer"},"resource":{"group":"","version":"","resource":""},"operation":"CREATE","userInfo":{},"object":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"oldObject":null},"response":{"uid":"","allowed":true}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"creationValidationHandler","review":{"request":{"uid":"","kind":{"group":"stable.agones.dev","version":"v1alpha1","kind":"GameServer"},"resource":{"group":"","version":"","resource":""},"operation":"CREATE","userInfo":{},"object":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null},"spec":{"container":"NOPE!","ports":[{"containerPort":7777}],"health":{},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}},{"name":"container2","image":"container/image","resources":{}}]}}},"status":{"state":"","ports":null,"address":"","nodeName":""}},"oldObject":null},"response":{"uid":"","allowed":true}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"deletionTimestamp":"2018-07-31T13:55:32Z","finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing with Deletion Timestamp","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gsName":"test","level":"info","msg":"Found pods, deleting","pods":[{"metadata":{"name":"test-","generateName":"test-","namespace":"default","creationTimestamp":null,"labels":{"stable.agones.dev/gameserver":"test","stable.agones.dev/role":"gameserver"},"annotations":{"stable.agones.dev/container":"container"},"ownerReferences":[{"apiVersion":"stable.agones.dev/v1alpha1","kind":"GameServer","name":"test","uid":"","controller":true,"blockOwnerDeletion":true}]},"spec":{"containers":[{"name":"container","image":"container/image","ports":[{"hostPort":9999,"containerPort":7777,"protocol":"UDP"}],"resources":{}}],"serviceAccountName":"agones-sdk"},"status":{}}],"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Invalid GameServer","review":{"request":{"uid":"","kind":{"group":"stable.agones.dev","version":"v1alpha1","kind":"GameServer"},"resource":{"group":"","version":"","resource":""},"operation":"CREATE","userInfo":{},"object":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null},"spec":{"container":"NOPE!","ports":[{"containerPort":7777}],"health":{},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}},{"name":"container2","image":"container/image","resources":{}}]}}},"status":{"state":"","ports":null,"address":"","nodeName":""}},"oldObject":null},"response":{"uid":"","allowed":false,"status":{"metadata":{},"status":"Failure","message":"GameServer configuration is invalid","reason":"Invalid","details":{"group":"stable.agones.dev","kind":"GameServer","causes":[{"reason":"FieldValueInvalid","message":"Could not find a container named NOPE!","field":"container"}]}}}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":10,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Port Allocation State","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"deletionTimestamp":"2018-07-31T13:55:32Z","finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing with Deletion Timestamp","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"deletionTimestamp":"2018-07-31T13:55:32Z"},"spec":{"container":"container","ports":[{"portPolicy":"static","containerPort":7777,"hostPort":9999,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"No pods found, removing finalizer stable.agones.dev","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"node1","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.PortAllocator","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.GameServerController","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Resetting Port Allocation","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Synchronising","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":12,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Port Allocation State","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"gs":{"metadata":{"name":"test","namespace":"default","creationTimestamp":null,"finalizers":["stable.agones.dev"]},"spec":{"container":"container","ports":[{"portPolicy":"dynamic","containerPort":7777,"hostPort":12,"protocol":"UDP"}],"health":{"periodSeconds":5,"failureThreshold":3,"initialDelaySeconds":5},"template":{"metadata":{"creationTimestamp":null},"spec":{"containers":[{"name":"container","image":"container/image","resources":{}}]}}},"status":{"state":"Creating","ports":null,"address":"","nodeName":""}},"level":"info","msg":"Syncing Create State","source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"creating Pod for GameServer","pod":{"metadata":{"generateName":"test-","namespace":"default","creationTimestamp":null,"labels":{"stable.agones.dev/gameserver":"test","stable.agones.dev/role":"gameserver"},"annotations":{"stable.agones.dev/container":"container"},"ownerReferences":[{"apiVersion":"stable.agones.dev/v1alpha1","kind":"GameServer","name":"test","uid":"","controller":true,"blockOwnerDeletion":true}]},"spec":{"containers":[{"name":"container","image":"container/image","ports":[{"hostPort":12,"containerPort":7777,"protocol":"UDP"}],"resources":{},"livenessProbe":{"httpGet":{"path":"/gshealthz","port":8080},"initialDelaySeconds":5,"periodSeconds":5,"failureThreshold":3}},{"name":"agones-gameserver-sidecar","image":"sidecar:dev","env":[{"name":"GAMESERVER_NAME","value":"test"},{"name":"POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}],"resources":{},"livenessProbe":{"httpGet":{"path":"/healthz","port":8080},"initialDelaySeconds":3,"periodSeconds":3}}],"serviceAccountName":"agones-sdk"},"status":{}},"source":"*gameservers.Controller","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","maxPort":20,"minPort":10,"msg":"Starting","source":"*gameservers.PortAllocator","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/mutate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"groupKind":{"Group":"stable.agones.dev","Kind":"GameServer"},"level":"info","msg":"Added webhook handler","op":"CREATE","path":"/validate","source":"*webhooks.WebHook","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"info","msg":"Wait for cache sync","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Pod: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"pods\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/vendor/k8s.io/client-go/informers/factory.go:87: Failed to watch *v1.Node: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"\", Version:\"v1\", Resource:\"nodes\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:fields.andTerm{}, ResourceVersion:\"\"}}","time":"2018-07-31T13:55:32Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"Synchronising","source":"*gameservers.Controller","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"key":"default/test","level":"info","msg":"GameServer is no longer available for syncing","source":"*gameservers.Controller","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Test Running","test":"disabled, over timeout","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420ca66e0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4205483c0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Health stream closed.","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:33Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Test Running","test":"enabled, under timeout","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"error":"http: Server closed","level":"info","msg":"health check: http server closed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"failureCount":2,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420549180), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:34Z"}
Step #4 - "tests": {"level":"info","msg":"Test Running","test":"enabled, over timeout","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"failureCount":3,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4202d2a00), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:35Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"failureCount":1,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"failureCount":2,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"failureCount":3,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"level":"info","msg":"Health Ping Received","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"failureCount":4,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420c5a9e0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:36Z"}
Step #4 - "tests": {"level":"info","msg":"Health stream closed.","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"level":"info","msg":"Processing obj","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"level":"info","msg":"Updating state","source":"*gameservers.SDKServer","state":"Unhealthy","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"error":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","level":"error","msg":"","obj":"Unhealthy","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"level":"error","msg":"could not retrieve GameServer default/test: gameserver.stable.agones.dev \"test\" not found","stack":["agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:185","agones.dev/agones/pkg/gameservers.NewSDKServer.func4\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:135","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:107","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:83","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134","agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88","agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).run\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:135","runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2361"],"time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"failureCount":5,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4202d30e0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:37Z"}
Step #4 - "tests": {"failureCount":6,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:38Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:38Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:38Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:38Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420549960), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:38Z"}
Step #4 - "tests": {"failureCount":7,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:39Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:39Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:39Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:39Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420549be0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:39Z"}
Step #4 - "tests": {"failureCount":8,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:40Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:40Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:40Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:40Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420549f20), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:40Z"}
Step #4 - "tests": {"failureCount":9,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:41Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:41Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:41Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:41Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4202d3a80), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:41Z"}
Step #4 - "tests": {"failureCount":10,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:42Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:42Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:42Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:42Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420832600), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:42Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:43Z"}
Step #4 - "tests": {"failureCount":11,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:43Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:43Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:43Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420ca7c80), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:43Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:44Z"}
Step #4 - "tests": {"failureCount":12,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:44Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:44Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:44Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4201b95a0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:44Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:45Z"}
Step #4 - "tests": {"failureCount":13,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:45Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:45Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:45Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4201b9c00), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:45Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:46Z"}
Step #4 - "tests": {"failureCount":14,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:46Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:46Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:46Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42051c720), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:46Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:47Z"}
Step #4 - "tests": {"failureCount":15,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:47Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:47Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:47Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42000c8a0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:47Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:48Z"}
Step #4 - "tests": {"failureCount":16,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:48Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:48Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:48Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42051cb00), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:48Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:49Z"}
Step #4 - "tests": {"failureCount":17,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:49Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:49Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:49Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4204224e0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:49Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:50Z"}
Step #4 - "tests": {"failureCount":18,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:50Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:50Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:50Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc420832c60), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:50Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:51Z"}
Step #4 - "tests": {"failureCount":19,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:51Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:51Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:51Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42000d2c0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:51Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:52Z"}
Step #4 - "tests": {"failureCount":20,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:52Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:52Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:52Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc42000d860), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:52Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:53Z"}
Step #4 - "tests": {"failureCount":21,"level":"info","msg":"GameServer Health Check failed","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:53Z"}
Step #4 - "tests": {"gameServerName":"test","level":"info","msg":"being marked as not healthy","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:53Z"}
Step #4 - "tests": {"key":"Unhealthy","level":"info","msg":"Enqueuing key","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:53Z"}
Step #4 - "tests": {"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unhandled watch: testing.WatchActionImpl{ActionImpl:testing.ActionImpl{Namespace:\"default\", Verb:\"watch\", Resource:schema.GroupVersionResource{Group:\"stable.agones.dev\", Version:\"v1alpha1\", Resource:\"gameservers\"}, Subresource:\"\"}, WatchRestrictions:testing.WatchRestrictions{Labels:labels.internalSelector(nil), Fields:(*fields.hasTerm)(0xc4208333a0), ResourceVersion:\"\"}}","time":"2018-07-31T13:55:53Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:54Z"}
Step #4 - "tests": {"error":"Get http://localhost:8080/gshealthz: dial tcp 127.0.0.1:8080: connect: connection refused","level":"error","msg":"Error connecting to http://localhost:8080/gshealthz","time":"2018-07-31T13:55:54Z"}
Step #4 - "tests": --- FAIL: TestSidecarHTTPHealthCheck (22.01s)
Step #4 - "tests": 	assertions.go:229: 
                        
	Error Trace:	helper_test.go:110
Step #4 - "tests": 		
			sdkserver_test.go:321
Step #4 - "tests": 		
	Error:		Expected nil, but got: &errors.errorString{s:"timed out waiting for the condition"}
Step #4 - "tests": 		
	Messages:	Timeout on http://localhost:8080/gshealthz health check, timed out waiting for the condition
Step #4 - "tests": 		
Step #4 - "tests": {"level":"info","msg":"...shutting down workers","queue":"stable.agones.dev.default.test","source":"*gameservers.SDKServer","time":"2018-07-31T13:55:54Z"}
Step #4 - "tests": FAIL
Step #4 - "tests": FAIL	agones.dev/agones/pkg/gameservers	25.846s
Step #4 - "tests": ok  	agones.dev/agones/pkg/gameserversets	2.922s
Step #4 - "tests": ?   	agones.dev/agones/pkg/sdk	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/testing	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/util	[no test files]
Step #4 - "tests": ok  	agones.dev/agones/pkg/util/crd	4.052s
Step #4 - "tests": ?   	agones.dev/agones/pkg/util/runtime	[no test files]
Step #4 - "tests": ?   	agones.dev/agones/pkg/util/signals	[no test files]
Step #4 - "tests": ok  	agones.dev/agones/pkg/util/webhooks	1.172s
Step #4 - "tests": ok  	agones.dev/agones/pkg/util/workerqueue	2.096s
Step #4 - "tests": ok  	agones.dev/agones/sdks/go	1.047s
Step #4 - "tests": Makefile:109: recipe for target 'test-go' failed
Step #4 - "tests": make: *** [test-go] Error 1
Finished Step #4 - "tests"
Finished Step #5 - "build"
ERROR
ERROR: build step 4 "make-docker" failed: exit status 2

@@ -288,3 +292,25 @@ func (c *Controller) allocate(f *stablev1alpha1.Fleet) (*stablev1alpha1.GameServ

return gs, nil
}

// patch the labels and annotations of an allocated GameServer with metadata from a FleetAllocation
func (c *Controller) patchMetadata(gs *stablev1alpha1.GameServer, fam *stablev1alpha1.FleetAllocationMeta) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@markmandel do you think we should move this to func(gs *stablev1alpha1.GameServer) MergeFleetMetadata(fam *stablev1alpha1.FleetAllocationMeta) and use it

if fam != nil {
		gsCopy.MergeFleetMetadata(fam)
	}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmnnn. Interesting question.

I guess I'm more inclined to leave it - since it's functionality that is only used in this particular place. If it ends up being logic that needs to be shared, we could move it then.

Do you think it likely that we would need to have this logic be run in multiple places?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no but it could be a function though since c is not used

Copy link
Contributor Author

@victor-prodan victor-prodan Jul 31, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We were talking of the game server being able to update its own metadata, right?
Could this function be reused for that?
And in that case, the function should be more generic, taking individual labels and annotations maps, as the game server should not be concerned about fleet allocations...
What do you think?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are lots of places where the method origin is not used - I feel that's more about providing context for where the functionality is being written. At least that's my perspective. If we move things into the GameServer - I believe they should have a wider usage.

@victor-prodan that's an interesting point.

Something like a (gs *GameServer) PatchMetaData(annotations map[string]string, labels map[string]string) ?

That being said, we could also revisit this when are actually doing the work to allow metadata updates, and actually know what the requirements would be, rather than trying to guess them now. I'm more in favour of copy-pasting twice, and implementing an abstraction on the third time 😄 (or thereabouts) than trying to abstract from the outset.

Personally, I think this PR is good to go. I'm happy to give it my approval.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's what I had in mind but I guess it's safer to wait until we have a definite need.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 476d902e-4f0d-420b-8594-768d256319cb

The following development artifacts have been built, and will exist for the next 30 days:

@markmandel markmandel added kind/feature New features for Agones area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc labels Jul 31, 2018
@markmandel
Copy link
Member

I almost hit approve, but I realised there is but one small thing missing!
https://github.com/GoogleCloudPlatform/agones/blob/master/docs/fleet_spec.md

The documentation for the spec needs updating as well - always be documenting! 😄

Probably just needs a section on the metadata which can be lifted from your examples/fleetallocation.yaml.

Although, please add a ":warning::warning::warning: This is currently a development feature and has not been released :warning::warning::warning:" above it, so that people are aware that it's not yet in a release (we remove these later).

This is just something we're doing until we get a website sorted out.

In the fleet allocation configuration you can add optional custom metadata that will be added to the game server in the moment of allocation

Generated files
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 89a3db52-5e30-465d-a97b-a6012ba28997

The following development artifacts have been built, and will exist for the next 30 days:

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@markmandel markmandel merged commit 54e374b into googleforgames:master Jul 31, 2018
@markmandel markmandel added this to the 0.4.0 milestone Aug 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc kind/feature New features for Agones
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants