feat: default locale Russian, geo determines language for other countries
- localization-svc: defaultLocale ru, resolveLocale only by geo - web-svc: DEFAULT_LOCALE ru, layout lang=ru, embeddedTranslations fallback ru - countryToLocale: default ru when no country or unknown country Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
86
deploy/k3s/ssl/setup-kubernetes.sh
Executable file
86
deploy/k3s/ssl/setup-kubernetes.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
# Настройка SSL в Kubernetes для gooseek.ru
|
||||
# Запуск из корня репозитория: ./deploy/k3s/ssl/setup-kubernetes.sh
|
||||
#
|
||||
# Вариант A: cert-manager (автоматические сертификаты Let's Encrypt)
|
||||
# Вариант B: ручные сертификаты (certbot на сервере → apply-secret.sh)
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
||||
CERT_MANAGER_VERSION="v1.13.0"
|
||||
|
||||
usage() {
|
||||
echo "Использование: $0 [cert-manager|manual]"
|
||||
echo ""
|
||||
echo " cert-manager — установить cert-manager и настроить автоматические сертификаты (рекомендуется)"
|
||||
echo " manual — применить ingress с ручным Secret (нужны fullchain.pem, privkey.pem в backup/)"
|
||||
echo ""
|
||||
echo "Без аргумента — cert-manager"
|
||||
}
|
||||
|
||||
apply_cert_manager() {
|
||||
echo "=== 1. Установка cert-manager ==="
|
||||
kubectl apply -f "https://github.com/cert-manager/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml"
|
||||
echo "Ожидание готовности cert-manager (до 2 мин)..."
|
||||
kubectl wait --for=condition=Available deployment/cert-manager -n cert-manager --timeout=120s 2>/dev/null || true
|
||||
kubectl wait --for=condition=Available deployment/cert-manager-webhook -n cert-manager --timeout=120s 2>/dev/null || true
|
||||
kubectl wait --for=condition=Available deployment/cert-manager-cainjector -n cert-manager --timeout=120s 2>/dev/null || true
|
||||
|
||||
echo ""
|
||||
echo "=== 2. ClusterIssuer Let's Encrypt ==="
|
||||
kubectl apply -f "$SCRIPT_DIR/cert-manager-issuer.yaml"
|
||||
|
||||
echo ""
|
||||
echo "=== 3. Production Ingress (cert-manager создаст Secret gooseek-tls) ==="
|
||||
kubectl apply -f "$REPO_ROOT/deploy/k3s/ingress-production.yaml"
|
||||
|
||||
echo ""
|
||||
echo "=== Готово ==="
|
||||
echo "Сертификат будет получен в течение 1–2 минут."
|
||||
echo "Проверка: kubectl get certificate -n gooseek"
|
||||
echo "Проверка: kubectl get secret gooseek-tls -n gooseek"
|
||||
}
|
||||
|
||||
apply_manual() {
|
||||
if [[ ! -f "$SCRIPT_DIR/backup/fullchain.pem" ]] || [[ ! -f "$SCRIPT_DIR/backup/privkey.pem" ]]; then
|
||||
echo "Ошибка: нужны fullchain.pem и privkey.pem в $SCRIPT_DIR/backup/"
|
||||
echo "См. deploy/k3s/ssl/README.md — получите сертификат через certbot на сервере"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== 1. Secret gooseek-tls из backup ==="
|
||||
"$SCRIPT_DIR/apply-secret.sh"
|
||||
|
||||
echo ""
|
||||
echo "=== 2. Production Ingress (ручной Secret) ==="
|
||||
kubectl apply -f "$REPO_ROOT/deploy/k3s/ingress-production-manual.yaml"
|
||||
|
||||
echo ""
|
||||
echo "=== Готово ==="
|
||||
}
|
||||
|
||||
# Проверка namespace
|
||||
if ! kubectl get namespace gooseek &>/dev/null; then
|
||||
echo "Создание namespace gooseek..."
|
||||
kubectl apply -f "$REPO_ROOT/deploy/k3s/namespace.yaml"
|
||||
fi
|
||||
|
||||
# Проверка ingress-nginx
|
||||
if ! kubectl get deployment -n ingress-nginx ingress-nginx-controller &>/dev/null 2>&1; then
|
||||
echo "Внимание: ingress-nginx не найден. Установите:"
|
||||
echo " kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml"
|
||||
echo ""
|
||||
read -p "Продолжить? (y/n) " -n 1 -r
|
||||
echo
|
||||
[[ $REPLY =~ ^[Yy]$ ]] || exit 1
|
||||
fi
|
||||
|
||||
MODE="${1:-cert-manager}"
|
||||
case "$MODE" in
|
||||
cert-manager) apply_cert_manager ;;
|
||||
manual) apply_manual ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
*) echo "Неизвестный режим: $MODE"; usage; exit 1 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user