Add backup config to wild-setup-scaffold
This commit is contained in:
@@ -49,7 +49,6 @@ while [[ $# -gt 0 ]]; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Initialize Wild Cloud environment
|
# Initialize Wild Cloud environment
|
||||||
|
|
||||||
if [ -z "${WC_ROOT}" ]; then
|
if [ -z "${WC_ROOT}" ]; then
|
||||||
echo "WC_ROOT is not set."
|
echo "WC_ROOT is not set."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -57,130 +56,68 @@ else
|
|||||||
source "${WC_ROOT}/scripts/common.sh"
|
source "${WC_ROOT}/scripts/common.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TEMPLATE_DIR="${WC_ROOT}/setup/home-scaffold"
|
|
||||||
|
|
||||||
# Check if cloud already exists
|
# Initialize .wildcloud directory if it doesn't exist.
|
||||||
if [ -d ".wildcloud" ]; then
|
if [ ! -d ".wildcloud" ]; then
|
||||||
echo "Wild Cloud already exists in this directory."
|
mkdir -p ".wildcloud"
|
||||||
echo ""
|
|
||||||
read -p "Do you want to update cloud files? (y/N): " -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
UPDATE=true
|
UPDATE=true
|
||||||
echo "Updating cloud files..."
|
echo "Created '.wildcloud' directory."
|
||||||
else
|
|
||||||
echo "Skipping cloud update."
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Check if current directory is empty for new cloud
|
|
||||||
if [ "${UPDATE}" = false ]; then
|
|
||||||
# Check if directory has any files (including hidden files, excluding . and .. and .git)
|
|
||||||
if [ -n "$(find . -maxdepth 1 -name ".*" -o -name "*" | grep -v "^\.$" | grep -v "^\.\.$" | grep -v "^\./\.git$" | head -1)" ]; then
|
|
||||||
echo "Error: Current directory is not empty"
|
|
||||||
echo "Use --update flag to overwrite existing cloud files while preserving other files"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Initializing Wild Cloud in $(pwd)"
|
|
||||||
UPDATE=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Initialize cloud files if needed
|
|
||||||
if [ ! -d ".wildcloud" ] || [ "${UPDATE}" = true ]; then
|
|
||||||
if [ "${UPDATE}" = true ]; then
|
|
||||||
echo "Updating cloud files (preserving existing custom files)"
|
|
||||||
else
|
|
||||||
echo "Creating cloud files"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Function to copy files and directories
|
|
||||||
copy_cloud_files() {
|
|
||||||
local src_dir="$1"
|
|
||||||
local dest_dir="$2"
|
|
||||||
|
|
||||||
# Create destination directory if it doesn't exist
|
|
||||||
mkdir -p "${dest_dir}"
|
|
||||||
|
|
||||||
# Copy directory structure
|
|
||||||
find "${src_dir}" -type d | while read -r src_subdir; do
|
|
||||||
rel_path="${src_subdir#${src_dir}}"
|
|
||||||
rel_path="${rel_path#/}" # Remove leading slash if present
|
|
||||||
if [ -n "${rel_path}" ]; then
|
|
||||||
mkdir -p "${dest_dir}/${rel_path}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Copy files
|
|
||||||
find "${src_dir}" -type f | while read -r src_file; do
|
|
||||||
rel_path="${src_file#${src_dir}}"
|
|
||||||
rel_path="${rel_path#/}" # Remove leading slash if present
|
|
||||||
dest_file="${dest_dir}/${rel_path}"
|
|
||||||
|
|
||||||
# Ensure destination directory exists
|
|
||||||
dest_file_dir=$(dirname "${dest_file}")
|
|
||||||
mkdir -p "${dest_file_dir}"
|
|
||||||
|
|
||||||
if [ "${UPDATE}" = true ] && [ -f "${dest_file}" ]; then
|
|
||||||
echo "Updating: ${rel_path}"
|
|
||||||
else
|
|
||||||
echo "Creating: ${rel_path}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp "${src_file}" "${dest_file}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Copy cloud files to current directory
|
|
||||||
copy_cloud_files "${TEMPLATE_DIR}" "."
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Wild Cloud initialized successfully!"
|
|
||||||
echo ""
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# BASIC CONFIGURATION
|
# BASIC CONFIGURATION
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# Basic Information
|
prompt_if_unset_config "operator.email" "Your email address" ""
|
||||||
prompt_if_unset_config "operator.email" "Your email address (for Let's Encrypt certificates)" ""
|
|
||||||
|
|
||||||
# Domain Configuration
|
|
||||||
prompt_if_unset_config "cloud.baseDomain" "Your base domain name (e.g., example.com)" ""
|
prompt_if_unset_config "cloud.baseDomain" "Your base domain name (e.g., example.com)" ""
|
||||||
|
|
||||||
# Get base domain to use as default for cloud domain
|
|
||||||
base_domain=$(wild-config "cloud.baseDomain")
|
base_domain=$(wild-config "cloud.baseDomain")
|
||||||
prompt_if_unset_config "cloud.domain" "Your public cloud domain" "cloud.${base_domain}"
|
prompt_if_unset_config "cloud.domain" "Your public cloud domain" "cloud.${base_domain}"
|
||||||
|
|
||||||
# Get cloud domain to use as default for internal domain
|
|
||||||
domain=$(wild-config "cloud.domain")
|
domain=$(wild-config "cloud.domain")
|
||||||
prompt_if_unset_config "cloud.internalDomain" "Your internal cloud domain" "internal.${domain}"
|
prompt_if_unset_config "cloud.internalDomain" "Your internal cloud domain" "internal.${domain}"
|
||||||
|
prompt_if_unset_config "cloud.backup.root" "Existing path to save backups to" ""
|
||||||
|
|
||||||
# Derive cluster name from domain if not already set
|
# Derive cluster name from domain if not already set
|
||||||
current_cluster_name=$(get_current_config "cluster.name")
|
current_cluster_name=$(wild-config "cluster.name")
|
||||||
if [ -z "$current_cluster_name" ] || [ "$current_cluster_name" = "null" ]; then
|
if [ -z "$current_cluster_name" ] || [ "$current_cluster_name" = "null" ]; then
|
||||||
cluster_name=$(echo "${domain}" | tr '.' '-' | tr '[:upper:]' '[:lower:]')
|
cluster_name=$(echo "${domain}" | tr '.' '-' | tr '[:upper:]' '[:lower:]')
|
||||||
wild-config-set "cluster.name" "${cluster_name}"
|
wild-config-set "cluster.name" "${cluster_name}"
|
||||||
print_info "Set cluster name to: ${cluster_name}"
|
print_info "Set cluster name to: ${cluster_name}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if current directory is empty for new cloud
|
||||||
|
if [ "${UPDATE}" = false ]; then
|
||||||
|
# Check if directory has any files (including hidden files, excluding . and .. and .git)
|
||||||
|
if [ -n "$(find . -maxdepth 1 -name ".*" -o -name "*" | grep -v "^\.$" | grep -v "^\.\.$" | grep -v "^\./\.git$" | grep -v "^\./\.wildcloud$"| head -1)" ]; then
|
||||||
|
echo "Warning: Current directory is not empty."
|
||||||
|
read -p "Do you want to overwrite existing files? (y/N): " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
confirm="yes"
|
||||||
|
else
|
||||||
|
confirm="no"
|
||||||
|
fi
|
||||||
|
if [ "$confirm" != "yes" ]; then
|
||||||
|
echo "Aborting setup. Please run this script in an empty directory."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy cloud files to current directory only if they do not exist.
|
||||||
|
# Ignore files that already exist.
|
||||||
|
SRC_DIR="${WC_ROOT}/setup/home-scaffold"
|
||||||
|
rsync -av --ignore-existing --exclude=".git" "${SRC_DIR}/" ./ > /dev/null
|
||||||
|
|
||||||
|
print_success "Ready for cluster setup!"
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# COMPLETION
|
# COMPLETION
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
print_header "Wild Cloud Scaffold Setup Complete!"
|
print_header "Wild Cloud Scaffold Setup Complete! Welcome to Wild Cloud!"
|
||||||
|
|
||||||
print_success "Cloud scaffold initialized successfully!"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
print_info "Configuration files:"
|
|
||||||
echo " - ${WC_HOME}/config.yaml"
|
|
||||||
echo " - ${WC_HOME}/secrets.yaml"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
print_info "Next steps:"
|
echo "Next steps:"
|
||||||
echo " 1. Set up your Kubernetes cluster:"
|
echo " 1. Set up your Kubernetes cluster:"
|
||||||
echo " wild-setup-cluster"
|
echo " wild-setup-cluster"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -190,4 +127,3 @@ echo ""
|
|||||||
echo "Or run the complete setup:"
|
echo "Or run the complete setup:"
|
||||||
echo " wild-setup"
|
echo " wild-setup"
|
||||||
|
|
||||||
print_success "Ready for cluster setup!"
|
|
Reference in New Issue
Block a user