change internal network attaching flow
Problem
W związku z https://projects.task.gda.pl/citask/agora/-/issues/160, należy zmodyfikować obecny flow, tak aby zmniejszyć obciążenie związane z niepotrzebnym tworzeniem zbyt wielu sieci i routerów naraz.
Rozwiązanie
Joby, których spawnowane są vmki możemy obecnie podzielić na dwie kategorie:
- standardowe - nie jest potrzebna dedykowana sieć, poszczególne maszyny mogą być podłączone wszystkie do wspólnej sieci
- niestandardowe - potrzebna jest dedykowana sieć, a w jobie spawnowana jest więcej niż jedna vmka
W projekcie istniałaby jedna wspolna siec dostępowa, do której domyślnie byłyby podłączane vmki. Dodatkowo byłaby możliwość swtorzenia i podłączenia do dedykowanej sieci.
Propozycja implementacji
Po stronie clouda:
- stworzyć w projekcie
gitlab-ci
sieć i router:common-access-network
W spawnerze:
- usunąć opcję
--internal-network
- usunąć opcję
--attach-only
- na ich miejsce wprowadzić opcję
--attach-to-network
, z trzema możliwościami:-
common
(default) - podłączenie vmki docommon-access-network
- przypadek standardowy - stary flow -
new
- stworzenie dedykowanego routera i sieci, najlepiej z id joba w nazwie (np.job-123456-access-network
) i z odpowiednimi tagami - pierwsza maszyna w przypadku niestandardowym - obecny flow bez--attach-only
-
dedicated
- podłączenie vmki do istniejącej sieci powiązanej z danym jobem - każda kolejna maszyna w niestandardowym przypadku - obecny flow z--attach-only
-
- dopilnować aby po żadnym jobie nie została wyczyszczona sieć
common-access-network
- czyścić dedykowane sieci po ich skończonych jobach
Minusem tego rozwiązania jest konieczość stworzenia wspólnej sieci niejako "ręcznie", bez możliwości zmiany jej nazwy. IMHO nie jest to jednak poważne przeciwwskazanie dla tego rozwiązania, jedynie należy o tym pamiętać przy odpalaniu openstack-vm lokalnie u siebie.
Edited by Cyprian Kleist