mirror of
https://github.com/jpetazzo/container.training.git
synced 2026-07-27 16:51:21 +00:00
52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
if ! command -v scw >/dev/null; then
|
|
warning "Scaleway CLI (scw) not found."
|
|
fi
|
|
if ! [ -f ~/.config/scw/config.yaml ]; then
|
|
warning "~/.config/scw/config.yaml not found."
|
|
fi
|
|
|
|
SCW_INSTANCE_TYPE=${SCW_INSTANCE_TYPE-DEV1-M}
|
|
SCW_ZONE=${SCW_ZONE-fr-par-1}
|
|
|
|
infra_list() {
|
|
scw instance server list -o json |
|
|
jq -r '.[] | [.id, .name, .state, .commercial_type] | @tsv'
|
|
}
|
|
|
|
infra_start() {
|
|
COUNT=$1
|
|
|
|
for I in $(seq 1 $COUNT); do
|
|
NAME=$(printf "%s-%03d" $TAG $I)
|
|
sep "Starting instance $I/$COUNT"
|
|
info " Zone: $SCW_ZONE"
|
|
info " Name: $NAME"
|
|
info " Instance type: $SCW_INSTANCE_TYPE"
|
|
scw instance server create \
|
|
type=${SCW_INSTANCE_TYPE} zone=${SCW_ZONE} \
|
|
image=ubuntu_bionic name=${NAME}
|
|
done
|
|
sep
|
|
|
|
scw_get_ips_by_tag $TAG > tags/$TAG/ips.txt
|
|
}
|
|
|
|
infra_stop() {
|
|
info "Counting instances..."
|
|
scw_get_ids_by_tag $TAG | wc -l
|
|
info "Deleting instances..."
|
|
scw_get_ids_by_tag $TAG |
|
|
xargs -n1 -P10 \
|
|
scw instance server delete zone=${SCW_ZONE} force-shutdown=true with-ip=true
|
|
}
|
|
|
|
scw_get_ids_by_tag() {
|
|
TAG=$1
|
|
scw instance server list zone=${SCW_ZONE} name=$TAG -o json | jq -r .[].id
|
|
}
|
|
|
|
scw_get_ips_by_tag() {
|
|
TAG=$1
|
|
scw instance server list zone=${SCW_ZONE} name=$TAG -o json | jq -r .[].public_ip.address
|
|
}
|