Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

Add check in the OSM CLI for available updates / upgrades / new versions #1720

Closed
draychev opened this issue Sep 17, 2020 · 5 comments
Closed
Assignees
Labels
area/upgrade Upgrade related priority/P1 P1 priority size/S 3 days
Milestone

Comments

@draychev
Copy link
Contributor

draychev commented Sep 17, 2020

This issue is to implement an OSM CLI command, which performs an upgrade of the control plane (and data plane if necessary) to the latest available version. For example: osm check-update could output Current installed version: X; Available new version: Y

The design of this feature must ensure that Kubernetes clusters with older versions of the SMI CRDs continue to operate untinterrupted.

For instance: a cluster with version 1 of SMI and version 1 of OSM is upgraded to version 2 of OSM. Version 2 of OSM must continue to work with version 1 of SMI.

Unanswered questions:

  • how many legacy SMI CRD versions is the latest OSM control plane going to support?

Scope (please mark with X where applicable)

  • New Functionality [ ]
  • Install [ ]
  • SMI Traffic Access Policy [ ]
  • SMI Traffic Specs Policy [ ]
  • SMI Traffic Split Policy [ ]
  • Permissive Traffic Policy [ ]
  • Ingress [ ]
  • Egress [ ]
  • Envoy Control Plane [ ]
  • CLI Tool [ ]
  • Metrics [ ]
  • Certificate Management [ ]
  • Sidecar Injection [ ]
  • Logging [ ]
  • Debugging [ ]
  • Tests [ ]
  • CI System [ ]
  • Project Release [ ]

Possible use cases

@draychev draychev added the area/cli Related to OSM CLI label Sep 17, 2020
@draychev
Copy link
Contributor Author

draychev commented Sep 17, 2020

related tasks: #893 #512 #1603

@draychev draychev added the P1 label Sep 17, 2020
@draychev draychev added P2 and removed P1 labels Sep 25, 2020
@draychev draychev added the good first issue Good for newcomers label Oct 15, 2020
@michelleN michelleN added this to the v0.6.0 milestone Oct 26, 2020
@michelleN michelleN removed the P2 label Oct 26, 2020
@draychev draychev added the size/M 7 days (~1.5 week) label Oct 28, 2020
@draychev draychev removed this from the v0.6.0 milestone Oct 28, 2020
@phillipgibson phillipgibson added this to the v0.6.0 milestone Nov 12, 2020
@michelleN michelleN removed this from the v0.6.0 milestone Nov 17, 2020
@michelleN michelleN added this to the v0.7.0 milestone Dec 9, 2020
@draychev draychev added size/XL 20 days (4 weeks) and removed size/M 7 days (~1.5 week) good first issue Good for newcomers labels Dec 10, 2020
@ksubrmnn
Copy link
Contributor

OSM CRD Upgrade doc

@nojnhuh
Copy link
Contributor

nojnhuh commented Jan 21, 2021

For a first pass at this command, I envision a thin wrapper over helm upgrade with a subset of the flags available on osm install to tweak the chart values. This could handle simple updates like only modifying fields in the osm-config ConfigMap or more significant updates like changing the osm-controller image to a newer version that would require a control plane restart. Since Helm only modifies the resources that change between releases, changes only to the ConfigMap will not restart the control plane, for example.

Since all the parameters available to a user to change are in the chart's values.yaml, having a single CLI command that leverages helm upgrade for any control plane configuration changes seems to be the simplest to use and understand vs. segmenting parameters under different CLI commands.

Examples

Modify the ConfigMap, osm-controller not restarted:

$ osm mesh update MESH_NAME --enable-egress

Upgrade the control plane image versions, osm-controller restarted:

$ osm mesh update MESH_NAME --osm-image-tag=v0.6.1

Modify both the ConfigMap and osm-controller deployment, osm-controller restarted:

$ osm mesh update MESH_NAME --osm-image-tag=v0.6.1 --enable-egress

Any concerns or other ways we can improve this approach?

/cc @michelleN

@nojnhuh nojnhuh modified the milestones: v0.7.0, v0.8.0 Jan 28, 2021
@nojnhuh nojnhuh removed the size/XL 20 days (4 weeks) label Jan 28, 2021
@draychev draychev added this to the v0.9.0 milestone Mar 31, 2021
@draychev draychev added the priority/P1 P1 priority label Mar 31, 2021
@johnsonshi johnsonshi modified the milestones: v0.9.0, v0.10.0 May 6, 2021
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 3, 2021
Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 13, 2021
Modify `osm version` cli command to print:
(1) osm version installed remotely in mesh name
and namespace,
(2) local osm CLI version,
(3) latest available release version.

Add `remote` boolean flag to `osm version`, which
can be used to suppress checking the remote
osm version installed in the mesh.

Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 13, 2021
Modify `osm version` cli command to print:
(1) osm version installed remotely in mesh name
and namespace,
(2) local osm CLI version,
(3) latest available release version.

Add `remote` boolean flag to `osm version`, which
can be used to suppress checking the remote
osm version installed in the mesh.

Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 13, 2021
Modify `osm version` cli command to print:
(1) osm version installed remotely in mesh name
and namespace,
(2) local osm CLI version,
(3) latest available release version.

Add `remote` boolean flag to `osm version`, which
can be used to suppress checking the remote
osm version installed in the mesh.

Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 13, 2021
Modify `osm version` cli command to print:
(1) osm version installed remotely in mesh name
and namespace,
(2) local osm CLI version,
(3) latest available release version.

Add `remote` boolean flag to `osm version`, which
can be used to suppress checking the remote
osm version installed in the mesh.

Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
@draychev draychev removed the area/cli Related to OSM CLI label Jun 22, 2021
johnsonshi added a commit to johnsonshi/osm that referenced this issue Jun 28, 2021
Modify `osm version` cli command to print:
(1) osm version installed remotely in mesh name
and namespace,
(2) local osm CLI version,
(3) latest available release version.

Add `remote` boolean flag to `osm version`, which
can be used to suppress checking the remote
osm version installed in the mesh.

Resolves openservicemesh#1720.

Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
@draychev draychev modified the milestones: v0.10.0, vNext Aug 19, 2021
@snehachhabria
Copy link
Contributor

@johnsonshi I see that you are assigned to this issue, please could you share the status of this? If you are no longer working on the please could you unassign yourself

@snehachhabria snehachhabria removed this from the vNext milestone Feb 2, 2022
@snehachhabria snehachhabria moved this to In Progress in OSM Roadmap (dev) Feb 2, 2022
@snehachhabria snehachhabria added this to the v1.1.0 milestone Feb 2, 2022
@johnsonshi
Copy link
Contributor

Resolved through #4416

Repository owner moved this from In Progress to Done in OSM Roadmap (dev) Feb 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/upgrade Upgrade related priority/P1 P1 priority size/S 3 days
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

8 participants