GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

日前GitLab官方博客宣布发布又一个月度新版本12.9。该版本主要在安全性、DevOps、可视性和代码质量报告和定制的价值流分析等等。详细功能介绍请随虫虫一起学习。

重要功能概述

通过Secrets Management和漏洞修复保护的应用程序

许多公司都在使用基于外部基础结构管理解决方案(比如HashiCorp Vault)集中管理的基础结构和应用程序中涉及的密码。在GitLab 12.9中,用户可以在Kubernetes集群中托管安装HashiCorp Vault应用程序,从而实现项目级别密钥令牌和其他密码的安全管理。

当容器扫描检测到漏洞时,GitLab 12.9可以为漏洞提供建议解决方案。可以选择使用合并请求来修复漏洞,合并请求将自动更新容器基础镜像中的软件包,从而帮助快速有效地解决容器安全问题。

可自定义的价值流分析和代码质量报告,更好的可视性

值流分析可帮助组织可视化其端到端的工作流并识别低效率,从而不断改善其交付价值的方式。以前,生命周期阶段固定在DevOps循环中,因为有些团队可能遵循不同的工作流程,所以它可能不适合所有人。在GitLab 12.9新版本中,可以更好实现自定义,以调整适合业务的指标。每个新阶段都可以具有特定的触发事件,这些事件定义了该阶段的进入或退出,使可以根据定义的关键绩效指标来专注于改进。

以前,开发人员在合并请求中使用代码质量功能来了解对目标分支质量的影响。但是,这不能使开发人员和管理人员了解整个项目中的其他代码质量问题。在GitLab 12.9中,引入了完整代码质量报告,该报告总结了整个项目中的质量问题。

使用组部署令牌提高效率

对于任何使用容器的团队,协调者对其安全性和持续访问其容器注册表至关重要。此前引入了Project Deploy Tokens,以向注册表提供长期的只读身份验证,而无需与特定用户关联或具有不必要的访问权限。

在GitLab 12.9新版本中,批量管理部署令牌现在变得更加高效。在组级别引入了还引入了用创建、列出和撤消部署令牌的API。如果特定项目要求使用不同的令牌,则项目级别的部署令可以覆盖组级别的部署令牌。

GitLab 12.9中发布的主要功能

选择并消除多个漏洞(ULTIMATE)

安全仪表板可快速洞察并查看由各种安全扫描程序检测到的潜在漏洞。开发和安全团队成员可以快速检查,分类和创建问题以修复漏洞。有时,漏洞无需采取进一步措施,就可以消除。对于具有多个此类发现的项目,将其逐个解散会很耗时。

很高兴在安全仪表板上宣布新功能,以提高漏洞管理的效率。新版本中支持快速选择多个漏洞发现并立即将其全部消除。

从管道、项目、组或实例安全性仪表板中,单击一下即可选择屏幕上的所有漏洞,或者选择特定的漏洞然后以预设的原因将其消除。为了更快地进行分类,可使用现有的仪表板过滤器仅查看可能会出现可忽略的发现的特定漏洞类型。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

HashiCorp Vault GitLab CI/CD托管应用程序

GitLab希望使用户能够轻松进行现代机密管理。新版本中提供了在Kubernetes集群中安装Vault的功能,这是GitLab CI托管应用程序流程的一部分。这将支持在Helm图表安装中在项目级别对密钥,令牌和其他机密进行安全管理。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

组部署令牌

GitLab已经支持项目级的部署令牌。新版本在组级别添加了对部署令牌的支持,以使配置项目组更加容易。这将使项目之间的密钥共享更加方便,可以支持如下的场景:用户将多个项目部署到一个K8S集群中,每个项目需要创建不同的密钥。创建组级别令牌使用户可以为整个群集设置一个共享密钥。

发布进度视图

GitLab发布是发布所有内容的一站式界面。在GitLab 12.9中新引入的了"发布进度视图"功能,能够轻松解决许多发布和构建管理员花时间手动收集的问题。在"发行"页面上的单一界面中,可以看到与发行里程碑相关联的未解决,已解决和正在进行的公共问题的数量。方便的进度条进度栏还将使快速了解发布的进度。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

动态子管道

