54 lines
1.5 KiB
Text
54 lines
1.5 KiB
Text
|
|
#!/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 %}
|