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


Непрерывная интеграция, поставка и развертывание являются основополагающими принципами DevOps. В GitLab включена функциональность CI/CD, которая пришлась по душе как разработчикам и аналитикам, так и компаниям в целом.



Однако, было одно упущение — ранее вы не могли использовать GitLab CI/CD с GitHub. В данном релизе мы это исправили.


Представляем GitLab CI/CD для GitHub


Несмотря на то, что GitLab лучше всего себя показывает в качестве единого приложения для всего цикла разработки, мы стремимся к продуктивному взаимодействию с другими приложениями. Поэтому, начиная с данного релиза, мы добавляем интеграцию CI/CD с GitHub, а также возможность интеграции CI/CD с любыми другими внешними репозиториями, например BitBucket. Это нововведение нацелено на четыре основные группы пользователей.


Проекты с открытым исходным кодом


Теперь, если у вас есть публичный проект с открытым исходным кодом на GitHub, вы можете пользоваться бесплатным CI/CD на GitLab.com. Мы предоставляем публичным проектам возможности GitLab CI/CD наивысшего плана (Gold) бесплатно, как часть нашей поддержки open source. В то время как другие поставщики CI/CD разрешают выполнять лишь небольшое количество одновременных работ, GitLab.com позволяет проектам с открытым исходным кодом запускать сотни одновременных работ с 50 000 бесплатных минут для конвейеров CI в месяц.


Крупные компании


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


Кто угодно на GitHub.com


Хотя GitLab спроектирован для использования SCM и CI/CD в одном приложении, мы понимаем, почему некоторые пользователи хотят использовать GitLab CI/CD с контролем версий GitHub. Поэтому в течение года GitLab CI/CD для GitHub будет частью плана Free GitLab.com. Это значит, что все пользователи GitHub, от персональных проектов и стартапов до малых и средних бизнесов, смогут пользоваться GitLab CI/CD бесплатно. В таком варианте изначально доступны 2000 бесплатных минут конвейеров CI с возможностью добавления собственных Runner’ов и апгрейда плана.


Пользователи Gemnasium


Как вы, возможно, помните, недавно мы приобрели Gemnasium. Мы очень рады такому пополнению наших рядов, однако также не забываем о пользователях, которые использовали Gemnasium и раньше: мы хотим предоставить им простой и безболезненный способ перехода на новую платформу. Мы уже поставляем функциональность Gemnasium как часть нашей встроенной системы безопасности, а теперь пользователи Gemnasium, которые используют его в связке с GitHub, смогут использовать GitLab CI/CD для проверок безопасности без необходимости переноса кода.


Улучшения Kubernetes для GitLab


Мы продолжаем интегрировать контейнеризацию (containerization) в GitLab. В версии 10.4 мы вывели в общий доступ интеграцию с кластерами Kubernetes и GKE. В версии 10.6 мы еще больше упрощаем использование Kubernetes с GitLab. Теперь вы в один клик можете провести развертывание GitLab Runner в подключенный кластер Kubernetes. Также вы можете мониторить ваш кластер Kubernetes и узнать IP адрес контроллера Ingress, подключенного к нему, не выходя из GitLab.


Приглашаем на наши встречи!


GitLab MVP badge


(MVP) этого месяца — Takuya Noguchi


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


Спасибо, Takuya! В знак благодарности мы отправили Takuya фирменные кофту, носки и тануки ручной работы с символикой GitLab.


