if you upload a file that is executable, after the upload the file is created with "read" mode instead of "execute" mode, which ends up resulting in problems later on when executing the experiment:
INFO | containerlab | time="2025-12-06T07:58:02Z" level=error msg="Failed to execute command \"ash -c /config.sh $NODE_ID\" on the node \"host1\". rc=126,\nstdout:\n\nstderr:\nash: /config.sh: Permission denied\n"
The clab.yml file in my computer is like this:
> ls -l configs/client.sh
-rwxr-xr-x 1 xxx xxx 1040 Dec 6 04:43 configs/client.sh
but after uploading and converting, the kubernetes manifest will be like this:
filesFromConfigMap:
host1:
- filePath: configs/client.sh
configMapName: clab-6483dc5f8c434e-host1-files
configMapPath: configs-client.sh
mode: read
If I use clabverter locally to convert the files, it works as expected and the result is:
filesFromConfigMap:
host1:
- filePath: configs/client.sh
configMapName: my_lab-host1-files
configMapPath: configs-client.sh
mode: execute
if you upload a file that is executable, after the upload the file is created with "read" mode instead of "execute" mode, which ends up resulting in problems later on when executing the experiment:
The
clab.ymlfile in my computer is like this:but after uploading and converting, the kubernetes manifest will be like this:
If I use clabverter locally to convert the files, it works as expected and the result is: