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

Adding a README.md file for the simple-udp to help developer to get start #229

Closed

Conversation

g-ericso
Copy link
Contributor

Adding a README.md file for the simple-udp to help any developer to get start quicker. The instruction focus on how to customize the main.go file and deploy to GKE.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 6a086088-7dae-4d4a-b701-4dd453cda9e1

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

@markmandel
Copy link
Collaborator

So this looks pretty great - I'm wondering though, should this be a QuickStart instead?

Maybe something like "edit your first game server (go)", then we could also do the same with C++ etc?

WDYT?

@g-ericso
Copy link
Contributor Author

Thanks Mark.

Done.

For the C++, I can work on that and open another PR.

@markmandel
Copy link
Collaborator

This looks pretty good! @enocom did you want to take a quick peek, since I defer to you on Go things 😄 see if there is anything you think should be added to this?

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 3e85eab9-b22f-483a-a26c-e27a9f0d4497

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

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 67ce616b-136c-4b5f-b509-33430c5b1a3b

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

Copy link
Collaborator

@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.

A few more things to have a look at. Loving the overall direction though!

Apply the latest settings to kubernetes container.

```bash
>> gcloud config set container/cluster [CLUSTER_NAME]
Copy link
Collaborator

Choose a reason for hiding this comment

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

Wondering if we want to keep the gcloud commands? Shouldn't this already be done in the GKE section of the install documentation, and GKE is not a requisite.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This may need to be done again before running to docker run or any gcloud command to ensure the cluster name is set correctly. I have a concern that the developer may be working with other cluster name while reading this section.

Copy link
Collaborator

Choose a reason for hiding this comment

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

SGTM, given the above proviso 👍


### Push the image to GCP Registry
```bash
docker push gcr.io/[PROJECT_ID]/agones-udp-server:0.2
Copy link
Collaborator

Choose a reason for hiding this comment

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

What if they are running minikube, or their own registry? We should mention this.

Maybe add something like "..or a registry of your choice, such a hub.docker.com" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry that I am having some hard time to run "minikube" in my current local environment. I won't be able to help out to provide steps for that. I can update the README.md to mention about this.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Okay cool- I see the comment above. SGTM 👍


### Create a new docker image
```bash
docker build -t udp-gcr.io/[PROJECT_ID]/agones-udp-server:0.2 .
Copy link
Collaborator

Choose a reason for hiding this comment

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

what is udp-gcr.io ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch!. That's a typo.


1. Install golang from https://golang.org/doc/install.
2. Install Docker from https://www.docker.com/get-docker.
3. Install kubectl and gcloud by following the instruction https://github.com/GoogleCloudPlatform/agones.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I feel like this should be:

"Follow the install instructions (if you haven't already) at: https://github.com/GoogleCloudPlatform/agones/blob/master/install/README.md"

Since we aren't speccifically driving people to GKE, and we have install docs.

WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks. Done.

## Modify the code and push another new image

### Modify the source code
Modify the main.go file.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Do we want to show a change that can be made? Be explicit in the change? Might be a nicer user experience.

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, you are right.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 3493e4f3-fa3e-40e6-b9d2-76ba76674eb1

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

@markmandel markmandel added kind/documentation Documentation for Agones area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc labels May 29, 2018
Copy link
Contributor Author

@g-ericso g-ericso left a comment

Choose a reason for hiding this comment

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

Make changes according to the feedback.

## Modify the code and push another new image

### Modify the source code
Modify the main.go file.
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, you are right.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: fe44da75-a7c4-4caf-8df0-d776b0ae33b2

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

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: e8481caa-fb6b-46fa-bbcf-e256b309c45e

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

@enocom
Copy link
Contributor

enocom commented May 29, 2018

@markmandel As long as we squash all the commits, this work looks good to me!


## Prerequisites

1. Active GCP Project.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Doesn't the user still need go?

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. Added.

@@ -0,0 +1,98 @@
# Getting Started
The following instruction is to help any new developer to use this simple-udp example as the custom agones server template without much docker or kubernetes experience.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think this reads better (and fixes some capitalisation issues):

"The following guide is for developers without Docker or Kubernetes experience, that want to use the simple-udp example as a starting point for a custom game server."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

True.


## Prerequisites

1. Active GCP Project.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Expand to "Google Cloud Platforn (GCP)" - much like you did later on for GKE.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

True.



### Build Server
Since docker image is using alpine osx, the "go build" command has to include few more environment variables.
Copy link
Collaborator

Choose a reason for hiding this comment

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

docker => Docker
alpine osx => Alpine Linux

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks.


## Using Docker File without using Minikube

The following instruction is about how to use Docker image and push to the gcp without Minikube. For using Minikube with this server example, please try this your own and provide us feedback.
Copy link
Collaborator

Choose a reason for hiding this comment

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

"The following are instructions for Google Kubernetes Engine. We welcome a Pull Request to expand this to include Minikube as well"
^ I think that reads better, WDYT?

This line might also be better just after the sentence in "Getting Started" - WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


### Push the image to GCP Registry
```bash
docker push gcr.io/[PROJECT_ID]/agones-udp-server:0.2
Copy link
Collaborator

Choose a reason for hiding this comment

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

Okay cool- I see the comment above. SGTM 👍

Apply the latest settings to kubernetes container.

