maj readme + deploy.sh OK

This commit is contained in:
Grégory Lebreton 2023-10-30 14:42:40 +01:00
parent a643f68190
commit 013f5e10f1
7 changed files with 45 additions and 31 deletions

View File

@ -78,8 +78,8 @@ kubectl create -f ./kubernetes/postgres-service.yml
- Créer la database:
```bash
kubectl get pods
kubectl exec postgres-<POD_IDENTIFIER> --stdin --tty -- createdb -U postgres books
POD_NAME=$(kubectl get pod -l service=postgres -o jsonpath="{.items[0].metadata.name}")
kubectl exec $POD_NAME --stdin --tty -- createdb -U sample books
```
#### Flask
@ -99,9 +99,9 @@ kubectl create -f ./kubernetes/flask-service.yml
- Appliquer la migration et la source de la database:
```bash
kubectl get pods
kubectl exec flask-<POD_IDENTIFIER> --stdin --tty -- python manage.py recreate_db
kubectl exec flask-<POD_IDENTIFIER> --stdin --tty -- python manage.py seed_db
FLASK_POD_NAME=$(kubectl get pod -l app=flask -o jsonpath="{.items[0].metadata.name}")
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py recreate_db
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py seed_db
```
#### Vue
@ -130,22 +130,36 @@ kubectl apply -f ./kubernetes/minikube-ingress.yml
- Ajouter une entrée au fichier */etc/hosts*:
```bash
echo "$(minikube ip) flask.book" | sudo tee -a /etc/hosts
echo "$(minikube ip) flask.k8s" | sudo tee -a /etc/hosts
```
### Résultat :checkered_flag:
- L'application est disponible à l'adresse:
:push_pin: [http://flask.book/](http://flask.book/)
:pushpin: [http://flask.k8s/](http://flask.k8s/)
- Tester les différents pods du replica set flask:
```bash
for ((i=1;i<=10;i++)); do curl http://flask.book/books/ping; done
for ((i=1;i<=10;i++)); do curl http://flask.k8s/books/ping; done
```
### Commandes
### Version semi automatisée (deploy.sh)
```bash
./deploy.sh
# attendre que la dashboard pop dans le navigateur, puis:
POD_NAME=$(kubectl get pod -l service=postgres -o jsonpath="{.items[0].metadata.name}")
kubectl exec $POD_NAME --stdin --tty -- createdb -U sample books
FLASK_POD_NAME=$(kubectl get pod -l app=flask -o jsonpath="{.items[0].metadata.name}")
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py recreate_db
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py seed_db
```
> Si vous rencontrez des erreurs avec les commandes, attendre un peu que les pods soient déployés
### Commandes utiles :thumbsup:
- Infos:
@ -173,7 +187,7 @@ kubectl logs <POD_NAME>
```bash
minikube stop; minikube delete
rm /usr/local/bin/minikube
sudo rm /usr/local/bin/minikube
rm -rf ~/.minikube
# re-download minikube
minikube start

View File

@ -25,12 +25,6 @@ kubectl create -f ./kubernetes/flask-deployment.yml
kubectl create -f ./kubernetes/flask-service.yml
echo "Creating the vue deployment and service..."
kubectl create -f ./kubernetes/vue-deployment.yml
kubectl create -f ./kubernetes/vue-service.yml
echo "Adding the ingress..."
minikube addons enable ingress
@ -38,22 +32,28 @@ kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
kubectl apply -f ./kubernetes/minikube-ingress.yml
echo "Creating hello.world entry in /etc/hosts..."
echo "Creating the vue deployment and service..."
echo "$(minikube ip) hello.world" | sudo tee -a /etc/hosts
kubectl create -f ./kubernetes/vue-deployment.yml
kubectl create -f ./kubernetes/vue-service.yml
echo "Creating flask.k8s entry in /etc/hosts..."
echo "$(minikube ip) flask.k8s" | sudo tee -a /etc/hosts
# BROKEN -> A FAIRE MANUELLEMENT !!!
echo "Creating database books in postgres..."
# echo "Creating database books in postgres..."
POD_NAME=$(kubectl get pod -l service=postgres -o jsonpath="{.items[0].metadata.name}")
kubectl exec $POD_NAME --stdin --tty -- createdb -U sample books
# POD_NAME=$(kubectl get pod -l service=postgres -o jsonpath="{.items[0].metadata.name}")
# kubectl exec $POD_NAME --stdin --tty -- createdb -U sample books
# BROKEN -> A FAIRE MANUELLEMENT !!!
echo "Recreating database books in flask..."
# # BROKEN -> A FAIRE MANUELLEMENT !!!
# echo "Recreating database books in flask..."
FLASK_POD_NAME=$(kubectl get pod -l app=flask -o jsonpath="{.items[0].metadata.name}")
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py recreate_db
kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py seed_db
# FLASK_POD_NAME=$(kubectl get pod -l app=flask -o jsonpath="{.items[0].metadata.name}")
# kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py recreate_db
# kubectl exec $FLASK_POD_NAME --stdin --tty -- python manage.py seed_db
minikube dashboard

View File

@ -33,7 +33,7 @@ spec:
secretKeyRef:
key: password
name: postgres-credentials
image: mjhea0/flask-kubernetes:latest
image: greglebreton/kubernetes-flask:latest
imagePullPolicy: Always
name: flask
resources: {}

View File

@ -5,7 +5,7 @@ metadata:
annotations:
spec:
rules:
- host: hello.world
- host: flask.k8s
http:
paths:
- path: /

View File

@ -18,7 +18,7 @@ spec:
app: vue
spec:
containers:
- image: mjhea0/vue-kubernetes:latest
- image: greglebreton/kubernetes-vue:latest
imagePullPolicy: Always
name: vue
resources: {}

View File

@ -10,7 +10,7 @@ RUN npm install
COPY . .
RUN ROOT_API=http://localhost:5001 npm run build
RUN ROOT_API=http://flask.k8s npm run build
EXPOSE 8080

View File

@ -10,7 +10,7 @@ RUN npm install
COPY . .
RUN ROOT_API=http://hello.world npm run build
RUN ROOT_API=http://flask.k8s npm run build
EXPOSE 8080