从这个版本开始,可以使用动态生成的来启动子管道.gitlab-ci.yml。使用该方法,可以生成子管道,以反映对更改或其他条件的运行时分析(例如,构建目标和体系结构的矩阵)。

这项新增功能将开辟一套全新的用例,同时有助于使配置保持简单。

用于部署到ECS的GitLab CI/CD模板

许多用户希望使用GitLab CI/CD部署到AWS。为了帮助部署到Elastic Container Service(ECS),创建了一个模板,向展示如何入门。

用户可以在配置中包括模板,指定一些变量,他们的应用程序将立即部署准备就绪。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

跳过超时的部署作业

在GitLab 12.9之前的版本中,尝试推出管道的用户可能会遇到这样的情况,即较旧且延迟的管道将在新部署之后部署并覆盖它。现在,正向部署提供了一种选项,以确保管道运行时,已被验证为最新部署,并确保较旧的管道不会覆盖较新的管道。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

Web应用程序防火墙(WAF)控件

新版本中增加了用于管理Web应用程序防火墙(WAF)的新控件,可以在项目的"操作"->" Kubernetes"页面上全局打开或关闭WAF 。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

Web应用程序防火墙(WAF)统计报告(ULTIMATE)

WAF同时提供了详细的统计报告功能。如下图可以看到有关总流量和阻止流量的数据,从而使可以更轻松地确定如何配置,调整和评估Web应用程序防火墙。

WAF统计信息将显示在"安全与合规性"菜单项下的新"威胁监视"页面上。默认数据为30天。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

动态环境对Review Apps的支持

commit应用目前需要使用静态网址作为CI/CD变量CI_ENVIRONMENT_SLUG。但是,在许多用例中,该环境变量是动态的。例如,当使用AWS时,用户可能希望根据阶段使用环境名称,而在部署之前可能不知道。

在12.9中,引入了一个新的报表工件dotenv。该工件可以在作业之间传递,从而为Review Apps提供真正的动态URL支持。这将释放在动态环境(例如本地云部署)中使用Review Apps的能力。

在高级版中使用组级路线图(PREMIUM及以上)

组级别的路线图现在可用于Premium。跟踪工作状态是按时交付价值的关键。在时间轴上可视化的Epics,并查看何时计划完成。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等


在路线图上按重量查看史诗般的进度(PREMIUM及以上)

新版本中路线图可通过显示的Epics的进度条显示完成的重量百分比,从而帮助可视化进度。轻松掌握最新的关键项目和工作!

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

Gitaly(alpha)的高可用性(PREMIUM及以上)

对于许多客户而言,GitLab是一项业务关键型应用程序,因为中断会阻止开发人员提高工作效率,并阻碍新功能和修复程序的部署。为了防止中断,可以在高可用性(HA)配置中运行GitLab。当前记录的HA配置建议使用NFS。随着存储库大小的增长,NFS大大增加了读取和写入操作的延迟,这会严重影响了Git操作的性能。

现在,Gitaly在不使用NFS的情况下提供了实验性功能实现高可用性。

此功能不要在生产环境中使用。有单点故障,并且可能会发生意外的数据丢失。

Gitaly的高可用性最终是一致的,实现为异步复制队列,因此优先考虑可用性而不是一致性。如果在耗尽复制队列之前在主Gitaly节点上发生了中断,则将发生数据丢失。同时,已经开始研究强烈的一致性,以防止发生此类数据丢失的情况。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

容器扫描的建议解决方案(ULTIMATE)

"容器扫描"扫描到基本镜像的漏洞时,GitLab将提供建议性的解决方案。用户必须选择"使用合并请求解决",然后提交使用建议的解决方案生成的合并请求。这有助于快速有效地响应和解决基于容器的安全性发现,同时降低安全风险和合规性风险。

完整代码质量报告(STARTER及以上)

用户已经充分利用了合并请求中的代码质量功能,以防止在进行单个更改后代码质量下降,但这可能无法充分了解项目中的其他问题。现在,参与者可以查看其他代码质量问题,以便在当前的合并请求或将来的更改中解决它们。

为了更好地使用户能够编写高质量的代码,完整的"代码质量"报告输出现已在CI/CD管道中提供,并且可以下载。开发人员可以在GitLab UI中更深入地了解其项目中的任何代码质量问题。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

其他审核事件(STARTER及以上)

