Upgrade a running py-juju environment to go-juju
[GOAL]
Plan and outline all the necessary steps to perform an automated live migration of an existing Python juju running environment to a Go juju environment.
[RATIONALE]
There are a lot of existing py-juju environments users created and not having a well-defined and automated procedure to upgrade them to juju-core environments, without having to recreate the whole environment will discourage those users from upgrading to juju-core.
Blueprint information
- Status:
- Complete
- Approver:
- None
- 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
Related branches
Related bugs
Sprints
Whiteboard
[USER STORIES]
John has a running py-juju environment with 16 deployed units and John wants to upgrade to juju-core to get a supported version of juju, but he does not want to redeploy his environment.
[ASSUMPTIONS]
In order to upgrade, we assume the environment is running and stable.
While the upgrade is going on, the environment cannot be modified by the user.
py-juju tools, agents and zookeeper state are completely replaced after the upgrade is done by the equivalent juju-core tools, agents and mongodb state.
[RISKS]
Breaking a running environment or losing any essential data is considered really bad.
[IN SCOPE]
Keep the existing infrastructure, charms, services, units and relations.
Upgrade to latest juju-core tools.
Migrate zookeeper environment information to MongoDB, adapting it as needed by an automated process.
[OUT OF SCOPE]
Migration of broken environments.
Having and environment controlled by both py-juju and go-juju.
Local provider environment upgrades.
[USER ACCEPTANCE]
After successful live testing against running environments for each supported provider type (except local) and major cloud deployments (canonistack, prodstack, aws, hp, etc.).
[RELEASE NOTE/BLOG]
Brag about it a lot!