Skip to content

Сервисы K8s, weekend-service CI #516

Сервисы K8s, weekend-service CI

Сервисы K8s, weekend-service CI #516

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