forked from uncloud/uncloud
1.7 KiB
1.7 KiB
What is a remote uncloud client?
Systems that configure themselves for the use with uncloud
Examples are VMHosts, VPN Servers, cdist control server, etc.
Which access do these clients need?
They need read / write access to the database
Possible methods
Overview
pros | cons | |
SSL based | Once setup, can access all django parts natively, locally | X.509 infrastructure |
SSH -L tunnel | All nodes can use [::1]:5432 | SSH setup can be fragile |
ssh djangohost manage.py | All DB ops locally | Code is only executed on django host |
https + token | Rest alike / consistent access | Code is only executed on django host |
from_django | Everything is on the django host | main host can become bottleneck |
remote vs. local Django code execution
- If manage.py is executed locally (= on the client), it can check/modify local configs
- However local execution requires a pyvenv + packages + db access
- Local execution also could make use of postgresql notify for triggering actions (which is quite neat)
- Remote execution (= on the primary django host) can acess the db via unix socket
- However remote execution cannot check local state
from_django
- might reuse existing methods like celery
- reduces the amount of things to be installed on the client to almost zero
- follows the opennebula model
- has a single point of failurebin