canonical/notebook-operators

Jupyter Controller charm rewrite using sidecar pattern

Closed this issue · 1 comments

Jupyter Controller charm rewrite using sidecar pattern

Work items are tracked in Jira

Design

Design is specified in corresponding spec.
Main design points summary:

  • Use of sidecar pattern and Pebble layer.
  • Porting of managing K8S resources from Pod Spec to Pebble framework.
  • Use container interaction features from Charmed Operator Framework.
  • Pebble layer checks use the metrics URL as HTTP endpoint.
  • Handle upgrade and update status events

Testing

  • Integration testing allows for verification of functionality.
  • Followed Kubeflow guide to test functionality.
  • Followed COS integration doc to verify Prometheus and Grafana integration.
  • Upgrade from PodSpec version to sidecar version of the charm is currently can only be done by removing PodSpec charm and deploying sidecar charm. Due to the fact that PodSpec charm did not remove resources on remove event, all notebooks stay intact and can be accessed by new sidecar version of the charm. Issue file to resolve upgrade in Jupyter Controller: #238

Upgrade is blocked:

juju.errors.JujuAPIError: Juju on containers does not support updating deployment info for services.