-
Notifications
You must be signed in to change notification settings - Fork 168
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests/containers: add a NFS server containers
This is prep work for enabling kdump over NFS testing. The previous attempt in #3911 used an image from openshift E2E tests, but I didn't pay attention to the image and the latest tag is not a multiarch manifest, so the pipeline tripped on that. Building the image ourselves will fix that.
- Loading branch information
1 parent
ea1ad34
commit 4e45505
Showing
3 changed files
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
FROM registry.fedoraproject.org/fedora-minimal:41 | ||
|
||
RUN dnf -y install /usr/bin/ps nfs-utils && dnf clean all && rm -rf /var/cache/yum | ||
|
||
ADD run_nfs.sh /usr/local/bin/ | ||
|
||
# expose mountd 20048/tcp and nfsd 2049/tcp | ||
EXPOSE 2049/tcp 20048/tcp | ||
|
||
# Prepare mount point rw for everyone | ||
RUN mkdir /export && chmod 777 /export | ||
|
||
# mark /export as a mount point | ||
VOLUME /export | ||
ENTRYPOINT ["/usr/local/bin/run_nfs.sh"] | ||
CMD ["/export"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# NFS Server Container | ||
|
||
This is used by the `kdump.crash.nfs` test. | ||
|
||
This image is forked from the [openshift e2e test image](https://github.com/openshift/kubernetes/tree/7ca9eb1e9e5ced974033c2b6f26560e22535244c/test/images/volume/nfs) | ||
|
||
See https://github.com/coreos/coreos-assembler/pull/3911 for the inital PR using it for more details on the test. | ||
|
||
It serves an empty `/` directory, writeable by anyone. | ||
Not for production use! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -uxo pipefail | ||
|
||
function start() | ||
{ | ||
|
||
# prepare /etc/exports | ||
for i in "$@"; do | ||
# fsid=0: needed for NFSv4 | ||
echo "$i *(rw,fsid=0,insecure,no_root_squash)" >> /etc/exports | ||
echo "Serving $i" | ||
done | ||
|
||
# start rpcbind if it is not started yet | ||
/usr/sbin/rpcinfo 127.0.0.1 > /dev/null; s=$? | ||
if [ $s -ne 0 ]; then | ||
echo "Starting rpcbind" | ||
/usr/sbin/rpcbind -w | ||
fi | ||
|
||
mount -t nfsd nfsd /proc/fs/nfsd | ||
|
||
# -V 3: enable NFSv3 | ||
/usr/sbin/rpc.mountd -N 2 -V 3 | ||
|
||
/usr/sbin/exportfs -r | ||
# -G 10 to reduce grace time to 10 seconds (the lowest allowed) | ||
/usr/sbin/rpc.nfsd -G 10 -V 3 | ||
/usr/sbin/rpc.statd --no-notify | ||
echo "NFS started" | ||
} | ||
|
||
function stop() | ||
{ | ||
echo "Stopping NFS" | ||
|
||
/usr/sbin/rpc.nfsd 0 | ||
/usr/sbin/exportfs -au | ||
/usr/sbin/exportfs -f | ||
|
||
kill "$( pidof rpc.mountd )" | ||
umount /proc/fs/nfsd | ||
echo > /etc/exports | ||
exit 0 | ||
} | ||
|
||
# rpc.statd has issues with very high ulimits | ||
ulimit -n 65535 | ||
|
||
trap stop TERM | ||
|
||
start "$@" | ||
|
||
set +x | ||
# Ugly hack to do nothing and wait for SIGTERM | ||
while true; do | ||
sleep 5 | ||
done | ||
|