kubeedge / kubeedge

Kubernetes Native Edge Computing Framework (project under CNCF)
https://kubeedge.io
Apache License 2.0
6.49k stars 1.67k forks source link

[OSPP] OTA(Over-The-Air) Upgrades For Edge Node #5589

Open WillardHu opened 3 weeks ago

WillardHu commented 3 weeks ago

What would you like to be added/modified:

Why is this needed:

In order to make the edge node more convenient and rapid upgrade, we introduce a remote upgrade scheme OTA (Over-The-Air) into KubeEdge. In the main process of OTA(i.e. make the bundle, download the bundle, verify the bundle and firmware upgrade), we have realized most steps. Our release will generate a new image version called installation-package, then we use the NodeUpgradeJob CRD to obtain the installation tool keadm in the image and run the command to upgrade the edge node. During this process, if the hacker masquerades the image in the edge node, this will result in the untrusted binary keadm. We need to verify the digest of the image before the keadm executes the upgrade, which is the third step of OTA to verify the bundle. And in some business scenarios (Internet of vehicles, Internet of Things), we also need to provide an option to make the node wait for confirmation from a person with permission before upgrading the edge node. In order to fulfill the above requirements, we need you to complete these tasks:

  1. We expect you to complete the validation of the image digest before the edge node upgrade;
  2. We expect you to add a field to define whether the edge node upgrade confirmation is required. If required, wait for the confirmation before upgrade the node;
  3. We expect you to provide an API in MetaService to confirm the edge node upgrade, and provide a command in the subcommand keadm ctl too;

Refer: