Finish tp4
This commit is contained in:
parent
ec84956038
commit
cf57193b8b
1 changed files with 133 additions and 4 deletions
|
@ -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}
|
||||
|
|
Loading…
Reference in a new issue