@@ -16,21 +16,29 @@ Web-APIs sind Schnittstellen, um Informationen und Anwendungsfunktionen Nutzern
## Vorbereitung
Sie benötigen auf Ihren lokalen Entwicklungsrechner:
-[Python 3](https://www.python.org/downloads)
-[Docker](https://www.docker.com/get-started)
Führen Sie anschließend bitte folgende Schritte aus:
1.[Forken](https://git.mylab.th-luebeck.de/cloud-native/lab-rest/-/forks/new) Sie bitte dieses GitLab-Repository in Ihren GitLab-Namensraum.
2. Installieren Sie anschließend bitte lokal auf Ihrem Rechner die Kubernetes-IDE [Lens](https://k8slens.dev/).
3. Laden Sie sich Ihre `kubeconfig` Datei im [Moodle-Kurs](https://to-be-donex) herunter.
4. Starten Sie Lens und fügen Sie der IDE die kubeconfig Datei hinzu, um auf Ihren Cluster zugreifen zu können. Sie sollten dann Ihren Namespace in dem für Sie bereitgestellten K8S-Cluster sehen.
5. Erstellen Sie anschließend in Gitlab unter `Einstellungen -> Repository -> Bereitstellungstoken` für das in Schritt 1 geforkte Repository einen Bereitstellungstoken, um selbstgebaute Container Images deployen zu können.
2. Klonen Sie das in Schritt 1 geforkte Repository bitte anschließend auf ihrem lokalen Rechner (`git clone`).
3. Installieren Sie anschließend bitte lokal auf Ihrem Rechner die Kubernetes-IDE [Lens](https://k8slens.dev/).
4. Laden Sie sich Ihre `kubeconfig` Datei im [Moodle-Kurs](https://to-be-donex) herunter.
5. Starten Sie Lens und fügen Sie der IDE die kubeconfig Datei hinzu, um auf Ihren Cluster zugreifen zu können. Sie sollten dann Ihren Namespace in dem für Sie bereitgestellten K8S-Cluster sehen.
6. Erstellen Sie anschließend in Gitlab unter `Einstellungen -> Repository -> Bereitstellungstoken` für das in Schritt 1 geforkte Repository einen Bereitstellungstoken, um selbstgebaute Container Images deployen zu können.
-**Name:**`Registry read access (deployment)`
-**Username:**`image-registry` (bitte exakt so!)
-**Scope:**`read-registry` (nicht mit read repository verwechseln!)
- Klicken Sie anschließend auf Bereitstellungstoken erstellen und kopieren Sie sich dieses geheime Token in die Zwischenablage!
6. Hinterlegen Sie nun für Gitlab Build-Pipelines dieses geheime Token unter `Einstellungen -> CI/CD -> Variables (Aufklappen) -> ADD VARIABLE` als CI/CD-Variable.
7. Hinterlegen Sie nun für Gitlab Build-Pipelines dieses geheime Token unter `Einstellungen -> CI/CD -> Variables (Aufklappen) -> ADD VARIABLE` als CI/CD-Variable.
-**Key:**`CI_REGISTRY_TOKEN` (exakt so)
-**Value:** Fügen Sie hier das geheime Token (Schritt 2) aus der Zwischenablage ein.
-**Type:**`Variable` (nichts anderes)
-**Flags:** Selektieren Sie `Mask Variable` damit das geheime Token in Log-Dateien maskiert wird.
7. Hinterlegen Sie in Ihrem geforkten GitLab-Repository nun die `kubeconfig`-Datei als CI-Environment-Variable mittels `Einstellungen -> CI/CI -> Variables (Aufklappen) -> ADD VARIABLE` (setzen Sie hierfür folgende Werte)
8. Hinterlegen Sie in Ihrem geforkten GitLab-Repository nun die `kubeconfig`-Datei als CI-Environment-Variable mittels `Einstellungen -> CI/CI -> Variables (Aufklappen) -> ADD VARIABLE` (setzen Sie hierfür folgende Werte)
-**Key:**`KUBECONFIG` (Exakt so eingeben)
-**Value:** Inhalt der kubeconfig (z.B. mittels Copy-Paste aus Editor)
-**Typ:**`File` (Auswählen, WICHTIG!!!)
...
...
@@ -46,11 +54,22 @@ Arbeiten Sie bitte dieses [Tutorial](https://programminghistorian.org/en/lessons
Bevor Sie starten, prüfen Sie bitte lokal auf Ihrem Rechner, ob die Grundkonfiguration funktioniert.
```Bash
pip3 install -r api/Requirements.txt
pip3 install -r api/requirements.txt
python3 api/api.py
```
Öffnen Sie dann [http://localhost:5000](http://localhost:5000) in einem Web-Browser. Sie sollten eine *"Distant Reading Archive"* Website sehen!
Prüfen Sie nun, ob Sie lokal einen Container bauen können.
```Bash
docker build api/ -t bookapi
docker run -p 8080:5000 bookapi
```
Öffnen Sie dann [http://localhost:8080](http://localhost:8080) in einem Web-Browser. Sie sollten dann erneut eine *"Distant Reading Archive"* Website sehen! Diesmal aus einem Container geliefert.
Committen und Pushen Sie nun diese Lösung in Git, um die Deployment Pipeline zu starten.
## Übung 02: Ergänzen Sie die Datenbank des Tutorials