-
Notifications
You must be signed in to change notification settings - Fork 817
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GameServerSets are the basic building block for Fleets. GameServerSets will be allow Fleet migrations to occur, similarly to how ReplicaSets allow Deployments to migrate one image type to another. This has not been formally documented, as this will likely be an internal CRD, and not (widely) used externally. Parent ticket: #70
- Loading branch information
1 parent
797c29d
commit dca7a69
Showing
30 changed files
with
2,197 additions
and
114 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Copyright 2018 Google Inc. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# Usually you would define a Fleet rather than a GameServerSet | ||
# directly. This is here mostly for testing purposes | ||
|
||
apiVersion: "stable.agones.dev/v1alpha1" | ||
kind: GameServerSet | ||
metadata: | ||
name: cpp-simple | ||
spec: | ||
replicas: 5 | ||
template: | ||
spec: | ||
containerPort: 7654 | ||
template: | ||
spec: | ||
health: | ||
initialDelaySeconds: 15 | ||
containers: | ||
- name: cpp-simple | ||
image: gcr.io/agones-images/cpp-simple-server:0.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Copyright 2018 Google Inc. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# Usually you would define a Fleet rather than a GameServerSet | ||
# directly. This is here mostly for testing purposes | ||
|
||
apiVersion: "stable.agones.dev/v1alpha1" | ||
kind: GameServerSet | ||
metadata: | ||
name: simple-udp | ||
spec: | ||
replicas: 2 | ||
template: | ||
spec: | ||
containerPort: 7654 | ||
template: | ||
spec: | ||
containers: | ||
- name: simple-udp | ||
image: gcr.io/agones-images/udp-server:0.1 |
109 changes: 109 additions & 0 deletions
109
install/helm/agones/templates/crds/_gameserverspecvalidation.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
# Copyright 2018 Google Inc. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# validation for a gameserver spec | ||
|
||
{{- define "gameserver.validation" }} | ||
required: | ||
- spec | ||
properties: | ||
spec: | ||
required: | ||
- containerPort | ||
- template | ||
properties: | ||
template: | ||
type: object | ||
required: | ||
- spec | ||
properties: | ||
spec: | ||
type: object | ||
required: | ||
- containers | ||
properties: | ||
containers: | ||
type: array | ||
items: | ||
type: object | ||
required: | ||
- image | ||
properties: | ||
name: | ||
type: string | ||
minLength: 0 | ||
maxLength: 63 | ||
pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" | ||
image: | ||
type: string | ||
minLength: 1 | ||
minItems: 1 | ||
container: | ||
title: The container name running the gameserver | ||
description: if there is more than one container, specify which one is the game server | ||
type: string | ||
minLength: 0 | ||
maxLength: 63 | ||
pattern: "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$" | ||
portPolicy: | ||
title: the port policy that will be applied to the game server | ||
description: | | ||
portPolicy has two options: | ||
- "dynamic" (default) the system allocates a free hostPort for the gameserver, for game clients to connect to | ||
- "static", user defines the hostPort that the game client will connect to. Then onus is on the user to ensure that the | ||
port is available. When static is the policy specified, `hostPort` is required to be populated | ||
type: string | ||
enum: | ||
- dynamic | ||
- static | ||
protocol: | ||
title: Protocol being used. Defaults to UDP. TCP is the only other option | ||
type: string | ||
enum: | ||
- UDP | ||
- TCP | ||
containerPort: | ||
title: The port that is being opened on the game server process | ||
type: integer | ||
minimum: 0 | ||
maximum: 65535 | ||
hostPort: | ||
title: The port exposed on the host | ||
description: Only required when `portPolicy` is "static". Overwritten when portPolicy is "dynamic". | ||
type: integer | ||
minimum: 0 | ||
maximum: 65535 | ||
health: | ||
type: object | ||
title: Health checking for the running game server | ||
properties: | ||
disabled: | ||
title: Disable health checking. defaults to false, but can be set to true | ||
type: boolean | ||
initialDelaySeconds: | ||
title: Number of seconds after the container has started before health check is initiated. Defaults to 5 seconds | ||
type: integer | ||
minimum: 0 | ||
maximum: 2147483648 | ||
periodSeconds: | ||
title: How long before the server is considered not healthy | ||
type: integer | ||
minimum: 0 | ||
maximum: 2147483648 | ||
failureThreshold: | ||
title: Minimum consecutive failures for the health probe to be considered failed after having succeeded. | ||
type: integer | ||
minimum: 1 | ||
maximum: 2147483648 | ||
{{ end -}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Copyright 2018 Google Inc. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
apiVersion: apiextensions.k8s.io/v1beta1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
name: gameserversets.stable.agones.dev | ||
labels: | ||
component: crd | ||
app: {{ template "agones.name" . }} | ||
chart: {{ template "agones.chart" . }} | ||
release: {{ .Release.Name }} | ||
heritage: {{ .Release.Service }} | ||
spec: | ||
group: stable.agones.dev | ||
version: v1alpha1 | ||
scope: Namespaced | ||
names: | ||
kind: GameServerSet | ||
plural: gameserversets | ||
shortNames: | ||
- gss | ||
- gsset | ||
singular: gameserverset | ||
validation: | ||
openAPIV3Schema: | ||
properties: | ||
spec: | ||
required: | ||
- replicas | ||
- template | ||
properties: | ||
replicas: | ||
type: integer | ||
minimum: 0 | ||
template: | ||
{{- include "gameserver.validation" . | indent 14 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.