canonical / istio-operators

Charmed Istio
2 stars 17 forks source link

Convert all Istio relations from SDI-backed relations to charm libraries #375

Open ca-scribner opened 5 months ago

ca-scribner commented 5 months ago

Context

The istio relations (specifically, any provided by istio-pilot) use sdi to implement their schema. This task is for converting those to library-backed relations, as well as updating the charms that use these relations to use the new libraries.

Estimated effort

Total at 100%: ~15-20 days

Developing the libraries

relations:

Estimated ~1.5 days per to design/code the library, publish to the charm interface repo, and review.
Estimated effort at 100%: 4.5 days

Testing upgrade

Since we'll be replacing an SDI relation with another style, both charms will be upgraded but they might happen slightly offset (eg: istio-pilot upgrades to the library and tries to talk to the sdi-based kubeflow-dashboard, then a minute later the kubeflow-dashboard is upgraded). We need to test this a bit to ensure the cluster resolves any issues

If something goes wrong here, we'll need to design a shim for the new libraries to tolerate being related to SDI relations. Could either be fully functional (teach the library to read SDI) or just temporary (teach the library to just ignore sdi). This could probably be done with a generic decorator around the data getters for each library to map old schema to new schema, and then we could remove that decorator in a future release.

Estimated effort at 100%: 0.5 days if this goes well (4 days if we need to add a shim)

Updating other charms to use the libraries

From inspecting the kubeflow bundle, the following charms will need to be changed to use the new libraries:

Most usages are pretty simple like dex-auth -- estimated ~0.5 days per charm to implement, test, and review.

Estimated effort at 100%: ~6 days

What needs to get done

  1. write libraries for all istio-pilot relations
  2. test the migration plan and fix if needed
  3. update all related charms

Definition of Done

  1. all relations in istio-pilot are backed by a library
  2. all consumer charms use that library
syncronize-issues-to-jira[bot] commented 5 months ago

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/KF-5248.

This message was autogenerated