注重合规性的组织需要了解其用户的操作。这可以帮助识别异常活动,减轻风险,对某些行为采取措施并记录活动以符合法规要求。正在继续开展"审核事件"类别的工作,努力捕获100%用户驱动的事件,以支持依赖GitLab进行用户活动的可审核性和可追溯性的组织。

GitLab 12.9中为合并请求批准设置所做的更改提供审核事件:阻止合并请求作者批准合并请求,阻止合并请求提交者批准合并请求以及所需批准的数量。这些事件在项目级和实例级审核事件表中可见。

启用Git协议v2

已通过SSH重新启用对Git v2的支持。在以前的版本GitLab 12.8中,重新启用了对基于HTTP的Git协议v2的支持。它先前在GitLab 11.4中发布,但由于Git 2.21之前的Git版本中的安全问题而被禁用。

开发人员每天要多次获取引用,以检查当前分支是否位于远程分支之后。以前,对提取命令的所有响应都包括存储库中所有引用的列表。例如,获取单个分支的更新(例如git fetch origin master)还将检索所有引用的完整列表。对于大型项目,这可能会超过100,000个引用和数十兆字节的数据。现在,仅传输所需的引用。

Gitv2是对Git Wire协议的主要更新,该协议定义了客户端和服务器(GitLab)之间如何通信克隆,获取和推送。新的Wire协议提高了命令操作的性能,并支持将来的协议改进。

默认情况下,Git协议v2在Git 2.26启用,并且可通过运行从Git 2.18中支持 git config --global protocol.version 2。

HTTP推送镜像API

推送镜像允许自动将Git存储库中的更新推送到其他位置存储的副本。可以通过项目设置轻松配置镜像,但是如果需要为数百个项目配置镜像,则不可行。新的Remote Mirrors API通过允许使用API​​配置基于HTTP的推送镜像来解决此问题。

"Visual Review小部件中列出更改的页面(STARTER及以上)

在Review App中,尤其是在静态生成的网站中,可能难以导航到更改的页面。通过查看应用程序和可视化评论,可以轻松地在修改页面上直接在"合并请求"中留下评论。

从GitLab 12.9开始,Visual Review工具的用户将能够使用下拉列表直接导航到在合并请求中修改的页面,从而更容易找到更改的页面并提供有关合并请求。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

提交Web IDE中的所有更改

在GitLab 12.7中,开始自动暂存Web IDE中的所有更改。如果所有更改在离开Web IDE之前未正确地进行,此措施还有助于防止意外丢失。

这是Web IDE工作流程中的一项重要更改,现在,通过从Web IDE中完全删除暂存工作流程,使此过程变得更加容易。现在,当用户在Web IDE中进行更改时,将不需要决定暂存或取消暂存所做的更改。将会有一个新的"更改"选项卡,其中包含所有已更改文件的列表。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等


Web IDE的白色语法突出显示主题

用户强烈希望使用的工具具有一致性,这是GitLab长期以来支持替代语法突出显示主题的原因。白色主题是整个GitLab中最受欢迎的主题,但是代码编辑器区域在应用匹配主题方面一直不一致。

现在,Web IDE与GitLab的存储库和diff区域中的White语法突出显示首选项一致。将继续扩展对Web IDE中语法突出显示首选项的支持。还将继续将GitLab 12.8中引入的深色主题扩展到Web IDE的其余部分,包括文件树和侧边栏等。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

在日志浏览器中支持分页

以前,日志浏览器在控制台上仅显示500行。限制了用户对事件进行分类时查看日志的能力。支持分页,用户可以选择自己喜欢的任何时间范围并无限滚动以查看无限数量的日志行。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

从事件深入到日志浏览器

以前,用户在对事件进行故障排除时很难找到相关的日志。从12.9开始,用户可以直接从事件向下钻取到日志浏览器,同时保留相同的时间范围,从而简化了对事件的调查并找到了根本原因。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

在自定义仪表板中支持其他查询变量

可以使用Prometheus查询创建和配置自定义仪表板。为了允许用户创建可在不同项目中使用的仪表板定义扩展了支持,可以在Prometheus查询中包括其他CI变量。

在12.9版本中,可以直接在度量标准图表中编辑自定义度量标准,而不是导航到Prometheus设置来编辑度量标准。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

度量图表中y轴的格式

