zos
zos copied to clipboard
Allow farmer to choose whether to upgrade or not
Right now all nodes automatically update, we need to add an option for a farmer to choose if he wants to upgrade
For now our idea was to add a field on the farmer struct that controls automatic upgrades for his nodes in his farm. We might want to think about allowing manual upgrades and how we are going to handle that.
Also there are some more things to think about when a farmer decides not to upgrade his nodes. He will need to run his own explorer, migrate data, etc ..
I think we need to have a more broad reflection about this. From the top of my head here are some question I think we need to answer:
- Does the choice apply on farm level or on node level ? Can a farmer choose to upgrade only some of it's node?
- What happens if a farmer decide no to upgrade and there are a breaking change with the explorer API ? Do we prevent the node from processing reservation ?
- If the farmer choice to not upgrade automatically: what choice does it have ? Upgrade to a specific version ? Upgrade to latest ? How to ensure all upgrade are applied and he doesn't skip one ?
- Should we start creating LTS releases ?
- Should we start maintaining multiple version ?
After gather more information about what is actually expected around this, here is what is planned.
1st phase: We ask each farmer to sign an auto upgrade agreement. Once he has sign it, all it's farms have auto upgrade enabled. Nothing more then that.
2nd phase: We can reflect around how granular we want the upgrade to be and let the farmer be fully in control. For this we need to answer all the question from my previous comment:
Does the choice apply on farm level or on node level ? Can a farmer choose to upgrade only some of it's node?
What happens if a farmer decide no to upgrade and there are a breaking change with the explorer API ? Do we prevent the node from processing reservation ?
If the farmer choice to not upgrade automatically: what choice does it have ? Upgrade to a specific version ? Upgrade to latest ? How to ensure all upgrade are applied and he doesn't skip one ?
Should we start creating LTS releases ?
Should we start maintaining multiple version ?
3PRs open for this at the moment:
- https://github.com/threefoldtech/zos/pull/901
- https://github.com/threefoldtech/js-sdk/pull/616
- https://github.com/threefoldtech/tfexplorer/pull/150
We should close all current work done for it and come up with a new strategy in grid 3.0. I think the digital twin from the farmer can take care of this.