-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix_deploy.sh
More file actions
executable file
·85 lines (71 loc) · 3.45 KB
/
fix_deploy.sh
File metadata and controls
executable file
·85 lines (71 loc) · 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/bash
set -e
echo "=== Correction et déploiement de l'application EVIL2ROOT Trading ==="
# Vérification des outils requis
for cmd in python3 kubectl; do
if ! command -v $cmd &> /dev/null; then
echo "Erreur: $cmd n'est pas installé ou n'est pas dans le PATH"
exit 1
fi
done
# Vérification de l'installation du module PyYAML
python3 -c "import yaml" 2>/dev/null || {
echo "Installation du module PyYAML..."
pip install pyyaml
}
# Exécuter le script Python pour corriger les fichiers YAML
echo "Correction des fichiers YAML de déploiement..."
python3 fix_yaml.py
# Vérifier si la correction a réussi
if [ $? -ne 0 ]; then
echo "Échec de la correction des fichiers YAML. Abandon du déploiement."
exit 1
fi
# Supprimer les déploiements existants s'ils existent
echo "Suppression des déploiements existants..."
kubectl delete deployment trading-bot-web --namespace=evil2root-trading --ignore-not-found=true
kubectl delete deployment analysis-bot --namespace=evil2root-trading --ignore-not-found=true
kubectl delete deployment market-scheduler --namespace=evil2root-trading --ignore-not-found=true
# Attendre que les pods soient complètement supprimés
echo "Attente de la suppression complète des pods..."
kubectl wait --for=delete pod --selector=app=trading-bot-web --namespace=evil2root-trading --timeout=60s || true
kubectl wait --for=delete pod --selector=app=analysis-bot --namespace=evil2root-trading --timeout=60s || true
kubectl wait --for=delete pod --selector=app=market-scheduler --namespace=evil2root-trading --timeout=60s || true
# Déploiement des composants de l'application
echo "Déploiement des composants de l'application..."
kubectl apply -f kubernetes/deployments/trading-bot-web.yaml || {
echo "Erreur lors du déploiement de trading-bot-web. Vérification du fichier YAML..."
kubectl apply -f kubernetes/deployments/trading-bot-web.yaml --validate=true --dry-run=client
exit 1
}
kubectl apply -f kubernetes/deployments/analysis-bot.yaml || {
echo "Erreur lors du déploiement de analysis-bot. Vérification du fichier YAML..."
kubectl apply -f kubernetes/deployments/analysis-bot.yaml --validate=true --dry-run=client
exit 1
}
kubectl apply -f kubernetes/deployments/market-scheduler.yaml || {
echo "Erreur lors du déploiement de market-scheduler. Vérification du fichier YAML..."
kubectl apply -f kubernetes/deployments/market-scheduler.yaml --validate=true --dry-run=client
exit 1
}
# Déploiement des services
echo "Déploiement des services..."
kubectl apply -f kubernetes/services/trading-bot-web.yaml
kubectl apply -f kubernetes/services/web-service.yaml
# Déploiement de l'ingress (avec une pause pour s'assurer que le webhook est prêt)
echo "Attente avant le déploiement de l'ingress..."
sleep 30
kubectl apply -f kubernetes/ingress/trading-bot-web-ingress.yaml || {
echo "Première tentative de déploiement de l'ingress échouée. Attente supplémentaire..."
sleep 60
kubectl apply -f kubernetes/ingress/trading-bot-web-ingress.yaml
}
# Déploiement des autoscalers
echo "Déploiement des autoscalers..."
kubectl apply -f kubernetes/hpa/trading-bot-web-hpa.yaml
kubectl apply -f kubernetes/hpa/analysis-bot-hpa.yaml
echo "Application déployée avec succès !"
echo "Pour vérifier le statut des pods:"
echo "kubectl get pods -n evil2root-trading"
echo "Pour voir les logs de l'analysis-bot:"
echo "kubectl logs -f -l app=trading-bot,component=analysis-bot -n evil2root-trading"