PostgreSQL
September 7, 2022

Убрать/добавить внешний адрес для кластера

Если необходимо сделать кластер с внешним доступом или наоборот дополнительно защитить его убрав внешний доступ. Посмотрим что у нас сейчас есть:

export POSTGRES=$(yc postgresql cluster get cam-postgres --format=json | jq -r ".id")
export HOST=$(yc postgresql hosts list --cluster-id $POSTGRES --format=json | jq ".[].name" | cut -b 2-42)
yc postgresql hosts list --cluster-id $POSTGRES
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+
|                   NAME                    |      CLUSTER ID      |  ROLE  | HEALTH |    ZONE ID    | PUBLIC IP | REPLICATION SOURCE |
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+
| HOST                                      | POSTGRES             | MASTER | ALIVE  | ru-central1-a | false     |                    |
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+

Изменим адрес на публичный:

yc postgresql hosts update $HOST --cluster-id $POSTGRES \
  --assign-public-ip \
  --async
yc postgresql hosts list --cluster-id $POSTGRES
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+
|                   NAME                    |      CLUSTER ID      |  ROLE  | HEALTH |    ZONE ID    | PUBLIC IP | REPLICATION SOURCE |
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+
| HOST                                      | POSTGRES             | MASTER | ALIVE  | ru-central1-a | true      |                    |
+-------------------------------------------+----------------------+--------+--------+---------------+-----------+--------------------+

Удалим адрес:

yc postgresql hosts update $HOST --cluster-id $POSTGRES \
  --assign-public-ip=false \
  --async

Полезные ссылки.

Создали кластер здесь: https://teletype.in/@cameda/Lheee0sIIqV
Информация о хосте кластера тут: https://teletype.in/@cameda/T-niZns6Y3Y
Тестовую БД взял отсюда: https://itdoxy.com/пример-базы-данных-postgresql/
Базу demo добавил тут: https://teletype.in/@cameda/tMfCh9jdzK-
Здесь выдал доп роли для пользователя cameda: https://teletype.in/@cameda/R5_8i_jmacK