Handle closed networks (proxy support, and network-free charm install support)
[GOAL]
Support networks that don't have public network access from charm nodes. Support the needs of Juju users that want to be able to scale up network services even when there are problems with external network reliability.
[RATIONALE]
Blueprint information
- Status:
- Complete
- Approver:
- Mark Ramm
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Katherine Cox-Buday
Whiteboard
[USER STORIES]
* Tim wants to be able to juju install wordpress on an openstack network where external network access must go through a proxy.
* Tom wants to be able to use juju add-unit to scale up wordpress even when the external resources that the charm relies on may be unreliable (or slow).
* Tod is a system admin who wants to be able to use his own cloud local curated apt repository to 1) improve performance, 2) control what versions of various infrastructure components (like apache) are available in his corp environments.
[ASSUMPTIONS]
* Proxy network support is useful to a class of users who have firewalls, but still allow arbitrary downloads.
* Adaptations to individual charms to support a "networkless" install are possible
* We can establish charm standards that make it possible to build a reasonable image post install hook that can be used for later add-unit commands
[RISKS]
* Charms may not keep up with the changes needed to fully support this feature.
* Go may not support http_proxy
[IN SCOPE]
* providing proxy support
[OUT OF SCOPE]
* Changing all the charms
* Actually building images and using them for add-unit
[USER ACCEPTANCE]
[RELEASE NOTE/BLOG]
Work Items
Work items:
Add apt proxy config setting in cloud-init, size 1: TODO
Add env.yaml setting to record the desired http_proxy setting for the deployed nodes, size 2: TODO
Export the http_proxy setting to the context in which the state server runs, size 2: TODO
Export the http_proxy setting to the context in which hooks run, size 4: TODO
Manually upload charms to the environment, size 4: TODO
Write (mgz says trivial) script to list charms so they can be downloaded into a local mirror, size 2: TODO