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-releaseEs 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 devFür die Passwortabfrage müssen die GitHub-Anmeldedaten verwendet werden.
Wenn
yarn installfehlschlägt muss die node-Version angepasst werden. Versuchenvm 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 backendDie 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.pemaußerhalb des CES:
sudo cp <ecosystem repository path>/ca.pem /etc/ssl/certs/ca.pemDas 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 50051cesappd 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 buildDanach 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-netrcAchten 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.yamlDies 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.