This commit is contained in:
parent
8a3c6b50e3
commit
1be50c3eeb
10
.drone.yml
10
.drone.yml
@ -637,7 +637,13 @@ steps:
|
|||||||
- mkdir -p $HOME/.kube
|
- mkdir -p $HOME/.kube
|
||||||
- echo "$KUBECONFIG_CONTENT" > $HOME/.kube/config
|
- echo "$KUBECONFIG_CONTENT" > $HOME/.kube/config
|
||||||
- chmod 600 $HOME/.kube/config
|
- chmod 600 $HOME/.kube/config
|
||||||
- cd flea/_deploy/scripts
|
- cd flea
|
||||||
- sh deploy.sh "${DRONE_TAG}" "${DRONE_COMMIT_SHA:0:7}"
|
- |
|
||||||
|
# Extract image tag from commit message (format: "deploy_only: v1.2.3")
|
||||||
|
COMMIT_MSG=$(git log -1 --pretty=%B)
|
||||||
|
IMAGE_TAG=$(echo "$COMMIT_MSG" | grep -oP 'deploy_only:\s*\K[v0-9.]+' || echo "${DRONE_TAG}")
|
||||||
|
echo "🏷️ Deploying images with tag: $IMAGE_TAG"
|
||||||
|
cd _deploy/scripts
|
||||||
|
sh deploy.sh "${DRONE_TAG}" "${DRONE_COMMIT_SHA:0:7}" "$IMAGE_TAG"
|
||||||
depends_on:
|
depends_on:
|
||||||
- check-trigger
|
- check-trigger
|
||||||
|
|||||||
@ -110,7 +110,7 @@ git push origin v1.3.0
|
|||||||
---
|
---
|
||||||
|
|
||||||
### Пайплайн 5: **Deploy-Only (Только деплой)**
|
### Пайплайн 5: **Deploy-Only (Только деплой)**
|
||||||
**Триггер:** Тег с сообщением коммита, содержащим `deploy_only:`
|
**Триггер:** Тег с сообщением коммита, содержащим `deploy_only: <version>`
|
||||||
**Назначение:** Быстрый деплой уже собранных образов
|
**Назначение:** Быстрый деплой уже собранных образов
|
||||||
**Длительность:** ~1 минута
|
**Длительность:** ~1 минута
|
||||||
|
|
||||||
@ -119,14 +119,26 @@ git push origin v1.3.0
|
|||||||
- Деплоит указанные образы в Kubernetes
|
- Деплоит указанные образы в Kubernetes
|
||||||
- Полезно для отката или продвижения существующих образов
|
- Полезно для отката или продвижения существующих образов
|
||||||
|
|
||||||
|
**ВАЖНО:** В сообщении коммита нужно указать версию образов для деплоя:
|
||||||
|
|
||||||
**Пример рабочего процесса:**
|
**Пример рабочего процесса:**
|
||||||
```bash
|
```bash
|
||||||
# Деплой существующих образов
|
# Деплой существующих образов v1.2.9
|
||||||
git commit --allow-empty -m "deploy_only: Deploy v1.2.9"
|
git commit --allow-empty -m "deploy_only: v1.2.9"
|
||||||
git tag v1.2.9-deploy
|
git tag deploy-v1.2.9
|
||||||
git push origin v1.2.9-deploy
|
git push origin deploy-v1.2.9
|
||||||
|
|
||||||
|
# Откат на предыдущую версию v1.2.8
|
||||||
|
git commit --allow-empty -m "deploy_only: v1.2.8"
|
||||||
|
git tag rollback-v1.2.8
|
||||||
|
git push origin rollback-v1.2.8
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Формат commit message:**
|
||||||
|
- `deploy_only: v1.2.9` - деплоит образы с тегом `v1.2.9`
|
||||||
|
- Скрипт извлекает версию из сообщения и использует соответствующие образы
|
||||||
|
- Образы должны существовать в registry (собраны ранее через full-release)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🛠️ Скрипты деплоя
|
## 🛠️ Скрипты деплоя
|
||||||
@ -137,10 +149,18 @@ git push origin v1.2.9-deploy
|
|||||||
**Назначение:** Деплой сервисов в Kubernetes
|
**Назначение:** Деплой сервисов в Kubernetes
|
||||||
**Использование:**
|
**Использование:**
|
||||||
```bash
|
```bash
|
||||||
./deploy.sh <tag> <commit-sha>
|
# Full release (использует TAG для образов)
|
||||||
./deploy.sh v1.3.0 abc1234
|
./deploy.sh v1.3.0 abc1234
|
||||||
|
|
||||||
|
# Deploy only (переопределяет тег образа)
|
||||||
|
./deploy.sh deploy-v1.2.9 def5678 v1.2.9
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Параметры:**
|
||||||
|
1. `tag` - Git тег (обязательный)
|
||||||
|
2. `commit-sha` - SHA коммита (опциональный)
|
||||||
|
3. `image-tag-override` - Переопределение тега образа (опциональный, для deploy_only)
|
||||||
|
|
||||||
**Возможности:**
|
**Возможности:**
|
||||||
- Обновляет deployment-манифесты новыми тегами образов
|
- Обновляет deployment-манифесты новыми тегами образов
|
||||||
- Применяет манифесты в кластер
|
- Применяет манифесты в кластер
|
||||||
@ -256,9 +276,9 @@ Push в main → Main Validation (сборка + тесты)
|
|||||||
4. **Экстренный откат**
|
4. **Экстренный откат**
|
||||||
```bash
|
```bash
|
||||||
# Быстрый откат через deploy-only
|
# Быстрый откат через deploy-only
|
||||||
git commit --allow-empty -m "deploy_only: Rollback to v1.2.8"
|
git commit --allow-empty -m "deploy_only: v1.2.8"
|
||||||
git tag v1.2.8-rollback
|
git tag rollback-v1.2.8
|
||||||
git push origin v1.2.8-rollback
|
git push origin rollback-v1.2.8
|
||||||
|
|
||||||
# Или используйте скрипт отката напрямую в кластере
|
# Или используйте скрипт отката напрямую в кластере
|
||||||
kubectl exec -it deploy-pod -- bash
|
kubectl exec -it deploy-pod -- bash
|
||||||
|
|||||||
@ -4,20 +4,34 @@ set -e
|
|||||||
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
# 🚀 Nocr Services Deployment Script
|
# 🚀 Nocr Services Deployment Script
|
||||||
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
# Usage: ./deploy.sh <tag> <commit-sha>
|
# Usage: ./deploy.sh <tag> [commit-sha] [image-tag-override]
|
||||||
# Example: ./deploy.sh v1.2.3 abc1234
|
# Examples:
|
||||||
|
# Full release: ./deploy.sh v1.2.3 abc1234
|
||||||
|
# Deploy only: ./deploy.sh deploy-v1.2.3 def5678 v1.2.3
|
||||||
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
|
||||||
TAG=${1:-latest}
|
TAG=${1:-latest}
|
||||||
COMMIT_SHA=${2:-latest}
|
COMMIT_SHA=${2:-}
|
||||||
NAMESPACE="nocr"
|
NAMESPACE="nocr"
|
||||||
DEPLOYMENT_FILE="../k8s/deployment.yaml"
|
DEPLOYMENT_FILE="../k8s/deployment.yaml"
|
||||||
|
IMAGE_TAG_OVERRIDE=${3:-}
|
||||||
|
|
||||||
|
# Determine image tag to use
|
||||||
|
# Priority: 1) IMAGE_TAG_OVERRIDE (from command line), 2) TAG
|
||||||
|
if [ -n "$IMAGE_TAG_OVERRIDE" ]; then
|
||||||
|
IMAGE_TAG=$IMAGE_TAG_OVERRIDE
|
||||||
|
else
|
||||||
|
IMAGE_TAG=${TAG}
|
||||||
|
fi
|
||||||
|
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "🚀 Starting deployment of Nocr services"
|
echo "🚀 Starting deployment of Nocr services"
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
echo "📦 Tag: $TAG"
|
echo "📦 Tag: $TAG"
|
||||||
echo "📝 Commit SHA: $COMMIT_SHA"
|
echo "🏷️ Image Tag: $IMAGE_TAG"
|
||||||
|
if [ -n "$COMMIT_SHA" ]; then
|
||||||
|
echo "📝 Commit SHA: $COMMIT_SHA"
|
||||||
|
fi
|
||||||
echo "🎯 Namespace: $NAMESPACE"
|
echo "🎯 Namespace: $NAMESPACE"
|
||||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
|
|
||||||
@ -42,12 +56,12 @@ cp "$DEPLOYMENT_FILE" "$TEMP_DEPLOYMENT"
|
|||||||
echo "🔧 Updating image tags in deployment manifests..."
|
echo "🔧 Updating image tags in deployment manifests..."
|
||||||
|
|
||||||
# Update image tags for all services
|
# Update image tags for all services
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/telegram_listener:.*|hub.musk.fun/k8s/nocr/telegram_listener:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/telegram_listener:.*|hub.musk.fun/k8s/nocr/telegram_listener:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/telegram_client:.*|hub.musk.fun/k8s/nocr/telegram_client:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/telegram_client:.*|hub.musk.fun/k8s/nocr/telegram_client:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/text_matcher:.*|hub.musk.fun/k8s/nocr/text_matcher:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/text_matcher:.*|hub.musk.fun/k8s/nocr/text_matcher:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/text_matcher_migrator:.*|hub.musk.fun/k8s/nocr/text_matcher_migrator:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/text_matcher_migrator:.*|hub.musk.fun/k8s/nocr/text_matcher_migrator:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/users:.*|hub.musk.fun/k8s/nocr/users:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/users:.*|hub.musk.fun/k8s/nocr/users:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
sed -i "s|hub.musk.fun/k8s/nocr/users_migrator:.*|hub.musk.fun/k8s/nocr/users_migrator:${COMMIT_SHA}|g" "$TEMP_DEPLOYMENT"
|
sed -i "s|hub.musk.fun/k8s/nocr/users_migrator:.*|hub.musk.fun/k8s/nocr/users_migrator:${IMAGE_TAG}|g" "$TEMP_DEPLOYMENT"
|
||||||
|
|
||||||
echo "✅ Image tags updated"
|
echo "✅ Image tags updated"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user