diff --git a/setup/cluster-services/nfs/README.md b/setup/cluster-services/nfs/README.md index cf119dc..12556b9 100644 --- a/setup/cluster-services/nfs/README.md +++ b/setup/cluster-services/nfs/README.md @@ -1,13 +1,19 @@ # NFS Setup (Optional) -The infrastructure supports optional NFS (Network File System) for shared media storage across the cluster: +The infrastructure supports optional NFS (Network File System) for shared media storage across the cluster. If your config.yaml contains the `cloud.nfs` section, the NFS server will be set up automatically. ## Host Setup First, set up the NFS server on your chosen host. ```bash -./setup-nfs-host.sh +./setup-nfs-host.sh +``` + +Example: + +```bash +./setup-nfs-host.sh box-01 /srv/nfs ``` ## Cluster Integration @@ -18,8 +24,8 @@ Add to your `config.yaml`: cloud: nfs: host: box-01 - mediaPath: /data/media - storageCapacity: 250Gi + mediaPath: /srv/nfs + storageCapacity: 250Gi # Max size for PersistentVolume ``` And now you can run the nfs cluster setup: diff --git a/setup/cluster-services/nfs/install.sh b/setup/cluster-services/nfs/install.sh index 25c96bb..3060355 100755 --- a/setup/cluster-services/nfs/install.sh +++ b/setup/cluster-services/nfs/install.sh @@ -11,7 +11,7 @@ else init_wild_env fi -CLUSTER_SETUP_DIR="${WC_HOME}/setup/cluster" +CLUSTER_SETUP_DIR="${WC_HOME}/setup/cluster-services" NFS_DIR="${CLUSTER_SETUP_DIR}/nfs" print_header "Registering NFS server with Kubernetes cluster" diff --git a/setup/cluster-services/nfs/setup-nfs-host.sh b/setup/cluster-services/nfs/setup-nfs-host.sh index d7a13d1..276c766 100755 --- a/setup/cluster-services/nfs/setup-nfs-host.sh +++ b/setup/cluster-services/nfs/setup-nfs-host.sh @@ -7,8 +7,66 @@ SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")" SCRIPT_DIR="$(dirname "$SCRIPT_PATH")" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" -# Source environment variables -source "${PROJECT_DIR}/load-env.sh" +usage() { + echo "Usage: setup-nfs-host.sh [server] [media-path] [options]" + echo "" + echo "Set up NFS server on the specified host." + echo "" + echo "Examples:" + echo " setup-nfs-host.sh box-01 /data/media" + echo "" + echo "Options:" + echo " -h, --help Show this help message" + echo " -e, --export-options Set the NFS export options" + +} + +# Parse arguments +while [[ $# -gt 0 ]]; do + case $1 in + -h|--help) + usage + exit 0 + ;; + -e|--export-options) + if [[ -z "$2" ]]; then + echo "Error: --export-options requires a value" + exit 1 + else + NFS_EXPORT_OPTIONS="$2" + fi + shift 2 + ;; + -*) + echo "Unknown option $1" + usage + exit 1 + ;; + *) + # First non-option argument is server + if [[ -z "$NFS_HOST" ]]; then + export NFS_HOST="$1" + # Second non-option argument is media path + elif [[ -z "$NFS_MEDIA_PATH" ]]; then + export NFS_MEDIA_PATH="$1" + else + echo "Too many arguments" + usage + exit 1 + fi + shift + ;; + esac +done + +# Initialize Wild Cloud environment +if [ -z "${WC_ROOT}" ]; then + print "WC_ROOT is not set." + exit 1 +else + source "${WC_ROOT}/scripts/common.sh" + init_wild_env +fi echo "Setting up NFS server on this host..."