Skip to content

Commit

Permalink
Iterate over additional secret keys, making all available
Browse files Browse the repository at this point in the history
Two bugs are fixed here.

First, the buildah `--secret` arg expects a *file*, not a directory, so
every key/value pair in the kubernetes secrets mounted in needs to be
supplied as a separate argument to buildah.

Second, buildah won't accept symlinks and all of the individual files in
the mounted directory are symlinks. The `-L` option to `cp` addresses
that by de-referencing them.
  • Loading branch information
ralphbean committed Jul 2, 2024
1 parent ca6e878 commit 1ff0928
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions task/buildah/0.1/buildah.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -293,10 +293,13 @@ spec:
fi
ADDITIONAL_SECRET_PATH="/additional-secret"
ADDITIONAL_SECRET_TMP="/tmp/additional-secret"
if [ -d "$ADDITIONAL_SECRET_PATH" ]; then
cp -r --preserve=mode "$ADDITIONAL_SECRET_PATH" /tmp/additional-secret
BUILDAH_ARGS+=("--secret=id=${ADDITIONAL_SECRET},src=/tmp/additional-secret")
echo "Adding the secret ${ADDITIONAL_SECRET} to the build, available at /run/secrets/${ADDITIONAL_SECRET}"
cp -r --preserve=mode -L "$ADDITIONAL_SECRET_PATH" $ADDITIONAL_SECRET_TMP
for filename in $(find $ADDITIONAL_SECRET_TMP -maxdepth 1 -type f -exec basename {} \;); do
echo "Adding the secret ${ADDITIONAL_SECRET}/${filename} to the build, available at /run/secrets/${ADDITIONAL_SECRET}/${filename}"
BUILDAH_ARGS+=("--secret=id=${ADDITIONAL_SECRET}/${filename},src=$ADDITIONAL_SECRET_TMP/${filename}")
done
fi
unshare -Uf $UNSHARE_ARGS --keep-caps -r --map-users 1,1,65536 --map-groups 1,1,65536 -w ${SOURCE_CODE_DIR}/$CONTEXT -- buildah build \
Expand Down

0 comments on commit 1ff0928

Please sign in to comment.