
新的GitLab版本已经发布,其中包含创建和部署EKS集群,Crossplane支持,环境面板以及许多其他很棒的功能!
为了最高效地交付高质量的软件,您需要支持广泛的基础架构和多个云平台 。 本月的GitLab版本使您可以轻松地设置,监视和管理具有各种配置的项目。
从GitLab创建和部署EKS集群
像85%的企业平台一样, GitLab依靠多云方法 。 对于我们的用户而言,将他们的应用程序部署到他们选择的云中而不会出现任何问题至关重要。 我们意识到了这一点,很高兴为您提供机会,只需单击几下即可在Amazon的EKS上创建Kubernetes集群 。 这个过程就像从Google在GKE上构建集群一样简单。 只需选择EKS,配置创建的集群,GitLab就会自动分配资源并准备集群,您可以轻松,快速地将应用程序放置在该集群上。 GitLab消除了手动完成创建集群这一复杂部分的需要。
现在,此功能是可切换的,并且在GitLab.com上默认启用。
与Crossplane一起使用托管云服务
我们认为运营效率非常重要,因此我们很高兴将Crossplane集成作为应用程序引入GitLab托管应用程序中 。 Crossplane简化了对云服务依赖性的处理,使管理员可以声明性地配置和安全地使用安装在所选云中的托管服务,包括GCP,AWS和Azure。 与Auto DevOps集成可以简化在声明CI变量之前的资源分配。
快速查看环境状态
有时,您会在应用程序中遇到频繁的更改,而这些更改在您的开发,登台和生产环境中很难跟踪。 一个新的环境面板可以在一个地方收集有关所有组和项目中所有环境状态的信息。 这意味着您可以快速发现并发现问题。 例如,“环境是否因为代码正在部署而无法使用,或者它确实无法正常工作?”
甚至更多!
12.5是一个很好的发行版,并且有许多创新等待着您。 另外,我们要注意与Sourcegraph的集成以及一些安全性改进。 继续阅读以了解有关本月新发布功能的所有信息!
顺便问一下会议怎么样? 下次GitLab Commit用户会议的 注册开放,该会议将于1月14日在旧金山举行。
加入我们的GitLab委员会 ; 填写发布调查 (英文)。

用户gfyoung提出了30多个合并请求(在GitLab的俄语本地化中称为“合并请求”),将frozen_string_literals
添加到frozen_string_literals
测试中以提高性能和一致性,但这还不包括过去一年GitLab自身代码中的许多合并请求。 非常高兴看到迭代方法付诸实践,我们非常感谢gfyoung的这项工作!
GitLab 12.5版本的主要功能
从GitLab轻松创建和部署EKS集群
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“配置”
Kubernetes非常复杂,因此从头开始创建集群并非易事。 即使使用AWS的Elastic Kubernetes服务(EKS)之类的服务将抽象背后的某些复杂性隐藏起来,它仍然需要采取更多步骤来开始使用。 手动配置(例如在EC2中创建特殊的Kubernetes控制平面和单个节点)分散了您的主要目标-启动应用程序。 在GitLab,我们努力使所有重复性任务自动化,并希望简化新集群的创建。 因此,我们在12.5版中添加了与EKS的集成。
现在,在集群页面上,您可以选择EKS选项(这需要登录到您的AWS账户)。 登录后,只需为集群选择必要的参数,GitLab将负责其余的工作。
EKS集成不仅对在AWS上使用Kubernetes的便利非常重要,而且还是我们的多云策略的一部分。 与GKE集成在一起,我们希望不仅使配置Kubernetes更容易,而且还可以切换到多云。 这仅仅是开始, 我们希望我们的用户可以选择广泛的云提供商进行部署。 您可以使用任何具有优势的提供程序,并且能够在不更改GitLab常规工作流程的情况下将应用程序移动到选定的云。
现在,此功能是可切换的,并且在GitLab.com上默认启用。 要在用户实例中启用它,请启动Rails控制台: gitlab-rails console
并运行Feature.enable(:create_eks_clusters)
。
有关创建EKS群集和原始 故障单的文档 。
GitLab托管应用中的Crossplane
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“配置”
以前,可以使用GitLab启动Kubernetes应用程序,但是必须单独配置,连接和保护服务依赖项。 从12.5版开始,现在可以使用Crossplane开源项目声明性地配置云服务,该项目继承了Kubernetes API,用于管理PostgreSQL,MySQL,Redis和存储桶等服务。
Crossplane现在可以作为GitLab托管应用程序使用。 您可以将其安装在任何运行GitLab的Kubernetes集群中。 可以使用kubectl
在标准管道(在GitLab“装配线”的俄语本地化)GitLab中或使用Auto DevOps来配置和安全使用GCP,AWS和Azure的托管服务。
将Crossplane与Auto DevOps结合使用将使用户能够管理群集数据库,从而提供立即发布的解决方案。 非常感谢Upbound团队所做的出色工作!

