From 6be026067331acb589937c836adb234a7ffb9dfb Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Fri, 8 Aug 2025 09:56:36 -0700 Subject: [PATCH] Remove config wrappers. --- bin/wild-cluster-node-boot-assets-download | 6 ++--- bin/wild-config | 8 +++--- bin/wild-secret | 8 +++--- bin/wild-setup-cluster | 22 ++++++++-------- bin/wild-setup-services | 2 +- scripts/common.sh | 30 +++------------------- 6 files changed, 28 insertions(+), 48 deletions(-) diff --git a/bin/wild-cluster-node-boot-assets-download b/bin/wild-cluster-node-boot-assets-download index 9cfd035..d9044df 100755 --- a/bin/wild-cluster-node-boot-assets-download +++ b/bin/wild-cluster-node-boot-assets-download @@ -52,7 +52,7 @@ else fi # Check for required configuration -if [ -z "$(get_current_config "cluster.nodes.talos.version")" ] || [ -z "$(get_current_config "cluster.nodes.talos.schematicId")" ]; then +if [ -z "$(wild-config "cluster.nodes.talos.version")" ] || [ -z "$(wild-config "cluster.nodes.talos.schematicId")" ]; then print_header "Talos Configuration Required" print_error "Missing required Talos configuration" print_info "Please run 'wild-setup' first to configure your cluster" @@ -69,8 +69,8 @@ fi print_header "Talos Installer Image Generation and Asset Download" # Get Talos version and schematic ID from config -TALOS_VERSION=$(get_current_config cluster.nodes.talos.version) -SCHEMATIC_ID=$(get_current_config cluster.nodes.talos.schematicId) +TALOS_VERSION=$(wild-config cluster.nodes.talos.version) +SCHEMATIC_ID=$(wild-config cluster.nodes.talos.schematicId) print_info "Creating custom Talos installer image..." print_info "Talos version: $TALOS_VERSION" diff --git a/bin/wild-config b/bin/wild-config index 0c251e9..428355b 100755 --- a/bin/wild-config +++ b/bin/wild-config @@ -62,16 +62,18 @@ CONFIG_FILE="${WC_HOME}/config.yaml" if [ ! -f "${CONFIG_FILE}" ]; then echo "Error: config file not found at ${CONFIG_FILE}" >&2 - exit 1 + echo "" + exit 0 fi # Use yq to extract the value from the YAML file -result=$(yq eval ".${KEY_PATH}" "${CONFIG_FILE}") 2>/dev/null +result=$(yq eval ".${KEY_PATH}" "${CONFIG_FILE}" 2>/dev/null || echo "null") # Check if result is null (key not found) if [ "${result}" = "null" ]; then echo "Error: Key path '${KEY_PATH}' not found in ${CONFIG_FILE}" >&2 - exit 1 + echo "" + exit 0 fi echo "${result}" \ No newline at end of file diff --git a/bin/wild-secret b/bin/wild-secret index ed598d8..b170aed 100755 --- a/bin/wild-secret +++ b/bin/wild-secret @@ -62,16 +62,18 @@ SECRETS_FILE="${WC_HOME}/secrets.yaml" if [ ! -f "${SECRETS_FILE}" ]; then echo "Error: secrets file not found at ${SECRETS_FILE}" >&2 - exit 1 + echo "" + exit 0 fi # Use yq to extract the value from the YAML file -result=$(yq eval ".${KEY_PATH}" "${SECRETS_FILE}" 2>/dev/null) +result=$(yq eval ".${KEY_PATH}" "${SECRETS_FILE}" 2>/dev/null || echo "null") # Check if result is null (key not found) if [ "${result}" = "null" ]; then echo "Error: Key path '${KEY_PATH}' not found in ${SECRETS_FILE}" >&2 - exit 1 + echo "" + exit 0 fi echo "${result}" \ No newline at end of file diff --git a/bin/wild-setup-cluster b/bin/wild-setup-cluster index a42dd23..b6abe2d 100755 --- a/bin/wild-setup-cluster +++ b/bin/wild-setup-cluster @@ -123,7 +123,7 @@ prompt_if_unset_config "cluster.ipAddressPool" "MetalLB IP address pool" "${SUBN ip_pool=$(wild-config "cluster.ipAddressPool") # Load balancer IP (automatically set to first address in the pool if not set) -current_lb_ip=$(get_current_config "cluster.loadBalancerIp") +current_lb_ip=$(wild-config "cluster.loadBalancerIp") if [ -z "$current_lb_ip" ] || [ "$current_lb_ip" = "null" ]; then lb_ip=$(echo "${ip_pool}" | cut -d'-' -f1) wild-config-set "cluster.loadBalancerIp" "${lb_ip}" @@ -135,14 +135,14 @@ prompt_if_unset_config "cluster.nodes.talos.version" "Talos version" "v1.10.4" talos_version=$(wild-config "cluster.nodes.talos.version") # Talos schematic ID -current_schematic_id=$(get_current_config "cluster.nodes.talos.schematicId") +current_schematic_id=$(wild-config "cluster.nodes.talos.schematicId") if [ -z "$current_schematic_id" ] || [ "$current_schematic_id" = "null" ]; then echo "" print_info "Get your Talos schematic ID from: https://factory.talos.dev/" print_info "This customizes Talos with the drivers needed for your hardware." # Use current schematic ID from config as default - default_schematic_id=$(get_current_config "cluster.nodes.talos.schematicId") + default_schematic_id=$(wild-config "cluster.nodes.talos.schematicId") if [ -n "$default_schematic_id" ] && [ "$default_schematic_id" != "null" ]; then print_info "Using schematic ID from config for Talos $talos_version" else @@ -154,7 +154,7 @@ if [ -z "$current_schematic_id" ] || [ "$current_schematic_id" = "null" ]; then fi # External DNS -cluster_name=$(get_current_config "cluster.name") +cluster_name=$(wild-config "cluster.name") prompt_if_unset_config "cluster.externalDns.ownerId" "External DNS owner ID" "external-dns-${cluster_name}" @@ -188,18 +188,18 @@ if [ "${SKIP_HARDWARE}" = false ]; then print_info "Registering control plane node: $NODE_NAME (IP: $TARGET_IP)" # Initialize the node in cluster.nodes.active if not already present - if [ -z "$(get_current_config "cluster.nodes.active.\"${NODE_NAME}\".role")" ]; then + if [ -z "$(wild-config "cluster.nodes.active.\"${NODE_NAME}\".role")" ]; then wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".role" "controlplane" wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".targetIp" "$TARGET_IP" wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".currentIp" "$TARGET_IP" fi # Check if node is already configured - existing_interface=$(get_current_config "cluster.nodes.active.\"${NODE_NAME}\".interface") + existing_interface=$(wild-config "cluster.nodes.active.\"${NODE_NAME}\".interface") if [ -n "$existing_interface" ] && [ "$existing_interface" != "null" ]; then print_success "Node $NODE_NAME already configured" print_info " - Interface: $existing_interface" - print_info " - Disk: $(get_current_config "cluster.nodes.active.\"${NODE_NAME}\".disk")" + print_info " - Disk: $(wild-config "cluster.nodes.active.\"${NODE_NAME}\".disk")" # Generate machine config patch for this node if necessary. NODE_SETUP_DIR="${WC_HOME}/setup/cluster-nodes" @@ -288,8 +288,8 @@ if [ "${SKIP_HARDWARE}" = false ]; then wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".disk" "$SELECTED_DISK" # Copy current Talos version and schematic ID to this node - current_talos_version=$(get_current_config "cluster.nodes.talos.version") - current_schematic_id=$(get_current_config "cluster.nodes.talos.schematicId") + current_talos_version=$(wild-config "cluster.nodes.talos.version") + current_schematic_id=$(wild-config "cluster.nodes.talos.schematicId") if [ -n "$current_talos_version" ] && [ "$current_talos_version" != "null" ]; then wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".version" "$current_talos_version" fi @@ -420,8 +420,8 @@ if [ "${SKIP_HARDWARE}" = false ]; then wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".disk" "$SELECTED_DISK" # Copy current Talos version and schematic ID to this node - current_talos_version=$(get_current_config "cluster.nodes.talos.version") - current_schematic_id=$(get_current_config "cluster.nodes.talos.schematicId") + current_talos_version=$(wild-config "cluster.nodes.talos.version") + current_schematic_id=$(wild-config "cluster.nodes.talos.schematicId") if [ -n "$current_talos_version" ] && [ "$current_talos_version" != "null" ]; then wild-config-set "cluster.nodes.active.\"${NODE_NAME}\".version" "$current_talos_version" fi diff --git a/bin/wild-setup-services b/bin/wild-setup-services index f7f098f..4660bb4 100755 --- a/bin/wild-setup-services +++ b/bin/wild-setup-services @@ -59,7 +59,7 @@ else fi # Check cluster configuration -if [ -z "$(get_current_config "cluster.name")" ]; then +if [ -z "$(wild-config "cluster.name")" ]; then print_error "Cluster configuration is missing" print_info "Run 'wild-setup-cluster' first to configure cluster settings" exit 1 diff --git a/scripts/common.sh b/scripts/common.sh index dd6f7c3..d2b1973 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -19,7 +19,7 @@ # # AVAILABLE FUNCTIONS: # - Print functions: print_header, print_info, print_warning, print_success, print_error -# - Config functions: get_current_config, get_current_secret, prompt_with_default +# - Config functions: prompt_with_default # - Config helpers: prompt_if_unset_config, prompt_if_unset_secret # - Validation: check_wild_directory # - Utilities: command_exists, file_readable, dir_writable, generate_random_string @@ -64,31 +64,7 @@ print_error() { # CONFIGURATION UTILITIES # ============================================================================= -# Function to get current config value safely -get_current_config() { - local key="$1" - if [ -f "${WC_HOME}/config.yaml" ]; then - set +e - result=$(wild-config "${key}" 2>/dev/null) - set -e - echo "${result}" - else - echo "" - fi -} -# Function to get current secret value safely -get_current_secret() { - local key="$1" - if [ -f "${WC_HOME}/secrets.yaml" ]; then - set +e - result=$(wild-secret "${key}" 2>/dev/null) - set -e - echo "${result}" - else - echo "" - fi -} # Function to prompt for input with default value prompt_with_default() { @@ -134,7 +110,7 @@ prompt_if_unset_config() { local default="$3" local current_value - current_value=$(get_current_config "${config_path}") + current_value=$(wild-config "${config_path}") if [ -z "${current_value}" ] || [ "${current_value}" = "null" ]; then local new_value @@ -153,7 +129,7 @@ prompt_if_unset_secret() { local default="$3" local current_value - current_value=$(get_current_secret "${secret_path}") + current_value=$(wild-secret "${secret_path}") if [ -z "${current_value}" ] || [ "${current_value}" = "null" ]; then local new_value