Orchestrator
The Orc (orchestrator) module is the heart of the project.
It is what manages the process of game server deployment for users.
Design Objectives
- Extremely lightweight.
- REST API managed
- Deploy/control game containers.
- Abstracted from the game server/container platform to allow stack evolution.
Software Stack Diagram
*This may change as technologies & skills evolve.
Dev Notes
Navigation
Links to various project-related resources.
Features
- User file backups
- Update to new deployment architecture.
- RESTapi (v1) - Plan/recipies
- Security - api-key integration
- Start/Stop scheduler
- RESTapi (v1) - custom configurations
- Server deployment (v2) - custom configurations
- Persistent server data - Keep server data for updates & future releases.
- RESTapi (v1)
- Server deployment (v1)
Roadmap
Here are some planned features
- Security - Add
fail2ban
to REST API - Security - Users & Audit Logging
- RESTapi (v1) - Console
Release Notes
1.3.0 - DEVELOPMENT
IMPACT RELEASE
-
ADDED
API -
Modify
to allow editing the existing server's settings. -
ADDED
API - Update flag
reinit/full/image/server
. Setting the flag toserver
update will just update the game server, settingimage
update will update the container,full
will update theimage
andserver
andreinit
will delete the server data (not user data) and then run afull
- ADDED
Check for consumed ports in start response (import docker compose config as yaml and check docker ps output)
- ADDED
Get container build/version info using docker exec, instead of as part of container deploy
- ADDED
Scheduler auto cleans missing/completed tasks
- ADDED
API - Get current orchestrator version
- CHANGED
The
getall
servers is now gameuid,servername sorted by default - BUGFIX
Fixed an issue to the server import function, where it would try start a server with a non-existant
docker-compose.yml
file - BUGFIX
Enforced project specific docker-compose commands to avoid conflicting networks/configs
- BUGFIX
Fixed an issue where a scheduled
stop
would not respond correctly.
1.2.11
- CHANGE
Updated to latest OS/package combinations.
1.2.10
- ADDED
Ability to import any game servers
1.2.9
- ADDED
Added backup save to
/home/peon/backup
- ADDED
Ability to download user and config data for a game server (via
/home/peon/backup
).
1.2.8
- BUGFIX
Enforced UID 1000 on all folders in the server directory (on create and on docker-compose action)
1.2.7
- ADDED
Ability to update the game server using the API.
1.2.6
- LOGGING
Improve logging response to handle bad JSON/missing files on plan load.
1.2.5
- BUGFIX
Repaired an issue with a plan not seeing a description
1.2.4
- CHANGED
Updated how the cli tool references files inside the container
1.2.3
- BUGFIX
Make better alert when the folder already exists, not
action not supported
1.2.2
- ADDED
Ability to make custom REST API key through env vars.
1.2.1
- ADDED
Added
skip
flag toServer PUT
to force bypass of actions (if required) - BUGFIX
Added return on successful create when not start is requested.
1.2.0
IMPACT RELEASE
- CHANGED
Changed URL path from
/api/1.0
to/api/v1
- CHANGED
Added sort to
get_plans
1.1.0
IMPACT RELEASE
- CHANGED
Moved logging into container logs
- ADDED
Added
DEV_MODE
flag to enable/disable logging/dev mode.
1.0.5
- BUGFIX
Fixed API destroy + eradicate of a server.
1.0.4
- ADDED
Check if the environment variable
HOST_DIR
is empty. - ADDED
Added a clean on failure when a server creation is triggered.
- ADDED
Added an API flag
noclean
to disable clean on failure. - BUGFIX
Fixed issue where failures on
docker compose
commands did not get handled by API correctly. - BUGFIX
Fixed an issue where generic failure was being reported back via API when plans were being generated.
- LOGGING
Added additional step logging for debug logging to assist in fault finding.
1.0.3
- BUGFIX
Updated API for use with Discord bot.
1.0.2
- CHANGE
Re-enabled stop scheduler.
- REMOVED
Disabled flask debug mode (as it causes issues with the scheduler)
1.0.1
- BUGFIX
Removed
docker-compose create
from API when no start is selected. - BUGFIX
Updated to
docker compose
fromdocker-compose
paradigm
IMPACT RELEASE
1.0.0
- CHANGE
Plans - Reworked entire plans module for docker-compose architecture
- CHANGE
Servers - Reworked entire servers module for docker-compose architecture
- CHANGE
API - Updated API for docker-compose architecture.
- BUGFIX
All - fixed several issues after rework
- ADDED
warcamp - cleanup
- ADDED
get_warcamp - check container state and update state accordingly.
- CHANGE
CURRENT_TASK
API - Deploy server from API call. (Untestedserver create
function) - ADDED
API - Plan - Get required settings
- CHANGE
Change to SVN download for directory (plans)
- CHANGE
Moved to
docker compose
based model for better re-usability/clarity. - CHANGE
API - Removed servers/server marshall flow for more versatile response handling
- BUGFIX
API - Plans - Fixed the get and update from server plans
0.3.2
- ADDED
Added
/app/bin
to the path and addedpeon
cli module into orc. - CHANGE
Make API key configurable
0.3.1
- CHANGE
Rework Orchestrator app to leverage the
docker.sock
- CHANGE
Moving to init script
init/peon.orc
, for pre-flight checks. - REMOVED
Removed SSH check on boot from
python3 main.py
- ADDED
Configurable docker socket path.
- ADDED
Added
VERSION
environment variable into the container.
0.3.0
- CHANGE
Change the docker file to support using
docker.sock
socket file to manage docker (from SSH)
0.2.17
- BUGFIX
Remove schedule on manual stop
- CHANGE
Validate epoch time input for scheduler epoch time
0.2.16
- BUGFIX
Server create returned false error due to change error dict handler
0.2.15
- BUGFIX
Scheduler vs Start/Stop
0.2.14
- BUGFIX
Scheduler v1.0 - Bugfix (server stop is now properly scheduled)
0.2.13
- ADDED
Scheduler - v1.0 - Added simple start & delayed stop in scheduler
0.2.12
- CHANGE
API Response - Server config
0.2.11
- ADDED
PUBLIC_IP - added to container variables
0.2.10
- Logging - Added devMode switch
0.2.9
- ADDED
UI - Added MOTD to container login
0.2.8
- CHANGE
Base images were pulled to get the latest versions & app was rebuilt on those
- BUGFIX
Incorrect parameter reference in server create
0.2.7
- SECURITY
Inital CORS implementation
- SECURITY
Initial api-key requirement implementation
0.2.6
- ADDED
API - Server - Destroy & Eradicate
0.2.5
- ADDED
API - Server - Reworked to include actions into the path
- ADDED
API - Server - Added get with metrics
0.2.4
- ADDED
API - Server Get - reworked to provide both container & server state
0.2.3
- ADDED
API - Auto download latest plan version when the server is deployed
0.2.2
- ADDED
API - Plans get list & update from Peon project list
0.2.1
- BUGFIX
Enforced description & settings on [post]servers
0.2.0
- ADDED
Added custom config handler
- CHANGE
Allows configuration of environment variables in the container (via API)
- ADDED
Can supply json/txt files via API
- ADDED
Added persistent description
0.1.6
- ADDED
Added handler for
config
folder - ADDED
Moved game server logs into the game server directory
0.1.5
- INITIALISED
The first iteration of server create (API)