Ресурсы (pods/namespaces) K8s CI #440
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: Ресурсы (pods/namespaces) K8s 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: Требования к ресурсам для развертываний Deployment | |
run: | | |
cd weekend-service | |
# используем легковесный кластер kind для простых тестов | |
kind create cluster | |
# развернем версию с объявленными ресурсами | |
kubectl apply -f k8s/resources/ | |
kubectl rollout status deployment/weekend-service --timeout 60s | |
# сервис | |
kubectl apply -f k8s/k8s-weekend-svc.yaml | |
# weekend-service требует time-service | |
kubectl apply -f ../time-service/k8s/ | |
kubectl rollout status deployment/time-service --timeout 60s | |
# проверим работоспособность сервиса | |
kubectl port-forward service/weekend-service 5678 & | |
sleep 5s | |
curl -sS 0.0.0.0:5678/weekend/Europe/Moscow | |
curl -sS 0.0.0.0:5678/weekend/Asia/Tokyo | |
- name: Пространства имен Namespace | |
run: | | |
cd time-service | |
# в данный момент time-service уже развернут, одинаковые объекты невозможны | |
# || true позволяет игнорировать ошибку команды | |
kubectl create -f k8s/k8s-time-deploy.yaml || true | |
# пространство для разработчиков dev | |
kubectl create namespace dev | |
kubectl get namespaces | |
# теперь можно развернуть такой же time-service в dev | |
kubectl create -f k8s/k8s-time-deploy.yaml -n dev | |
kubectl rollout status deployment/time-service --timeout 60s -n dev | |
kubectl get deploy --namespace dev | |
# описание пространства имен в манифесте на основе dry-run | |
kubectl delete namespace dev | |
kubectl create namespace dev --dry-run=client -o yaml > dev-namespace.yaml | |
kubectl apply -f dev-namespace.yaml | |
# ограничение ресурсов | |
kubectl apply -f ../k8s-ops/dev-resource-quota.yaml -n dev | |
kubectl describe namespace dev | |
- name: Дополнительные контексты kubectl | |
run: | | |
kubectl config view | |
kubectl config set-context kind-dev --cluster=kind-kind --user=kind-kind --namespace=dev | |
kubectl config use-context kind-dev | |
kubectl get deploy |