Вышел релиз GitLab 12.5 с созданием кластеров EKS и панелью окружений

Картинка для привлечения внимания

Вышел новый релиз GitLab с созданием и развертыванием кластеров EKS, поддержкой Crossplane, панелью окружений и многими другими классными фичами!

Для наиболее эффективной поставки качественного ПО нужно поддерживать широкий спектр инфраструктуры и несколько облачных платформ. Релиз GitLab этого месяца упрощает настройку, мониторинг и управление проектами с помощью различных конфигураций.

Создание и развертывание кластеров EKS из GitLab

Как и 85% enterprise-платформ, GitLab делает свою ставку на подход multicloud. Для наших пользователей критически важно без проблем разворачивать свои приложения в облако по своему выбору. Мы осознаем это, и счастливы представить возможность создания кластеров Kubernetes на EKS от Amazon всего за несколько щелчков мышью. Этот процесс такой же простой, как создание кластеров на GKE от Google. Просто выберите EKS, настройте создаваемый кластер, GitLab автоматически выделит ресурсы и подготовит ваш кластер, и вы сможете легко и быстро размещать на нем ваши приложения. GitLab избавляет вас от необходимости выполнять вручную сложную часть создания кластера.

Сейчас эта фича — переключаемая, и на GitLab.com включена по умолчанию.

Работа с управляемыми облачными сервисами с помощью Crossplane

Мы считаем, что эффективность операций очень важна, и потому мы рады представить интеграцию Crossplane как приложения в GitLab Managed Apps. Crossplane упрощает работу с зависимостями облачных сервисов, позволяя администраторам декларативно настраивать и безопасно использовать управляемые сервисы, установленные в выбранном облаке, включая GCP, AWS и Azure. Интеграция с Auto DevOps упрощает выделение ресурсов до объявления CI-переменной.

Быстрый просмотр состояния окружения

Иногда вы сталкиваетесь с частыми изменениями в приложении, которые довольно трудно отслеживать, пока они проходят свой путь через ваши dev-, staging- и production-окружения. Новая панель окружений собирает в одном месте информацию о статусах всех окружений во всех группах и проектах. Это значит, что вы сможете быстро найти и обозначить проблемы. Например, «Окружение не работает потому, что сейчас разворачивается код, или оно на самом деле не работает?».

И даже больше!

12.5 — большой релиз, и в нем вас ожидает много нововведений. Отдельно хотим отметить интеграцию с Sourcegraph и несколько улучшений безопасности. Читайте далее, чтобы узнать все о новых фичах релиза этого месяца!

Кстати, как насчёт встречи? Открыта регистрация на следующую пользовательскую конференцию GitLab Commit, которая состоится 14-го января в Сан-Франциско.

Присоединяйтесь к нам на GitLab Commit; заполните опрос по релизу (на английском).

GitLab MVP badge

MVP этого месяца — gfyoung

Пользователь gfyoung внес более 30 мерж-реквестов (в русской локализации GitLab «запросы на слияние»), чтобы добавить frozen_string_literals в тесты GitLab для улучшения производительности и согласованности, и это еще не считая множества мерж-реквестов в код самого GitLab за прошлый год. Здорово видеть итеративный подход в действии, и мы очень благодарны gfyoung за эту работу!

Основные фичи релиза GitLab 12.5

Простое создание и развертывание кластеров EKS из GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

Kubernetes непростительно сложный, поэтому создать кластер с нуля — задача не из легких. Даже с сервисами вроде Elastic Kubernetes Service (EKS) от AWS, которые прячут часть сложностей за абстракцией, все равно требуется еще много шагов просто для того, чтобы начать работу. Ручная настройка, такая, как создание специального Kubernetes control plane и индивидуальных нод в EC2, отвлекает вас от основной цели — запуска ваших приложений. Мы в GitLab стремимся автоматизировать все повторяющиеся задачи и хотим упростить создание нового кластера. Именно для этого мы добавляем интеграцию с EKS в релизе 12.5.

Теперь на странице кластеров вы можете выбрать опцию EKS (для этого потребуется войти в ваш аккаунт на AWS). После авторизации просто выберите необходимые параметры для вашего кластера, и GitLab позаботится об остальном.