```bash
>> gcloud config set container/cluster [CLUSTER_NAME]
Copy link
Collaborator

Choose a reason for hiding this comment

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

SGTM, given the above proviso 👍

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: e60ce22b-565c-4429-963a-bfe5e7e34f4b

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

@markmandel
Copy link
Collaborator

Awesome. This LGTM, just needs to be rebased down to a single commit (see Contributing Guide), and I'll approve and merge!

@g-ericso
Copy link
Contributor Author

g-ericso commented May 30, 2018

Thanks both of you. But GitHub can let you select squash all commits into one after clicking the merge option. Can we do that instead?

https://help.github.com/articles/about-pull-request-merges/

@markmandel
Copy link
Collaborator

We do a rebase and merge strategy for PRs - which means we get the ability to freely use "update branch" without getting a really yuck git history. The downside being that we have to ask people to rebase to a single commit.

g-ericso and others added 6 commits May 30, 2018 10:54
Semver should have 3 digits, so we
should be releasing 0.2.0 next.
Added missing "\" at the end of command options.
Moved the installation documentation into the `install` directory
and on release, zip up the install instructions and yaml files
such that users can download and use them.
This PR does two things:
1) Ensure the built images always have the release
 registry
2) Ensure the release branch is pushed to upstream,
 rather than to a forked origin.
Realised there were a couple of steps missing
from the release checklist.
@g-ericso g-ericso force-pushed the g-ericso-simple-udp-readme branch from 66c5334 to 6b40c9c Compare May 30, 2018 17:56
@g-ericso
Copy link
Contributor Author

I just squashed my commits. Please check if LGTY.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 88d2148c-b674-401c-b442-4654211c9f5c

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

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 1662833f-0df1-47e4-81e4-a464843f2bea

Build Logs
starting build "1662833f-0df1-47e4-81e4-a464843f2bea"

FETCHSOURCE
Initialized empty Git repository in /workspace/.git/
From https://source.developers.google.com/p/agones-images/r/agones
 * branch            cf3212dd8c08fa55aaae6c2227268beda28c29bf -> FETCH_HEAD
HEAD is now at cf3212d Merge branch 'master' into g-ericso-simple-udp-readme
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  131.2MB

Step #1: Step 1/3 : FROM gcr.io/cloud-builders/docker
Step #1:  ---> e4b1f842aff4
Step #1: Step 2/3 : RUN apt-get install make
Step #1:  ---> Running in 410633ecc0c8
Step #1: Reading package lists...
Step #1: Building dependency tree...
Step #1: Reading state information...
Step #1: Suggested packages:
Step #1:   make-doc
Step #1: The following NEW packages will be installed:
Step #1:   make
Step #1: 0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Step #1: Need to get 151 kB of archives.
Step #1: After this operation, 365 kB of additional disk space will be used.
Step #1: Get:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 make amd64 4.1-6 [151 kB]
Step #1: Fetched 151 kB in 0s (183 kB/s)
Step #1: Selecting previously unselected package make.
Step #1: (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 11239 files and directories currently installed.)
Step #1: Preparing to unpack .../archives/make_4.1-6_amd64.deb ...
Step #1: Unpacking make (4.1-6) ...
Step #1: Setting up make (4.1-6) ...
Step #1: Removing intermediate container 410633ecc0c8
Step #1:  ---> 856e58ee2548
Step #1: Step 3/3 : ENTRYPOINT ["/usr/bin/make"]
Step #1:  ---> Running in 0174d8c75881
Step #1: Removing intermediate container 0174d8c75881
Step #1:  ---> c91c301647fc
Step #1: Successfully built c91c301647fc
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:77fc9af031 && docker tag gcr.io/agones-images/agones-build:77fc9af031 agones-build:77fc9af031
Step #2: 77fc9af031: Pulling from agones-images/agones-build
Step #2: c73ab1c6897b: Pulling fs layer
Step #2: 3091fac74ac3: Pulling fs layer
Step #2: 32ec8f15f1df: Pulling fs layer
Step #2: fac055c60f68: Pulling fs layer
Step #2: a59c15b8d483: Pulling fs layer
Step #2: 34efcc4fdf91: Pulling fs layer
Step #2: 84ff1f9b2468: Pulling fs layer
Step #2: 5168a6f2412d: Pulling fs layer
Step #2: 420eed74c2aa: Pulling fs layer
Step #2: 6f7712add452: Pulling fs layer
Step #2: dab7d4cc975f: Pulling fs layer
Step #2: 4c5943cfa1cc: Pulling fs layer
Step #2: a6abe2d36daf: Pulling fs layer
Step #2: 1c18bc879056: Pulling fs layer
Step #2: 8492be485b78: Pulling fs layer
Step #2: 55271adb1570: Pulling fs layer
Step #2: fac055c60f68: Waiting
Step #2: a59c15b8d483: Waiting
Step #2: 34efcc4fdf91: Waiting
Step #2: 84ff1f9b2468: Waiting
Step #2: 5168a6f2412d: Waiting
Step #2: 420eed74c2aa: Waiting
Step #2: 6f7712add452: Waiting
Step #2: dab7d4cc975f: Waiting
Step #2: 4c5943cfa1cc: Waiting
Step #2: a6abe2d36daf: Waiting
Step #2: 1c18bc879056: Waiting
Step #2: 8492be485b78: Waiting
Step #2: 55271adb1570: Waiting
Step #2: c73ab1c6897b: Verifying Checksum
Step #2: c73ab1c6897b: Download complete
Step #2: fac055c60f68: Verifying Checksum
Step #2: fac055c60f68: Download complete
Step #2: a59c15b8d483: Verifying Checksum
Step #2: a59c15b8d483: Download complete
Step #2: 3091fac74ac3: Verifying Checksum
Step #2: 3091fac74ac3: Download complete
Step #2: 34efcc4fdf91: Verifying Checksum
Step #2: 34efcc4fdf91: Download complete
Step #2: 84ff1f9b2468: Verifying Checksum
Step #2: 84ff1f9b2468: Download complete
Step #2: 5168a6f2412d: Verifying Checksum
Step #2: 5168a6f2412d: Download complete
Step #2: 6f7712add452: Verifying Checksum
Step #2: 6f7712add452: Download complete
Step #2: 420eed74c2aa: Verifying Checksum
Step #2: 420eed74c2aa: Download complete
Step #2: 4c5943cfa1cc: Verifying Checksum
Step #2: 4c5943cfa1cc: Download complete
Step #2: 32ec8f15f1df: Verifying Checksum
Step #2: 32ec8f15f1df: Download complete
Step #2: dab7d4cc975f: Verifying Checksum
Step #2: dab7d4cc975f: Download complete
Step #2: a6abe2d36daf: Verifying Checksum
Step #2: a6abe2d36daf: Download complete
Step #2: 1c18bc879056: Verifying Checksum
Step #2: 1c18bc879056: Download complete
Step #2: 8492be485b78: Verifying Checksum
Step #2: 8492be485b78: Download complete
Step #2: 55271adb1570: Verifying Checksum
Step #2: 55271adb1570: Download complete
Step #2: c73ab1c6897b: Pull complete
Step #2: 3091fac74ac3: Pull complete
Step #2: 32ec8f15f1df: Pull complete
Step #2: fac055c60f68: Pull complete
Step #2: a59c15b8d483: Pull complete
Step #2: 34efcc4fdf91: Pull complete
Step #2: 84ff1f9b2468: Pull complete
Step #2: 5168a6f2412d: Pull complete
Step #2: 420eed74c2aa: Pull complete
Step #2: 6f7712add452: Pull complete
Step #2: dab7d4cc975f: Pull complete
Step #2: 4c5943cfa1cc: Pull complete
Step #2: a6abe2d36daf: Pull complete
Step #2: 1c18bc879056: Pull complete
Step #2: 8492be485b78: Pull complete
Step #2: 55271adb1570: Pull complete
Step #2: Digest: sha256:a4f90e5ff24d687b9afcfaa1193c0d6f6397422be260d0d1241b6b55ae016d3e
Step #2: Status: Downloaded newer image for gcr.io/agones-images/agones-build:77fc9af031
Finished Step #2
Starting Step #3
Step #3: Already have image: make-docker
Step #3: mkdir -p ~/.kube
Step #3: mkdir -p /workspace/build//.config/gcloud
Step #3: 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:77fc9af031 bash -c \
Step #3: 	"/root/gen-lint-exclude.sh && gometalinter --config .exclude.gometalinter.json --deadline=5m -t --skip vendor ./..."
Step #3: docker run --rm -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones agones-build:77fc9af031 go test -race agones.dev/agones/...
Step #3: warning: ignoring symlink /go/src/agones.dev/agones/vendor/github.com/prometheus/procfs/fixtures/self
Step #3: ?   	agones.dev/agones	[no test files]
Step #3: ?   	agones.dev/agones/cmd/controller	[no test files]
Step #3: ?   	agones.dev/agones/cmd/sdk-server	[no test files]
Step #3: ?   	agones.dev/agones/examples/simple-udp/client	[no test files]
Step #3: ?   	agones.dev/agones/examples/simple-udp/server	[no test files]
Step #3: ?   	agones.dev/agones/examples/xonotic	[no test files]
Step #3: ?   	agones.dev/agones/pkg	[no test files]
Step #3: ?   	agones.dev/agones/pkg/apis	[no test files]
Step #3: ?   	agones.dev/agones/pkg/apis/stable	[no test files]
Step #3: ok  	agones.dev/agones/pkg/apis/stable/v1alpha1	1.524s
Step #3: ?   	agones.dev/agones/pkg/client	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/clientset/versioned	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/clientset/versioned/fake	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/clientset/versioned/scheme	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/clientset/versioned/typed/stable/v1alpha1	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/clientset/versioned/typed/stable/v1alpha1/fake	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/informers/externalversions	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/informers/externalversions/internalinterfaces	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/informers/externalversions/stable	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/informers/externalversions/stable/v1alpha1	[no test files]
Step #3: ?   	agones.dev/agones/pkg/client/listers/stable/v1alpha1	[no test files]
Step #3: ok  	agones.dev/agones/pkg/fleetallocation	12.490s
Step #3: ok  	agones.dev/agones/pkg/fleets	5.527s
Step #3: ok  	agones.dev/agones/pkg/gameservers	17.356s
Step #3: ok  	agones.dev/agones/pkg/gameserversets	3.410s
Step #3: ?   	agones.dev/agones/pkg/sdk	[no test files]
Step #3: ?   	agones.dev/agones/pkg/testing	[no test files]
Step #3: ?   	agones.dev/agones/pkg/util	[no test files]
Step #3: ok  	agones.dev/agones/pkg/util/crd	4.507s
Step #3: ?   	agones.dev/agones/pkg/util/runtime	[no test files]
Step #3: ?   	agones.dev/agones/pkg/util/signals	[no test files]
Step #3: ok  	agones.dev/agones/pkg/util/webhooks	1.582s
Step #3: ok  	agones.dev/agones/pkg/util/workerqueue	3.729s
Step #3: ok  	agones.dev/agones/sdks/go	1.013s
Step #3: mkdir -p /tmp/agones-install
Step #3: cp /workspace/install/yaml/install.yaml /tmp/agones-install/install.yaml
Step #3: sort /tmp/agones-install/install.yaml > /tmp/agones-install/install.yaml.sorted
Step #3: /usr/bin/make gen-install
Step #3: make[1]: Entering directory '/workspace/build'
Step #3: mkdir -p ~/.kube
Step #3: mkdir -p /workspace/build//.config/gcloud
Step #3: docker run --rm -v /workspace/build//.config/gcloud:/root/.config/gcloud -v ~/.kube:/root/.kube -v /workspace:/go/src/agones.dev/agones  agones-build:77fc9af031 bash -c \
Step #3: 	'helm template --name=agones-manual /go/src/agones.dev/agones/install/helm/agones \
Step #3: 	--set agones.controller.generateTLS=false \
Step #3: 	> /go/src/agones.dev/agones/install/yaml/install.yaml'
Step #3: make[1]: Leaving directory '/workspace/build'
Step #3: sort /workspace/install/yaml/install.yaml > /tmp/agones-install/install.current.yaml.sorted
Step #3: diff /tmp/agones-install/install.yaml.sorted /tmp/agones-install/install.current.yaml.sorted
Step #3: 1,303c1,303
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: < 
Step #3: <                                     maxLength: 63
Step #3: <                                     maxLength: 63
Step #3: <                                     minLength: 0
Step #3: <                                     minLength: 0
Step #3: <                                     minLength: 1
Step #3: <                                     minLength: 1
Step #3: <                                     pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <                                     pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <                                     type: string
Step #3: <                                     type: string
Step #3: <                                     type: string
Step #3: <                                     type: string
Step #3: <                                   image:
Step #3: <                                   image:
Step #3: <                                   name:
Step #3: <                                   name:
Step #3: <                                 - image
Step #3: <                                 - image
Step #3: <                                 properties:
Step #3: <                                 properties:
Step #3: <                                 required:
Step #3: <                                 required:
Step #3: <                                 type: object
Step #3: <                                 type: object
Step #3: <                               items:
Step #3: <                               items:
Step #3: <                               minItems: 1
Step #3: <                               minItems: 1
Step #3: <                               type: array
Step #3: <                               type: array
Step #3: <                             containers:
Step #3: <                             containers:
Step #3: <                             maxLength: 63
Step #3: <                             minLength: 0
Step #3: <                             minLength: 1
Step #3: <                             pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <                             type: string
Step #3: <                             type: string
Step #3: <                           - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: <                           - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: <                           - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: <                           - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: <                           - containers
Step #3: <                           - containers
Step #3: <                           image:
Step #3: <                           maximum: 2147483648
Step #3: <                           maximum: 2147483648
Step #3: <                           maximum: 2147483648
Step #3: <                           maximum: 2147483648
Step #3: <                           maximum: 2147483648
Step #3: <                           maximum: 2147483648
Step #3: <                           minimum: 0
Step #3: <                           minimum: 0
Step #3: <                           minimum: 0
Step #3: <                           minimum: 0
Step #3: <                           minimum: 1
Step #3: <                           minimum: 1
Step #3: <                           name:
Step #3: <                           port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: <                           port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: <                           portPolicy has two options:
Step #3: <                           portPolicy has two options:
Step #3: <                           properties:
Step #3: <                           properties:
Step #3: <                           required:
Step #3: <                           required:
Step #3: <                           title: Disable health checking. defaults to false, but can be set to true
Step #3: <                           title: Disable health checking. defaults to false, but can be set to true
Step #3: <                           title: How long before the server is considered not healthy
Step #3: <                           title: How long before the server is considered not healthy
Step #3: <                           title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: <                           title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: <                           title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: <                           title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: <                           type: boolean
Step #3: <                           type: boolean
Step #3: <                           type: integer
Step #3: <                           type: integer
Step #3: <                           type: integer
Step #3: <                           type: integer
Step #3: <                           type: integer
Step #3: <                           type: integer
Step #3: <                           type: object
Step #3: <                           type: object
Step #3: <                         - image
Step #3: <                         disabled:
Step #3: <                         disabled:
Step #3: <                         failureThreshold:
Step #3: <                         failureThreshold:
Step #3: <                         initialDelaySeconds:
Step #3: <                         initialDelaySeconds:
Step #3: <                         periodSeconds:
Step #3: <                         periodSeconds:
Step #3: <                         properties:
Step #3: <                         required:
Step #3: <                         spec:
Step #3: <                         spec:
Step #3: <                         type: object
Step #3: <                       - TCP
Step #3: <                       - TCP
Step #3: <                       - UDP
Step #3: <                       - UDP
Step #3: <                       - dynamic
Step #3: <                       - dynamic
Step #3: <                       - spec
Step #3: <                       - spec
Step #3: <                       - static
Step #3: <                       - static
Step #3: <                       description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: <                       description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: <                       description: if there is more than one container, specify which one is the game server
Step #3: <                       description: if there is more than one container, specify which one is the game server
Step #3: <                       description: |
Step #3: <                       description: |
Step #3: <                       enum:
Step #3: <                       enum:
Step #3: <                       enum:
Step #3: <                       enum:
Step #3: <                       items:
Step #3: <                       maxLength: 63
Step #3: <                       maxLength: 63
Step #3: <                       maximum: 65535
Step #3: <                       maximum: 65535
Step #3: <                       maximum: 65535
Step #3: <                       maximum: 65535
Step #3: <                       minItems: 1
Step #3: <                       minLength: 0
Step #3: <                       minLength: 0
Step #3: <                       minimum: 0
Step #3: <                       minimum: 0
Step #3: <                       minimum: 0
Step #3: <                       minimum: 0
Step #3: <                       pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <                       pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <                       properties:
Step #3: <                       properties:
Step #3: <                       properties:
Step #3: <                       properties:
Step #3: <                       required:
Step #3: <                       required:
Step #3: <                       title: Health checking for the running game server
Step #3: <                       title: Health checking for the running game server
Step #3: <                       title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: <                       title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: <                       title: The container name running the gameserver
Step #3: <                       title: The container name running the gameserver
Step #3: <                       title: The port exposed on the host
Step #3: <                       title: The port exposed on the host
Step #3: <                       title: The port that is being opened on the game server process
Step #3: <                       title: The port that is being opened on the game server process
Step #3: <                       title: the port policy that will be applied to the game server
Step #3: <                       title: the port policy that will be applied to the game server
Step #3: <                       type: array
Step #3: <                       type: integer
Step #3: <                       type: integer
Step #3: <                       type: integer
Step #3: <                       type: integer
Step #3: <                       type: object
Step #3: <                       type: object
Step #3: <                       type: object
Step #3: <                       type: object
Step #3: <                       type: string
Step #3: <                       type: string
Step #3: <                       type: string
Step #3: <                       type: string
Step #3: <                       type: string
Step #3: <                       type: string
Step #3: <                     - Recreate
Step #3: <                     - RollingUpdate
Step #3: <                     container:
Step #3: <                     container:
Step #3: <                     containerPort:
Step #3: <                     containerPort:
Step #3: <                     containers:
Step #3: <                     health:
Step #3: <                     health:
Step #3: <                     hostPort:
Step #3: <                     hostPort:
Step #3: <                     portPolicy:
Step #3: <                     portPolicy:
Step #3: <                     protocol:
Step #3: <                     protocol:
Step #3: <                     template:
Step #3: <                     template:
Step #3: <                   - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: <                   - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: <                   - containerPort
Step #3: <                   - containerPort
Step #3: <                   - containers
Step #3: <                   - template
Step #3: <                   - template
Step #3: <                   enum:
Step #3: <                   maximum: 2147483648
Step #3: <                   maximum: 2147483648
Step #3: <                   maximum: 2147483648
Step #3: <                   minimum: 0
Step #3: <                   minimum: 0
Step #3: <                   minimum: 1
Step #3: <                   port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: <                   portPolicy has two options:
Step #3: <                   properties:
Step #3: <                   properties:
Step #3: <                   properties:
Step #3: <                   required:
Step #3: <                   required:
Step #3: <                   required:
Step #3: <                   title: Disable health checking. defaults to false, but can be set to true
Step #3: <                   title: How long before the server is considered not healthy
Step #3: <                   title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: <                   title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: <                   type: boolean
Step #3: <                   type: integer
Step #3: <                   type: integer
Step #3: <                   type: integer
Step #3: <                   type: object
Step #3: <                 disabled:
Step #3: <                 failureThreshold:
Step #3: <                 initialDelaySeconds:
Step #3: <                 periodSeconds:
Step #3: <                 spec:
Step #3: <                 spec:
Step #3: <                 spec:
Step #3: <                 type:
Step #3: <               - TCP
Step #3: <               - UDP
Step #3: <               - dynamic
Step #3: <               - spec
Step #3: <               - spec
Step #3: <               - spec
Step #3: <               - static
Step #3: <               description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: <               description: if there is more than one container, specify which one is the game server
Step #3: <               description: |
Step #3: <               enum:
Step #3: <               enum:
Step #3: <               maxLength: 63
Step #3: <               maxLength: 63
Step #3: <               maximum: 65535
Step #3: <               maximum: 65535
Step #3: <               minLength: 0
Step #3: <               minLength: 1
Step #3: <               minimum: 0
Step #3: <               minimum: 0
Step #3: <               minimum: 0
Step #3: <               minimum: 0
Step #3: <               pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <               pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: <               properties:
Step #3: <               properties:
Step #3: <               properties:
Step #3: <               properties:
Step #3: <               properties:
Step #3: <               required:
Step #3: <               required:
Step #3: <               required:
Step #3: <               title: Health checking for the running game server
Step #3: <               title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: <               title: The container name running the gameserver
Step #3: <               title: The port exposed on the host
Step #3: <               title: The port that is being opened on the game server process
Step #3: <               title: the port policy that will be applied to the game server
Step #3: <               type: integer
Step #3: <               type: integer
Step #3: <               type: integer
Step #3: <               type: integer
Step #3: <               type: object
Step #3: <               type: object
Step #3: <               type: string
Step #3: <               type: string
Step #3: <               type: string
Step #3: <               type: string
Step #3: <             - fleetName
Step #3: <             - replicas
Step #3: <             - replicas
Step #3: <             - template
Step #3: <             - template
Step #3: <             container:
Step #3: <             containerPort:
Step #3: <             fleetName:
Step #3: <             health:
Step #3: <             hostPort:
Step #3: <             path: /live
Step #3: <             port: 8080
Step #3: <             portPolicy:
Step #3: <             protocol:
Step #3: <             replicas:
Step #3: <             replicas:
Step #3: <             strategy:
Step #3: <             template:
Step #3: <             template:              
Step #3: <             template:              
Step #3: ---
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: > 
Step #3: >                                     maxLength: 63
Step #3: >                                     maxLength: 63
Step #3: >                                     minLength: 0
Step #3: >                                     minLength: 0
Step #3: >                                     minLength: 1
Step #3: >                                     minLength: 1
Step #3: >                                     pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >                                     pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >                                     type: string
Step #3: >                                     type: string
Step #3: >                                     type: string
Step #3: >                                     type: string
Step #3: >                                   image:
Step #3: >                                   image:
Step #3: >                                   name:
Step #3: >                                   name:
Step #3: >                                 - image
Step #3: >                                 - image
Step #3: >                                 properties:
Step #3: >                                 properties:
Step #3: >                                 required:
Step #3: >                                 required:
Step #3: >                                 type: object
Step #3: >                                 type: object
Step #3: >                               items:
Step #3: >                               items:
Step #3: >                               minItems: 1
Step #3: >                               minItems: 1
Step #3: >                               type: array
Step #3: >                               type: array
Step #3: >                             containers:
Step #3: >                             containers:
Step #3: >                             maxLength: 63
Step #3: >                             minLength: 0
Step #3: >                             minLength: 1
Step #3: >                             pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >                             type: string
Step #3: >                             type: string
Step #3: >                           - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: >                           - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: >                           - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: >                           - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: >                           - containers
Step #3: >                           - containers
Step #3: >                           image:
Step #3: >                           maximum: 2147483648
Step #3: >                           maximum: 2147483648
Step #3: >                           maximum: 2147483648
Step #3: >                           maximum: 2147483648
Step #3: >                           maximum: 2147483648
Step #3: >                           maximum: 2147483648
Step #3: >                           minimum: 0
Step #3: >                           minimum: 0
Step #3: >                           minimum: 0
Step #3: >                           minimum: 0
Step #3: >                           minimum: 1
Step #3: >                           minimum: 1
Step #3: >                           name:
Step #3: >                           port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: >                           port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: >                           portPolicy has two options:
Step #3: >                           portPolicy has two options:
Step #3: >                           properties:
Step #3: >                           properties:
Step #3: >                           required:
Step #3: >                           required:
Step #3: >                           title: Disable health checking. defaults to false, but can be set to true
Step #3: >                           title: Disable health checking. defaults to false, but can be set to true
Step #3: >                           title: How long before the server is considered not healthy
Step #3: >                           title: How long before the server is considered not healthy
Step #3: >                           title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: >                           title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: >                           title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: >                           title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: >                           type: boolean
Step #3: >                           type: boolean
Step #3: >                           type: integer
Step #3: >                           type: integer
Step #3: >                           type: integer
Step #3: >                           type: integer
Step #3: >                           type: integer
Step #3: >                           type: integer
Step #3: >                           type: object
Step #3: >                           type: object
Step #3: >                         - image
Step #3: >                         disabled:
Step #3: >                         disabled:
Step #3: >                         failureThreshold:
Step #3: >                         failureThreshold:
Step #3: >                         initialDelaySeconds:
Step #3: >                         initialDelaySeconds:
Step #3: >                         periodSeconds:
Step #3: >                         periodSeconds:
Step #3: >                         properties:
Step #3: >                         required:
Step #3: >                         spec:
Step #3: >                         spec:
Step #3: >                         type: object
Step #3: >                       - TCP
Step #3: >                       - TCP
Step #3: >                       - UDP
Step #3: >                       - UDP
Step #3: >                       - dynamic
Step #3: >                       - dynamic
Step #3: >                       - spec
Step #3: >                       - spec
Step #3: >                       - static
Step #3: >                       - static
Step #3: >                       description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: >                       description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: >                       description: if there is more than one container, specify which one is the game server
Step #3: >                       description: if there is more than one container, specify which one is the game server
Step #3: >                       description: |
Step #3: >                       description: |
Step #3: >                       enum:
Step #3: >                       enum:
Step #3: >                       enum:
Step #3: >                       enum:
Step #3: >                       items:
Step #3: >                       maxLength: 63
Step #3: >                       maxLength: 63
Step #3: >                       maximum: 65535
Step #3: >                       maximum: 65535
Step #3: >                       maximum: 65535
Step #3: >                       maximum: 65535
Step #3: >                       minItems: 1
Step #3: >                       minLength: 0
Step #3: >                       minLength: 0
Step #3: >                       minimum: 0
Step #3: >                       minimum: 0
Step #3: >                       minimum: 0
Step #3: >                       minimum: 0
Step #3: >                       pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >                       pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >                       properties:
Step #3: >                       properties:
Step #3: >                       properties:
Step #3: >                       properties:
Step #3: >                       required:
Step #3: >                       required:
Step #3: >                       title: Health checking for the running game server
Step #3: >                       title: Health checking for the running game server
Step #3: >                       title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: >                       title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: >                       title: The container name running the gameserver
Step #3: >                       title: The container name running the gameserver
Step #3: >                       title: The port exposed on the host
Step #3: >                       title: The port exposed on the host
Step #3: >                       title: The port that is being opened on the game server process
Step #3: >                       title: The port that is being opened on the game server process
Step #3: >                       title: the port policy that will be applied to the game server
Step #3: >                       title: the port policy that will be applied to the game server
Step #3: >                       type: array
Step #3: >                       type: integer
Step #3: >                       type: integer
Step #3: >                       type: integer
Step #3: >                       type: integer
Step #3: >                       type: object
Step #3: >                       type: object
Step #3: >                       type: object
Step #3: >                       type: object
Step #3: >                       type: string
Step #3: >                       type: string
Step #3: >                       type: string
Step #3: >                       type: string
Step #3: >                       type: string
Step #3: >                       type: string
Step #3: >                     - Recreate
Step #3: >                     - RollingUpdate
Step #3: >                     container:
Step #3: >                     container:
Step #3: >                     containerPort:
Step #3: >                     containerPort:
Step #3: >                     containers:
Step #3: >                     health:
Step #3: >                     health:
Step #3: >                     hostPort:
Step #3: >                     hostPort:
Step #3: >                     portPolicy:
Step #3: >                     portPolicy:
Step #3: >                     protocol:
Step #3: >                     protocol:
Step #3: >                     template:
Step #3: >                     template:
Step #3: >                   - "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to
Step #3: >                   - "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the
Step #3: >                   - containerPort
Step #3: >                   - containerPort
Step #3: >                   - containers
Step #3: >                   - template
Step #3: >                   - template
Step #3: >                   enum:
Step #3: >                   maximum: 2147483648
Step #3: >                   maximum: 2147483648
Step #3: >                   maximum: 2147483648
Step #3: >                   minimum: 0
Step #3: >                   minimum: 0
Step #3: >                   minimum: 1
Step #3: >                   port is available. When static is the policy specified, `hostPort` is required to be populated
Step #3: >                   portPolicy has two options:
Step #3: >                   properties:
Step #3: >                   properties:
Step #3: >                   properties:
Step #3: >                   required:
Step #3: >                   required:
Step #3: >                   required:
Step #3: >                   title: Disable health checking. defaults to false, but can be set to true
Step #3: >                   title: How long before the server is considered not healthy
Step #3: >                   title: Minimum consecutive failures for the health probe to be considered failed after having succeeded.
Step #3: >                   title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds
Step #3: >                   type: boolean
Step #3: >                   type: integer
Step #3: >                   type: integer
Step #3: >                   type: integer
Step #3: >                   type: object
Step #3: >                 disabled:
Step #3: >                 failureThreshold:
Step #3: >                 initialDelaySeconds:
Step #3: >                 periodSeconds:
Step #3: >                 spec:
Step #3: >                 spec:
Step #3: >                 spec:
Step #3: >                 type:
Step #3: >               - TCP
Step #3: >               - UDP
Step #3: >               - dynamic
Step #3: >               - spec
Step #3: >               - spec
Step #3: >               - spec
Step #3: >               - static
Step #3: >               description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic".
Step #3: >               description: if there is more than one container, specify which one is the game server
Step #3: >               description: |
Step #3: >               enum:
Step #3: >               enum:
Step #3: >               maxLength: 63
Step #3: >               maxLength: 63
Step #3: >               maximum: 65535
Step #3: >               maximum: 65535
Step #3: >               minLength: 0
Step #3: >               minLength: 1
Step #3: >               minimum: 0
Step #3: >               minimum: 0
Step #3: >               minimum: 0
Step #3: >               minimum: 0
Step #3: >               pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >               pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
Step #3: >               properties:
Step #3: >               properties:
Step #3: >               properties:
Step #3: >               properties:
Step #3: >               properties:
Step #3: >               required:
Step #3: >               required:
Step #3: >               required:
Step #3: >               title: Health checking for the running game server
Step #3: >               title: Protocol being used. Defaults to UDP. TCP is the only other option
Step #3: >               title: The container name running the gameserver
Step #3: >               title: The port exposed on the host
Step #3: >               title: The port that is being opened on the game server process
Step #3: >               title: the port policy that will be applied to the game server
Step #3: >               type: integer
Step #3: >               type: integer
Step #3: >               type: integer
Step #3: >               type: integer
Step #3: >               type: object
Step #3: >               type: object
Step #3: >               type: string
Step #3: >               type: string
Step #3: >               type: string
Step #3: >               type: string
Step #3: >             - fleetName
Step #3: >             - replicas
Step #3: >             - replicas
Step #3: >             - template
Step #3: >             - template
Step #3: >             container:
Step #3: >             containerPort:
Step #3: >             fleetName:
Step #3: >             health:
Step #3: >             hostPort:
Step #3: >             path: /live
Step #3: >             port: 8080
Step #3: >             portPolicy:
Step #3: >             protocol:
Step #3: >             replicas:
Step #3: >             replicas:
Step #3: >             strategy:
Step #3: >             template:
Step #3: >             template:              
Step #3: >             template:              
Step #3: 317c317
Step #3: <           - containerPort
Step #3: ---
Step #3: >           - containerPort
Step #3: 321,348c321,348
Step #3: <           - template
Step #3: <           failureThreshold: 3
Step #3: <           httpGet:
Step #3: <           initialDelaySeconds: 3
Step #3: <           mountPath: /home/agones/certs
Step #3: <           periodSeconds: 3
Step #3: <           properties:
Step #3: <           properties:
Step #3: <           properties:
Step #3: <           properties:
Step #3: <           readOnly: true
Step #3: <           required:
Step #3: <           required:
Step #3: <           required:
Step #3: <           required:
Step #3: <           secretName: agones-manual-cert
Step #3: <           timeoutSeconds: 1
Step #3: <           value: "7000" 
Step #3: <           value: "8000"
Step #3: <           value: "false"
Step #3: <           value: "gcr.io/agones-images/agones-sdk:0.2.0.rc"
Step #3: <         # maximum port that can be exposed to GameServer traffic
Step #3: <         # minimum port that can be exposed to GameServer traffic
Step #3: <         - name: ALWAYS_PULL_SIDECAR # set the sidecar imagePullPolicy to Always
Step #3: <         - name: MAX_PORT
Step #3: <         - name: MIN_PORT
Step #3: <         - name: SIDECAR # overwrite the GameServer sidecar image that is used
Step #3: <         - name: certs
Step #3: ---
Step #3: >           - template
Step #3: >           failureThreshold: 3
Step #3: >           httpGet:
Step #3: >           initialDelaySeconds: 3
Step #3: >           mountPath: /home/agones/certs
Step #3: >           periodSeconds: 3
Step #3: >           properties:
Step #3: >           properties:
Step #3: >           properties:
Step #3: >           properties:
Step #3: >           readOnly: true
Step #3: >           required:
Step #3: >           required:
Step #3: >           required:
Step #3: >           required:
Step #3: >           secretName: agones-manual-cert
Step #3: >           timeoutSeconds: 1
Step #3: >           value: "7000" 
Step #3: >           value: "8000"
Step #3: >           value: "false"
Step #3: >           value: "gcr.io/agones-images/agones-sdk:0.2.0.rc"
Step #3: >         # maximum port that can be exposed to GameServer traffic
Step #3: >         # minimum port that can be exposed to GameServer traffic
Step #3: >         - name: ALWAYS_PULL_SIDECAR # set the sidecar imagePullPolicy to Always
Step #3: >         - name: MAX_PORT
Step #3: >         - name: MIN_PORT
Step #3: >         - name: SIDECAR # overwrite the GameServer sidecar image that is used
Step #3: >         - name: certs
Step #3: 352,358c352,358
Step #3: <         app: agones
Step #3: <         chart: agones-0.2.0
Step #3: <         env:
Step #3: <         heritage: Tiller
Step #3: <         image: "gcr.io/agones-images/agones-controller:0.2.0.rc"
Step #3: <         imagePullPolicy: IfNotPresent
Step #3: <         livenessProbe:
Step #3: ---
Step #3: >         app: agones
Step #3: >         chart: agones-0.2.0
Step #3: >         env:
Step #3: >         heritage: Tiller
Step #3: >         image: "gcr.io/agones-images/agones-controller:0.2.0.rc"
Step #3: >         imagePullPolicy: IfNotPresent
Step #3: >         livenessProbe:
Step #3: 368c368
Step #3: <         release: agones-manual
Step #3: ---
Step #3: >         release: agones-manual
Step #3: 372,378c372,378
Step #3: <         secret:
Step #3: <         spec:
Step #3: <         spec:
Step #3: <         spec:
Step #3: <         spec:
Step #3: <         stable.agones.dev/role: controller
Step #3: <         volumeMounts:
Step #3: ---
Step #3: >         secret:
Step #3: >         spec:
Step #3: >         spec:
Step #3: >         spec:
Step #3: >         spec:
Step #3: >         stable.agones.dev/role: controller
Step #3: >         volumeMounts:
Step #3: 382,384c382,384
Step #3: <       - name: agones-controller
Step #3: <       - name: certs
Step #3: <       - spec
Step #3: ---
Step #3: >       - name: agones-controller
Step #3: >       - name: certs
Step #3: >       - spec
Step #3: 387,393c387,393
Step #3: <       containers:
Step #3: <       labels:
Step #3: <       properties:
Step #3: <       properties:
Step #3: <       properties:
Step #3: <       properties:
Step #3: <       required:
Step #3: ---
Step #3: >       containers:
Step #3: >       labels:
Step #3: >       properties:
Step #3: >       properties:
Step #3: >       properties:
Step #3: >       properties:
Step #3: >       required:
Step #3: 396,417c396,417
Step #3: <       serviceAccountName: agones-controller
Step #3: <       targetPort: 8081
Step #3: <       volumes:
Step #3: <     - fla
Step #3: <     - flt
Step #3: <     - gs
Step #3: <     - gss
Step #3: <     - gsset
Step #3: <     - port: 443
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: <     app: agones
Step #3: ---
Step #3: >       serviceAccountName: agones-controller
Step #3: >       targetPort: 8081
Step #3: >       volumes:
Step #3: >     - fla
Step #3: >     - flt
Step #3: >     - gs
Step #3: >     - gss
Step #3: >     - gsset
Step #3: >     - port: 443
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: >     app: agones
Step #3: 421,433c421,433
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: <     chart: agones-0.2.0
Step #3: ---
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: >     chart: agones-0.2.0
Step #3: 436a437,438
Step #3: >     component: controller
Step #3: >     component: controller
Step #3: 438,443c440,443
Step #3: <     component: controller
Step #3: <     component: controller
Step #3: <     component: crd
Step #3: <     component: crd
Step #3: <     component: crd
Step #3: <     component: crd
Step #3: ---
Step #3: >     component: crd
Step #3: >     component: crd
Step #3: >     component: crd
Step #3: >     component: crd
Step #3: 447,473c447,473
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     heritage: Tiller
Step #3: <     kind: Fleet
Step #3: <     kind: FleetAllocation
Step #3: <     kind: GameServer
Step #3: <     kind: GameServerSet
Step #3: <     metadata:
Step #3: <     openAPIV3Schema:
Step #3: <     openAPIV3Schema:
Step #3: <     openAPIV3Schema:
Step #3: <     openAPIV3Schema:      
Step #3: <     plural: fleetallocations
Step #3: <     plural: fleets
Step #3: <     plural: gameservers
Step #3: <     plural: gameserversets
Step #3: ---
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     heritage: Tiller
Step #3: >     kind: Fleet
Step #3: >     kind: FleetAllocation
Step #3: >     kind: GameServer
Step #3: >     kind: GameServerSet
Step #3: >     metadata:
Step #3: >     openAPIV3Schema:
Step #3: >     openAPIV3Schema:
Step #3: >     openAPIV3Schema:
Step #3: >     openAPIV3Schema:      
Step #3: >     plural: fleetallocations
Step #3: >     plural: fleets
Step #3: >     plural: gameservers
Step #3: >     plural: gameserversets
Step #3: 475,487c475,487
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: <     release: agones-manual
Step #3: ---
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: >     release: agones-manual
Step #3: 491,501c491,501
Step #3: <     shortNames:
Step #3: <     shortNames:
Step #3: <     shortNames:
Step #3: <     shortNames:
Step #3: <     singular: fleet
Step #3: <     singular: fleetallocation
Step #3: <     singular: gameserver
Step #3: <     singular: gameserverset
Step #3: <     spec:
Step #3: <     stable.agones.dev/role: controller
Step #3: <     type: Recreate
Step #3: ---
Step #3: >     shortNames:
Step #3: >     shortNames:
Step #3: >     shortNames:
Step #3: >     shortNames:
Step #3: >     singular: fleet
Step #3: >     singular: fleetallocation
Step #3: >     singular: gameserver
Step #3: >     singular: gameserverset
Step #3: >     spec:
Step #3: >     stable.agones.dev/role: controller
Step #3: >     type: Recreate
Step #3: 504,534c504,534
Step #3: <   apiGroup: rbac.authorization.k8s.io
Step #3: <   apiGroup: rbac.authorization.k8s.io
Step #3: <   apiGroup: rbac.authorization.k8s.io
Step #3: <   apiGroup: rbac.authorization.k8s.io
Step #3: <   group: stable.agones.dev
Step #3: <   group: stable.agones.dev
Step #3: <   group: stable.agones.dev
Step #3: <   group: stable.agones.dev
Step #3: <   kind: ClusterRole
Step #3: <   kind: ClusterRole
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   labels:
Step #3: <   name: agones-controller
Step #3: <   name: agones-controller
Step #3: <   name: agones-controller
Step #3: <   name: agones-controller
Step #3: <   name: agones-controller-access
Step #3: <   name: agones-controller-service
Step #3: ---
Step #3: >   apiGroup: rbac.authorization.k8s.io
Step #3: >   apiGroup: rbac.authorization.k8s.io
Step #3: >   apiGroup: rbac.authorization.k8s.io
Step #3: >   apiGroup: rbac.authorization.k8s.io
Step #3: >   group: stable.agones.dev
Step #3: >   group: stable.agones.dev
Step #3: >   group: stable.agones.dev
Step #3: >   group: stable.agones.dev
Step #3: >   kind: ClusterRole
Step #3: >   kind: ClusterRole
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   labels:
Step #3: >   name: agones-controller
Step #3: >   name: agones-controller
Step #3: >   name: agones-controller
Step #3: >   name: agones-controller
Step #3: >   name: agones-controller-access
Step #3: >   name: agones-controller-service
Step #3: 537,541c537,541
Step #3: <   name: agones-sdk
Step #3: <   name: agones-sdk
Step #3: <   name: agones-sdk
Step #3: <   name: agones-sdk-access
Step #3: <   name: agones-system
Step #3: ---
Step #3: >   name: agones-sdk
Step #3: >   name: agones-sdk
Step #3: >   name: agones-sdk
Step #3: >   name: agones-sdk-access
Step #3: >   name: agones-system
Step #3: 543,553c543,558
Step #3: <   name: fleetallocations.stable.agones.dev
Step #3: <   name: fleets.stable.agones.dev
Step #3: <   name: gameservers.stable.agones.dev
Step #3: <   name: gameserversets.stable.agones.dev
Step #3: <   name: system:serviceaccount:agones-system:agones-controller
Step #3: <   name: system:serviceaccount:default:agones-sdk
Step #3: <   names:
Step #3: <   names:
Step #3: <   names:
Step #3: <   names:
Step #3: <   namespace: agones-system
Step #3: ---
Step #3: >   name: fleetallocations.stable.agones.dev
Step #3: >   name: fleets.stable.agones.dev
Step #3: >   name: gameservers.stable.agones.dev
Step #3: >   name: gameserversets.stable.agones.dev
Step #3: >   name: system:serviceaccount:agones-system:agones-controller
Step #3: >   name: system:serviceaccount:default:agones-sdk
Step #3: >   names:
Step #3: >   names:
Step #3: >   names:
Step #3: >   names:
Step #3: >   namespace: agones-system
Step #3: >   namespace: agones-system
Step #3: >   namespace: agones-system
Step #3: >   namespace: agones-system
Step #3: >   namespace: agones-system
Step #3: >   namespace: agones-system
Step #3: 557,577c562,577
Step #3: <   namespace: agones-system
Step #3: <   namespace: agones-system
Step #3: <   namespace: agones-system
Step #3: <   namespace: agones-system
Step #3: <   namespace: agones-system
Step #3: <   namespace: default
Step #3: <   namespace: default
Step #3: <   ports:
Step #3: <   replicas: 1
Step #3: <   resources: ["customresourcedefinitions"]
Step #3: <   resources: ["events"]
Step #3: <   resources: ["fleets", "fleetallocations"]
Step #3: <   resources: ["gameservers", "gameserversets"]
Step #3: <   resources: ["gameservers"]
Step #3: <   resources: ["nodes"]
Step #3: <   resources: ["pods"]
Step #3: <   scope: Namespaced
Step #3: <   scope: Namespaced
Step #3: <   scope: Namespaced
Step #3: <   scope: Namespaced
Step #3: <   selector:
Step #3: ---
Step #3: >   namespace: default
Step #3: >   namespace: default
Step #3: >   ports:
Step #3: >   replicas: 1
Step #3: >   resources: ["customresourcedefinitions"]
Step #3: >   resources: ["events"]
Step #3: >   resources: ["fleets", "fleetallocations"]
Step #3: >   resources: ["gameservers", "gameserversets"]
Step #3: >   resources: ["gameservers"]
Step #3: >   resources: ["nodes"]
Step #3: >   resources: ["pods"]
Step #3: >   scope: Namespaced
Step #3: >   scope: Namespaced
Step #3: >   scope: Namespaced
Step #3: >   scope: Namespaced
Step #3: >   selector:
Step #3: 580,605c580,623
Step #3: <   strategy:
Step #3: <   template:
Step #3: <   validation:
Step #3: <   validation:
Step #3: <   validation:
Step #3: <   validation:
Step #3: <   verbs: ["create", "delete", "get", "list", "update", "watch"]
Step #3: <   verbs: ["create", "delete", "list", "watch"]
Step #3: <   verbs: ["create"]
Step #3: <   verbs: ["get", "list", "update", "watch"]
Step #3: <   verbs: ["get", "update"]
Step #3: <   verbs: ["get"]
Step #3: <   verbs: ["list", "watch"]
Step #3: <   version: v1alpha1
Step #3: <   version: v1alpha1
Step #3: <   version: v1alpha1
Step #3: <   version: v1alpha1
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: ---
Step #3: >   strategy:
Step #3: >   template:
Step #3: >   validation:
Step #3: >   validation:
Step #3: >   validation:
Step #3: >   validation:
Step #3: >   verbs: ["create", "delete", "get", "list", "update", "watch"]
Step #3: >   verbs: ["create", "delete", "list", "watch"]
Step #3: >   verbs: ["create"]
Step #3: >   verbs: ["get", "list", "update", "watch"]
Step #3: >   verbs: ["get", "update"]
Step #3: >   verbs: ["get"]
Step #3: >   verbs: ["list", "watch"]
Step #3: >   version: v1alpha1
Step #3: >   version: v1alpha1
Step #3: >   version: v1alpha1
Step #3: >   version: v1alpha1
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: > #
Step #3: 609,629c627,635
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: ---
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: > #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: 631,637c637,645
Step #3: make: *** [test-install-yaml] Error 1
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < #     http://www.apache.org/licenses/LICENSE-2.0
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: ---
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: > # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: 639,652c647,655
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Copyright 2018 Google Inc. All Rights Reserved.
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: ---
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: > # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: 654,660c657,665
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # Licensed under the Apache License, Version 2.0 (the "License");
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: ---
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: > # See the License for the specific language governing permissions and
Step #3: 662,678c667,685
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # See the License for the specific language governing permissions and
Step #3: < # Source: agones/templates/admissionregistration.yaml
Step #3: < # Source: agones/templates/controller.yaml
Step #3: < # Source: agones/templates/crds/fleet.yaml
Step #3: < # Source: agones/templates/crds/fleetallocation.yaml
Step #3: < # Source: agones/templates/crds/gameserver.yaml
Step #3: < # Source: agones/templates/crds/gameserverset.yaml
Step #3: < # Source: agones/templates/namespace.yaml
Step #3: < # Source: agones/templates/service.yaml
Step #3: < # Source: agones/templates/serviceaccounts/controller.yaml
Step #3: < # Source: agones/templates/serviceaccounts/sdk.yaml
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: ---
Step #3: > # Source: agones/templates/admissionregistration.yaml
Step #3: > # Source: agones/templates/controller.yaml
Step #3: > # Source: agones/templates/crds/fleet.yaml
Step #3: > # Source: agones/templates/crds/fleetallocation.yaml
Step #3: > # Source: agones/templates/crds/gameserver.yaml
Step #3: > # Source: agones/templates/crds/gameserverset.yaml
Step #3: > # Source: agones/templates/namespace.yaml
Step #3: > # Source: agones/templates/service.yaml
Step #3: > # Source: agones/templates/serviceaccounts/controller.yaml
Step #3: > # Source: agones/templates/serviceaccounts/sdk.yaml
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: > # Unless required by applicable law or agreed to in writing, software
Step #3: 680,693c687,695
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # Unless required by applicable law or agreed to in writing, software
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: ---
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: 695,701c697,705
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: ---
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: > # You may obtain a copy of the License at
Step #3: 703,709c707,715
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # You may obtain a copy of the License at
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: ---
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: > # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: 711,724c717,725
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # distributed under the License is distributed on an "AS IS" BASIS,
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: < # limitations under the License.
Step #3: ---
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: > # limitations under the License.
Step #3: 726,732c727,735
Step #3: < # limitations under the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: ---
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: > # you may not use this file except in compliance with the License.
Step #3: 734,760c737,760
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < # you may not use this file except in compliance with the License.
Step #3: < - apiGroups: [""]
Step #3: < - apiGroups: [""]
Step #3: < - apiGroups: [""]
Step #3: < - apiGroups: ["apiextensions.k8s.io"]
Step #3: < - apiGroups: ["stable.agones.dev"]
Step #3: < - apiGroups: ["stable.agones.dev"]
Step #3: < - apiGroups: ["stable.agones.dev"]
Step #3: < - kind: User
Step #3: < - kind: User
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: < ---
Step #3: ---
Step #3: > - apiGroups: [""]
Step #3: > - apiGroups: [""]
Step #3: > - apiGroups: [""]
Step #3: > - apiGroups: ["apiextensions.k8s.io"]
Step #3: > - apiGroups: ["stable.agones.dev"]
Step #3: > - apiGroups: ["stable.agones.dev"]
Step #3: > - apiGroups: ["stable.agones.dev"]
Step #3: > - kind: User
Step #3: > - kind: User
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: > ---
Step #3: 766,778c766,778
Step #3: < apiVersion: apiextensions.k8s.io/v1beta1
Step #3: < apiVersion: apiextensions.k8s.io/v1beta1
Step #3: < apiVersion: apiextensions.k8s.io/v1beta1
Step #3: < apiVersion: apiextensions.k8s.io/v1beta1
Step #3: < apiVersion: extensions/v1beta1
Step #3: < apiVersion: rbac.authorization.k8s.io/v1
Step #3: < apiVersion: rbac.authorization.k8s.io/v1
Step #3: < apiVersion: rbac.authorization.k8s.io/v1
Step #3: < apiVersion: rbac.authorization.k8s.io/v1
Step #3: < apiVersion: v1
Step #3: < apiVersion: v1
Step #3: < apiVersion: v1
Step #3: < apiVersion: v1
Step #3: ---
Step #3: > apiVersion: apiextensions.k8s.io/v1beta1
Step #3: > apiVersion: apiextensions.k8s.io/v1beta1
Step #3: > apiVersion: apiextensions.k8s.io/v1beta1
Step #3: > apiVersion: apiextensions.k8s.io/v1beta1
Step #3: > apiVersion: extensions/v1beta1
Step #3: > apiVersion: rbac.authorization.k8s.io/v1
Step #3: > apiVersion: rbac.authorization.k8s.io/v1
Step #3: > apiVersion: rbac.authorization.k8s.io/v1
Step #3: > apiVersion: rbac.authorization.k8s.io/v1
Step #3: > apiVersion: v1
Step #3: > apiVersion: v1
Step #3: > apiVersion: v1
Step #3: > apiVersion: v1
Step #3: 781,788c781,788
Step #3: < kind: ClusterRole
Step #3: < kind: ClusterRole
Step #3: < kind: ClusterRoleBinding
Step #3: < kind: CustomResourceDefinition
Step #3: < kind: CustomResourceDefinition
Step #3: < kind: CustomResourceDefinition
Step #3: < kind: CustomResourceDefinition
Step #3: < kind: Deployment
Step #3: ---
Step #3: > kind: ClusterRole
Step #3: > kind: ClusterRole
Step #3: > kind: ClusterRoleBinding
Step #3: > kind: CustomResourceDefinition
Step #3: > kind: CustomResourceDefinition
Step #3: > kind: CustomResourceDefinition
Step #3: > kind: CustomResourceDefinition
Step #3: > kind: Deployment
Step #3: 790,791c790,791
Step #3: < kind: Namespace
Step #3: < kind: RoleBinding
Step #3: ---
Step #3: > kind: Namespace
Step #3: > kind: RoleBinding
Step #3: 793,795c793,795
Step #3: < kind: Service
Step #3: < kind: ServiceAccount
Step #3: < kind: ServiceAccount
Step #3: ---
Step #3: > kind: Service
Step #3: > kind: ServiceAccount
Step #3: > kind: ServiceAccount
Step #3: 796a797,809
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: > metadata:
Step #3: 800,824c813,824
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < metadata:
Step #3: < roleRef:
Step #3: < roleRef:
Step #3: < rules:
Step #3: < rules:
Step #3: < spec:
Step #3: < spec:
Step #3: < spec:
Step #3: < spec:
Step #3: < spec:
Step #3: < spec:
Step #3: < subjects:
Step #3: < subjects:
Step #3: ---
Step #3: > roleRef:
Step #3: > roleRef:
Step #3: > rules:
Step #3: > rules:
Step #3: > spec:
Step #3: > spec:
Step #3: > spec:
Step #3: > spec:
Step #3: > spec:
Step #3: > spec:
Step #3: > subjects:
Step #3: > subjects:
Step #3: Makefile:114: recipe for target 'test-install-yaml' failed
Finished Step #3
ERROR
ERROR: build step 3 "make-docker" failed: exit status 2

@g-ericso
Copy link
Contributor Author

Tried to merge from master but bot failed. I am not sure what I have done wrong. Please help.

@markmandel
Copy link
Collaborator

I'm not sure what you managed to do there 😱

I would suggest pulling down master from upstream, then rebasing that against your PR, and force pushing that back to here.

@g-ericso
Copy link
Contributor Author

Closed this PR and open another one #234

@g-ericso g-ericso closed this May 30, 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/documentation Documentation for Agones
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants