provisioning-catalog/providers/upcloud/templates/upcloud_networks.j2

53 lines
1.5 KiB
Django/Jinja

#!/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 %}