nubes_gitea — Gitea¶
Лёгкий self-hosted хостинг Git-репозиториев с веб-интерфейсом (репозитории,
организации, команды, CI/CD-интеграции). Работает поверх существующей базы
PostgreSQL (nubes_postgres), отдаёт адрес веб-интерфейса.
Инструкция по сервису
Отдельная страница: руководство по сервису.
Специфика Nubes: destroy ≠ удаление
terraform destroy по умолчанию усыпляет инстанс (suspend), а не удаляет.
Подробности — в разделе «Жизненный цикл» и в общем
руководстве «Как работает провайдер».
Gitea создаётся поверх существующего PostgreSQL
Для развёртывания необходима уже развёрнутая база PostgreSQL (nubes_postgres).
psql_uid в схеме помечен как необязательный, однако на практике обязателен
(см. ниже в Argument Reference). Пользователь techGitea и БД gitea создаются
платформой автоматически.
Пример использования¶
resource "nubes_gitea" "git" {
resource_name = "my-gitea"
# ⚠️ обязателен: UUID существующего PostgreSQL (сервис 90)
psql_uid = nubes_postgres.db.id
resource_cpu = 500 # 300…4000
resource_memory = 512 # 256…8192
resource_disk = 1 # 1…999
resource_instances = 1 # 1…7
domain = "my-gitea"
ini_server_params = {
"server.ROOT_URL" = "https://my-gitea.example.com/"
}
}
⚠️
psql_uidв схеме помечен как необязательный, однако без него создание не запускается — указывайте UUID существующей базы PostgreSQL.⚠️
resource_realmв схеме отсутствует — платформа подставляет кластер сама.
Argument Reference¶
| Имя | Тип | Обязательный | По умолчанию | Описание | Ограничения |
|---|---|---|---|---|---|
resource_name |
string | да | — | Имя инстанса | — |
psql_uid |
string (uuid) | нет (фактически да) | — | UUID услуги k8sPgsql (сервис 90). Пользователь techGitea и БД gitea создаются автоматически |
ссылка на nubes_postgres |
domain |
string | нет | gitea-1 |
FQDN или имя; при FQDN проверяется A-запись DNS | DNS-имя/FQDN |
resource_cpu |
integer | нет | 500 |
Квота CPU пода (milicores) | 300…4000 |
resource_memory |
integer | нет | 512 |
Квота памяти пода (MB) | 256…8192 |
resource_disk |
integer | нет | 1 |
Квота диска (GB) | 1…999 |
resource_instances |
integer | нет | 1 |
Количество узлов | 1…7 |
ingress_extra_annotations |
map | нет | — | Доп. аннотации ingress | — |
ini_server_params |
map | нет | — | Параметры [server] в app.ini |
— |
Общие атрибуты (есть у всех ресурсов):
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
operation_timeout |
string | нет | — | Максимальное время ожидания операции |
log_level |
string | нет | none |
Логирование стадий: none, info, debug |
suspend_on_destroy |
bool | нет | true |
При destroy — усыпить вместо удаления |
keep_on_destroy |
bool | нет | false |
При destroy — ничего не делать в облаке (state_only) |
adopt_existing_on_create |
bool | нет | false |
Авто-подхват существующего инстанса при apply |
Attribute Reference¶
| Имя | Тип | Описание |
|---|---|---|
id |
string | UUID инстанса |
state_out / state_out_flat |
map | Ответ API (адрес веб-интерфейса, instanceUid, monitoring) |
state_params / state_params_flat |
map | Параметры, отправленные в API |
vault_secrets |
map (sensitive) | Секреты из Vault |
vault_url / vault_user_path |
string | Адрес/путь Vault |
vault_fields |
list | Список доступных ключей секретов |
Жизненный цикл ¶
| Флаг | Дефолт | Поведение при destroy |
|---|---|---|
suspend_on_destroy |
true |
Инстанс переводится в suspend (не удаляется) |
suspend_on_destroy |
false |
Выполняется операция delete — инстанс удаляется в облаке |
keep_on_destroy |
false |
Если true — облако не трогается, ресурс только убирается из состояния (state_only); приоритетнее suspend_on_destroy |
Возврат из suspend: повторный terraform apply с adopt_existing_on_create = true
— провайдер найдёт инстанс по имени и выполнит resume.
Зачем нужно усыпление
suspend — временная остановка: ресурсы высвобождаются, а инстанс можно
вернуть в работу в любой момент повторным apply.
Удаление усыплённого инстанса
Удалить усыплённый инстанс можно, когда он пробыл в suspend 15 минут.
⚠️ Из Terraform это невозможно — операция delete для усыплённого инстанса
недоступна. Удаляйте его вручную в Личном кабинете (ЛК).
- Инстанс в статусе «not created» (после упавшего create) блокирует имя и не удаляется через API — чистится вручную в Личном кабинете.
Operations¶
| Операция | Доступно из Terraform | Комментарий |
|---|---|---|
create |
✅ apply |
Создание инстанса |
modify |
✅ apply |
Меняются resource_cpu, resource_memory, resource_disk, resource_instances, ingress_extra_annotations, ini_server_params |
suspend |
✅ destroy (при suspend_on_destroy=true) |
Усыпление |
resume |
✅ apply (при adopt_existing_on_create=true) |
Пробуждение |
delete |
✅ destroy (suspend_on_destroy=false) |
Удаление инстанса в облаке. Только для работающего (running); усыплённый — вручную в ЛК |