GitLab CI/CD для внешних репозиториев (PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Для использования GitLab CI/CD с репозиторием GitHub создайте новый проект GitLab и выберите GitHub на вкладке CI/CD for external repo. После того, как вы добавите файл .gitlab-ci.yml в ваш репозиторий (или подключите Auto DevOps), GitLab будет автоматически запускать конвейеры и обновлять статусы коммитов в GitHub.


Также вы можете подключиться к любому Git-репозиторию по URL и настроить вебхуки статуса вручную. Например, если вы используете Bitbucket, здесь вы можете почитать, как вручную настроить для него GitLab CI/CD.


В честь запуска этой функциональности мы предоставляем ее бесплатно, как часть плана GitLab.com Free, в течение года — до марта 2019.


GitLab CI/CD for external repos


Документация по CI/CD для внешних репозиториев


Быстрое развертывание GitLab Runner на кластер Kubernetes (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


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


Документация по установке Runner для Kubernetes


Quick deploy of GitLab Runner to Kubernetes cluster


Мониторинг кластеров Kubernetes (ULTIMATE, GOLD)


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


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


Документация по мониторингу кластеров Kubernetes


Kubernetes cluster monitoring


IP адрес Ingress на странице кластера Kubernetes (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


В GitLab 10.2 мы добавили возможность установки Ingress на кластер Kubernetes. После установки Ingress предоставляет публичный IP адрес, который можно использовать для внешнего доступа к развернутым приложениям.


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


Документация по IP адресу Ingress для кластеров Kubernetes


Ingress IP address on Kubernetes cluster page


Сопровождающие исходного проекта могут пушить в форк (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


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


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


Документация по правам доступа для сопровождающих


Maintainers can push to MR from fork


Единая доска задач для группы в Libre и Free (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Ранее эта функциональность была доступна только для планов Premium и Ultimate, и пользователи с такими подписками высоко оценили ее возможности. Пользователи Libre также выразили интерес к единой доске задач, так что в данном релизе мы добавляем ее и для них. В инстансах Libre и Starter теперь есть единая доска задач для каждой группы, тогда как единые доски задач для множества групп остаются привилегией Premium и Ultimate. Мы думаем, что это нововведение повысит привлекательность планов Libre и GitLab.com Free и надеемся получить обратную связь по данной функциональности от еще большего количества пользователей.


Документация по доскам задач


Single Group Issue Board in Libre and Free


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


Отчеты безопасности SAST на страницах конвейеров (ULTIMATE, GOLD)


Несколько месяцев назад мы добавили статическое тестирование безопасности приложений (SAST). Эта система автоматически ищет уязвимости во всех изменениях кода в мерж-реквесте, благодаря чему вы можете их исправить перед мержем и предотвратить их попадание в master и итоговый релиз.


Начиная с данного релиза полноценный отчет работы SAST отображается на странице CI/CD > Pipelines, что еще больше облегчает отслеживание рисков безопасности в конвейерах для разработчиков, инженеров и других заинтересованных лиц.


SAST security report on pipelines view


Документация по отчетам безопасности SAST на страницах конвейеров


SAST для приложений Java-Maven (ULTIMATE, GOLD)


Ранее в GitLab уже была добавлена поддержка популярных языков программирования, таких как Ruby, Python и JavaScript, как часть системы статического тестирования безопасности приложений (SAST).


В GitLab 10.6 мы добавляем поддержку Maven — довольно известного инструмента автоматизации для Java. Если вы уже пользуетесь SAST, вам не нужно ничего менять и перенастраивать — новые проверки появятся автоматически.


Полный лист поддерживаемых языков и фреймворков можно посмотреть здесь.


SAST for Java-Maven apps


Документация по SAST


Внешний контроль авторизации (PREMIUM, ULTIMATE, SILVER, GOLD)


В некоторых управляемых окружениях системы классификации проектов используются для контроля доступа к ним. Теперь их можно использовать и в GitLab.


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


Документация о внешнем контроле авторизации


Поддержка идентификации в DAST (ULTIMATE, GOLD)


Несколько релизов назад мы выпустили динамическое тестирование безопасности приложений Dynamic Application Security Testing (DAST). DAST позволяет динамически и автоматически проверять приложения на уязвимости безопасности в процессе разработки при помощи Review App — до мержа кода в master и релиза.


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


Authentication support for DAST


Документация о поддержке идентификации в DAST


Внешние настройки CI/CD в Starter и Bronze (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


В GitLab 10.5 мы ввели возможность добавления внешних файлов конфигурации CI/CD в основной .gitlab-ci.yml вашего проекта. Эта возможность была доступна только для пользователей плана Premium в Gitlab на собственном сервере и для пользователей Silver на GitLab.com.


Мы получили много обратной связи от пользователей: очень многие просили добавить такую возможность в остальные подписки. Мы пошли навстречу и рады сообщить, что эта функциональность теперь доступна пользователям Starter на собственном сервере и Bronze — на GitLab.com. Возможность централизованно контролировать настройку конвейера и переиспользовать одно и то же определение в нескольких проектах очень ценна как для больших корпораций, так и для бизнесов меньшего размера.


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


Документация о включении дополнительных файлов конфигурации CI/CD


Обзор веток (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Спасибо, Takuya Noguchi, за твой вклад!


Branches overview


Документация по веткам


Переход к внешнему трекеру задач (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Чтобы упростить эту интеграцию, мы добавили в навигацию по проекту новую ссылку. Если у вас уже есть настроенный внешний трекер (Redmine, Jira, Bugzilla или Собственный Настроенный Трекер), в навигации по проекту будет отдельная ссылка, по которой вы сможете быстро перейти в эту внешнюю систему. Ссылка на задачу в GitLab остается там же, где и была, так что при желании вы сможете использовать оба трекера одновременно.


Navigate to external issue tracker


Документация о внешнем трекере задач


API импорта/экспорта проектов (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Проекты — очень важная часть GitLab, так как в них хранится вся ценная работа (включа репозиторий Git) и данные по организации работы команды (включая задачи и мерж-реквесты). С помощью существующего экспорта и импорта проектов GitLab можно легко переносить проекты между инстансами и внутри них.


До сих пор это приходилось делать вручную. В данном релизе экспорт и импорт проектов стали частью API GitLab: когда вам понадобится перемещать проекты внутри или между инстансами, вы сможете создавать более гибкие рабочие процессы и автоматизировать их.


За эту фичу спасибо Travis Miller!


Документация по API экспорта и импорта проектов


GitLab ChatOps (альфа) (ULTIMATE, GOLD)


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


В GitLab 10.6 мы хотели упростить автоматизацию этих рутинных действий, а также добавить их прямо в Slack. Для начала нужно добавить работу в YML GitLab CI и подключить интеграцию со слэш-командами Slack. Пользователи затем смогут писать слэш-команды, название работы CI и необходимые аргументы — работа запустится на runner, а результат вернется в Slack.


Документация по GitLab ChatOps


Метки в эпиках (ULTIMATE, GOLD)


В этом релизе мы добавили новую эффективную интерфейсную возможность: задачи и мерж-реквесты GitLab теперь поддерживают метки. За счет этого управлять ими становится легче: вы можете настроить управление точно под нужды своего проекта.


Вы можете назначать групповые метки в боковом меню эпика — так же, как для задач и мерж-реквестов. Кроме того, вы можете сортировать список эпиков группы по меткам (снова по аналогии с задачами и мерж-реквестами — опытные пользователи GitLab быстро узнают эту функциональность). Это позволит легко смешивать и сопоставлять эпики с разными категориями, предлагаемыми в меню поиска и фильтрации.


Labels in Epics


Документация об эпиках


API эпиков (ULTIMATE, GOLD)


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


Документация об API эпиков


API утверждения мерж-реквестов (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


До этого релиза возможности API утверждения мерж-реквестов ограничивались утверждением или не-утверждением мерж-реквеста. В этом релизе появилась возможность полностью настраивать утверждение на уровне проекта или на уровне мерж-реквеста. Функционально получилось то же самое, что и в веб-интерфейсе GitLab.


С помощью API утверждений команды смогут проводить более детальное ревью кода и настраивать процессы утверждения исходя из своих потребностей. Вы можете использовать API для определения того, какие процессы будут происходить в веб-интерфейсе GitLab, а какие — вне его.


Документация об API утверждений мерж-реквестов


API обсуждений (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Поддержка API для комментариев и обсуждений мерж-реквестов выйдет в следующем релизе.


Документация об API обсуждений


Поддержка филиппинского, индонезийского и турецкого языков (LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


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


Также мы экстернализировали строки в заблокированные файлы репозитория (Repository Locked Files) для версии Premium и выше: теперь наши переводчики смогут добавлять больше языков в большее количество строк в GitLab.


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


Документация о локализации GitLab




Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.6 released with CI/CD for GitHub and deeper Kubernetes integration.


Над переводом с английского работали rishavant и sgnl_05.

Комментарии (19)


  1. chemtech
    02.04.2018 15:28

    А где почитать про LIBRE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD?


    1. aionin Автор
      02.04.2018 15:35

      Libre — бесплатная редакция. Раньше назвалась Community.
      Starter, Premium, Ulitimate — разные по набору фич редакции GitLab, который вы ставите у себя на своих ресурсах. Посмотреть различия редакций — по ссылке. или на английском — здесь
      Bronze, Silver, Gold — это разные уровни сервиса для тех, кто использует GitLab в их собственном облаке.


      1. devpreview
        03.04.2018 01:30

        В прайсе ещё есть некая версия «Core» $0 / per user.
        Не совсем ясно, чем она отличается от Libre (Community).


        1. aionin Автор
          03.04.2018 09:06
          +1

          Вот ведь — опять переименовали. Видно Libre кому-то не зашло…
          Core = Libre


          1. devpreview
            03.04.2018 09:50
            +1

            Т.е. получается есть три ветки:
            — GitLab CE;
            — GitLab EE: Core / Starter / Premium / Ultimate;
            — GitLab SaaS (не знаю как он называется): Free / Bronze / Silver / Premium.

            Правда, не понятно чем отличается GitLab CE от GitLab EE Core.


            1. aionin Автор
              03.04.2018 10:01
              +1

              Нет, GitLab CE = GitLab EE Core


              1. devpreview
                03.04.2018 10:03

                А зачем тогда нужна страница Community Edition or Enterprise Edition?


                1. aionin Автор
                  03.04.2018 10:30
                  +2

                  На этой странице есть некоторые пояснения, которые сводятся к следующим пунктам:

                  • Community Edition — полностью OpenSource. И лицензия на CE своя MIT Expat. При этом, хотя исходники EE тоже доступны, но они прикрыты уже другими лицензиями.
                  • Технически по функциональности CE = EE Core
                  • Реально дистрибутив для всех редакций EE — один. Соответственно, получаем очень простой переход/откат между редакциями

                  А страница нужна, по-моему, чтобы GitLab не выпал из системы OpenSource.


                  1. devpreview
                    03.04.2018 10:32

                    Понял, спасибо!

                    Реально дистрибутив для всех редакций EE — один. Соответственно, получаем очень простой переход/откат между редакциями
                    Вот этот вопрос, в основном, и хотел для себя прояснить.


  1. aionin Автор
    02.04.2018 15:39

    На мой взгляд, полезнейшим изменением этого релиза является доступность Доски задач (или Доски дефектов) для всех редакций, а не только Premium.


    1. devpreview
      03.04.2018 01:31

      Да, это реально круто. Как говорится «джва года ждал».


  1. grigorov
    02.04.2018 16:42

    У них интеграция с kubernetes сломана с версии 10.4

    gitlab.com/gitlab-org/gitlab-ee/issues/5347#note_65891581

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


  1. Tishka17
    02.04.2018 18:53

    И сломали вебхуки. В итоге интеграция с jenkins через его gitlab plugon не работает.


    1. amdmax
      03.04.2018 12:08

      А где подробности посмотреть?


    1. Belya-Dj
      03.04.2018 12:08
      +2

      Ну не то что бы совсем сломали :-D новая секурити сетинга :)
      Решение есть тут: forum.gitlab.com/t/jenkins-ci-500-error/14953/2


      1. Tishka17
        03.04.2018 12:32

        О. Спасибо. Странно было видеть ошибку 500, поэтому не думал что можно что-то настроить


  1. L0NGMAN
    02.04.2018 23:08

    А тёмный скин интерфейса опять не добавили :(


  1. DAiMor
    02.04.2018 23:53

    Спасибо конечно, за развитие поддержки kubernetes. Но, как то совершенно не очевидно как ею пользоваться для развертывания своих charts в kubernetes используя например helm установленный через интерфейс GitLab, или хотя бы kubectl. Gitlab-Runners установленный так же из интерфеса не дает возможность запускать docker build, его нужно либо подкручивать ручками самому после установки, либо ставить другой. И вообще его никак нелья подправить, о том что там базовым образом выбрана ubuntu, нигде нету информации, и нету кнопки удаления, только установка. В документации совершенно нет ничего о том как пользоваться kubernetes из runners. Круто, добавили и описали флаг kubernetes = true. Что совершенно безполезно, если я могу и тегами обойстись, чтобы найти нужный runner. А где kubectl и helm, чтобы можно было легко ставить свежесобранные образы. Нашел как то сделано в AutoDevops, и сделал так же, но это же хрень какая то.


  1. voe
    04.04.2018 21:33

    Жалко что Gemnasium прикрыли а доступным его в гитлаб сделали только на платных тарифах.