Praxisbeispiel zur Implementierung einer React-SPA mit Typescript und von swagger-codegen generiertem Client. Erstellung eines Docker-Images und Deployment in eine Kubernetes-Plattform.
- Installation der aktuellsten Node.js LTS-Version: https://nodejs.org/en/download/
- Installation von Yarn: https://yarnpkg.com/lang/en/docs/install/#windows-stable
Um ein Beispiel für einen Rest-Service mit etwas höherer Komplexität und umfangreicheren Objekten zu haben, wurde das Modell der Tesla-Owner-Api
ausgewählt, die hier in Swagger-Hub modelliert wurde.
Die Typescript-fetch
- Version wurde aus dem Modell exportiert und unter src/ev-client entpackt.
yarn install
yarn start
- Korrigiert die Komponente `ChargerToggle.tsx -> Zugriff auf ChargeState und chargeStart, chargeStop
- Integriert Redux um die Aktionen und Datenbereitstellung von den Komponenten stärker zu entkoppeln.
- docker build
docker build -t ws-crs/ev-frontend .
- docker run
docker run -p 8082:80 -d --name ev-frontend -t ws-crs/ev-frontend
- Testen mit localhost:8082
docker tag ws-crs/ev-frontend gcr.io/elite-droplet-256314/ws-crs/ev-frontend
docker push gcr.io/elite-droplet-256314/ws-crs/ev-frontend
kubectl apply -f k8s.ev-frontend.deployment.yaml
# Trick: kubectl patch deployment ev-frontend -p "{\"spec\": {\"template\": {\"metadata\": { \"labels\": { \"redeploy\": \"$(date +%s)\"}}}}}"
kubectl apply -f k8s.ev-frontend-service.service.yaml
Als letztes den Ingres-Controller überarbeiten.