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

SMI conversion webhook to upgrade to newer SMI API versions #2737

Closed
shashankram opened this issue Mar 4, 2021 · 3 comments
Closed

SMI conversion webhook to upgrade to newer SMI API versions #2737

shashankram opened this issue Mar 4, 2021 · 3 comments
Labels
area/SMI SMI implementation related area/upgrade Upgrade related size/XL 20 days (4 weeks)
Milestone

Comments

@shashankram
Copy link
Member

Please describe the Improvement and/or Feature Request
Currently OSM does not support backward compatibility with SMI CRDs released in previous versions. This results in breaking changes when the SMI CRDs are upgraded and existing deployments that are leveraging a previous version of the custom resources (TrafficTargets, Splits, HTTPRouteGroups, TCPRoutes) can no longer function with a newer version of osm-controller that only supports the newer SMI API versions.

To mitigate this issue during upgrades, OSM must use a conversion webhook to convert older SMI resource versions to newer ones, and gradually migrate the deployments to use the newer versions before deprecating older ones in the cluster.

Since SMI does not provide a conversion webhook at this moment, we have the following options:

  1. Implement the SMI conversion webhook to the SMI SDK repo
  2. Implement the SMI conversion webhook in OSM and contribute it to SMI later on

Conversion webhook ref: https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/

Scope (please mark with X where applicable)

  • New Functionality [X]
  • Install [X]
  • 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
Support gradual migration of older SMI versions in the cluster.

@shashankram shashankram added improvement / feature request area/SMI SMI implementation related area/upgrade Upgrade related labels Mar 4, 2021
@shashankram shashankram self-assigned this Mar 4, 2021
@draychev draychev added the size/XL 20 days (4 weeks) label Mar 5, 2021
@draychev draychev added this to the v0.9.0 milestone Mar 5, 2021
@michelleN michelleN added priority/P1 P1 priority priority/P0 P0 priority and removed priority/P1 P1 priority priority/P0 P0 priority labels Mar 9, 2021
@michelleN michelleN added priority/P0 P0 priority and removed priority/P1 P1 priority labels Mar 22, 2021
@draychev draychev mentioned this issue Mar 26, 2021
17 tasks
@shashankram shashankram removed their assignment Mar 30, 2021
@draychev
Copy link
Contributor

draychev commented Apr 1, 2021

This issue could be resolved via investigate smi-controller-sdk for osm project #3063

@snehachhabria
Copy link
Contributor

snehachhabria commented Jul 20, 2021

With issue #3396 we have decided to go with the option of : Implementing the SMI conversion webhook in OSM.

All the necessary code to manage CRD updates, adding a conversion webhook to each of the SMI CRD's is now in OSM. The business logic to convert an SMI CRD from one version to another is CRD specific and will be added when we update the SMI CRD's in OSM.

@snehachhabria
Copy link
Contributor

Closing issue for now as all the necessary code to support a conversion webhook for CRDs in OSM has been added

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/SMI SMI implementation related area/upgrade Upgrade related size/XL 20 days (4 weeks)
Projects
None yet
Development

No branches or pull requests

4 participants