Интеграция EKS важна не только ради удобства работы с Kubernetes на AWS, это также часть нашей стратегии multicloud. Вместе с интеграцией GKE мы надеемся сделать проще не только настройку Kubernetes, но и переход на multicloud. И это — только начало, мы хотим, чтобы у наших пользователей был широкий выбор облачных провайдеров для развертываний. Вы сможете использовать любого провайдера с его сильными сторонами и иметь возможность перемещать свои приложения на выбранное облако, не меняя своего обычного рабочего процесса в GitLab.

Сейчас эта фича — переключаемая, и на GitLab.com включена по умолчанию. Чтобы подключить ее в пользовательских инстансах, запустите консоль Rails: gitlab-rails console и выполните Feature.enable(:create_eks_clusters).

Документация по созданию кластеров EKS и оригинальный тикет.

Crossplane в GitLab Managed Apps

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

Ранее приложения Kubernetes можно было запустить с помощью GitLab, но зависимости сервисов приходилось отдельно настраивать, соединять и обеспечивать их безопасность. Начиная с релиза 12.5 облачные сервисы теперь можно настраивать декларативно при помощи проекта с открытым исходным кодом Crossplane, который наследует API Kubernetes для управления сервисами, например, PostgreSQL, MySQL, Redis и Storage Buckets.

Crossplane теперь доступен как GitLab Managed App. Вы можете установить его в любой кластер Kubernetes под управлением GitLab. Управляемые сервисы из GCP, AWS и Azure могут быть настроены и безопасно поглощены при помощи kubectl в стандартных конвейерах (в русской локализации GitLab «сборочные линии») GitLab или с помощью Auto DevOps.

Использование Crossplane вместе с Auto DevOps даст пользователям возможность управлять базами данных кластера, предоставляя готовое к выпуску решение. Огромное спасибо команде Upbound за эту огромную работу!

Crossplane support in GitLab Managed Apps

Документация по работе с Crossplane и оригинальный тикет.

Code intelligence с помощью Sourcegraph

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

Разработчики часто используют переходы к определениям переменных и функций и просматривают связи при написании ПО, но при ревью кода это обычно недоступно. Теперь при просмотре кода или ревью мерж-реквеста стала доступна мощная навигация по коду от Sourcegraph.

В релизе GitLab 12.5, как только администратор инстанса настроит интеграцию Sourcegraph, вы сможете в своих настройках согласиться на его использование. На GitLab.com мы постепенно добавляем Sourcegraph для публичных проектов. Вы можете попробовать его прямо сейчас в этом проекте GitLab, включив Sourcegraph в ваших пользовательских настройках.

Спасибо Sourcegraph за то, что сделали эту интеграцию! Узнайте о ней больше.

Документация по Sourcegraph и оригинальный тикет.

Панель окружений

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Release”

Окружения в GitLab — логическая структура, которая дает вам контроль над состоянием физических окружений, в которых разворачивается ваш код. Это одна из тех фич, что делают GitLab по-настоящему CD-решением, а не просто удобным CI-инструментом для управления развертыванием. Однако, когда окружений становится много, с ними становится непросто управляться. Раньше отслеживать состояние нескольких окружений разных проектов было затруднительно, так как приходилось перемещаться к каждому проекту, чтобы просмотреть его встроенные окружения.

Новая панель окружений предоставляет данные по всем окружениям среди ваших проектов, позволяя вам видеть всю картину происходящего в каждом окружении. Теперь вы сможете отслеживать как изменения переходят из разработки в staging, и затем в продакшн, или через любые другие ваши окружения, из одного места. С новым удобным просмотром окружений всех проектов вы сможете сразу увидеть, какие конвейеры завершились успешно, а какие нет, понять, в каком месте возник блок, и есть ли более системные проблемы, требующие расследования. Панель окружений поможет вам эффективнее решать эти задачи.

Environments Dashboard

Документация по панели окружений и оригинальный тикет.

Ассоциирование майлстоунов с релизом

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Release”

Многие команды, в том числе и наша, создают для каждого релиза майлстоун (в русской локализации GitLab «этап»), к которому все привязывается, а у некоторых команд в релиз может входить и более одного спринта. Теперь вы можете ассоциировать один или несколько майлстоунов с релизом, и страница релиза будет наполнена всеми тикетами и мерж-реквестами, которые вошли в релиз.

Associate milestones with a release

Документация по релизам и майлстоунам и оригинальный тикет.

Другие улучшения в GitLab 12.5

API аудита событий для групп