Crossplane文档和原始机票 。
带有Sourcegraph的代码智能
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“创建”
开发人员经常使用变量和函数定义的过渡,并在编写软件时寻找关系,但是在查看代码时,通常不可用。 现在,在查看代码或合并请求审阅时,可以使用Sourcegraph中强大的代码导航功能。
在GitLab 12.5版本中,实例管理员配置Sourcegraph集成后,您可以同意在设置中使用它。 在GitLab.com,我们正在逐步为公共项目添加Sourcegraph。 您可以通过 在用户设置中包括Sourcegraph 来在此GitLab项目中立即尝试。
感谢Sourcegraph进行的集成 ! 了解有关她的更多信息 。
原始图文档和原始票据 。
环境小组
(高级,最终,银色,金色) DevOps周期的阶段:“发布”
GitLab环境是一种逻辑结构,可让您控制代码在其中部署的物理环境的状态。 这是使GitLab成为真正的CD解决方案的功能之一,而不仅仅是用于管理部署的便捷CI工具。 但是,当环境很多时,很难对其进行管理。 以前,很难跟踪不同项目的多个环境的状态,因为您必须转到每个项目才能查看其内置环境。
新的环境面板提供了项目中所有环境的数据,使您可以查看每个环境中正在发生的事情的全貌。 现在,您可以从一个位置跟踪变更如何从开发转移到阶段,然后再转移到生产,或通过您的任何其他环境。 使用所有项目环境的新便捷视图,您可以立即查看哪些管道成功完成了,哪些管道没有成功完成,了解块出现在哪里,以及是否还有更多的系统性问题需要调查。 环境面板将帮助您更有效地解决这些问题。

环境面板上的文件和原始票据 。
里程碑与发布的关联
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“发布”
许多团队,包括我们的团队,都为每个发行版(在GitLab的俄语本地化中称为“阶段”)创建一个里程碑,并附加了所有内容,对于某些团队,发行版可能包括多个冲刺。 现在,您可以将一个或多个里程碑与发行版相关联,发行版页面将充满该发行版中包含的所有票证和合并请求。

