turnip can't be scaled up to multiple instances
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
turnip |
Fix Released
|
High
|
Colin Watson |
Bug Description
turnip needs to be rearchitected (or, more accurately, brought more into compliance with its original architecture) so that it can be scaled up, because one instance isn't good enough but we can't add more today.
In order for this to work, either we need multiple shards for packbackendserver (which implies non-trivial application-level management overhead), or we need a realistic and robust way to share a filesystem among packbackendserver instances. ceph does have multi-writer support, although it requires OpenStack Queens (I believe we're currently on Icehouse), and we'd be blazing a trail there to some extent. One lower-tech possibility we've considered, though not seriously investigated as yet, is to run an NFS server on one unit and then have the others talk to that.
Related branches
- Guillermo Gonzalez (community): Approve
-
Diff: 3565 lines (+3107/-15)69 files modifiedMakefile (+1/-0)
README (+6/-12)
charm/.gitignore (+6/-0)
charm/Makefile (+138/-0)
charm/README.md (+34/-0)
charm/bundle.yaml.in (+87/-0)
charm/dependencies.txt (+14/-0)
charm/layer/turnip-base/config.yaml (+93/-0)
charm/layer/turnip-base/copyright (+676/-0)
charm/layer/turnip-base/icon.svg (+159/-0)
charm/layer/turnip-base/layer.yaml (+10/-0)
charm/layer/turnip-base/lib/charms/turnip/base.py (+362/-0)
charm/layer/turnip-base/metadata.yaml (+5/-0)
charm/layer/turnip-base/reactive/turnip-base.py (+59/-0)
charm/layer/turnip-base/scripts/nrpe/check_git_refs (+24/-0)
charm/layer/turnip-base/templates/turnip-rsync.j2 (+8/-0)
charm/layer/turnip-base/wheelhouse.txt (+2/-0)
charm/layer/turnip-storage/config.yaml (+8/-0)
charm/layer/turnip-storage/layer.yaml (+4/-0)
charm/layer/turnip-storage/lib/charms/turnip/storage.py (+56/-0)
charm/layer/turnip-storage/metadata.yaml (+4/-0)
charm/layer/turnip-storage/reactive/turnip-storage.py (+122/-0)
charm/layer/turnip-storage/templates/data.mount.j2 (+9/-0)
charm/packages.txt (+2/-0)
charm/requirements.txt (+9/-0)
charm/turnip-api/config.yaml (+47/-0)
charm/turnip-api/layer.yaml (+5/-0)
charm/turnip-api/lib/charms/turnip/api.py (+48/-0)
charm/turnip-api/metadata.yaml (+21/-0)
charm/turnip-api/reactive/turnip-api.py (+75/-0)
charm/turnip-api/templates/gunicorn-turnip-api.py.j2 (+15/-0)
charm/turnip-api/templates/logrotate.j2 (+26/-0)
charm/turnip-api/templates/turnip-api.service.j2 (+27/-0)
charm/turnip-pack-backend/config.yaml (+9/-0)
charm/turnip-pack-backend/layer.yaml (+5/-0)
charm/turnip-pack-backend/metadata.yaml (+21/-0)
charm/turnip-pack-backend/reactive/turnip-pack-backend.py (+74/-0)
charm/turnip-pack-backend/templates/logrotate.j2 (+13/-0)
charm/turnip-pack-backend/templates/turnip-pack-backend.service.j2 (+26/-0)
charm/turnip-pack-frontend-git/config.yaml (+11/-0)
charm/turnip-pack-frontend-git/layer.yaml (+4/-0)
charm/turnip-pack-frontend-git/metadata.yaml (+24/-0)
charm/turnip-pack-frontend-git/reactive/turnip-pack-frontend-git.py (+85/-0)
charm/turnip-pack-frontend-git/templates/logrotate.j2 (+13/-0)
charm/turnip-pack-frontend-git/templates/turnip-pack-frontend-git.service.j2 (+17/-0)
charm/turnip-pack-frontend-http/config.yaml (+53/-0)
charm/turnip-pack-frontend-http/layer.yaml (+5/-0)
charm/turnip-pack-frontend-http/lib/charms/turnip/http.py (+32/-0)
charm/turnip-pack-frontend-http/metadata.yaml (+25/-0)
charm/turnip-pack-frontend-http/reactive/turnip-pack-frontend-http.py (+115/-0)
charm/turnip-pack-frontend-http/templates/cgitwrap.j2 (+5/-0)
charm/turnip-pack-frontend-http/templates/logrotate.j2 (+13/-0)
charm/turnip-pack-frontend-http/templates/sudoers-cgit.j2 (+4/-0)
charm/turnip-pack-frontend-http/templates/turnip-pack-frontend-http.service.j2 (+31/-0)
charm/turnip-pack-frontend-ssh/config.yaml (+17/-0)
charm/turnip-pack-frontend-ssh/layer.yaml (+4/-0)
charm/turnip-pack-frontend-ssh/lib/charms/turnip/ssh.py (+36/-0)
charm/turnip-pack-frontend-ssh/metadata.yaml (+24/-0)
charm/turnip-pack-frontend-ssh/reactive/turnip-pack-frontend-ssh.py (+92/-0)
charm/turnip-pack-frontend-ssh/templates/logrotate.j2 (+13/-0)
charm/turnip-pack-frontend-ssh/templates/turnip-pack-frontend-ssh.service.j2 (+21/-0)
charm/turnip-pack-virt/config.yaml (+9/-0)
charm/turnip-pack-virt/layer.yaml (+4/-0)
charm/turnip-pack-virt/metadata.yaml (+24/-0)
charm/turnip-pack-virt/reactive/turnip-pack-virt.py (+82/-0)
charm/turnip-pack-virt/templates/logrotate.j2 (+13/-0)
charm/turnip-pack-virt/templates/turnip-pack-virt.service.j2 (+18/-0)
ols-vms.conf (+2/-2)
system-dependencies.txt (+1/-1)
Changed in turnip: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in turnip: | |
assignee: | nobody → Colin Watson (cjwatson) |
status: | Triaged → In Progress |
Changed in turnip: | |
status: | In Progress → Fix Committed |
Changed in turnip: | |
status: | Fix Committed → Fix Released |