为了改善y轴上的单位和表面精确数据的可视化,引入了对在度量图表上设置y轴格式的支持。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

从UI创建发布


GitLab现在为用户提供了从UI创建发布的功能。用户只需单击一下即可创建一个标签,该标签包含的发行版本的所有内容,包括发行说明,里程碑关联以及从作为资产存储的API添加的链接。对于直接从"发布"页面计划团队发布管理,而不是需要转到"标签"视图。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

禁用默认值和变量的继承

以前,用户可以使用default:关键字将某些参数设置为所有作业的全局默认值。但是,为特定作业禁用这些默认值需要手动覆盖每个设置,并且效率低下。此外,一旦将变量定义为全局默认值,就不可能阻止其继承。

在GitLab 12.9中,现在添加了禁用全局定义的默认值和变量的继承的功能。使用该inherit:参数,用户可以显式定义从全局默认值继承的内容,并更轻松地定义作业的行为。

在GitLab NPM注册表中找不到软件包时,使用npmjs作为默认的远程存储库(PREMIUM及以上)

GitLab NPM注册表允许用户在其源代码和管道旁边托管一个私有NPM注册表。如果GitLab NPM注册表是GitLab group_name范围内软件包的唯一来源,则此方法效果最佳。但是,通常当用户的私有软件包依赖于那些公共软件包时,用户也会使用相同的范围将开源软件包发布到全局NPM注册中心。

在GitLab 12.9中,很高兴地宣布,当在GitLab私有注册表中找不到该软件包时,现在可以将npmjs用作远程存储库。该功能将在实例级别自动启用,并且可以通过导航到实例级别的CI/CD设置禁用。

项目级代码搜索现在可靠响应

现在,在项目内搜索代码可以快速响应,大多数查询在250毫秒内完成。在此前版本的GitLab中,当禁用高级全局搜索时,生成大量结果的查询可能会需要10秒或更长时间的延迟。该改进会影响GitLab UI以及项目Blob搜索API。

设计URL的特殊降价渲染(PREMIUM及以上)

共享指向"设计"选项卡的链接是协作的重要部分,也是用户如何在注释或描述中显示"设计"的重要部分。当前,在markdown中共享指向"设计"标签的链接时,该链接很长且不合规则: /gitlab-org/gitlab/-/issues/12345/designs。

在新版本中,GitLab以可读的方式呈现这些链接,因此很容易在问题描述或注释中区分设计。

缩放设计现在支持完整宽度的长图像(PREMIUM及以上)

当网站布局在问题面板上载为设计时,它们的尺寸通常很高。宽高比通常用于内容很多且用户必须向下滚动的网站布局。在新版本,可以放大更长的设计,以便可以更轻松地以100%的宽度查看和评论该设计。

使用API​​可以进行组导出和导入

在GitLab实例之间进行迁移可能会遇到挑战,尤其是从自建GitLab实例到GitLab官网的迁移时组织可以在许多项目和组中组织其工作,这些迁移必须通过一次导出和导入一个项目来完成。

随着Group Export/Import MVC的发布,用户可以导出整个组并将其轻松导入到所需的GitLab实例中,支持GitLab在线仓库或者其他GitLab实例。

通过自定义证书颁发机构在网络中支持SAST(ULTIMATE)

GitLab实例现在支持自定义证书颁发机构的环境中利用SAST扫描。这允许进行高级网络配置,例如利用自签名证书或自定义证书颁发机构来启用HTTPS流量监控之类的用例。

可定制的价值流分析(PREMIUM及以上)

Value Stream Analytics通过提供与软件过程的计划,开发,审查,测试和生产发布相关的关键指标,使团队能够了解其开发过程的行为。在12.9GitLab用户可以更好地控制用来反映其过程的度量。对于每个生命周期阶段,团队负责人可以定义触发事件,这些触发事件定义何时将问题或MR视为已进入或退出该阶段。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

使用GitLab API创建和撤消项目和组部署令牌

部署令牌使用户可以git clone在不提供用户名和密码的情况下(通过SSH和)获取项目存储库或获取项目的Container Registry镜像。这使用户可以为其项目创建单个令牌,并避免使用个人访问令牌。但是,对于具有多个组,子组和项目的组织,为每个项目创建部署令牌效率低下且困难。维护者或管理员需要一种方法来轻松创建和撤销许多组和项目的部署令牌。

