Twoje zadanie:
- Docker Compose: uruchom aplikację tak, by strona była dostępna na
http://localhost:8080 - Kubernetes: uruchom w namespace
challengei wystaw przez Ingress np. w minikube - Masz 120 minut na wykonanie zadania
- Kliknij: Use this template → Create a new repository (może być prywatne).
- Zrób pierwszy commit/push — od tego momentu startuje licznik czasu.
- Pracuj w swoim repo. Każdy push uruchamia testy i sprawdza limit czasu.
- Gdy skończysz:
- Dodaj nas jako collaboratorów (Settings → Collaborators) albo wyślij link do repo.
- (Opcjonalnie) utwórz tag
submission.
- nginx: reverse proxy
- app (Node.js + Express): endpointy
/,/health,/api/messages - mysql: baza z tabelą
messagesi seedem
docker compose up -d
curl -fsS http://localhost:8080/health
curl -fsS http://localhost:8080/
curl -fsS http://localhost:8080/api/messageskubectl apply -f k8s/namespace.yaml
kubectl -n challenge apply -f k8s/mysql.yaml
kubectl -n challenge apply -f k8s/app.yaml
kubectl -n challenge apply -f k8s/ingress.yaml
kubectl -n challenge get pods,svc,ingress- Limit czasu: 2 godziny liczone od momentu zrobienia pusha do GitHuba.
- Limit egzekwowany jest automatycznie przez GitHub Actions (
Limit Window). - Jeżeli spróbujesz oddać rozwiązanie po czasie — workflow się nie powiedzie.
- Nie wyłączaj ani nie modyfikuj workflow — traktowane będzie jako niezaliczenie.
- Po zakończeniu pracy zrób Pull Request w swoim repo.
- Wszystkie zmiany będą widoczne w historii PR w Twoim repo.
GET /healthzwracaOK(200)GET /zwraca „Welcome to DevOps Challenge!”GET /api/messageszwraca wpisy z bazy (po seedzie lub twoich insertach)
- Czytelność commitów i PR,
- Jakość diagnozy i logiki zmian,
- Działające środowisko uruchomieniowe (docker/k8s),
- Skrócenie czasu build/test (cache, optymalizacje),
- Dokumentację kroków.
docker compose logs -fdocker compose exec app shkubectl -n challenge logs DEPLOY/NAME -fkubectl -n challenge exec -it POD -- sh