Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Zeitplanung / Min

Thema

Beteiligte

Notizen

Kubernetes-Deployment im LRZ MünchenFlorian Kreft 

öffentliches gitlab: https://gitlab.lrz.de/bib-public/folio-helm

In einem K8s-Namespace einmal die komplette Installation machen.

Elasticsearch über bitnami-Helmcharts, Kafka über bitnami-Helmcharts deployed.

Stroage Class mit Longhorn. Die Helmcharts werden woanders nicht out-of-the box funktionieren. Basieren aber auf den Helm-Charts von Steffen Köhler (Leipzig). 

Hosting von versch. Bibliotheken, wahrscheinlich im selben Cluster.

Okapi wird im lokalen gitlab gebaut. Globale Variablen verwenden, damit man nicht an verschiedenen Stellen editieren muss. Start von Okapi mit einem java-Befehl. Es wird ein Service erstellt und es gibt 3 verschiedene Pods, die geclustert sind. Mit einem Befehl installiert.

Absicherung des Supertenants, danach Installation der restlichen Module. mod-users, mod-permissions, mod-authtoken erstellt. Dann jobs gestartet, um diese Module bei Okapi anzumelden. Dafür Skripte geschrieben "init.sh". Von Steffen Köhler übernommen und erweitert für abgesicherten Supertenant. 

Davor noch ein Skript ausgeführt, welches den Superuser absichert. Dafür das Templating von Helm verwendet, um auch die Variablen zu nutzen. Variablen in secure-supertenant.yml.  secure-supertant-Skript i.W. von 2019, aber kompakter. 

Konfigurationen der einzelnen Module zusammen in einem einzigen Value-File, 2022-r1-auth.yaml. Hier werden auch die Images angegeben. Das ist eigentlich das einzige, was man verwalten muss, es sei denn, man braucht zusätzlich Features. Das wird für jedes Modul ausgeführt.  2 pods für authtoken benötigen ein gemeinsames Secret; das ist hier schon eingebaut.

2022-r1-auth.yaml installiert die Module, die man zur Authentifizierung benötigt. Danach Absicherung des Supertenants. Dann Deployment aller anderen Module.

Datei 2022-r1-all.yaml pfegt man, und behält sie auch. Dadurch hat man auch den Überblick, welche Module für welchen Tenant installiert sind. Überarbeitet, hatte bei Jason Root ca. 7000 Zeilen.

Arbeitet an Version für einen Upgrade-Prozess. FOLIO-Upgrade ist etwas spezieller.

Skript 2022-r1-all.yaml installiert ca. 50 Module. Danach muss noch der Tenant installiert werden.

Auflösung der Abhängigkeiten: Nutzung der Möglichkeiten von Kubernetes, dass es es noch einmal versucht, wenn es fehlgeschlagen  ist. Daher muss man nicht auf Reihenfolge achten, in der die Module deployed werden.  (Einige) Container direkt von folio-org geholt.

Letzter Schritt : Tenant (Mandanten) installieren. Woher soll das Image für Stripes kommen ? Das muss man selber bauen, OKAPI-URL und tenant: einbauen. Dafür wird eine CI-Pipeline benutzt. Für einen weiteren Tenant sollte nur die Datei tenants/values-demo.yml angepasst werden. Außerdem muss man per Tenant mitgeben, welche Module aktiviert werden sollen.

1 Pod, der das Frontend enthält und einen Job, der das Frontend registriert. Letzeres ist ein "relativ kompliziertes" Skript. register-tenant.sh. Erweitert, dass es mit abgesichertem Supertenant funktioniert. 

Das Skript ist direkt in den Files von dem Helm-Charts. D.h. das Skript wird eingelesen und anschließend ausgeführt. Daher kann man direkt an diesem Skript arbeiten. pod benutzt Alpine Linux, installiert curl und bash.  Legt versch. Permission an. Generiert relativ viele Secrets (z.B. für Supertenant, admin).  Damit sollte man jetzt über einen Ingress auf Stripes zugreifen können.... kann man auch.

Aktuelle Arbeiten an LDP-Deployment.

Stripes Modul in K8s-Cluster mit Calico  gebaut. Das dauert 13 Minuten. 

Protokollnotizen:


Aufgabenliste

...