在GitLab 12.9中,很高兴地宣布,扩展了Gitlab API,允许用户在组/子组/项目级别创建,列出和吊销部署令牌。

在合并请求中标记过时的安全报告(ULTIMATE)

以前,无法从合并请求视图判断分支的安全报告是否已过时。这只能通过手动比较合并请求中的安全报告与master分支上的安全报告来解决。如果提交中源分支位于目标分支之后,则合并请求现在将显示所选分支的安全报告已过时。提供指导以使其更新。

减少符合条件的批准者的电子邮件通知(STARTER及以上)

GitLab提供了各种级别的通知,包括Participate,当参与合并请求或发布后,它会通知活动。但是,已被配置为合格合并请求批准者的人员将在其为合格批准者的每个合并请求上收到有关所有活动的通知。这使得除了最小的项目以外的所有电子邮件通知数量都激增了。

从GitLab 12.9开始,合格的批准者将不再被视为参与者,直至他们发表评论或批准合并请求为止。这会减少发送给合格审批者的电子邮件数量,让他们可以专注于重要的通知。如果想接收更多电子邮件,"监控"设置将通知有关该项目的任何活动。

通过Epics选问题列表(PREMIUM及以上)

现在,可以按Epics筛选问题列表。快速拉出问题列表,进行批量审查并与其进行交互以分配其他标签或里程碑。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

许可证合规性下的"新策略"选项卡(ULTIMATE)

以前,开发人员只能在合并请求中查看新添加许可证的许可证策略。使用GitLab 12.9,所有参与者现在都可以轻松查看项目中检测到的所有许可证的列表,以及为该项目配置的所有许可证策略的列表。开发人员可以轻松地主动验证项目中是否许可。此新视图还允许维护人员从新选项卡内添加或编辑许可证策略。

GitLab托管CodeSandbox进行客户端实时预览

在GitLab 11.2中,发布了由CodeSandbox支持的实时预览,使可以预览Web IDE中的简单Javascript应用程序和静态站点。该功能取决于CodeSandbox托管的脚本,但是由于与向第三方发送私人代码有关的安全问题,一些客户对使用该功能感到不满意。

通过GitLab在线仓库托管所需的软件包,以在Web IDE中启用实时预览。这是跨GitLab的自建实例实例启用此功能的第一步。在将来的版本中,将为自建实例实例提供一个配置选项,以托管所需的库本身,并且还将研究默认情况下为所有GitLab实例启用它。

查看发布,合并请求和Epics的更改历史记录(STARTER及以上)

问题、合并请求和Epics的描述可以自然地自由编辑。在过去,系统并没有记录更改,并且丢失了这些描述的历史。GitLab新版本中,会存储这些更新,并允许查看进行了哪些更改,进行了哪些更改以及何时进行的。

从一个页面查看所有Pod日志

在云原生世界中,日志分布在多个Pod中。以前,用户必须分别选择每个Pod才能查看其日志,这可能会带来挑战,因为Pod可以大幅扩展。在12.9中,增加了选择"所有容器"的功能,以帮助用户在单个视图中排除事件或验证其服务状态,而不必分别选择每个容器。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

日志聚合

作为2020年礼物的一部分,决定将监控阶段的日志聚合功能从GitLab Ultimate迁移到GitLab Core。从GitLab 12.9开始,所有用户都可以在GitLab UI中查看其基于Kubernetes的应用程序日志。

为所有gitlab配置的警报自动嵌入有问题的指标

当Prometheus警报被触发时,GitLab事件管理可以自动创建问题。度量图表有助于可视化引起警报的异常原因。以前,可以将图表嵌入到问题描述中,但这需要手动获取图表URL并将其粘贴到问题中。

从12.9版本开始,超出阈值的指标的图表可视化将自动嵌入到问题描述中。这种可视化为节省了战斗时间。可以立即获取重要信息,而无需访问外部资源并执行手动设置。

注意:此新功能仅适用于从GitLab的Metrics仪表板配置的警报。在未来的迭代中,计划为所有Prometheus警报启用自动图表。

按状态过滤错误列表

