Add sh + dockerfile
This commit is contained in:
parent
407791b14a
commit
b9e376350e
20
sk1/Dockerfile
Normal file
20
sk1/Dockerfile
Normal file
@ -0,0 +1,20 @@
|
||||
FROM python:3.9-slim
|
||||
|
||||
# Set the working directory to /app
|
||||
WORKDIR /app
|
||||
|
||||
# Copy requirements.txt from the app folder
|
||||
COPY ./app/requirements.txt .
|
||||
|
||||
# Install dependencies
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
# Copy the entire app folder into the container
|
||||
COPY ./app /app
|
||||
|
||||
# Expose port 5000
|
||||
EXPOSE 5000
|
||||
|
||||
# Run the app
|
||||
CMD ["python", "app.py"]
|
||||
|
78
sk1/deploy.sh
Normal file
78
sk1/deploy.sh
Normal file
@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Variables
|
||||
RESOURCE_GROUP="travel-planner"
|
||||
AKS_CLUSTER="travelplanneraks"
|
||||
ACR_NAME="travelplannerregistry" # Nom en minuscules sans tirets
|
||||
NAMESPACE="travel-planner"
|
||||
IMAGE_NAME="travel-planner"
|
||||
IMAGE_TAG="latest"
|
||||
LOCATION="eastus"
|
||||
|
||||
echo "==== Déploiement Azure - Création des ressources ===="
|
||||
|
||||
az login
|
||||
|
||||
# Étape 1: Créer le groupe de ressources s'il n'existe pas
|
||||
echo "Création du groupe de ressources..."
|
||||
az group create --name $RESOURCE_GROUP --location $LOCATION || exit 1
|
||||
|
||||
# Étape 2: Créer le registre de conteneurs Azure (ACR)
|
||||
echo "Création du registre de conteneurs Azure..."
|
||||
az acr create --resource-group $RESOURCE_GROUP --name $ACR_NAME --sku Basic || exit 1
|
||||
|
||||
# Étape 3: Créer le cluster AKS
|
||||
echo "Création du cluster AKS (cela peut prendre plusieurs minutes)..."
|
||||
az aks create \
|
||||
--resource-group $RESOURCE_GROUP \
|
||||
--name $AKS_CLUSTER \
|
||||
--node-count 1 \
|
||||
--enable-addons monitoring \
|
||||
--generate-ssh-keys \
|
||||
--attach-acr $ACR_NAME
|
||||
|
||||
# Étape 4: Connexion au cluster AKS
|
||||
echo "Connexion au cluster AKS..."
|
||||
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER || exit 1
|
||||
|
||||
# Étape 5: Créer le namespace Kubernetes
|
||||
echo "Création du namespace Kubernetes..."
|
||||
kubectl create namespace $NAMESPACE || true
|
||||
|
||||
# Étape 6: Construire et pousser l'image Docker vers ACR
|
||||
echo "Construction et publication de l'image Docker..."
|
||||
# Se connecter à l'ACR
|
||||
az acr login --name $ACR_NAME
|
||||
|
||||
# Taguer l'image avec le nom de l'ACR
|
||||
docker pull chabooo/travel-planner:latest
|
||||
docker tag chabooo/travel-planner:latest ${ACR_NAME}.azurecr.io/${IMAGE_NAME}
|
||||
docker push ${ACR_NAME}.azurecr.io/${IMAGE_NAME}
|
||||
|
||||
# Étape 7: Mise à jour du fichier deployment.yaml pour utiliser l'image de l'ACR
|
||||
echo "Mise à jour du fichier deployment.yaml..."
|
||||
sed -i "s|image:.*|image: ${ACR_NAME}.azurecr.io/${IMAGE_NAME}|" k8s/deployment.yaml
|
||||
|
||||
# Étape 8: Appliquer les ressources Kubernetes
|
||||
echo "Déploiement des ressources Kubernetes..."
|
||||
kubectl apply -f k8s/namespace.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/secret.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/persistent-volume.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/persistent-volume-claim.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/postgres-service.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/statefulset.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/deployment.yaml -n $NAMESPACE
|
||||
kubectl apply -f k8s/service.yaml -n $NAMESPACE
|
||||
|
||||
# Étape 9: Attendre que les pods soient prêts
|
||||
echo "Attente du déploiement des pods..."
|
||||
kubectl wait --namespace $NAMESPACE --for=condition=ready pod -l app=postgres --timeout=300s
|
||||
kubectl wait --namespace $NAMESPACE --for=condition=ready pod -l app=travel-planner --timeout=300s
|
||||
|
||||
# Étape 10: Afficher l'URL d'accès
|
||||
echo "Application déployée. URL d'accès:"
|
||||
kubectl get svc travel-planner -n $NAMESPACE -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
|
||||
echo ""
|
||||
|
||||
echo "==== Déploiement Azure terminé ===="
|
||||
|
14
sk1/prepare-app.sh
Normal file
14
sk1/prepare-app.sh
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
echo "Preparing app"
|
||||
|
||||
# build image Docker
|
||||
docker build -t chabooo/travel-planner:latest .
|
||||
|
||||
echo "Sucessfuly built"
|
||||
|
||||
# push docker image
|
||||
docker push chabooo/travel-planner:latest
|
||||
|
||||
echo "sucessfuly pushed"
|
||||
|
||||
echo "Preparation completed."
|
Loading…
Reference in New Issue
Block a user