Вышел GitLab 11.10: конвейеры на панели операторов и запуск конвейеров перед мерж-реквестами
GitLab продолжает добавлять фичи, улучшающие ясность работы цикла DevOps. В этом релизе мы обновили Панель управления для операторов, добавив к ней обзор состояния ваших конвейеров (в русской локализации GitLab «сборочные линии»).
Это пригодится и для обычных конвейеров для проектов, и если вы используете межпроектные конвейеры — например, если вы создаете микросервисную архитектуру и вам нужно запускать конвейер для тестирования и разворачивания кода, размещённого в разных репозиториях. Теперь вы сможете узнать о состоянии ваших конвейеров на панели управления операторов, вне зависимости от того, где они запущены.
Возможна ситуация, когда ваши исходная и целевая ветки со временем сильно разошлись, и по отдельности их конвейеры завершаются успешно, а вот совместный — нет. Теперь вы можете запустить конвейер по результатам мерж-реквеста (в русской локализации GitLab «запрос на слияние») до его выполнения. Это поможет вам раньше обнаруживать ошибки, которые появляются только если вы часто делали rebase, быстрее исправлять сбои конвейера и эффективнее использовать обработчики заданий GitLab Runners.
С релизом GitLab 11.10 мы еще больше упрощаем совместную работу над проектами и рабочие процессы для разработчиков. В релизе 11.6 (оригинальная статья, перевод) мы ввели предложения для мерж-реквестов: возможность предложить в комментарии к мерж-реквесту однострочное изменение, которое можно легко принять. Наши пользователи оценили это нововведение и попросили еще. Так что теперь вы можете добавлять многострочные изменения и указывать, какие конкретно строчки надо удалить и что нужно добавить. Спасибо вам за предложения по улучшению!
В этом релизе мы выпускаем много интересного, например, метки, задающие контекст, более тщательная очистка реестра контейнеров, настраиваемые Auto DevOps, а также возможность заказать дополнительные минуты для обработчиков заданий CI. Читайте дальше и вы узнаете все об этих фичах.
В этом месяце MVP становится Takuya Noguchi. Takuya внес большой вклад в этот релиз, в том числе чинил баги, внес улучшения в бэкэнд и во фронтэнд, а также в интерфейс. Спасибо, Takuya!
(PREMIUM, ULTIMATE, SILVER, GOLD)
Панель управления для операторов в GitLab — удобная фича, предоставляющая пользователям обзор информации по проектам по всему инстансу GitLab. Вы добавляете проекты по отдельности, так что панель показывает только то, что вам интересно.
С этим релизом мы добавили информацию о состоянии конвейеров на эту панель. Так вы сможете следить за состоянием конвейеров всех проектов, которые вам важны, в одном месте.
Документация по панели управления операторов и оригинальный тикет.
(PREMIUM, ULTIMATE, SILVER, GOLD)
Со временем выделенная ветка для фичи и целевая ветка могут сильно разойтись, если вы не часто выполняете rebase. Это может привести к ситуации, когда конвейеры целевой и выделенной веток сами по себе завершаются успешно, и при мерже конфликтов не возникает, а вот объединенный результат не соберется из-за несовместимости изменений.
Теперь вы заранее сможете убедиться, к чему приведет мерж, так как GitLab создаст для конвейера мерж-реквеста новую ссылку (ref), содержащую результат мержа целевой и выделенной ветки и запустит конвейер с этим результатом.
Обратите внимание, что если вы используете конвейеры для мерж-реквестов вместе с приватными обработчиками заданий GitLab версии 11.8 или старше, вам нужно обновить их, чтобы избежать проблемы, описанной в тикете gitlab-ee#11122. Пользователи общих (shared) обработчиков заданий GitLab не затронуты этой проблемой.
Документация по запуску конвейеров до мержа и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Совместная работа над мерж-реквестами часто включает раннее обнаружение проблем и предложение решений. В релизе GitLab 11.6 мы представили возможность предлагать изменения (оригинальная статья, перевод) к конкретной строке кода.
С релизом 11.10 при комментировании диффа мерж-реквеста изменения можно предложить к нескольким строчкам кода, и эти изменения могут быть приняты одним щелчком мыши любым пользователем, который имеет права на запись в эту ветку. Теперь не придется так много копировать и вставлять.
Документация по многострочным предложениям изменений и оригинальный тикет.
(PREMIUM, ULTIMATE, SILVER, GOLD)
Метки, задающие контекст, дают возможность использовать в задачах, мерж-реквестах или эпиках (в русской локализации GitLab «цели») метки, исключающие другие того же типа, что решает проблемы со специальными полями или нужными состояниями рабочего процесса. Такие метки создаются с двумя двоеточиями в названии.
Допустим, вам нужно специальное поле в задачах для указания платформы, на которую нацелена эта фича, и каждая задача может быть только для одной платформы. Пусть у вас будут метки platform::iOS
, platform::Android
, platform::Linux
и другие, которые необходимы. Добавление к задаче одной из таких меток автоматически удалит с нее все остальные метки, начинающиеся с platform::
.
Или представим, что у вас есть метки workflow::development
, workflow::review
и workflow::deployed
для представления этапов рабочего процесса в вашей команде. Если у задачи уже стоит метка workflow::development
и разработчик хочет продвинуть задачу в workflow::review
, он может просто добавить новую метку, а старая будет удалена автоматически. Такое поведение уже существует при переносе задач между списками меток на доске задач (в русской локализации GitLab «доска обсуждений»), представляющей ваш рабочий процесс, а теперь такие изменения смогут вносить те пользователи, которые не работают с доской задач напрямую — через метки задачи.
Документация по меткам с контекстом и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Обычно при использовании реестра контейнеров с конвейерами CI в реестре в конечном итоге оказывается много последовательных версий по одному тегу. Из-за того, как устроен Docker Distribution, по умолчанию в системе сохраняются все версии, и в итоге на это тратится много места. Теперь администратору достаточно указать параметр -m
при запуске registry-garbage-collect
и ненужные ревизии будут удалены, а столь ценное свободное место освободится.
Документация по очистке реестра контейнеров и оригинальный тикет.
(BRONZE, SILVER, GOLD)
Пользователи платных планов GitLab.com (Gold, Silver, Bronze) теперь могут заказать дополнительные минуты обработчиков заданий CI. Ранее пользователи были ограничены квотой минут, включенной в их план, теперь же они могут заказать минуты в дополнение к их бесплатным, что снизит вероятность прерывания рабочего процесса из-за остановки конвейеров.
Текущая цена — 8 долларов за 1000 минут, и нет никаких ограничений по приобретению дополнительных минут. Они начнут использоваться, только когда ваша месячная квота израсходуется, а по итогам месяца дополнительные минуты перейдут на следующий период. В следующем релизе мы также планируем добавить дополнительные платные минуты в бесплатный план.
Документация по минутам CI и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Auto DevOps позволяет командам разработчиков использовать современные практики DevOps, затрачивая при этом минимум усилий. Начиная с GitLab 11.10 каждое задание Auto DevOps становится доступным в виде независимого шаблона. Используя includes
из GitLab CI, пользователи могут включать только определенные стадии Auto DevOps, продолжая при этом использовать их собственный настроенный gitlab-ci.yml
. Это позволит командам включать только желаемые задания, пользуясь при этом всеми преимуществами обновлений.
Документация по Auto DevOps и оригинальный тикет.
(SILVER, GOLD)
До сих пор управлять участниками групп на GitLab.com приходилось вручную. Теперь вы можете использовать SAML SSO и управлять составом групп при помощи SCIM, что позволит вашей организации создавать, удалять и обновлять пользователей на GitLab.com.
Это будет особенно полезно для организаций, которым приходится управлять большим числом пользователей при помощи централизованных поставщиков учетных записей. Теперь вы сможете использовать провайдер вроде Azure Active Directory в качестве единственного источника и быть уверены в том, что вашим пользователям будут автоматически предоставляться учетные записи на основе данных вашего поставщика учетных записей. Вам больше не придется делать это вручную.
Документация по SCIM и оригинальный эпик.
(SILVER, GOLD)
Ранее SSO для групп, основанные на SAML, требовали, чтобы пользователь вводил и данные пользователя GitLab, и данные провайдера учетных записей. Теперь пользователь сможет входить на GitLab при помощи SSO, а его аккаунт GitLab будет привязан к настраиваемой группе.
Это избавит вас от необходимости вводить данные дважды. Теперь организациям будет удобнее пользоваться SAML SSO на GitLab.com.
Документация по SAML SSO и оригинальный тикет.
(ULTIMATE, GOLD)
В предыдущем релизе мы добавили фичу «вложенные эпики», которая позволяет создавать эпики для эпиков. Это помогает командам управлять распределением работы. Вложенные эпики отображаются на странице родительского эпика.
Начиная с этого релиза вы сможете видеть дорожную карту (в русской локализации GitLab «план развития») вложенных эпиков на самой странице родительских эпиков. Теперь команды будут видеть временную шкалу этих вложенных эпиков, что поможет вам управлять временными зависимостями.
Документация по дорожным картам эпиков и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В этом релизе мы улучшили всплывающие панели при наведении на ссылку мерж-реквеста. Ранее при наведении отображался только заголовок мерж-реквеста. Теперь при наведении на ссылку вы увидите статус мерж-реквеста, статус графика задани й CI, заголовок и короткий URL.
В следующих релизах мы планируем добавить больше важной информации, например разработчики и майлстоуны (в русской локализации GitLab «этапы») и добавить всплывающие панели для тикетов.
Документация по мерж-реквестам и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Модели рабочих процессов Git для выпуска или развертывания ПО часто включают множество долгосрочных веток, либо для внесения поправок в предыдущие версии (например, stable-11-9
), либо для проведения QA (например, integration
), но иногда находить мерж-реквесты, которые относятся к этим веткам может быть сложно из-за большого числа открытых мерж-реквестов.
Списки мерж-реквестов для проектов и групп теперь можно фильтровать по целевой ветке, что упрощает поиск мерж-реквеста, нужного вам.
Спасибо Hiroyuki Sato за эту фичу!
Документация по поиску тикетов и мерж-реквестов и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Принцип разработки на основе главной ветки гласит, что долгосрочных веток стоит избегать в пользу небольших, недолговременных веток с единственным владельцем. При небольших изменениях часто производится пуш напрямую в целевую ветку, однако при этом есть риск сломать всю сборку.
В этом релизе GitLab начинает поддерживать новые опции для пуша, которые позволяют автоматически открыть мерж-реквест, задать целевую ветку и включить запуск мержа по завершению конвейера через командную строку в момент пуша в свою ветку.
Документация по опциям пуша в Git и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Wiki проектов позволяет командам удобно делиться документацией и другой важной информацией наряду с исходным кодом и тикетами. Начиная с этого релиза список страниц в Wiki можно сортировать по дате создания и заголовку, что позволяет пользователям быстро находить недавно созданный контент.
Документация по Wiki проектов и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab может иметь доступ к нескольким серверам Prometheus (в окружении, в проектах и скоро на уровне групп), однако работать с несколькими конечными точками может быть сложно и они могут не поддерживаться популярными аналитическими панелями. Начиная с этого релиза пользователи смогут взаимодействовать с ними при помощи одного интерфейса API Prometheus, что упрощает интеграцию с сервисами наподобие Grafana.
Документация по Prometheus и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE)
Очень важно следить за тем, чтобы ваш инстанс GitLab оставался в хорошем состоянии. Ранее мы добавили аналитические панели по умолчанию, которые можно просматривать в инстансе Grafana. С этого релиза мы добавляем также дополнительные панели для мониторинга балансировок нагрузки (load balancers) NGINX.
Документация по панелям Grafana и оригинальный тикет.
(ULTIMATE, GOLD)
GitLab может следить за кластером Kubernetes, который вы используете для staging и production приложений. Начиная с этого релиза вы можете следить также за запрашиваемыми ресурсами ЦПУ и памяти, что позволит вам обнаруживать потенциальные коллизии ваших приложения до того, как они случатся.
Документация по мониторингу ресурсов кластеров Kubernetes и оригинальный тикет.
(PREMIUM, ULTIMATE, SILVER, GOLD)
GitLab позволяет вам создавать графики для визуализации наблюдаемых метрик. Зачастую, например, когда вам нужно посмотреть максимальное и среднее значение метрики, важно иметь возможность выводить несколько значений на одном графике. С этого релиза у вас появится такая возможность.
Документация по добавлению дополнительных метрик и оригинальный тикет.
(ULTIMATE, GOLD)
Мы продолжаем добавлять поддержку большего числа языков и глубины при сканировании уязвимостей. В этом релизе мы добавляем сканирование уязвимостей для проектов, созданных при помощи Elixir, теперь включающее и проекты, созданные при помощи фреймворка Phoenix.
Документация по поддерживаемым языкам и фреймворкам и оригинальный тикет.
(ULTIMATE, GOLD)
Теперь отчет по сканированию контейнера (Container Scanning) содержит больше метаданных. К уже существующим метаданным — priority, identifier (со ссылкой на mitre.org) и affected layer (например, “debian:8”) — добавляется поле impacted component (фича Clair).
Документация по сканированию контейнеров и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Начиная с этого релиза результаты динамического сканирования приложений на безопасность (DAST) будут выводиться на панели безопасности группы наряду с SAST, сканированием контейнера и сканированием зависимостей (Dependency Scanning).
Документация по панели безопасности группы и оригинальный тикет.
(ULTIMATE, GOLD)
С этого релиза сканирование зависимостей GitLab может работать с многомодульными проектами Maven. Ранее, если у подмодуля была зависимость от другого подмодуля, принадлежащего тому же модулю верхнего уровня, он не мог разрешить загрузку из центрального репозитория Maven. Теперь новый многомодульный проект Maven создается с двумя модулями и с зависимостью между ними. Зависимость «подмодуля-брата» теперь доступна в локальном репозитории Maven, что позволяет продолжить сборку.
Документация по сканированию зависимостей и оригинальный тикет.
(PREMIUM, ULTIMATE, SILVER, GOLD)
GitLab уже предоставляет несколько типов отчетов для включения непосредственно в мерж-реквест: от качества кода и юнит-тестов на этапе «Verify» до SAST и DAST на этапе «Secure».
Хотя эти конкретные типы отчетов очень важны, также имеет смысл предоставить примитив, который может пригодиться во многих различных вариантах использования. В GitLab 11.10 мы добавляем отчеты о метриках непосредственно в мерж-реквест; потребуется простая пара вида «ключ/значение». Это позволит пользователям отслеживать различные изменения, в том числе изменения в пользовательских метриках: как во времени, так и вызванные этим мерж-реквестом. Такие частые задачи, как отслеживание использования памяти, специализированное нагрузочное тестирование и другие параметры «здоровья» кода, могут быть преобразованы в простые метрики, которые затем будут представлены непосредственно в мерж-реквесте, наряду с другими встроенными отчетами.
Документация по отчетам по метрикам и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
По умолчанию обработчик заданий GitLab клонирует проект в уникальный вложенный путь $CI_BUILDS_DIR
. Однако для некоторых проектов, таких, как проекты Golang, может потребоваться склонировать код в определенный каталог для сборки.
В GitLab 11.10 мы добавили переменную GIT_CLONE_PATH
, которая позволяет пользователям указывать конкретный путь, в который обработчик заданий GitLab будет клонировать код перед запуском задания.
Документация по пользовательским директориям сборки и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
GitLab предоставляет несколько способов защиты и ограничения области видимости переменных в GitLab CI/CD. Однако все еще существуют способы утечки переменных в логи сборки, намеренные или нет.
GitLab относится к управлению рисками и аудиту серьезно, и продолжает добавлять функции, помогающие в этом. В GitLab 11.10 мы добавили возможность маскировать определенные типы переменных, если они найдены в журналах трассировки заданий, повышая уровень защиты от случайной утечки содержимого этих переменных в логи. Кроме того, GitLab теперь будет автоматически маскировать многие из встроенных переменных-токенов.
Документация по скрытию переменных и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Подключение Auto DevOps для вашего проекта на GitLab.com предоставляет простой способ начать работу с современными рабочими процессами DevOps, от сборки до развертывания.
В релизе GitLab 11.10 мы добавили возможность включать/отключать Auto DevOps для всех проектов, входящих в данную группу.
Документация по настройке Auto DevOps на уровне группы и оригинальный тикет.
(STARTER, PREMIUM, ULTIMATE)
Чтобы улучшить пользовательский интерфейс и упростить работу с лицензионными ключами, мы переработали страницу лицензии в панели администратора и выделили наиболее важные элементы страницы.
Документация по лицензиям на панели администратора и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Доски развертывания обеспечивают простой способ получить представление о ваших развертываниях Kubernetes.
В этом релизе мы обновляем способ сопоставления меток развертываниям: теперь доски развертывания будут определяться по app.example.com/app
и app.example.com/env
или app
. Это позволит нам предотвратить как конфликты при фильтрации, так и риск неправильного развертывания, связанного с проектом.
Кроме того, начиная с GitLab 12.0, мы перестанем использовать метку ‘app’ для селектора развертывания Kubernetes, будут использоваться только app.example.com/app
и app.example.com/env
.
Документация по отображению досок развертывания и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Интеграция GitLab с Kubernetes использует преимущества безопасности RBAC за счет создания учетной записи службы и выделенного пространства имен для каждого проекта GitLab. В этом релизе для максимальной эффективности создания этих ресурсов они будут создаваться только тогда, когда необходимы для развертывания.
Когда будет происходить развертывание Kubernetes, GitLab CI создаст необходимые ресурсы непосредственно перед развертыванием.
Документация по кластерам Kubernetes и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Кластеры уровня группы теперь поддерживают установку обработчика заданий GitLab Runner. Групповые обработчики для Kubernetes будут видны для вложенных проектов в виде групповых обработчиков заданий с метками cluster
и kubernetes
.
Документация по установке приложений в кластерах и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Функции, развернутые с помощью бессерверной архитектуры GitLab теперь будут учитывать количество вызовов этой конкретной функции. Отображение количества вызовов требует, чтобы Prometheus был установлен в кластере, где установлен Knative.
Документация по функциям для бессерверной архитектуры и оригинальный тикет.
git clean
в заданиях CI/CD(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
По умолчанию обработчик заданий GitLab запускает git clean
как часть процесса «check out» кода во время выполнения задания в GitLab CI/CD. В GitLab 11.10 пользователи могут управлять флагами, передаваемыми команде git clean
. Это поможет командам, у которых есть выделенные обработчики заданий, или которые строят проекты из больших моно-репозиториев, управлять процессом «check out» перед выполнением своих скриптов. Новая переменная GIT_CLEAN_FLAGS
имеет значение по умолчанию -ffdx
и принимает все возможные параметры команды git clean
.
Документация по использованию флагов для git clean и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мы добавили настраиваемый параметр, позволяющий роли «разработчик» (Developer) создавать проекты в группах еще в GitLab 10.5, а теперь мы добавляем эту опцию и в Core. Создание проектов является ключевой возможностью для производительности в GitLab, и перемещение этой опции в Core поможет уменьшить барьеры для пользователей инстанса, которые хотят работать над чем-то новым.
Документация по созданию проекта и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Безопасные окружения могут потребовать проверки с помощью дополнительного внешнего ресурса авторизации для разрешения доступа к проекту. Мы добавили поддержку этого дополнительного уровня контроля доступа в GitLab 10.6, и мы получали от сообщества запросы на перемещение этой функциональности в Core. Мы рады сделать это для внешней авторизации и вывести этот дополнительный уровень безопасности в инстансы с планом Core, поскольку это функция, которая пригодится многим участникам.
Документация по настройке внешней авторизации и оригинальный тикет.
project_id
, возвращаемый из API поиска BLOB-объектов с помощью Elasticsearch(STARTER, PREMIUM, ULTIMATE)
Мы исправили ошибку в API поиска BLOB-объектов с Elasticsearch, которая неправильно возвращала 0 для project_id
. Вам нужно будет переиндексировать Elasticsearch, чтобы получить правильные значения project_id
после установки этой версии GitLab.
Документация по поиску BLOB-объектов и оригинальный тикет
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 11.10 released with Pipelines on the Operations Dashboard, Pipelines for Merged Results, and Multi-line Merge Request Suggestions.
Над переводом с английского работали @cattidourden, @maryartkey, @ainoneko и @rishavant.