Skip to content

Commit 927085d

Browse files
authored
feat(minio): enable minio vanilla and updated to 0.20250907 Release (#14)
Co-authored-by: Frederic Spiers <frederic.spiers@gitguardian.com>
1 parent af5ed30 commit 927085d

7 files changed

Lines changed: 165 additions & 12 deletions

File tree

.github/workflows/minio.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: minio
2+
3+
on:
4+
schedule:
5+
- cron: "00 01 * * 1-5"
6+
pull_request:
7+
paths:
8+
- .github/workflows/minio.yaml
9+
- 'images/minio/*.yaml'
10+
- 'images/minio/**/*.yaml'
11+
push:
12+
branches:
13+
- 'main'
14+
paths:
15+
- .github/workflows/minio.yaml
16+
- 'images/minio/*.yaml'
17+
- 'images/minio/**/*.yaml'
18+
workflow_dispatch:
19+
20+
permissions:
21+
contents: read
22+
packages: write
23+
attestations: write
24+
id-token: write
25+
security-events: write
26+
actions: read
27+
28+
jobs:
29+
publish:
30+
strategy:
31+
matrix:
32+
# https://images.chainguard.dev/directory/image/minio/versions
33+
version: [latest, "0.20250907", "0.20250723", "0.20250524"]
34+
variant: ["prod"]
35+
name: ${{ matrix.version }}
36+
uses: './.github/workflows/release.yaml'
37+
with:
38+
tag: ${{ matrix.version }}
39+
target: ${{ format('{0}/{1}', matrix.version, matrix.variant) }}
40+
secrets: inherit

images/minio/0.20250524/shell.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

images/minio/0.20250723/shell.yaml

Lines changed: 0 additions & 6 deletions
This file was deleted.

images/minio/0.20250907/prod.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
include: images/minio/prod.yaml
2+
3+
contents:
4+
packages:
5+
- mc~0.20250813
6+
- minio~0.20250907

images/minio/README.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# minio
2+
3+
Minimal image with Minio.
4+
5+
## Versions
6+
7+
| 📌 Version | ⬇️ Pull URL | Support |
8+
| ---------- | ------------------------------------------ | ------- |
9+
| latest | ghcr.io/gitguardian/wolfi/minio:latest ||
10+
| 0.20250907 | ghcr.io/gitguardian/wolfi/minio:0.20250907 ||
11+
| 0.20250723 | ghcr.io/gitguardian/wolfi/minio:0.20250723 ||
12+
| 0.20250524 | ghcr.io/gitguardian/wolfi/minio:0.20250524 ||
13+
14+
15+
## ✅ Verify the Provenance
16+
17+
GitHub CLI ([gh](https://cli.github.com/)) can be used to retrieve the build provenance, which details the exact commit, workflow, and runner that produced the image:
18+
19+
- **Production image**
20+
21+
```shell
22+
gh attestation verify \
23+
--owner gitguardian \
24+
oci://ghcr.io/gitguardian/wolfi/minio:latest
25+
```
26+
27+
## 📦 **Image Verification**
28+
29+
All official images are **cryptographically signed** using [Sigstore Cosign](https://www.sigstore.dev/).
30+
31+
### ✅ Verify the Image Signature
32+
33+
To ensure the image is authentic and has not been tampered with, use the following command:
34+
35+
- **Production image**
36+
37+
```shell
38+
cosign verify \
39+
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
40+
--certificate-identity=https://github.com/GitGuardian/wolfi/.github/workflows/release.yaml@refs/heads/main \
41+
ghcr.io/gitguardian/wolfi/minio:latest | jq
42+
```
43+
44+
### 📦 **Image SBOMs**
45+
46+
To enhance transparency, we generate SBOMs for each release. SBOMs are available directly from the container registry
47+
and can be verified using using [Sigstore Cosign](https://www.sigstore.dev/).
48+
49+
#### ✅ Verify the Image Attestations
50+
51+
- **Production image**
52+
53+
```shell
54+
cosign verify-attestation \
55+
--type=https://spdx.dev/Document \
56+
--certificate-oidc-issuer=https://token.actions.githubusercontent.com \
57+
--certificate-identity=https://github.com/GitGuardian/wolfi/.github/workflows/release.yaml@refs/heads/main \
58+
ghcr.io/gitguardian/wolfi/minio:latest
59+
```
60+
61+
This will pull in the signature for the attestation specified by the --type parameter, which in this case is the SPDX attestation. You will receive output that verifies the SBOM attestation signature in cosign's transparency log:
62+
63+
```shell
64+
Verification for ghcr.io/gitguardian/wolfi/minio:latest --
65+
The following checks were performed on each of these signatures:
66+
- The cosign claims were validated
67+
- Existence of the claims in the transparency log was verified offline
68+
- The code-signing certificate was verified using trusted certificate authority certificates
69+
Certificate subject: https://github.com/GitGuardian/wolfi/.github/workflows/release.yaml@refs/heads/main
70+
Certificate issuer URL: https://token.actions.githubusercontent.com
71+
GitHub Workflow Trigger: push
72+
GitHub Workflow SHA: ced6b3cfab1341509de55bff7c0389ce81f73aae
73+
GitHub Workflow Name: minio
74+
GitHub Workflow Repository: GitGuardian/wolfi
75+
GitHub Workflow Ref: refs/heads/main
76+
...
77+
```
78+
79+
#### ✅ Download the Image SBOM Attestations
80+
81+
To download an attestation, use the `cosign` download attestation command and provide both the predicate type and the build platform. For example, the following command will obtain the SBOM for the python image on `linux/amd64`:
82+
83+
- **Production image**
84+
85+
```shell
86+
cosign download attestation \
87+
--platform=linux/amd64 \
88+
--predicate-type=https://spdx.dev/Document \
89+
ghcr.io/gitguardian/wolfi/minio:latest | jq -r .payload | base64 -d | jq .predicate
90+
```

images/minio/latest/prod.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
include: images/minio/prod.yaml
2+
3+
contents:
4+
packages:
5+
- mc
6+
- minio

images/minio/prod.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
include: images/apko.yaml
2+
3+
contents:
4+
packages:
5+
- coreutils
6+
- busybox
7+
8+
paths:
9+
- path: /data
10+
type: directory
11+
permissions: 0o770
12+
uid: 65532
13+
gid: 65532
14+
15+
entrypoint:
16+
command: /usr/bin/minio
17+
18+
cmd: server /data --console-address :9090 --address :9000
19+
20+
annotations:
21+
org.opencontainers.image.title: 'MinIO'
22+
org.opencontainers.image.description: 'MinIO image based on Wolfi OS'
23+
org.opencontainers.image.source: 'https://github.com/GitGuardian/wolfi/tree/main/images/minio'

0 commit comments

Comments
 (0)