(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Manage”

API аудита событий дает представление о состоянии вашего окружения GitLab. Ранее только администраторы могли использовать этот API для просмотра событий инстанса. Так как пользователи GitLab.com не имеют такого доступа, было необходимо расширить эту функциональность до владельцев групп.

Так что мы открыли доступ к данным о событиях группы через GitLab API, чтобы помочь вам доносить ваши решения и управлять соответствием требованиям в ваших группах. Мы планируем сделать аудит событий более развернутым, и API тоже будет предоставлять больше полезной информации.

Документация по API аудита событий для групп и оригинальный тикет.

Эпики теперь могут наследовать даты начала и завершения от своих вложенных эпиков

(ULTIMATE, GOLD) Стадия цикла DevOps: “Plan”

В этом релизе мы сделали проще работу с информацией о сроках ваших эпиков (в русской локализации GitLab «цели»). Теперь эпики могут наследовать даты начала и конца майлстоунов не только от привязанных задач, но и от привязанных вложенных эпиков. Больше не придется гадать, в какие сроки должны быть завершены привязанные эпики и задачи.

Документация по датам начала и завершения в эпиках и оригинальный тикет.

Улучшенная навигация на страницах группы, подгруппы и проекта

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Plan”

Если у вас сложная структура из групп, подгрупп и проектов, может быть затруднительно понять, где именно вы сейчас находитесь в иерархии. Теперь благодаря обновленному виду левой навигационной панели вы сможете быстро понять, в каком контексте вы работаете.

Документация по созданию проектов и оригинальный тикет.

Аннотации к дизайну отображаются в активности по тикету

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Create”

Ранее при добавлении новой аннотации или комментария к дизайну, это отображалось только в самом дизайне. Теперь же при добавлении новых аннотаций GitLab также добавит упоминание об этом на вкладке Обсуждение (Discussion), чтобы об этом узнали все, кто имеет отношение к задаче. Таким образом, будет проще работать над дизайнами совместно и каждый сможет внести свой вклад.

Документация по аннотациям к дизайнам и оригинальный тикет.

Кэширование Git info/refs (бета-версия)

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

При получении изменений в git-репозитории сервер Git объявляет список всех ветвей и тегов репозитория. В некоторых инстансах 75% всех запросов к веб-серверу были именно запросами на ссылки (refs). В лучшем случае, когда все ссылки упакованы (packed), это относительно недорогая операция, но если есть и не запакованные (unpacked) ссылки, Git должен будет их обойти. А это уже может привести к тратам из-за дополнительных операций на диске, особенно при использовании хранилища с большими задержками, например, NFS.

Начиная с релиза 12.5 администраторы инстанса могут включить бета-версию кэша info/refs для повышения производительности объявления ссылок и снижения нагрузки на Gitaly при частых запросах объявлений.

Тестируя эту фичу на GitLab.com, мы уже обнаружили, что операции на чтение превышают по численности операции на запись в 10 раз, и видимая средняя задержка снизилась на 70%. Мы ожидаем даже лучших результатов для инстансов GitLab с NFS в качестве хранилища для Git.

По умолчанию кэш пока не включен, так как мы исследуем более высокий, чем ожидалось, спрос на запись в кэш, вероятно вызванный параллельными промахами. Следите за обновлениями в задаче gitaly#2124.

Caching of Git info/refs (Beta)

Документация по кэшу и оригинальный тикет.

Статус «можно мержить» добавлен к API мерж-реквестов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

API мерж-реквестов теперь включает больше деталей о том, почему мерж-реквест не может быть принят. Атрибут has_conflicts показывает, были ли конфликты слияния, а атрибут blocking_discussions_resolved показывает, были ли неразрешенные дискуссии. Эти новые атрибуты особенно полезны для автоматизации, так как они показывают, какие действия необходимы для того, чтобы разрешить конфликты.

Спасибо Brian Kabiro за эту фичу!

Документация по получению информации о мерж-реквесте и оригинальный тикет.

Передача значений на страницу pipelines/new через строку запроса

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

Для создания нового конвейера через сайт GitLab перейдите на страницу /pipelines/new и заполните нужные значения для старта конвейера. Ранее уже было возможно добавлять параметр ref для выбора ветки или тега (например, /pipelines/new?ref=master). Теперь мы добавили возможность аналогично задавать и другие значения через строку запроса.

Документация по использованию строки запроса и оригинальный тикет.

Пользовательские алиасы скриптов в gitlab-ci.yml

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

Создание небольших «строительных блоков», которые можно использовать многократно — мощный инструмент при проектировании конвейеров. Это позволит вам избегать повторений, разделять функции на отдельные понятные блоки и создавать цепочки зависимостей, в которых обновление блока кода одновременно происходит и для всех зависимых блоков.

В GitLab есть несколько механизмов, позволяющих применять этот паттерн при проектировании, включая элементы синтаксиса YAML по умолчанию, такие как якори и алиасы. Однако, при попытке использовать массив алиасов с ключевыми словами script, before_script или after_script происходит создание вложенного массива во время слияния, что не сработает.

В GitLab 12.5 массивы скриптов работают корректно при обращении через якори. Использовать их с include и extends все еще не получится, но вы можете использовать якори внутри отдельного файла, чтобы получить доступ к массиву новых паттернов проектирования.

Документация по якорям для скриптов и оригинальный тикет.

Отображение деталей по ошибкам JUnit в мерж-реквесте

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

До этого релиза пользователь получал информацию о том, когда тесты оказывались не пройденными, но без данных, необходимых для разрешения проблемы и быстрого создания удачной сборки. Начиная с этого релиза GitLab будет отображать на конвейере данные о результатах прохождения теста JUnit.

Сюда включаются результаты пройденных, пропущенных и непройденных тестов, а также тайминг и детальный обзор отдельных тестов, включая список тех, что не прошли, для более быстрого определения и решения проблем.

Display JUnit error details in merge request

Документация по результатам Junit-тестов и оригинальный тикет.

Контекстная документация для помощи пользователям при скачивании пакетов NPM

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Package”

Из недавнего опроса пользователей мы узнали, что основная причина, по которой пользователи переходят к UI реестра пакетов, это необходимость убедиться, что они используют корректную версию пакета. Один из способов, которым мы можем помочь с этим, это предоставление удобных для копирования фрагментов кода для скачивания и установки отдельных пакетов.

В GitLab 12.5 мы рады представить первую итерацию по улучшению навигации и рабочих процессов в реестре пакетов GitLab. Теперь пользователи смогут легко копировать код для выполнения npm install и npm setup, чтобы быстрее устанавливать нужные им пакеты.

Contextual documentation to help users download NPM packages

Документация по реестру NPM и оригинальный тикет.

Общедоступный API для переключаемых фич

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Release”

Мы добавили функциональность API, которая позволит настраивать переключаемые фичи и управлять ими. Ранее это было можно делать только через UI.

Документация по API для фич и оригинальный тикет.

Управление кластерами на основе CI

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

Возможность устанавливать приложения Kubernetes одним кликом полезна для быстрого запуска и начала работы. Однако, иногда бывает необходимо настраивать Helm chart перед установкой. Новый подход к управлению кластерами на основе CI позволит пользователям создавать «проекты по управлению кластерами», которые получат привилегии cluster-admin по отношению к кластеру и смогут взаимодействовать с кластером через CI. Это не только позволит выполнять установку шаблонных приложений, но также даст пользователям возможность настраивать чарты перед установкой. Более того, пользователи смогут использовать все существующие фичи GitLab, связанные с безопасностью, аутентификацией, управлением версиями и CI при управлении приложениями Kubernetes. В дальнейшем мы собираемся совместить установки в один клик с установками приложений, основанными на CI.

CI-based cluster application management

Документация по управлению через кластеры и оригинальный тикет.

Поддержка сред выполнения OpenFaas в GitLab Serverless

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

GitLab Serverless теперь поддерживает классические среды выполнения OpenFaaS. С их помощью разработчики могут писать бессерверные функции для Knative на одном из шести поддерживаемых языков.

Документация по поддерживаемым средам выполнения и оригинальный тикет.

Автоматическое закрытие тикетов GitLab при получении сигналов о восстановлении от Prometheus

(ULTIMATE, GOLD) Стадия цикла DevOps: “Monitor”

Инциденты в GitLab разрешаются одним из двух способов:

После устранения неполадок тикет по инциденту должен быть закрыт, чтобы не возникало путаницы по поводу того, какие инциденты являются активными и какие требуют устранения последствий. Когда инцидент разрешается в результате решения возникшей проблемы, Prometheus генерирует сигнал о восстановлении системы, давая GitLab возможность автоматически закрыть тикет, связанный с инцидентом.

Это избавит специалистов по разрешению инцидентов от лишней ручной работы, а также гарантирует, что каждый открытый тикет является актуальной проблемой, которая требует решения.

Документация по действиям при инцидентах и оригинальный тикет.

Фильтрация списка ошибок Sentry по заголовку в GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”

Для сортировки ошибок требуется возможность фильтровать и сортировать список ошибок на основе пользовательского критерия, который подходит для данного конкретного случая. Теперь вы можете производить поиск по списку ошибок Sentry в рамках проекта GitLab через интеграцию с Sentry. Просто перейдите на Операции > Отслеживание ошибок (Operations > Error Tracking) на панели слева для поиска и просмотра ошибок Sentry.

Документация по списку ошибок и оригинальный тикет.

Команды Slack для добавления комментариев к тикету

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”

ChatOps позволяет запускать операции через интуитивно понятные команды и действия, которые можно вводить прямо в чате. Мы расширили уже существующий набор команд Slack, добавив команду, которая позволяет добавлять комментарий к тикету GitLab, не покидая Slack. Это позволит не отвлекаться от работы и не переключаться между несколькими интерфейсами просто чтобы передать члену команды или заказчику новую информацию по тикету.

Документация по командам и оригинальный тикет.

Редактирование панели метрик

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”

Ранее для создания своего варианта панели управления пользователям приходилось создавать файл YAML в корневой директории репозитория и полностью его заполнять. Это было довольно сложно и требовало выполнения вручную множества действий.

Теперь, в GitLab 12.5, делать это стало гораздо проще. Кликнув на кнопку “Edit dashboard”, вы перейдете на страницу с IDE, где вы сможете обновить уже созданный YAML-файл.

Edit Metrics Dashboard

Документация по просмотру и редактированию исходного файла панели, оригинальные тикет и эпик.

SAST для фреймворка React

(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”

В этом релизе мы добавили возможность проводить сканирования SAST для файлов и проектов, созданных на основе фреймворка Javascript React. Это поможет вам находить и исправлять потенциальные уязвимости в ваших приложениях на React.

SAST for React Framework

Документация по SAST и оригинальный тикет.

Блокирующий режим фаервола веб-приложений

(ULTIMATE, GOLD) Стадия цикла DevOps: “Defend”

Фаервол веб-приложений теперь можно устанавливать в блокирующий режим. Это означает, что при обнаружении потенциально опасного трафика фаервол сможет остановить его до того, как он попадет в ваше приложение, защищая его от множества различных атак.

Этот режим можно включить через переменную окружения AUTO_DEVOPS_MODSECURITY_SEC_RULE_ENGINE в вашем проекте. Если эта переменная не определена, то файервол будет работать только в режиме ведения лога.

Документация по фаерволу веб-приложений и оригинальный тикет.

Улучшения для обновлений Geo

(PREMIUM, ULTIMATE) “Enablement”

В рамках нашей работы по упрощению процесса обновления Geo мы исправили несколько мелких проблем, возникающих при обновлении таблиц Foreign Data Wrapper (FDW) в ходе обновления Geo, а также обновили соответствующую документацию. Это означает, что системным администраторам придется выполнять меньше работы вручную, а это должно положительно сказаться на скорости и надежности обновлений Geo.

Документация по исправлению ошибок при работе с внешними данными и оригинальный эпик.

Обновление стилей баннеров аварийных сообщений

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) “Enablement”

Основываясь на новых спецификациях нашей системы дизайна Pajamas мы обновили аварийные сообщения в приложении. Новые стили делают текст баннеров более читаемым, особенно если они содержат ссылки.

Updates to alert banner styles

Документация по аварийным сообщениям и оригинальный тикет.

Дополнительный счетчик сервисов проекта в статистике использования

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) “Enablement”

