Skip to content
This repository has been archived by the owner on Aug 7, 2024. It is now read-only.

Commit

Permalink
feat: Use Agones to manage gameservers (#1439)
Browse files Browse the repository at this point in the history
* got agones working locally

Signed-off-by: Niket <niket.shah1@ocado.com>

* build and push agones docker images

Signed-off-by: Niket <niket.shah1@ocado.com>

* setup cache

Signed-off-by: Niket <niket.shah1@ocado.com>

* cancel previous runs if they are running

Signed-off-by: Niket <niket.shah1@ocado.com>

* bug fixes

Signed-off-by: Niket <niket.shah1@ocado.com>

* try to fix more bugs with building images

Signed-off-by: Niket <niket.shah1@ocado.com>

* correct job name

Signed-off-by: Niket <niket.shah1@ocado.com>

* add context

Signed-off-by: Niket <niket.shah1@ocado.com>

* auth with google cloud

Signed-off-by: Niket <niket.shah1@ocado.com>

* use versions on agones

Signed-off-by: Niket <niket.shah1@ocado.com>

* see if kubectl works

Signed-off-by: Niket <niket.shah1@ocado.com>

* deploy new fleet using github actions

Signed-off-by: Niket <niket.shah1@ocado.com>

* add needs condition

Signed-off-by: Niket <niket.shah1@ocado.com>

* use google game servers

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix typo

Signed-off-by: Niket <niket.shah1@ocado.com>

* Revert "fix typo"

This reverts commit 8b8a220.

* Revert "use google game servers"

This reverts commit b4254ed.

* add cloud logging

Signed-off-by: Niket <niket.shah1@ocado.com>

* increase initial delay

Signed-off-by: Niket <niket.shah1@ocado.com>

* use terraform cluster

Signed-off-by: Niket <niket.shah1@ocado.com>

remove tfstate

Signed-off-by: Niket <niket.shah1@ocado.com>

* change command for existing fleet

Signed-off-by: Niket <niket.shah1@ocado.com>

* deploy aimmo-game-creator

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix bugs

Signed-off-by: Niket <niket.shah1@ocado.com>

* change port

Signed-off-by: Niket <niket.shah1@ocado.com>

* allocation yml

Signed-off-by: Niket <niket.shah1@ocado.com>

* delete level attempt for testing on dev

Signed-off-by: Niket <niket.shah1@ocado.com>

* no need to load kubeconfig

Signed-off-by: Niket <niket.shah1@ocado.com>

* don’t wait for connection parameters to go to game page

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix connection parameters check

Signed-off-by: Niket <niket.shah1@ocado.com>

* Get retrying the request to work properly

Signed-off-by: Niket <niket.shah1@ocado.com>

* remove setup_gke

Signed-off-by: Niket <niket.shah1@ocado.com>

* delete some uneeded files

Signed-off-by: Niket <niket.shah1@ocado.com>

* further simplification

Signed-off-by: Niket <niket.shah1@ocado.com>

* remove minikube mode option as that’s the only mode now

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix bugs

Signed-off-by: Niket <niket.shah1@ocado.com>

* retrywithdelay

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix existing games not loading if game creator not ready

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix minikube script to work with agones properly

Signed-off-by: Niket <niket.shah1@ocado.com>

* remove unused code

Signed-off-by: Niket <niket.shah1@ocado.com>

* further cleanup

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix tests

Signed-off-by: Niket <niket.shah1@ocado.com>

* make game creator and cypress tests run

Signed-off-by: Niket <niket.shah1@ocado.com>

* cypress fix

Signed-off-by: Niket <niket.shah1@ocado.com>

* try again to fix ci tests

Signed-off-by: Niket <niket.shah1@ocado.com>

* add env in one more place

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix bug

Signed-off-by: Niket <niket.shah1@ocado.com>

* try again to make all_tests script work

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix django tests

Signed-off-by: Niket <niket.shah1@ocado.com>

* try to patch again

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix bug

Signed-off-by: Niket <niket.shah1@ocado.com>

* fix typo

Signed-off-by: Niket <niket.shah1@ocado.com>

* copy over env variables in subprocesses

Signed-off-by: Niket <niket.shah1@ocado.com>

* ignore agones folder in coverage

Signed-off-by: Niket <niket.shah1@ocado.com>

* ignore agones folder in aimmo-game in codeclimate

Signed-off-by: Niket <niket.shah1@ocado.com>

* remove some logging information

Signed-off-by: Niket <niket.shah1@ocado.com>

* more cleanup and renaming

Signed-off-by: Niket <niket.shah1@ocado.com>

* add missing file

Signed-off-by: Niket <niket.shah1@ocado.com>

* cleanup after review

* dir -> directory

* ignore some files/dirs in .codecov.yml

* minor docs update

* added more instructions to usage doc

* updated usage docs

* added sqlite common issue

Co-authored-by: Razvan Mahu <67904187+razvan-pro@users.noreply.github.com>
Co-authored-by: Razvan Mahu <razvan.mahu@ocado.com>
  • Loading branch information
3 people authored Feb 16, 2021
1 parent f113248 commit edc731d
Show file tree
Hide file tree
Showing 55 changed files with 3,700 additions and 1,501 deletions.
27 changes: 14 additions & 13 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
version: "2"
version: '2'
plugins:
csslint:
enabled: true
Expand All @@ -19,15 +19,16 @@ plugins:
scss-lint:
enabled: false
exclude_patterns:
- "**/node_modules/"
- "**/*.test.js"
- "*/tests/**/*.py"
- "game/_version.py"
- "versioneer.py"
- "game_frontend/djangoBundler.js"
- "game_frontend/dist/"
- "aimmo/avatar_examples/**"
- "aimmo/static/pyodide/**"
- "aimmo/static/react/"
- "example_project/example_project/static"
- "build/"
- '**/node_modules/'
- '**/*.test.js'
- '*/tests/**/*.py'
- 'game/_version.py'
- 'versioneer.py'
- 'game_frontend/djangoBundler.js'
- 'game_frontend/dist/'
- 'aimmo/avatar_examples/**'
- 'aimmo/static/pyodide/**'
- 'aimmo/static/react/'
- 'aimmo-game/agones/**'
- 'example_project/example_project/static'
- 'build/'
12 changes: 10 additions & 2 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,22 @@ fixes:
- "aimmo-game-creator/::"

ignore:
- "aimmo/static/pyodide/**/*"
- ".travis.yml"
- "aimmo_setup.py"
- "all_tests.py"
- "run.py"
- "docs/**/*"
- "aimmo/static/pyodide/**/*"
- "aimmo-game/agones/**/*"
- "aimmo_runner/**/*"
- "test_utils/**/*"

comment:
layout: "reach, diff, flags, files"
behavior: new
require_changes: false
require_base: no
require_head: yes
branches: !master , !development
branches:
- "!master"
- "!development"
34 changes: 34 additions & 0 deletions agones/fleet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: 'agones.dev/v1'
kind: Fleet
metadata:
name: aimmo-game
spec:
replicas: 3
strategy:
type: Recreate
template:
spec:
ports:
- name: default
protocol: TCPUDP
containerPort: 5000
health:
initialDelaySeconds: 30
template:
spec:
serviceAccountName: worker-manager
containers:
- name: aimmo-game
image: ocadotechnology/aimmo-game:test
env:
- name: GAME_API_URL
value: https://localhost:8000/api/
- name: GAME_MANAGER
value: kubernetes
resources:
requests:
memory: '64Mi'
cpu: '24m'
limits:
memory: '124Mi'
cpu: '95m'
8 changes: 5 additions & 3 deletions aimmo-game-creator/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ name = "pypi"

[packages]
kubernetes = "*"
aimmo-game-creator = {editable = true,path = "."}
aimmo-game-creator = { editable = true, path = "." }
docker = "*"
google-cloud-logging = "*"

[requires]
python_version = "3.6.7"
python_version = "3.7.7"

[dev-packages]
black = "==19.10b0"
black = "==20.8b1"
pytest = "*"
httmock = "*"
529 changes: 370 additions & 159 deletions aimmo-game-creator/Pipfile.lock

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apiVersion: apps/v1
kind: ReplicaSet
kind: Deployment
metadata:
name: aimmo-game-creator
spec:
Expand All @@ -20,21 +20,21 @@ spec:
spec:
serviceAccountName: game-creator
containers:
- name: aimmo-game-creator
image: ocadotechnology/aimmo-game-creator:latest
imagePullPolicy: Never
ports:
- containerPort: 80
env:
- name: IMAGE_SUFFIX
value: latest
- name: GAME_API_URL
value: REPLACE_ME
- name: GAME_MANAGER
value: kubernetes
- name: USING_MINIKUBE
value: "true"
securityContext:
capabilities:
drop:
- all
- name: aimmo-game-creator
image: ocadotechnology/aimmo-game-creator:test
imagePullPolicy: Never
ports:
- containerPort: 80
env:
- name: IMAGE_SUFFIX
value: test
- name: GAME_API_URL
value: REPLACE_ME
- name: GAME_MANAGER
value: kubernetes
- name: USING_MINIKUBE
value: 'true'
securityContext:
capabilities:
drop:
- all
Loading

0 comments on commit edc731d

Please sign in to comment.