Skip to content

Commit 2bba54c

Browse files
feat: add crane for daemonless kpack -src image packaging
Rootless buildah needs user namespaces, which Talos keeps disabled. crane append can push scratch source images without that host tradeoff. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent fc0ba55 commit 2bba54c

5 files changed

Lines changed: 22 additions & 1 deletion

File tree

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Self-hosted GitHub Actions runner **container image** for Deerhide / Velmios CI:
88

99
- Image: `ghcr.io/deerhide/python-github-runner`
1010
- Base: `ghcr.io/actions/actions-runner` (`RUNNER_VERSION` in `manifest.yaml`)
11-
- Includes Python 3.12/3.13 (deadsnakes), Poetry, UV, DevOps CLIs (argo, kargo, kubectl, pack, skopeo, buildah, …), OpenAPI CLIs (redocly, spectral, portman, newman, oasdiff), Node/Bun, Rust + Zig + cargo-lambda (AWS Lambda Rust CI), and a full OCI build/scan pipeline so the image can build itself.
11+
- Includes Python 3.12/3.13 (deadsnakes), Poetry, UV, DevOps CLIs (argo, kargo, kubectl, pack, crane, skopeo, buildah, …), OpenAPI CLIs (redocly, spectral, portman, newman, oasdiff), Node/Bun, Rust + Zig + cargo-lambda (AWS Lambda Rust CI), and a full OCI build/scan pipeline so the image can build itself.
1212

1313
Tool inventory and version tables live in [README.md](README.md). Do not duplicate them here.
1414

Containerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,16 @@ RUN curl -sSL -o /tmp/pack.tgz \
127127
&& tar -xzf /tmp/pack.tgz -C /usr/local/bin/ \
128128
&& rm /tmp/pack.tgz
129129

130+
# Install crane (daemonless OCI append/push for kpack -src images; no userns)
131+
ARG CRANE_VERSION=0.21.8
132+
RUN curl -sSL -o /tmp/crane.tgz \
133+
"https://github.com/google/go-containerregistry/releases/download/v${CRANE_VERSION}/go-containerregistry_Linux_x86_64.tar.gz" \
134+
&& tar -xzf /tmp/crane.tgz -C /tmp crane \
135+
&& mv /tmp/crane /usr/local/bin/crane \
136+
&& chmod +x /usr/local/bin/crane \
137+
&& rm -f /tmp/crane.tgz \
138+
&& crane version
139+
130140
# Install Node.js (bundles npm and npx)
131141
ARG NODE_VERSION=24.18.0
132142
RUN curl -sSL -o /tmp/node.tgz \

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ These tools allow the image to run its own build pipeline as a self-hosted runne
4747
| Tool | Description |
4848
|------|-------------|
4949
| [buildah](https://github.com/containers/buildah) | OCI container image builder |
50+
| [crane](https://github.com/google/go-containerregistry) | Daemonless OCI append/push (`CRANE_VERSION`; kpack `-src` packaging) |
5051
| [dive](https://github.com/wagoodman/dive) | Container filesystem analysis |
5152
| [trivy](https://github.com/aquasecurity/trivy) | Vulnerability scanner |
5253
| [syft](https://github.com/anchore/syft) | Software bill of materials (SBOM) generator |

manifest.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ build:
99
- ARGO_VERSION=4.0.7
1010
- KARGO_VERSION=1.10.8
1111
- PACK_VERSION=0.40.8
12+
- CRANE_VERSION=0.21.8
1213
- KUBECTL_VERSION=1.36.2
1314
- GH_CLI_VERSION=2.96.0
1415
- DIVE_VERSION=0.13.1

renovate.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,15 @@
9494
"datasourceTemplate": "github-releases",
9595
"extractVersionTemplate": "^v?(?<version>.+)$"
9696
},
97+
{
98+
"customType": "regex",
99+
"description": "Update crane (go-containerregistry) version",
100+
"fileMatch": ["^Containerfile$", "^manifest\\.yaml$"],
101+
"matchStrings": ["CRANE_VERSION=(?<currentValue>\\S+)"],
102+
"depNameTemplate": "google/go-containerregistry",
103+
"datasourceTemplate": "github-releases",
104+
"extractVersionTemplate": "^v?(?<version>.+)$"
105+
},
97106
{
98107
"customType": "regex",
99108
"description": "Update Node.js version",

0 commit comments

Comments
 (0)