Open
Description
Describe the bug
When using flux build artifact --path=src --output=result.tgz
, Flux seems to generate an empty OCI artifact if src
contains symlinks to YAML manifest outside of src
.
The use case is using Flux to generate OCI artifacts from a symlink tree built by Nix, with YAML files pointing to the read-only Nix store.
Steps to reproduce
mkdir ro rw
echo >ro/namespace.yaml 'apiVersion: v1
kind: Namespace
metadata:
name = test'
chmod -w -R ro
ln -s ../ro/namespace.yaml rw/namespace.yaml
flux build artifact --path=rw --output=rw.tgz
tar tvf rw.tgz
Expected behavior
Expected output:
drwxr-xr-x 0/0 0 1970-01-01 01:00 .
-rw-r--r-- 0/0 56 1970-01-01 01:00 namespace.yaml
Actual output:
drwxr-xr-x 0/0 0 1970-01-01 01:00 .
Ideally Flux should resolve symlinks when creating OCI artifacts. Additionally, it should use a temporary directory (or allow specifying one) for any temporary files, which would allow working with source files located in the Nix store.
Screenshots and recordings
No response
OS / Distro
NixOS 24.05
Flux version
v2.4.0
Flux check
N/A
Git provider
N/A
Container Registry provider
GitHub (ghcr.io), but irrelevant here
Additional context
No response
Code of Conduct
- I agree to follow this project's Code of Conduct
Metadata
Metadata
Assignees
Labels
No labels