当信噪比很低时,挖掘大量错误以找到影响用户的重要错误可能是一个挑战。现在,可以按错误状态(忽略,已解决或未解决)在GitLab中筛选Sentry错误的列表视图,以消除问题并关注实际需要修复的问题。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

使用GitLab CI/CD安装Crossplane应用程序

使用GitLab CI/CD安装Kubernetes应用程序是一种在安装之前自定义GitLab托管应用程序的好方法。

作为此发行版的一部分,添加了使用GitLab CI/CD安装Crossplane的模板。通过GitLab CI/CD安装Crossplane图表,用户可以指定任何和所有Crossplane图表配置选项。

部署密钥和部署令牌将移至CI/CD设置

部署密钥和部署令牌功能被挪到"设置">" CI/CD"。之前的位置是"设置">"存储库"。

指定不能被Container Registry批量删除API的一部分删除的Docker镜像

对于拥有许多小组和项目的组织,通过使用批量标签删除API删除旧的,未使用的Docker镜像会更加有效。但是,目前尚没有简便的方法来表达诸如"无论如何,请勿删除此标签"之类的内容。由于可以删除release或master镜像,因此这在删除过程中带来了风险。

在12.9中,可以将name_regex_keep属性添加到批量删除API中,以防止删除与提供的正则表达式匹配的任何标记。现在,有一种更简单的方法来防止重要图像被删除!

改进了Google Cloud Storage(GCS)的GitLab容器注册表垃圾收集算法的性能

的用户对在旧的未使用的镜像上运行垃圾收集所需的长时间停机感到。对清除代码效率的改进意味着不必在两个错误的选择之间进行权衡:长时间停机或保留大量不需要的文件。

在GitLab 12.9中,使用GitLab容器注册表并利用GCS进行存储的实例的垃圾收集性能有了显着提高。在使用1.4GiB存储库进行测试时,该存储库是dev.gitlab上使用的10 TiB注册表的近似,观察到性能提高了95%。

跟踪合并请求中精心挑选的提交

跟踪交付给生产环境的一切非常重要。新版本中,将记录何时将合并提交挑选到要部署的分支中(通过UI或API完成时)。原始合并请求线程使用系统注释更新,该系统注释指示将合并提交精选到已部署的分支中,并且它也包含在已部署的合并请求列表中。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

使用Puma减少GitLab的内存消耗

GitLab正在将应用服务器从Unicorn切换到Puma,从而将GitLab的内存占用量减少40%。效率的提高可以使GitLab管理员利用较小的内存实例,从而降低服务的运营成本。与Unicorn的单线程模型相比,通过利用Puma中的多线程来提高性。Puma支持在Omnibus中可用,而Helm图表中是实验性的。计划将在GitLab 13.0 默认使用Puma作为应用程序服务器。

拖放支持上传设计

在此发行版之前,将设计上传到GitLab的唯一方法是单击并使用文件上传器。这种方法有效,但效率不如拖放。使用此版本,现在可以在"设计"选项卡中执行以下操作:

通过拖动新文件并将其放到dropzone中来上传新设计。

通过拖动具有相同名称的新文件并将其拖放到现有设计中,来上载现有设计的新版本。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

修复了查找未同步的Git LFS对象时Geo数据库超时的问题(PREMIUM及以上)

Geo将跟踪数据库与只读辅助数据库进行比较,以确定需要同步的内容。现有的设计已经过迭代和优化,将继续对其进行改进。如果Geo的数据库查询超时,则无法成功复制数据。在GitLab 12.9中,使用了一种新方法来同步Git LFS文件,从而消除了数据库语句超时的可能性。验证解决方案之后,该设计将推广到其他数据类型。

此外,这为允许Geo删除对Foreign Data Wrappers的依赖奠定了基础,添加它是为了提高性能,但使Geo变得更加复杂且难以维护。

更新了自建实例运行脱机SAST的步骤文档(ULTIMATE)

增强了文档,以更好地描述如何在自托管的脱机GitLab环境中运行SAST扫描。

这将使提高项目的安全性,同时在脱机环境中运行GitLab时仍可保持合规性。

Gitlab组件更新

Omnibus改进

在Geo二级数据库上升级PostgreSQL变得更加容易。pg-upgrade 现在支持在地理跟踪数据库节点上升级PostgreSQL。此前,升级地理跟踪数据库所需的postgresql['enable']被临时设置为设置true中gitlab.rb的文件。现在,只需pg-upgrade在跟踪数据库节点上运行命令。