Чтобы лучше понимать, какие интеграции наиболее популярны среди наших пользователей, мы добавили к данным по статистике использования счетчик числа проектов, использующих сервисы Custom Issue Tracker, Jira, Jenkins, Slack и Mattermost. Мы продолжим работать над этим в следующих релизах, добавляя другие сервисы для работы с проектами.

Вы можете узнать больше о том, какие данные мы собираем и как они используются, в документации по статистике использования.

Документация по статистике использования и оригинальный тикет.

Улучшение чартов GitLab

(CORE, STARTER, PREMIUM, ULTIMATE)

В GitLab 12.5 мы добавили поддержку для настройки внешних серверов Redis Sentinel через Helm chart. Теперь вы можете передавать список хостов, портов и паролей для серверов Sentinel через высокодоступный кластер Redis в качестве глобальных настроек. Обратите внимание, что эта возможность поддерживается только для серверов Sentinel, развернутых отдельно от чартов GitLab.

Документация по чартам GitLab.

Поиск и автозаполнение при добавлении к эпику тикетов и вложенных эпиков

(ULTIMATE, GOLD) Стадия цикла DevOps: “Plan”

При добавлении тикетов или вложенных эпиков к эпику более высокого уровня вы сможете воспользоваться поиском и автозаполнением для того, чтобы находить тикеты или вложенные эпики, вместо того, чтобы копировать и вставлять нужную ссылку.