有关发行和里程碑的文档以及原始票证 。
GitLab 12.5中的其他改进
组的事件审核API
(入门,高级,终极,古铜,银,金) DevOps周期的阶段:“管理”
通过事件审核API ,您可以了解GitLab环境的状态。 以前,只有管理员可以使用此API查看实例事件 。 由于GitLab.com用户没有此访问权限,因此有必要将此功能扩展到组所有者。
因此,我们使得可以通过GitLab API访问组事件数据,以帮助您传达决策并管理组中的合规性。 我们计划使事件审核更加详细 ,并且API也将提供更多有用的信息。
团体的事件审核API文档和原始票证 。
史诗现在可以从其嵌套的史诗中继承开始和结束日期
(最终,金色) DevOps周期的阶段:“计划”
在此版本中,我们使您可以更轻松地处理有关史诗时间的信息(在GitLab的俄语版中为“目标”)。 现在,史诗不仅可以从附加的任务,而且可以从附加的嵌套史诗继承里程碑的开始日期和结束日期。 不再需要猜测附加的史诗和任务应该在什么时间完成。
在史诗和原始票证中 记录开始和结束日期 。
改进了组,子组和项目页面上的导航
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“计划”
如果组,子组和项目的结构复杂,则可能很难准确了解您在层次结构中的位置。 现在,借助左侧导航栏的更新外观,您可以快速了解正在使用的上下文。
有关创建项目的文档和原始票据 。
设计注释显示在故障单活动中
(高级,终极,银,金) DevOps周期的阶段:“创建”
以前,当向设计添加新的注释或注释时,它仅显示在设计本身中。 现在,当添加新的注释时,GitLab还将在“ 讨论”选项卡上添加此注释,以使参与该任务的每个人都可以知道。 因此,一起设计将变得更加容易,每个人都可以做出贡献。
设计注解文档和原始票据 。
Git信息/引用缓存(测试版)
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“创建”
收到对git仓库的更改后,Git服务器会宣布该仓库的所有分支和标签的列表。 在某些情况下,对Web服务器的所有请求中有75%是对链接(引用)的请求。 最好的情况是,当所有链接打包时,这是一个相对便宜的操作,但是如果有未打包的链接,Git将不得不绕开它们。 由于磁盘上的其他操作,这已经可能导致费用,尤其是在使用高延迟的存储(例如NFS)时。
从12.5版开始,实例管理员可以启用beta info/refs
缓存以提高链接声明的性能,并减少频繁广告请求对Gitaly的负载。
通过在GitLab.com上测试此功能,我们已经发现读取操作数比写入操作数高10倍,并且视在平均延迟降低了70%。 我们期望将NFS作为Git的存储库的GitLab实例获得更好的结果。
默认情况下,缓存尚未启用,因为我们正在调查对写入缓存的需求高于预期,这可能是由并发丢失引起的。 敬请关注#2124 。

缓存文档和原始票证 。
已添加可合并状态以合并请求API
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“创建”
合并请求API现在包含有关为何无法接受合并请求的更多详细信息。 has_conflicts
属性指示是否存在合并冲突, blocking_discussions_resolved
属性指示是否存在未解决的讨论。 这些新属性对于自动化特别有用,因为它们显示了解决冲突需要采取的措施。
感谢Brian Kabiro提供此功能 !
有关获取合并请求和原始票证 信息的文档 。
通过查询字符串将值传递给pipelines/new
页面
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“验证”
要通过GitLab网站创建新管道,请转到/pipelines/new
页面并填写所需的值以启动管道。 以前,已经可以添加ref
参数来选择分支或标记(例如/pipelines/new?ref=master
)。 现在,我们添加了通过查询字符串类似地设置其他值的功能。
有关使用查询字符串和原始票证的 文档 。
gitlab-ci.yml中的自定义脚本别名
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“验证”
创建可重复使用的小型“构建基块”是输送机设计中的强大工具。 这将使您避免重复,将功能分成单独的可理解块,并创建依赖关系链,其中代码块同时针对所有依赖块进行更新。
GitLab有几种在设计中应用此模式的机制,包括默认的YAML语法元素,例如锚和别名。 但是,当您尝试将别名数组与关键字script
, before_script
或after_script
,在合并过程中会创建一个嵌套的数组,这将不起作用。
在GitLab 12.5中,脚本数组通过锚点访问时可以正常工作。 将它们与include
和extends
仍然失败,但是您可以在单独的文件内使用锚来访问新的设计模式数组 。
脚本锚和原始票据的 文档 。
在合并请求中显示有关JUnit错误的详细信息
(核心,入门,高级,终极,免费,古铜,银,金) DevOps周期的阶段:“验证”
在此版本之前,用户会收到有关测试何时失败的信息,但没有解决该问题并快速创建成功的装配所必需的数据。 从此版本开始,GitLab将在管道上显示有关通过JUnit测试的结果的数据。
这包括通过,错过和失败的测试结果,以及测试的时间安排和详细概述,其中包括失败的列表,以便更快地识别和解决问题。