现在支持使用外部PostgreSQL数据库时提供默认的语句超时。以前只能在使用内置的PostgreSQL数据库时设置。语句超时用于自动终止运行时间超过指定时间的查询。

GitLab 12.9 引入Mattermost 5.20,它是开源的Slack替代产品,其最新版本包括新的移动编辑器,桌面深色主题等此版本安全更新等。

GitLab图表改进

现在在Rails容器(任务运行器,Unicorn和Sidekiq)中启用了Bootsnap。Bootsnap优化并缓存计算,以加快Rails应用程序的启动时间。在此迭代中,看到启动时间减少了约14%,并有望在未来获得更大的收益。可以在其GitHub存储库中了解有关Bootsnap的更多信息。

Puma现在可以在GitLab图表(Unicorn子图表)中用作Unicorn 的替代应用程序服务器。与Unicorn相比,Puma可以减少40%的内存消耗。

Helm安装中对Puma的支持在12.9中处于试验阶段,但GitLab 13.0计划将其作为默认应用程序服务器。

GitLab app Runner 12.9

同期发布了GitLab Runner 12.9。GitLab Runner是轻量级的跨平台代理,可运行的构建作业并将结果发送回GitLab实例。它与GitLab CI结合使用,GitLab CI是GitLab附带的开源持续集成服务。更改包括:

为每个构建创建网络以将容器链接在一起

修复Job在Kubernetes中途终止时标记为成功的Job;

修复错误拨号后端:EOF Google Kubernetes Engine;

在Kubernetes执行器中允许来自配置的服务别名;

为每个构建的网络添加对Windows服务的支持;

为arm64提供rpm/deb软件包;

将CI_JOB_IMAGE添加到预定义的环境变量;

支持EKS IAM服务帐户(Web身份提供商);

为基于S3的缓存支持ECS任务IAM角色;

引入了Windows生命周期策略;

将Fedora 30添加到支持的操作系统;

在作业跟踪中添加执行阶段名称;

在作业级别覆盖kubernetes资源限制和构建容器的请求;

更多的变化,请参考GitLab Runner的CHANGELOG。

性能提升

GitLab将继续在提高每个版本的性能。不仅致力于使GitLab的各个实例更快,而且还致力于大大提高GitLab在线仓库(一个拥有100万用户的实例)的性能。

在GitLab 12.9中,在问题、项目和里程碑等方面提供了性能改进。

GitLab 12.9中的一些改进包括:

确保RepositoryLinkFilter可以正常处理Gitaly故障;

里程碑和受让人在GraphQl中的搜索问题;

惰性加载器,用于Epics的聚合;

在组里程碑视图中修复N+1;

设置Elasticsearch索引的批量API请求大小的上限;

现在,当有大量结果时,项目级代码搜索速度提高了10倍;

缓冲区写入ElasticSearch并使用Bulk API;

从数据库批量加载记录以进行Elasticsearch增量批量更新;

请求内联或并行差异,而不是在一个请求中从后端获取所有数据。

功能弃用

Auto DevOps的默认PostgreSQL

作为更新Auto DevOps支持Kubernetes 1.16的一部分,在GitLab 12.9中添加了Auto DevOps的启用功能,以使用PostgreSQL图表版本8.2.1。当前默认的PostgreSQL图表版本是0.7.1。在GitLab 13.0中,计划将默认的PostgreSQL图表版本从0.7.1切换到8.2.1。要保留旧的默认设置,需要将AUTO_DEVOPS_POSTGRES_CHANNELCI变量显式设置为1。要将现有的0.7.1 PostgreSQL数据库迁移到较新的基于8.2.1的数据库,请备份数据库,安装新版本的PostgreSQL并还原数据库。

生效日期:2020年5月22日

不建议使用DAST旧版入口点

正如现在支持使用/analyze在DAST配置,在gitlab 13.0中,切入点/zap/zap-baseline.py,/zap/zap-full-scan.py和/zap/zap-api-scan.py将被弃用。

在GitLab 13.0发布之后,调用这些入口点的任何配置都会中断。建议所有客户更新其配置,以使用/analyze入口点来避免DAST扫描中的任何中断。

