Перейти к содержимому

Руководство по обновлению

v0.9 обратно совместима по всем возможностям и хранилищу. Единственное необходимое действие — обновить переименованные переменные окружения, если вы используете какие-либо из переименованных имён, перечисленных ниже.

ВозможностьВлияниеТребуемое действие
Изоляция пространств имён DockerВ структуру хранилища добавляется префикс пространства имёнНет — ленивая миграция выполняется автоматически
Circuit breakerНовая возможность, отключена по умолчаниюНет
TTL метаданных Docker + stale-while-errorНовая возможность, включается вручнуюНет
Потоковый read_timeoutНовая возможность, включается вручнуюНет
Горячая перезагрузка курирования по SIGHUPНовая возможностьНет
Бинарный файл linux/arm64Новая платформаНет

В v0.9 вводятся префиксы пространств имён для каждого вышестоящего источника в ключах хранилища Docker, чтобы изолировать данные из разных вышестоящих реестров.

Старая структура (v0.8):

docker/{name}/blobs/{digest}
docker/{name}/manifests/{ref}.json

Новая структура (v0.9):

docker/{namespace}/{name}/blobs/{digest}
docker/{namespace}/{name}/manifests/{ref}.json

Пространство имён определяется по URL вышестоящего источника (например, registry-1.docker.io превращается в docker.io) или задаётся явно через поле namespace в [[docker.upstreams]].

Миграция автоматическая и ленивая:

  • При обработке запроса NORA сначала проверяет путь с пространством имён.
  • Если он не найден, происходит откат к устаревшему плоскому пути.
  • Никакой фоновой миграции при запуске не выполняется.
  • Существующие закэшированные данные продолжают отдаваться без перебоев.
  1. Остановите работающий экземпляр NORA.
  2. Замените бинарный файл или обновите образ контейнера до v0.9.
  3. Запустите NORA с вашей существующей конфигурацией.
Окно терминала
# Binary upgrade
curl -fsSL https://github.com/getnora-io/nora/releases/latest/download/nora-linux-amd64 -o nora
chmod +x nora
./nora

Скрипты миграции данных не требуются.

Чтобы откатиться с v0.9 на v0.8:

  1. Остановите экземпляр v0.9.
  2. Замените бинарный файл или образ на v0.8.
  3. Запустите NORA.

В v0.9 добавлены следующие необязательные переменные (все отключены или неактивны по умолчанию):

ПеременнаяПо умолчаниюОписание
NORA_CB_ENABLEDfalseВключить circuit breaker
NORA_CB_THRESHOLD5Число сбоев до размыкания
NORA_CB_RESET_TIMEOUT30Секунд до пробного запроса
NORA_DOCKER_READ_TIMEOUT60Таймаут чтения одного фрагмента (секунды)
NORA_DOCKER_METADATA_TTL-1TTL кэша метаданных в секундах
NORA_DOCKER_SERVE_STALEtrueОтдавать закэшированные манифесты, когда вышестоящий источник недоступен

Полный справочник см. в Справочнике по конфигурации.

В v0.9 несколько имён переменных сокращены в соответствии с соглашением NORA_{SECTION}_{FIELD} (менее 30 символов):

Старое имяНовое имя
NORA_TF_ENABLEDNORA_TF_ENABLED
NORA_TF_PROXYNORA_TF_PROXY
NORA_TF_PROXY_TIMEOUTNORA_TF_PROXY_TIMEOUT
NORA_TF_METADATA_TTLNORA_TF_METADATA_TTL
NORA_TF_PROXY_TIMEOUT_DLNORA_TF_PROXY_TIMEOUT_DL
NORA_CONAN_PROXY_TIMEOUT_DLNORA_CONAN_PROXY_TIMEOUT_DL
NORA_CURATION_INTERNAL_NSNORA_CURATION_INTERNAL_NS

Старые имена больше не распознаются. Обновите свою конфигурацию, если вы используете какие-либо из них.