Draft: Introduce OCI Step packages
1 unresolved thread
1 unresolved thread
Introduces:
- Fetching a step via an OCI registry.
- Packaging and pushing a step via the
step-runner oci release
command.
Example use
Step project: https://gitlab.com/onlycmds/print. The CI here handles release a step.\
step-runner run ./step.yml
:
spec:
inputs: {}
outputs: {}
---
run:
- name: print
step: oci:onlycmds/print:latest
inputs:
format: "hello %v"
args: ["world"]
Notes:
-
registry.gitlab.com
is the default registry,components
is the default namespace. Therefore:-
oci:hello
expandsregistry.gitlab.com/components/hello:latest
-
oci:onlycmds/print
expands toregistry.gitlab.com/onlycmds/print:latest
-
oci:registry.hub.docker.com/fiveturns/print:0
expands toregistry.hub.docker.com/fiveturns/print:0
-
- A sub-step path can be provided by separating the artifact from the path with a space (
-
oci:onlycmds/print subdir/
would usetest.yml
from thesubdir/
-
Packaging a step
Packaging step artifacts requires a strict format on disk. By default, it uses the directory dist
.
dist/common
adds a layer to the OCI artifact that is common amongst all artifacts.
dist/<os>/<arch>
adds a layer that is specific to the os/arch
platform.
Layers are zstd
compressed tarballs with the media type: application/vnd.gitlab.step.layer.v1.tar+zstd
Edited by Arran Walker
Merge request reports
Activity
assigned to @ajwalker
@ajwalker
- please see the following guidance and update this merge request.1 Error Please add typebug typefeature, or typemaintenance label to this merge request.
mentioned in issue #106 (closed)
mentioned in merge request !179 (merged)
Please register or sign in to reply