删除日期:2020年5月22日

13.0版本安全扫描程序删除Docker中的Docker(DinD)中的Docker

自13.0起,GitLab Secure扫描仪不再使用Docker(DinD)中的Docker,以提高安全性并降低扫描的复杂性。GitLab安全产品将默认在供应商模板中开始使用非DinD模式。鼓励客户更新其供应商的模板以测试这种新行为。

删除日期:2020年5月22日

禁用Docker进行依赖性扫描

在Docker中为SAST禁用Docker

迁移日期:2020年5月22日

终止对Internet Explorer 11的支持

在GitLab 13.0中,将删除对Internet Explorer 11的官方支持。请参阅支持的Web浏览器列表。可以就此问题或通过常规支持渠道提供反馈。

迁移日期:2020年5月22日

GitLab代码片段内容搜索删除

随着继续为代码段进行版本控制,将进行更改以在UI和API中搜索代码段,从而从搜索结果中删除代码段内容。标题和说明内容可通过搜索和API访问。

迁移日期:2020年5月22日

删除PostgreSQL 9.6和10.x

为了利用PostgreSQL 11中改进的性能和功能(例如分区),计划在GitLab 13.0中要求最低为PostgreSQL 11。在Omnibus GitLab 12.8中添加了PostgreSQL 11。它将成为GitLab 12.10中的默认PostgreSQL版本。虽然Omnibus GitLab仍支持并捆绑了PostgreSQL 9.6和10.x,但它们将在GitLab 13.0中删除。

删除日期:2020年5月22日

GitLab软件包存储库的GPG签名密钥即将到期

GitLab PackageCloud存储库的GPG签名密钥即将到期,并将在四月的第一周进行更新。这意味着现有的谁已经在自己的机器配置GitLab包库用户通过使用apt,yum或者zypper,将不得不提取和添加新键,可继续从GitLab包库安装或更新包。

迁移日期:2020年4月5日

计划删除xy稳定的docker镜像,以使用安全产品的语义版本

GitLab Secure工具在历史上一直利用x-y-stable docker标签将扫描仪绑定到GitLab的发行版。正努力发布与工具的语义版本(Major.minor.patch)相匹配的docker镜像。语义版本控制具有许多优点,其中包括:Docker镜像版本将与每个分析器的版本匹配CHANGELOG,因此更容易理解特定版本的分析器具有哪些功能。用户可以选择自己的稳定性级别:无变化(固定为major.minor.patch),仅修补程序固定(固定为major.minor),新功能和修补程序固定(固定为major),前沿(固定为edge)。将继续发布x-y-stableDocker镜像,直到gitlab 13.0之前正式放弃对它们的支持。为防止此转换后带有自定义供应商模板的安全扫描作业失败,用户可以按照此问题了解有关如何更新/迁移现有模板的详细信息。

迁移日期:2020年5月22日

版本更新

有关升级到GitLab 12.9的重要说明

GitLab 12.9包含Mattermost 5.20。有关升级到此最新版本的Mattermost的重要升级说明,请参阅重要升级说明。

GitLab 12.9有一个用于检查后台迁移的新命令。这对于零停机时间升级很重要。有关详细信息,请参见。

Omnibus安装版本升级

对自建实例Omnibus安装版本,可以使用包管理器一键升级。

对于CentOS可以使用

sudo yum update gitlab-ce

会自动完成升级过程。

GitLab 12.9发布集成HashiCorp Vault、自定义的价值流质量报告等

docker部署版本:

对于docker方式部署的gitlab实例,先停止和删除旧的容器:

sudo docker stop gitlab

sudo docker rm gitlab

拉取gitlab官方最新的镜像:

sudo docker pull gitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)。

附上一个常见的gitlab docker启动参数如下:

sudo docker run --detach \\

--hostname gitlab.example.com \\

--publish 443:443 --publish 80:80 --publish 22:22 \\

--name gitlab \\

--restart always \\

--volume /srv/gitlab/config:/etc/gitlab \\

--volume /srv/gitlab/logs:/var/log/gitlab \\

--volume /srv/gitlab/data:/var/opt/gitlab \\

gitlab/gitlab-ce:latest

Docker compose部署版本

可一键升级:

docker-compose pull

docker-compose up -d


分享到:


相關文章: