SFTP / SSH Component Repository - TBC¶
Currently the Git support in z2, while very efficient and convenient in development, is somewhat inefficient for repeated deployments due to the inability of selective downloads and Git and hence high network load due to full repo clones.
This proposal for a more generic SFTP and SSH based file system backed repository among other features completely eleminates the need to provide anything non-required to nodes and, in conjunction with Git, provides a simple and yet straightforward way for an efficient and versioned central system definition.
- Provisioning side is an SFTP location that is accessible via SSH for code execution
- Clients run (by need) repository scan to create component index DB for download by clients:
- Throttling by time lapse
- Keeping the last n revisions (number and age)
- Indexing code supplied by client (providing side needs up-to-date Java install)
- Download of index DB and component resources via SFTP
- Client side config specifies folder locations:
| +-.z2-+-config.properties | +-latest | +-index_<tn>.json | +-index_<tn-1>.json | ... | +-index_<tn>.json | +-resources
How to Apply w/ Git¶
- Git as special case of resource location: .git folder as resource folder
How to Provide for Development vs. Production Setup¶
- Split enabled repositories by environment variables:
- E.g.: Introduce intermediate state that groups and participates in bootrepo_up