Документация по эпикам и оригинальный тикет.

Просмотр дерева эпиков со страницы эпика

(ULTIMATE, GOLD) Стадия цикла DevOps: “Plan”

При планировании дальнейшей работы и для понимания текущего прогресса на пути к вашим целям важно иметь возможность легко просматривать и упорядочивать работу, которую включает в себя эпик. В GitLab теперь можно просматривать полное дерево эпиков и тикетов со страницы эпика. Теперь вы можете легко задавать приоритеты и упорядочивать свои вложенные эпики и тикеты на дереве эпиков при помощи перетаскивания мышью.

View epic tree from within an epic

Документация по упорядочиванию тикетов и вложенных эпиков и оригинальный тикет.

Соответствие майлстоуна группы майлстоуну проекта

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Plan”

До релиза 12.5 при повышении майлстоуна проекта до уровня группы терялось много важных метаданных, которые предоставлял майлстоун проекта. Майлстоуны группы теперь соответствуют проектным и содержат обзор тикетов, мерж-реквестов, участников и меток, связанных с майлстоуном.

Документация по майлстоунам и оригинальный тикет.

Цветовые плашки в AsciiDoc

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

Файлы AsciiDoc теперь поддерживают цветовые плашки. Везде, где поддерживается AsciiDoc, например в вики, фрагментах и предварительном просмотре файлов репозитория, ввод цветового кода приведет к появлению рядом с ним наглядной цветовой плашки. Это особенно полезно, когда дизайнеры и инженеры сотрудничают над деталями цвета в GitLab.

