Skip to content

Commit db086ba

Browse files
committed
chore: impl round-robin
1 parent 9e28d68 commit db086ba

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ Very nice!
4949

5050
# TODOS
5151

52-
- [ ] Round-robin for scheduler
5352
- [ ] Pod deletion cleanup (stop containers if the pods are deleted via API)
5453
- [ ] etcd (k/v store for cluster state so restarts persist)
5554

pkg/scheduler/scheduler.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package scheduler
33
import (
44
"errors"
55
"log"
6-
"math/rand"
76
"miniku/pkg/store"
87
"miniku/pkg/types"
98
"time"
@@ -12,6 +11,7 @@ import (
1211
type Scheduler struct {
1312
podStore store.PodStore
1413
nodeStore store.NodeStore
14+
nextIndex uint
1515
}
1616

1717
const POLL_INTERVAL = time.Millisecond * 5000
@@ -20,6 +20,7 @@ func New(podStore store.PodStore, nodeStore store.NodeStore) *Scheduler {
2020
return &Scheduler{
2121
podStore,
2222
nodeStore,
23+
0,
2324
}
2425
}
2526

@@ -61,8 +62,9 @@ func (s *Scheduler) pickNode() (types.Node, bool) {
6162
return types.Node{}, false
6263
}
6364

64-
//TODO for now random, replace with round-robin
65-
return availableNodes[rand.Intn(len(availableNodes))], true
65+
node := availableNodes[s.nextIndex%uint(len(availableNodes))]
66+
s.nextIndex++
67+
return node, true
6668
}
6769

6870
// filter Ready nodes

0 commit comments

Comments
 (0)