Skip to main content
When you deploy NexusOne, the nx1-deployer image installs the container images listed on this page into your cluster. NexusOne pulls each one from the registry set in the image_repo variable, except for one busybox image noted after the table. For example, the following table in the next section shows Airflow’s image as airflow, but NexusOne actually pulls <image_repo>/airflow:3.2.2-nx1.2.

Installed container image list

The following table lists each image and its default tag, grouped by the component that uses it. You can change the Keycloak and Tenant Manager tags with the keycloak_tag and tenant_tag deployment variables. A few rows need the following extra context:
  • busybox: JupyterHub pulls busybox from Docker Hub instead of the registry set in the image_repo variable. JupyterHub only does this on a non-OpenShift cluster when you set the storage_type_jupyterhub variable to static. If your cluster can’t reach Docker Hub, then complete the following steps before you deploy:
    1. Set up a registry your cluster can reach that mirrors Docker Hub, such as a pull-through cache that fetches images on demand.
    2. Configure every node’s container runtime to redirect Docker Hub pulls to that registry.
    3. Bake that redirect into how new nodes get provisioned, so it survives node replacement or autoscaling.
  • Observability: Every image in this row is opt-in and off by default.
    • The following images deploy only when you set the obs_router_enabled variable to true:
      • observability-router
      • observability-webhook
      • grafana/alloy
      • kube-state-metrics
    • The following images deploy only when you set the monitoring_type variable to embedded:
      • nx1-grafana
      • grafana/loki
      • grafana/mimir
      • grafana/tempo
  • postgres:16: Runs short setup jobs that create each component’s database schema. A separate deployment runs the actual PostgreSQL server on postgres:17.1.
  • spark: JupyterHub’s Spark History Server, Spark jobs started from notebooks, and Spark jobs started by the Portal’s backend API all use this image. Changing the spark_image_tag variable affects all three at once. Keep that in mind when troubleshooting unexpected behavior in just one of them.

Additional resources