Prepuller

class controller.services.prepuller.Prepuller(*, image_service, prepuller_builder, metadata_storage, pod_storage, slack_client=None, logger)

Bases: object

Prepull images to Kubernetes nodes.

There should be a singleton of this class in the lab controller process. It runs as a background task, prepulling images to nodes based on the information gathered by ImageService.

Parameters:
  • image_service (ImageService) – Service to query for image information. Currently, the background refresh thread of the image service is also managed by this class.

  • prepuller_builder (PrepullerBuilder) – Service that constructs prepuller Kubernetes objects.

  • metadata_storage (MetadataStorage) – Storage layer for Nublado controller pod metadata.

  • pod_storage (PodStorage) – Storage layer for managing Kubernetes pods.

  • slack_client (SlackWebhookClient | None, default: None) – Optional Slack webhook client for alerts.

  • logger (BoundLogger) – Logger for messages.

Methods Summary

prepull_images()

Prepull missing images.

Methods Documentation

async prepull_images()

Prepull missing images.

Return type:

None