Add example config and set milestones goals.
@@ -55,17 +55,61 @@ The config file must have the following information:
2. Ports and protocols (UDP, TCP)
3. Resources requests (cpu and memory)
+
+Example yaml config:
+
+```yaml
+name: pong-free-for-all # this will be the name of the kubernetes namespace
+labels:
+ app: pong # several configs can refer to the same app
+image: pong/pong:v123
+containerPort: 5050 # port exposed in the container
+protocol: UDP # supported protocols are TCP and UDP
+resources: # these will be applied directly to the pods created in kubernetes
+ requests:
+ memory: "64Mi"
+ cpu: "250m"
+ limits:
+ memory: "128Mi"
+ cpu: "1"
+autoscaling:
+ min: 100 # minimum amount of GRUs
+ up:
+ delta: 10 # how many GRUs will be created every time the scaling policy is triggered
+ trigger:
+ usage: 70 # minimum usage (percentage) the can trigger the scaling policy
+ time: 600 # time in seconds to wait before scaling policy takes place
+ cooldown: 300 # time in seconds to wait before consecutive scaling
+ down:
+ delta: 2 # how many GRUs will be terminated every time the scaling policy is triggered
+ trigger:
+ usage: 50 # minimum usage (percentage) the can trigger the scaling policy
+ time: 900 # time in seconds to wait before scaling policy takes place
+ cooldown: 300 # time in seconds to wait before consecutive scaling
+env: # environment variable to be passed on to the container
+ - name: EXAMPLE_ENV_VAR
+ value: examplevalue
+ - name: ANOTHER_ENV_VAR
+ value: anothervalue
+```
+
## TODOs:
- [x] Define Architecture
- [x] Validate Kubernetes performance with a large amount of services
- [x] Formalize room protocol
- [x] Release map
-- [ ] Define config template
+- [x] Define config template
## Release Map:
-- Milestone 1
+- Milestone 1:
+
+ Goals:
+ - Create scheduler that scales up with the given policy.
+ - Delete scheduler.
+
+ Tasks:
- [ ] maestro-controller
- [ ] scheduler
- [ ] create new scheduler with given config
@@ -109,7 +153,14 @@ The config file must have the following information:
- [ ] catch sigterm/sigkill and handle graceful shutdown
- [ ] unity support
-- Milestone 2
+- Milestone 2:
+
+ Goals:
+ - Create scheduler that scales down with the given policy.
+ - Update running scheduler.
+ - Monitor scheduler rooms metrics.
+
+ Tasks:
- [ ] maestro-controller
- [ ] scheduler
- [ ] update running scheduler config
@@ -148,7 +199,7 @@ The config file must have the following information:
## Doubts
-- Can Kubernetes handle thousands of services?
+- ~~Can Kubernetes handle thousands of services?~~
- How to manage different versions running at the same time? Will the matchmaker be responsible for it?
- How to properly tune autoscaling policies?