Спасибо Guillaume Grossetie за этот вклад!

Color chips for AsciiDoc

Документация по поддержке цветов в разметке markdown и оригинальный тикет.

Удаление исходной ветки после мержа

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

Легко забыть удалить ветки уже смерженных мерж-реквестов, а это приводит к быстрому росту числа веток. В GitLab 12.5 ветки фич удаляются по умолчанию, чтобы не замусоривать ваш проект.

Мы добавили в настройки проекта новый переключатель, чтобы можно было отключить фичу Удалить исходную ветку (Delete source branch), если вы хотите удалять смерженные ветки сами.

Спасибо Zsolt Kovari за этот вклад.

Delete source branch once merged

Документация по удалению смерженных веток и оригинальный тикет.

Ускоренное выполнение rebase с использованием выборочного checkout’а

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”

Мерж перемоткой (fast-forward) и полулинейный мерж требуют, чтобы в целевой ветке не было изменений, не относящихся к исходной ветке. При наличии изменений в целевой ветке, которых не было в исходной, отображается кнопка Rebase, чтобы актуализировать мерж-реквест.

Когда Git выполняет rebase, для завершения операции используется рабочее дерево. В GitLab 12.5 при создании рабочего дерева используется выборочный checkout, что означает, что рабочее дерево, используемое для выполнения rebase, включает не всю рабочую копию репозитория, а только несколько файлов. Ранее проверка полного рабочего дерева занимала бы на порядок больше времени, чем выполнение rebase. На GitLab.com мы наблюдали сокращение медианного времени выполнения rebase на 80%.

Faster rebases using sparse checkout

Документация по мержу перемоткой и оригинальный тикет.

Логи заданий по умолчанию раскрыты

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

Разделы логов заданий теперь будут раскрыты по умолчанию, чтобы сделать просмотр журналов более удобным для навигации, что позволит быстрее находить нужную информацию про завершившиеся неуспешно задания.

Документация по конвейерам и логам заданий и оригинальный тикет.

Отображение результатов пользовательской сборки в виджете мерж-реквеста

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

Процесс сборки может генерировать артефакты, например результаты тестирования, метрики кода и статистику, которые пользователи хотят получать в визуальном представлении, но пока эти элементы не были доступны в мерж-реквесте. Ранее для получения доступа к артефактам сборки требовалось перейти в браузер артефактов, выходя из контекста мерж-реквеста.

