IoGatewayDockerCompose

Da NoiOpen.
Vai alla navigazioneVai alla ricerca


Premessa: la situazione di IO-SDK

Attualmente IO-SDK usa un launcher scritto in Go per lanciare l’ sdk. Se uno esegue iosdk -v start vede tutti i comandi che lancia.

In particolare fa 3 cose:

  • lancia redis
  • lancia openwhisk standalone e lo collega a redis
  • lancia theia montando un volume

Utilizza inoltre una versione customizzata di openwhisk standalone che include un traefik “dentro”

Questa situazione è ottimizzata per il deployment ma è scomoda per lo sviluppo di io-gateway

Obiettivo: requisiti docker-compose.yml

Per IO-Gateway vorrei un ambiente di sviluppo più facile da modificare usando un docker-compose. E non voglio theia, visto che molti preferiscono un ambiente locale.

Prima di tutto bisogna prendere la directory io-sdk/admin e copiarla nella directory conrrente

In particolare ci vuole un compose che faccia le seguenti cose

  • lanci redis (library/redis:5)
  • lanci openwhisk standalone USANDO LA VERSIONE STANDARD (openwhisk/standalone:nightly) e gli passi redis come service rintracciabile come “redis”
  • lanci un traefik esposto in porta 3280 che monti la directory corrente e faccia vedere la directory admin/web/public come localhost:/app/ e faccia un proxy che permetta di accedere openwhisk in localhost:3820/api

Compilcazione: openwhisk usa un file runtime.json che mappa le immagin docker da usare per i runtime. IO-SDK usa una immagine non standard per via di redis e ldap. Le immagini sono pagopa/action-python-3.7:<data> , bisogna far usare a openwhisk questa immagine per file.py, NON l’immagine standard openwhisk/action-python-3.7:nightly, e questo runtime json va passato via docker-compose. Questa immagine cerca un redis disponibile

Se tutto è a posto, facendo docker-compose up dovrebbe comparire in porta 3280 un traefik che permette di accedere ad openwhisk via /api/v1/* e alla directory locale admin/web/public via porta /app

A questo punto si dovrebbe poter deployare le azioni con cd admin ; make deploy e mettere in “sviluppo” il frontend con “make devel” accessibile via http://localhost/app/index.html

Notare che queste sono già state fatte nel chart di helm.