#!/bin/bash # provisioning {{provisioning_vers}} UpCloud private network creation: {{now}} {%- if debug and debug == "yes" %} set -x {% endif %} [ -z "$UPCLOUD_USERNAME" ] && [ ! -r "$HOME/.config/upctl.yaml" ] && echo "UpCloud credentials not found" && exit 1 {# Validate prerequisites #} {%- if networks and networks|length > 0 %} echo "=== Creating UpCloud Private Networks ===" {%- for network in networks %} {%- if network.name %} # Create private network: {{ network.name }} if upctl network show "{{ network.name }}" >/dev/null 2>/dev/null ; then echo "Network {{ network.name }} already exists." else echo "Creating network: {{ network.name }}" upctl network create \ --name "{{ network.name }}" \ {%- if network.zone %} --zone "{{ network.zone }}" \ {%- elif defaults.zone and defaults.zone != '' %} --zone "{{ defaults.zone }}" \ {%- else %} --zone "es-mad1" \ {%- endif -%} {%- if network.ip %} \ --ip-network "address={{ network.ip }},dhcp=true" \ {%- elif defaults.ip %} --ip-network "address={{ defaults.ip }},dhcp=true" \ {%- else %} --ip-network "address=10.0.0.0/24,dhcp=true" \ {%- endif -%} {%- if debug and debug == "yes" %} \ -o json \ {%- endif %} if [ $? -eq 0 ]; then echo "✅ Network {{ network.name }} created successfully" else echo "❌ Failed to create network {{ network.name }}" fi fi {%- endif %} {%- endfor %} echo "" echo "=== Network Creation Complete ===" {%- else %} echo "No networks defined for this configuration" {%- endif %}