You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Device and OS: Apple M3 Max, macOS Sequoia 15.1.1
App version: Zarf 0.32.4, UDS 0.19.0
Kubernetes distro being used:
k3d version v5.7.4
k3s version v1.30.4-k3s1 (default)
Steps to reproduce
While using data injection to add files to my pod when utilizing arm64 architecture, hidden files with the convention: ._* are being added to the target directory. During deployment, this results in this error message and a failed UDS deployment:
I am attempting to inject these files into a pod runnning ClamAV and these hidden files cause ClamAV to break because it only expects to find the actual files (e.g. main.cvd, not ._main.cvd).
This bug fix request is to reconfigure Zarf to not preserve xattrs for data injection to prevent the aforementioned deployment error and unexpected behavior (addition of hidden files).
It seems like zarf uses tar under the hood to create a tarball for data injection?
Those files are one way to represent xattrs in a tarball. macOS uses xattrs for various things, but notably com.apple.quarantine is used to mark files downloaded from the web, so the OS can ask "are you sure you want to do whatever with this possibly untrusted file?" (this is the equivalent of Windows' Mark of the Web)
There's probably no reason to preserve xattrs for data injection, seems like a reasonable zarf feature request/bug fix to not do this.
Oddly, if I test on the command line tar czf foo.tar.gz ~/Downloads/something-youv've-downloaded I seem to get native tar xattrs and not ._ files, but if I use tar --no-xattrs -czvf ... I indeed get the files you mention. (you need to check the created tar file on Linux, tar tzf on macOS won't even list the ._ files it seems)
It seems like zarf currently runs tar -c -z -f - on the host (your mac) to create the tarball: https://docs.zarf.dev/ref/examples/kiwix/
I think this uses whichever tar is on the $PATH (which maybe macOS's tar, but could be something out of homebrew too I think). The exact options seem to vary by which tar, macos wants --no-mac-metadata I think, but for other tar variants --no-attrs may be enough?
The safest fix may be to use golang's built in archive/tar and make sure it does the right thing.
The text was updated successfully, but these errors were encountered:
Environment
Device and OS: Apple M3 Max, macOS Sequoia 15.1.1
App version: Zarf 0.32.4, UDS 0.19.0
Kubernetes distro being used:
k3d version v5.7.4
k3s version v1.30.4-k3s1 (default)
Steps to reproduce
While using data injection to add files to my pod when utilizing arm64 architecture, hidden files with the convention: ._* are being added to the target directory. During deployment, this results in this error message and a failed UDS deployment:
I am attempting to inject these files into a pod runnning ClamAV and these hidden files cause ClamAV to break because it only expects to find the actual files (e.g. main.cvd, not ._main.cvd).
This bug fix request is to reconfigure Zarf to not preserve xattrs for data injection to prevent the aforementioned deployment error and unexpected behavior (addition of hidden files).
Expected result
FIles copied into target directory match the source exactly, no hidden files added
No error messages during UDS deployment
Actual Result
Extra files, error messages, failed deployment, broken app
Severity/Priority
Medium - blocking arm64 deployment for uds-package-clamav
Additional Context
From @bburky :
The text was updated successfully, but these errors were encountered: