Сервисы K8s, weekend-service CI #359
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Сервисы K8s, weekend-service CI | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
schedule: | |
- cron: "15 7 * * *" | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Проверка доступности time-service на основе DNS | |
run: | | |
# используем легковесный кластер kind для простых тестов | |
kind create cluster | |
cd time-service | |
kubectl apply -f k8s/ | |
kubectl rollout status deployment/time-service --timeout 60s | |
# проверка доступа DNS через команды busybox (tail для постоянной работы) | |
kubectl run busybox --image=busybox -- tail -f /dev/null | |
kubectl wait --for=condition=ready pod/busybox | |
kubectl exec busybox -- wget time-service:8080/time -O - | |
kubectl exec busybox -- wget time-service.default.svc.cluster.local:8080/nanotime -O - | |
# переменные окружения | |
kubectl exec busybox -- env | |
# выбор отсеков по меткам | |
kubectl get pods --selector=app=time-service | |
- name: Сборка и тесты сервиса weekend-service | |
run: | | |
cd weekend-service | |
docker build . -t ivanporty/weekend-service:0.1.0 | |
# вместо jib - не отправляет образ в удаленный репозиторий | |
./gradlew jibDockerBuild --image=ivanporty/weekend-service:0.1.0 | |
# взаимодействие двух сервисов Kubernetes | |
kubectl apply -f k8s/ | |
kubectl rollout status deployment/weekend-service --timeout 60s | |
kubectl get deploy | |
kubectl get svc | |
# вызов weekend-service через порт сервиса (фоновый режим, небольшое ожидание) | |
kubectl port-forward deploy/weekend-service 5678 & | |
sleep 5s | |
curl 0.0.0.0:5678/weekend/Europe/Moscow | |
curl 0.0.0.0:5678/weekend/Asia/Tokyo | |
kubectl logs deploy/weekend-service | |
- name: Проверка готовности сервиса weekend-service | |
run: | | |
cd weekend-service | |
kubectl apply -f k8s/ | |
kubectl rollout status deployment/weekend-service --timeout 60s | |
# порт уже перенаправлен в предыдущем шаге | |
curl 0.0.0.0:5678/ready | |
kubectl logs deploy/weekend-service | |