С GitLab 12.5 мы добавили пользовательские артефакты в виджет мерж-реквеста в секции конвейера. Используя ключевое слово expose_as: в вашем gitlab-ci.yml, вы сможете просматривать артефакты прямо в этом виджете. Эта крайне востребованная и поддерживаемая фича долгое время находилась в бэклоге, поэтому мы очень рады представить ее первую итерацию.

Show custom build results in the merge request view

Документация по представлению артефактов и оригинальный тикет.

Хэш коммита теперь можно использовать как ключ кэша

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”

GitLab CI/CD позволяет указать список файлов и каталогов, которые должны кэшироваться между заданиями. Извлечение файлов из кэша вместо сборки их с нуля может значительно ускорить ваши конвейеры. Но кэширование может быть плохим: какой-то файл изменился, а в кэше это не отразилось, так что будет использоваться старая версия файла.

Теперь в GitLab 12.5 управление кэшированием стало намного проще благодаря новой возможности использовать SHA-хэш коммита в качестве ключа кэша. Поскольку хэш соответствует источнику, из которого был создан файл, это вполне естественный способ убедиться, что срок действия кэша соответствует фактическим изменениям. Это сделает кэширование в ваших конвейерах более простым в настройке и намного более эффективным.

Документация по кэшированию в конвейерах и оригинальный тикет.

Использование CI/CD для обновления реестра NPM в GitLab

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Package”

Мы рады сообщить, что в GitLab 12.5 пользователи смогут использовать GitLab CI/CD для создания и отправки пакетов в реестр NPM своего проекта или группы. Более того, пользователи также могут использовать токен задания CI_JOB_TOKEN из .gitlab-ci.yml для аутентификации и обновления своего реестра NPM.

Документация по реестру NPM и оригинальный тикет.

Улучшена доступность реестра контейнеров GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Package”

В GitLab 12.5 мы выпустили обновленную версию реестра контейнеров GitLab, которая значительно улучшила доступность этой функции. Проблема была связана с тем, что Docker Registry использовал версию SDK Google Cloud Storage, не поддерживавшую контрольные суммы MD5. Это привело к увеличению количества ошибок и появлению образов нулевого размера, загруженных в реестр.

Выпустив обновление для GitLab.com, мы сразу же увидели существенное улучшение доступности реестра контейнеров. Мы также предложили изменение для реестра Docker и надеемся, что его скоро примут.

Improved availability of the GitLab Container Registry

Документация по реестру контейнеров и оригинальный тикет.

Руководство по запуску демона GitLab Pages на отдельном сервере

