#!/bin/bash # Function to get the current network interface IP get_ip_address() { ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1 } # Parse command line arguments command=$1 shift while getopts ":s:i:" opt; do case $opt in s) storage_path="$OPTARG" ;; i) ip_address="$OPTARG" ;; \?) echo "Invalid option -$OPTARG" >&2 ;; esac done if [ "$command" == "apply" ]; then if [ -z "$storage_path" ]; then echo "Usage: $0 apply -s [-i ]" exit 1 fi if [ -z "$ip_address" ]; then ip_address=$(get_ip_address) fi # Make a local copy of kustomization.yaml cp ./overlays/microk8s/kustomization.yaml ./kustomization.yaml # Replace placeholders in the local copy of kustomization.yaml sed -i "s|localhost|$ip_address|g" ./kustomization.yaml sed -i "s|/media/Storage|$storage_path|g" ./kustomization.yaml # Adjust the base path reference sed -i "s|../../base|./base|g" ./kustomization.yaml # Apply kustomize installation kubectl kustomize ./ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl apply -f - # Clean up the local copy rm ./kustomization.yaml elif [ "$command" == "delete" ]; then # Make a local copy of kustomization.yaml cp ./overlays/microk8s/kustomization.yaml ./kustomization.yaml # Adjust the base path reference sed -i "s|../../base|./base|g" ./kustomization.yaml # Delete kustomize installation kubectl kustomize ./ --enable-helm --load-restrictor LoadRestrictionsNone | kubectl delete -f - # Clean up the local copy rm ./kustomization.yaml else echo "Usage: $0 {apply|delete} [-s ] [-i ]" exit 1 fi