Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ca-scribner opened this issue Jan 25, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@ca-scribner
Copy link
Contributor

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:

  • ingress
  • istio-pilot
  • ingress-auth

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:

  • Ingress relation (~10 charms)
    • dex-auth
    • envoy
    • jupyter-ui
    • katib-ui
    • kfp-ui
    • kubeflow-dashboard
    • kubeflow-volumes
    • oidc-gatekeeper
    • oidc-gatekeeper:ingress
    • tensorboards-web-app
  • istio-pilot relation (1 charm)
    • istio-gateway
  • ingress-auth (1 charm)
    • oidc-gatekeeper

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
@ca-scribner ca-scribner added the enhancement New feature or request label Jan 25, 2024
Copy link

Thank you for reporting us your feedback!

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

This message was autogenerated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Needs Triage
Development

No branches or pull requests

1 participant