Page MenuHomePhabricator

[jobs-api] handle qualified image names
Closed, ResolvedPublicFeature

Description

Currently it is not possible to use a build image directly in a job:

tools.cluebotng-review@tools-bastion-15:~$ toolforge build show cluebotng-review-buildpacks-pipelinerun-5468s
Build ID: cluebotng-review-buildpacks-pipelinerun-5468s
Start Time: 2025-10-23T12:26:40Z
End Time: 2025-10-23T12:28:00Z
Status: ok
Message: Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0
Parameters:
    Source URL: https://github.com/cluebotng/reviewer.git
    Ref: refs/tags/v0.13.0
    Envvars: N/A
Use latest versions: True
Destination Image: tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest@sha256:9f7508f2642e15798bcccd3fa70cee1151ba283db78d23036d751d6753662551
tools.cluebotng-review@tools-bastion-15:~$ toolforge jobs run --image tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest@sha256:9f7508f2642e15798bcccd3fa70cee1151ba283db78d23036d751d6753662551 --command 'sleep inf' --continuous example-job
ERROR: No such image 'tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest@sha256:9f7508f2642e15798bcccd3fa70cee1151ba283db78d23036d751d6753662551'

Note, this is not related to the digest support added to builds-api

tools.cluebotng-review@tools-bastion-15:~$ toolforge jobs run --image tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest --command 'sleep inf' --continuous example-job
ERROR: No such image 'tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest'

But is related to how jobs-api handles images - https://gitlab.wikimedia.org/repos/cloud/toolforge/jobs-api/-/blob/main/tjf/runtimes/k8s/images.py#L221

The accepted image is queryable via the API/cli

tools.cluebotng-review@tools-bastion-15:~$ toolforge jobs images
+----------------------------------------------------+-----------------------------------------------------------------------------+
|                     Short name                     |                                    image                                    |
+----------------------------------------------------+-----------------------------------------------------------------------------+
|                      bookworm                      |      docker-registry.tools.wmflabs.org/toolforge-bookworm-sssd:latest       |
|                      bullseye                      |      docker-registry.tools.wmflabs.org/toolforge-bullseye-sssd:latest       |
|                       jdk17                        |     docker-registry.tools.wmflabs.org/toolforge-jdk17-sssd-base:latest      |
|                       jdk21                        |     docker-registry.svc.toolforge.org/toolforge-jdk21-sssd-base:latest      |
|                      mariadb                       |    docker-registry.tools.wmflabs.org/toolforge-mariadb-sssd-base:latest     |
|                      mono6.12                      |    docker-registry.tools.wmflabs.org/toolforge-mono612-sssd-base:latest     |
|                      mono6.8                       |     docker-registry.tools.wmflabs.org/toolforge-mono68-sssd-base:latest     |
|                       node16                       |     docker-registry.tools.wmflabs.org/toolforge-node16-sssd-base:latest     |
|                       node18                       |     docker-registry.tools.wmflabs.org/toolforge-node18-sssd-base:latest     |
|                       node20                       |     docker-registry.svc.toolforge.org/toolforge-node20-sssd-base:latest     |
|                      perl5.32                      |    docker-registry.tools.wmflabs.org/toolforge-perl532-sssd-base:latest     |
|                      perl5.36                      |    docker-registry.tools.wmflabs.org/toolforge-perl536-sssd-base:latest     |
|                      perl5.40                      |    docker-registry.svc.toolforge.org/toolforge-perl540-sssd-base:latest     |
|                       php7.4                       |     docker-registry.tools.wmflabs.org/toolforge-php74-sssd-base:latest      |
|                       php8.2                       |     docker-registry.tools.wmflabs.org/toolforge-php82-sssd-base:latest      |
|                       php8.4                       |     docker-registry.svc.toolforge.org/toolforge-php84-sssd-base:latest      |
|                     python3.11                     |   docker-registry.tools.wmflabs.org/toolforge-python311-sssd-base:latest    |
|                     python3.13                     |   docker-registry.svc.toolforge.org/toolforge-python313-sssd-base:latest    |
|                     python3.9                      |    docker-registry.tools.wmflabs.org/toolforge-python39-sssd-base:latest    |
|                      ruby2.1                       |     docker-registry.tools.wmflabs.org/toolforge-ruby21-sssd-base:latest     |
|                      ruby2.7                       |     docker-registry.tools.wmflabs.org/toolforge-ruby27-sssd-base:latest     |
|                      ruby3.1                       |     docker-registry.tools.wmflabs.org/toolforge-ruby31-sssd-base:latest     |
|                      ruby3.3                       |     docker-registry.svc.toolforge.org/toolforge-ruby33-sssd-base:latest     |
|                       tcl8.6                       |     docker-registry.tools.wmflabs.org/toolforge-tcl86-sssd-base:latest      |
|    tool-cluebotng-review/backup-database:latest    |    tools-harbor.wmcloud.org/tool-cluebotng-review/backup-database:latest    |
|  tool-cluebotng-review/cluebotng-reviewer:latest   |  tools-harbor.wmcloud.org/tool-cluebotng-review/cluebotng-reviewer:latest   |
|     tool-cluebotng-review/grafana-alloy:latest     |     tools-harbor.wmcloud.org/tool-cluebotng-review/grafana-alloy:latest     |
| tool-cluebotng-review/irc-relay-placeholder:latest | tools-harbor.wmcloud.org/tool-cluebotng-review/irc-relay-placeholder:latest |
|       tool-cluebotng-review/irc-relay:latest       |       tools-harbor.wmcloud.org/tool-cluebotng-review/irc-relay:latest       |
|     tool-cluebotng-review/prune-backups:latest     |     tools-harbor.wmcloud.org/tool-cluebotng-review/prune-backups:latest     |
|      tool-cluebotng-review/pushgateway:latest      |      tools-harbor.wmcloud.org/tool-cluebotng-review/pushgateway:latest      |
|         tool-cluebotng-review/redis:latest         |         tools-harbor.wmcloud.org/tool-cluebotng-review/redis:latest         |
| tool-cluebotng-review/tool-cluebotng-review:latest | tools-harbor.wmcloud.org/tool-cluebotng-review/tool-cluebotng-review:latest |
|                       trixie                       |       docker-registry.svc.toolforge.org/toolforge-trixie-sssd:latest        |
+----------------------------------------------------+-----------------------------------------------------------------------------+

However the CLI does not support a machine parsable implementation (e.g. --json).

As a user it is reasonable to expect that an image returned from the build service can be used within the jobs (/components) service.

Related Objects

StatusSubtypeAssignedTask
ResolvedFeaturedcaro
ResolvedFeaturedcaro

Event Timeline

fgiunchedi triaged this task as Medium priority.Oct 29 2025, 7:20 AM

Function tests passing, both MRs need tagging with NeedsReview as usual

group_203_bot_f4d95069bb2675e4ce1fff090c1c1620 opened https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-deploy/-/merge_requests/1058

jobs-api: bump to 0.0.437-20251105150651-f3396660

group_203_bot_f4d95069bb2675e4ce1fff090c1c1620 updated https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-deploy/-/merge_requests/1061

jobs-api: bump to 0.0.449-20251106151655-61a26f8e

dcaro claimed this task.
dcaro edited projects, added: Toolforge (Toolforge iteration 25); removed: Toolforge.
dcaro moved this task from Next Up to Done on the Toolforge (Toolforge iteration 25) board.