(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: “Release”

Возможно, вы захотите запустить демон страниц GitLab на отдельном сервере, чтобы уменьшить нагрузку на ваш основной сервер приложений. Благодаря вкладу сообщества, а именно @kominoshja, мы подготовили руководство, которое поможет вам это сделать.

Документация по по запуску демона страниц GitLab на отдельном сервере и оригинальный тикет.

Локальная сборка бессерверных функций для тестирования

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

Для локального запуска тестов разработчики могут создавать свои бессерверные функции с помощью инструмента командной строки gitlabktl. В этом релизе gitlabktl был расширен для поддержки локальных сборок с использованием Kaniko или Docker Engine.

Документация по локальному запуску бессерверных функций и оригинальный тикет.

Новый шаблон проекта для разработчиков на JavaScript

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”

С нашим новым шаблоном проекта, ориентированным на JavaScript, вы сможете быстро создавать и публиковать свои проекты с помощью GitLab Pages и AWS Lambda. Начните разрабатывать фронтенд с помощью вашего любимого фреймворка, пусть Serverless и AWS Lambda позаботятся о бэкенде, и используйте GitLab Pages для размещения вашего решения с установкой за одну минуту.

Документация по созданию сайта из шаблона и оригинальный тикет.

Отображение диаграмм в тикетах с помощью Grafana

(ULTIMATE, GOLD) Стадия цикла DevOps: “Monitor”

Когда что-то идет не так, очень важно быстро и наглядно увидеть состояние метрик. По мере того, как ваша команда сортирует и решает проблемы, диаграммы метрик позволяют вам понять, какие части ваших сервисов/систем затронуты и как от этого страдают клиенты, а также передать эту информацию партнерам по команде и заинтересованным сторонам. Но ручной копипаст скриншотов из Grafana в тикет GitLab подвержен ошибкам и может замедлить вас, когда скорость имеет большое значение.

В GitLab 12.5 мы добавили возможность отображать метрики Grafana в тикетах с помощью диаграмм GitLab. Диаграмму можно добавить в тикет вручную или автоматически, добавив URL диаграммы Grafana в шаблон тикета. Больше не нужно копипастить скриншоты во время «тушения пожара», ведь есть простой обмен информацией через нашу интеграцию с Grafana.

Документация по включению диаграмм Grafana и оригинальный тикет.

Просмотр важных сведений об ошибках Sentry в GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”

Переключение контекста замедляет всех. Уникальные пользовательские интерфейсы и шаблоны взаимодействия различных инструментов делают ежедневные задачи сортировки громоздкими. Чтобы преодолеть эти трудности, мы добавили к нашей интеграции с Sentry возможность просматривать подробный обзор ошибок прямо из GitLab.

Теперь вы можете просматривать соответствующие аспекты ошибки, такие как обнаружена в первый/последний раз, количество событий, количество затронутых пользователей и трассировку стека прямо в GitLab — без необходимости переключаться на Sentry. Конечно, мы также даем ссылку на запись об ошибке в Sentry, если вам нужны подробности.

Документация по отслеживанию ошибок и оригинальный тикет.

Диаграммы аномалий для панели метрик

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”

Когда дело доходит до визуализации метрик, пользователям часто хочется выбирать разные типы визуализации для разных метрик и устанавливать верхнюю и нижнюю границы, чтобы лучше определять аномалии в диаграммах. Чтобы облегчить этот процесс, мы добавили диаграммы аномалий в панель мониторинга.

Anomaly charts for Metrics Dashboard

Документация по диаграммам аномалий и оригинальный тикет.

Сканирование контейнеров оффлайн

(ULTIMATE) Стадия цикла DevOps: “Secure”

Те, кто работает с пользовательскими инстансами, теперь могут включить сканирование контейнера в автономных (без доступа к сети) установках. Это позволяет выполнять сканирование контейнера без необходимости доступа к сети.

Документация по сканированию контейнеров и оригинальный тикет.

Docker-in-Docker больше не является обязательным требованием для сканирования зависимостей

(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”

Ранее в нашем сканировании зависимостей использовалась конфигурация Docker-in-Docker. Без этого требования вы избавляетесь от необходимости использовать привилегированные обработчики заданий, и теперь обработчики могут кэшировать образы. Устранение необходимости в привилегированных обработчиках упрощает безопасное использование сканирования зависимостей.

Документация по сканированию зависимостей и оригинальный тикет.

Инструкции по обновлению развертывания multi-node/HA с помощью Geo

(PREMIUM, ULTIMATE) “Enablement”

В рамках нашей работы по упрощению процесса обновления Geo мы добавили инструкции для обновления multi-node/high-availability развертываний с помощью Geo с нулевым временем простоя.

Эти инструкции особенно полезны для клиентов GitLab, поддерживающих более крупные установки GitLab с большим количеством пользователей, поскольку они позволяют обойтись без дополнительных простоев.

Документация по развертыванию с Geo и оригинальный тикет.

Проверка нод Geo отображает только нужные выходные данные ноды

(PREMIUM, ULTIMATE) “Enablement”

Ранее при запуске gitlab-rake gitlab:geo:check на первичной ноде Geo мы отображали много информации, которая была актуальна только для вторичных нод. Хватит! В GitLab 12.5 мы навели порядок в выводе gitlab:geo:check и выполняем только те проверки, которые относятся к типу ноды (первичная или вторичная), на которой выполняется команда.

Документация по проверке нод и оригинальный тикет.

Поддержка Geo в нативных облачных установках

(PREMIUM, ULTIMATE) “Enablement”

В зависимости от физического расстояния до разработчика время выполнения git clone для больших репозиториев может меняться от нескольких секунд до необходимости сходить выпить кофе, ожидая продолжения работы вашей командной строки. GitLab Geo обеспечивает географическую репликацию ваших репозиториев git, чтобы разработчики могли эффективно сотрудничать по всему городу или даже миру. Ранее Geo был доступен только для Omnibus GitLab, а тем, кто использует Kubernetes, оставалось только пить много кофе. Таким образом, поддержка Geo для GitLab Chart была очень востребованной функцией.

Сегодня мы рады сообщить, что начиная с 12.5 GitLab Helm chart поддерживает настройку первичных и вторичных инстансов Geo!

Документация по диаграммам Geo и оригинальный тикет.


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 12.5 with EKS Cluster Creation & Environments Dashboard.

Над переводом с английского работали @cattidourden, @maryartkey, @ainoneko и @rishavant.