m/p/localregistry: init
Adds the localregistry package, which serves Bazel-built container
images via the Docker/OCI V2 registry API.
This will be used to serve test images instead of preseeding them.
Change-Id: I0c2ceb9a83f807c9c87ab03bc1141ca67cc64268
Reviewed-on: https://review.monogon.dev/c/monogon/+/1926
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/metropolis/pkg/localregistry/spec/manifest.proto b/metropolis/pkg/localregistry/spec/manifest.proto
new file mode 100644
index 0000000..b4daeab
--- /dev/null
+++ b/metropolis/pkg/localregistry/spec/manifest.proto
@@ -0,0 +1,30 @@
+syntax = "proto3";
+
+package monogon.metropolis.pkg.localregistry;
+
+option go_package = "source.monogon.dev/metropolis/pkg/localregistry/spec";
+
+// BlobDescriptor is metadata for a single registry blob. Analogous to a
+// distribution.Descriptor in Go.
+message BlobDescriptor {
+ // Path to the file in the build directory.
+ string file_path = 1;
+ // Path to a file containing the SHA256 digest of the blob.
+ string digest_path = 2;
+}
+
+// Single image metadata
+message Image {
+ // Name of the image (no domain or tag, just slash-separated path)
+ string name = 1;
+ // Config blob
+ BlobDescriptor config = 2;
+ // Layer blobs in order
+ repeated BlobDescriptor layers = 3;
+}
+
+// Main message
+message Manifest {
+ // List of images for the local registry
+ repeated Image images = 1;
+}
\ No newline at end of file