Upgrade a running py-juju environment to go-juju

Registered by Dimiter Naydenov

[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
Completed by
Katherine Cox-Buday

Related branches

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!

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.