有关Junit测试结果的文档和原始票据 。
上下文文档可帮助用户下载NPM软件包
(高级,终极,银,金) DevOps周期的阶段:“打包”
从最近的用户调查中,我们了解到用户切换到程序包注册表UI的主要原因是因为他们需要确保使用的是正确版本的程序包 。 我们可以提供帮助的方法之一是提供易于复制以下载和安装单个软件包的代码片段。
在GitLab 12.5中,我们很高兴在GitLab软件包注册表中引入第一次迭代以改善导航和工作流程。 现在,用户可以轻松地复制代码以运行npm install
和npm setup
来更快地安装所需的软件包。

NPM注册表文档和原始票证 。
用于可切换功能的公共API
(高级,最终,银色,金色) DevOps周期的阶段:“发布”
我们添加了API功能,使您可以配置和管理可切换功能。 以前,这只能通过UI来完成。
功能和原始票证的 API文档 。
基于CI的集群管理
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“配置”
一键安装Kubernetes应用程序的功能对于快速启动和入门非常有用。 但是,有时需要在安装前配置Helm图表。 一种基于CI的群集管理的新方法将允许用户创建“群集管理项目”,这些项目在cluster-admin
上获得cluster-admin
权限,并可以通过CI与群集进行交互。 这不仅允许您安装模板应用程序 ,而且使用户能够在安装前自定义图表。 此外,在管理Kubernetes应用程序时,用户将能够使用与安全性,身份验证,版本控制和CI相关的所有现有GitLab功能。 将来,我们将一键式安装与基于CI的应用程序安装相结合 。

群集管理文档和原始票证 。
GitLab Serverless中的OpenFaas运行时支持
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“配置”
GitLab Serverless现在支持经典的OpenFaaS运行时 。 在他们的帮助下,开发人员可以使用六种受支持的语言之一为Knative编写无服务器功能。
支持的运行时文档和原始票据 。
收到Prometheus的恢复信号时自动关闭GitLab票证
(最终,金色) DevOps周期的阶段:“监视器”
通过以下两种方式之一解决了GitLab事件:
故障排除后,应关闭事件票证,以免混淆正在发生的事件和需要消除后果的事件。 由于解决问题而解决事件后,Prometheus会生成系统恢复信号,从而使GitLab能够自动关闭与事件相关的故障单。
这将使事件解决专家免于不必要的体力劳动,并确保每个未解决的故障单都是急需解决的问题。
事故响应文件和原始机票 。
在GitLab中按标题过滤哨兵错误列表
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“监视器”
对错误进行排序需要能够根据适用于给定情况的用户标准对错误列表进行过滤和排序。 现在,您可以通过与Sentry集成来搜索GitLab项目中的Sentry错误列表。 只需转到左窗格中的“ 操作”>“错误跟踪 ”以查找和查看Sentry错误。
错误清单和原始票证 上的文档 。
Slack命令添加故障单注释
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“监视器”
ChatOps允许您通过直观的命令和操作开始操作,您可以直接在聊天中输入这些命令和操作。 我们通过添加一个命令来扩展现有的Slack命令集,该命令允许您在不离开Slack的情况下向GitLab故障单添加注释。 这将使您不必专心工作,也不必在多个界面之间切换,而只是将票证传递给团队成员或客户。
车队的文件和原始机票 。
编辑指标面板
(核心,入门,高级,终极,免费,古铜,银,金) DevOps循环阶段:“监视器”
以前,要创建自己的控制面板版本,用户必须在存储库的根目录中创建一个YAML文件,然后将其完整填写。 这非常复杂,需要大量手动操作。
现在,在GitLab 12.5中,这变得更加容易。 通过单击“编辑仪表板”按钮,您将被重定向到IDE页面,您可以在其中更新已创建的YAML文件。

, .
SAST React
(ULTIMATE, GOLD) DevOps: "Secure"
SAST , Javascript React . React.

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 . , .

.
(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 . .

.
(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 !

markdown .
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) DevOps: "Create"
-, . GitLab 12.5 , .
, ( Delete source branch ), .
Zsolt Kovari .

.
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%.

.
(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
, . , .

.
(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 , .

.
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"
, , . , .

.
(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 .