Finish tp4

This commit is contained in:
flyingscorpio@arch-desktop 2023-06-11 21:32:46 +02:00
parent ec84956038
commit cf57193b8b

View file

@ -144,16 +144,145 @@ On peut désinstaller la release Helm~:
\subsection{Déploiement de flux comme dans le tp3}
\subsubsection{Installation de fluxcd}
Nous avons créé un repository vide sur GitHub que l'on a nommé \texttt{fluxtp4}.
On commence donc par le cloner et se positionner dedans~:
\begin{console}[gobble=4]
$ git clone https://github.com/flying-scorpio/fluxtp4.git
$ cd fluxtp4
\end{console}
On n'oublie pas de créer un token, puis de l'affecter à la variable d'environnement \texttt{GITHUB\_TOKEN}, avant de lancer l'installation de fluxcd dans le repository~:
\begin{console}[gobble=4]
$ export GITHUB_TOKEN='<token>'
$ flux bootstrap github --owner=flying-scorpio --repository=fluxtp4 --path=clusters/tp4 --personal --private=false
\end{console}
On vérifie l'installation ainsi que la création des pods dans le namespace flux-system~:
\begin{console}[gobble=4]
$ flux check
$ kubectl get pods -n flux-system
NAME READY STATUS RESTARTS AGE
helm-controller-6755c66c6b-vdfz7 1/1 Running 0 61s
kustomize-controller-787b66b9df-lg8xw 1/1 Running 0 61s
notification-controller-579b5cb5c9-wzgpq 1/1 Running 0 60s
source-controller-69bf47ff7d-tmjcs 1/1 Running 0 60s
\end{console}
N'oublions pas de récupérer les commits créés par flux~:
\begin{console}[gobble=4]
$ git pull
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 13 (delta 0), reused 13 (delta 0), pack-reused 0
Unpacking objects: 100% (13/13), 34.94 KiB | 2.50 MiB/s, done.
From https://github.com/flying-scorpio/fluxtp4
* [new branch] main -> origin/main
\end{console}
\subsubsection{Installation de la GUI pour flux}
On ajoute le fichier \texttt{weave-gitops-values.yaml} à la racine du repository \texttt{fluxtp4}~:
\lstinputlisting{./fluxtp4/weave-gitops-values.yaml}
Il faut ensuite ajouter le weave gitops Helm repo dans notre repository et créer une release Helm pour déployer l'UI~:
\begin{console}[gobble=4]
$ flux create source helm ww-gitops --url=https://helm.gitops.weave.works --export > ./clusters/tp4/weave-gitops-source.yaml
\end{console}
Nous avons maintenant deux nouveau fichiers qu'il faut commiter et pousser~:
\begin{console}[gobble=4]
$ git add weave-gitops-values.yaml clusters/tp4/weave-gitops-source.yaml
$ git commit -m "Create HelmRelease"
[main 96b259d] Create HelmRelease
2 files changed, 14 insertions(+)
create mode 100644 clusters/tp4/weave-gitops-source.yaml
create mode 100644 weave-gitops-values.yaml
$ git push
\end{console}
Enfin créer la HelmRelease~:
\begin{console}[gobble=4]
$ flux create helmrelease ww-gitops --source=HelmRepository/ww-gitops --chart=weave-gitops --values=./weave-gitops-values.yaml --export > ./clusters/tp4/weave-gitops-helmrelease.yaml
\end{console}
Sans oublier de commiter et de pousser.
On doit maintenant pouvoir afficher le pod qui correspond à l'UI~:
\begin{console}[gobble=4]
$ kubectl get pods -n flux-system
NAME READY STATUS RESTARTS AGE
helm-controller-6755c66c6b-wgxhn 1/1 Running 0 5m43s
kustomize-controller-787b66b9df-rdxbb 1/1 Running 0 5m43s
notification-controller-579b5cb5c9-tffxv 1/1 Running 0 5m43s
source-controller-69bf47ff7d-shbz5 1/1 Running 0 5m43s
ww-gitops-weave-gitops-6fb6f5fb57-rvm62 1/1 Running 0 15s
\end{console}
\subsection{Configuration de flux pour déployer Nextcloud par une HelmRelease}
Il faut une Kustomization pour déployer Nextcloud~:
\begin{console}[gobble=4]
$ flux create kustomization nextcloud --target-namespace=default --path=./clusters/tp4/nextcloud --prune=true --interval=1m --source=GitRepository/flux-system --export > ./clusters/tp4/nextcloud.yaml
\end{console}
On crée ensuite le dossier \texttt{./clusters/tp4/nextcloud/} contenant le fichier \texttt{kustomization.yaml} suivant~:
\lstinputlisting{./fluxtp4/clusters/tp4/nextcloud/kustomization.yaml}
Dans ce fichier, on liste le fichier \texttt{helmchart.yaml}, qu'il faut donc créer.
On va utiliser la commande \texttt{helm template}, qui crée un fichier yaml à partir de template HelmChart.
Pour cela, on va utiliser le helm repo Nextcloud ajouté plus tôt, avec les valeurs issues du fichier \texttt{values.yaml} créé plus tôt~:
\begin{console}[gobble=4]
$ helm template nextcloud nextcloud/nextcloud -f values.yaml > ./clusters/tp4/nextcloud/helmchart.yaml
\end{console}
On commit, on push, et on vérifie l'état de la kustomization~:
\begin{console}[gobble=4]
$ kubectl get kustomizations -A
NAMESPACE NAME AGE READY STATUS
flux-system flux-system 127m True Applied revision: main@sha1:478a353d6f4b5a4b99bb1c8fc3dec45b3f06dddc
flux-system nextcloud 33s True Applied revision: main@sha1:478a353d6f4b5a4b99bb1c8fc3dec45b3f06dddc
\end{console}
\subsection{Livrables pour la soutenance}
\subsubsection{Console AWS avec le cluster EKS}
\begin{itemize}
\subsubsection{Repository github contenant la configuration flux}
\item Console AWS avec le cluster EKS
\subsubsection{UI de flux avec la configuration de gestion de l'application Nextcloud}
\item Repository github contenant la configuration flux
\subsubsection{Connexion à l'application via un navigateur web}
Voir \url{https://github.com/flying-scorpio/fluxtp4}.
\item UI de flux avec la configuration de gestion de l'application Nextcloud
\begin{console}[gobble=12]
$ kubectl port-forward -n flux-system svc/ww-gitops-weave-gitops 9001:9001
Forwarding from 127.0.0.1:9001 -> 9001
\end{console}
\item Connexion à l'application via un navigateur web
\begin{console}[gobble=12]
$ kubectl port-forward svc/nextcloud 8080:8080
Forwarding from 127.0.0.1:8080 -> 80
\end{console}
\end{itemize}
\end{document}