//Cloudogu EcoSystem Docs

Entwicklungsumgebung aufsetzen

Frontend

Um während der Entwicklung flexibler zu sein, kann das Frontend unabhängig vom Backend bereitgestellt werden.

npmrc-Datei erstellen

Einige verwendete Bibliotheken brauchen Authentifizierung. Die Anmeldedaten werden über eine .npmrc-Datei bereitgestellt. Zum Erstellen muss das folgende make target ausgeführt werden.

make gen-npmrc-release

Es müssen die CES-Anmeldedaten verwendet werden.

Das Frontend starten

Um das Frontend zu starten, müssen alle Abhängigkeiten installiert und der Server gestartet werden.

cd ui
yarn install
yarn run dev

Für die Passwortabfrage müssen die GitHub-Anmeldedaten verwendet werden.

Wenn yarn install fehlschlägt muss die node-Version angepasst werden. Versuche nvm use 12.22.5.

Das Frontend mit einer Mock-API starten

Den folgenden Befehl ausführen, um das package json-server global zu installieren und den Mock-Server mit den definierten Mockdaten zu starten.

cd ui
yarn backend

Die Datei routes.json enthält hardkodierte Routen, auf die der Mock-Server reagieren soll. Die dazugehörigen Daten können in _db.json definiert werden.

Beispiel:

routes.json

{
  "/admin/api/v1/dogus": "/my-dogus"
}

_db.json

{
  "my-dogus": [
    {
      "name": "dogu1",
      "displayName": "Dogu 1",
      "version": "1.2.3-4",
      "description": "Dogu 1 is really cool."
    }
  ]
}

Backend

Um das Backend lokal zu starten, muss der folgende Befehl ausgeführt werden:

go run .

Vorraussetzungen

Zertifikate

Um das Backend lokal laufen zu lassen muss die ca.pem in die lokale Entwicklungsumgebung unter /etc/ssl/certs/ kopiert werden. Die Datei kann aus der Ecosystem-Konfiguration (etcd) gelesen werden:

im CES:

etcdctl get /config/_global/certificate/cesappd/ca.pem > /vagrant/ca.pem

außerhalb des CES:

sudo cp <ecosystem repository path>/ca.pem /etc/ssl/certs/ca.pem

Das Backend lädt die Datei automatisch beim Starten. Das Zertifikat wird beim Installationsprozess von cesappd generiert. Daher muss jedes Mal wenn das CES neu installiert wird, das Zertifikat lokal aktualisiert werden.

cesappd service

Der Service muss laufen. Mehr Details finden sich in der Entwicklerdokumentation des cesappd Repositorys auf Github.

Für die lokale Entwicklung mit einem laufenden CES muss eine weitere Firewall-Regel angewandt werden, um den Service zu erreichen:

# allow access to the service running on port 50051
# the IP address 192.168.56.1 will be available as long as the local CES is running
ufw allow from "192.168.56.1" to any port 50051
cesappd Serviceaccount

Um auf cesappd zuzugreifen, wird ein Serviceaccount benötigt, der normalerweise beim Installationsprozess von Dogus erstellt wird. Dieser Serviceaccount kann manuell erstellt werden:

root@ces:# cesappd service-account-create admin
username:<user>
password:<password>

Diese Zugangsdaten müssen in die lokale configuration.yaml geschrieben werden.

service_endpoint:
  username: <user>
  password: <password>

Produktionsnähe

Die configuration.yaml sollte die Konfiguration des service-endpoint enthalten.

Für ein produktionsnahes Setup muss das Frontend gebaut/gepackt werden.

cd ui
yarn install
yarn start build

Danach liefert das Backend das Frontend aus:

go run .

Das Dogu in einem CES bauen

Bevor Sie das Dogu mit dem Befehl cesapp build erstellen, müssen Sie eine .netrc-Datei anlegen, die die Anmeldedaten für den Zugriff auf private GitHub-Repositorys während des Docker-Build-Prozesses enthält.

Mit dem Make-Target generate-netrc wird die erforderliche Datei generiert.

GIT_USER=mygitusernamer GIT_USER_TOKEN=myaccesstoken make generate-netrc

Achten sie darauf, diese Datei nicht in das Repository zu committen! Andernfalls sind die Anmeldedaten über den Git Commit-Verlauf einsehbar.

Multinode-Abhängigkeiten

Um das Admin Dogu in einer Multinode-Umgebung voll nutzen zu können, kann die Beispieldatei k8s-admin-dependencies.yaml wie folgt installiert werden:

kubectl -n ecosystem apply -f ./k8s-samples/k8s-admin-dependencies.yaml

Dies kann einige Zeit in Anspruch nehmen. Anschließend sind alle erforderlichen Komponenten und Dogus installiert. Überprüfen Sie gegebenenfalls die Versionen der Dogus, die in der Beispieldatei angegeben sind.

Um Backups in Ihrem Cluster zu konfigurieren, befolgen Sie bitte diese Anleitung

Starten Sie das Admin- und Grafana-Dogu neu, nachdem Sie die YAML-Datei angewendet haben.