竹笋

首页 » 问答 » 问答 » GitLab新版本1410增加增量式备
TUhjnbcbe - 2023/8/7 20:23:00

按惯例,昨天Gitlab发布了又一个月度版本14.10。新版本中的亮点包括个人合规性报告、用于流式审计事件的管理界面、支持Kubernetes的GitLabRunner、升级手动创建的事件等。更多功能请和虫虫一起学习。

主要功能改进

支持Kubernetes的GitLabRunnerOperator

GitLab13.10中,增加了适用于Kubernetes的RedHatOpenShift容器平台的GitLabRunnerOperator。该版本为OpenShift用户提供了OperatorFramework的自动化和管理功能,并简化了OpenShiftKubernetes集群中运行器的持续管理。

从14.10发布GitLabRunnerOperatorv1.7.0,可以在非OpenShiftKubernetes集群中使用它。

新的DORA指标API:更改失败率(ULTIMATE)

在新版本中,又添加了一个DORA度量API,更改失败率。GitLab以事件数量除以给定时间段内生产环境的部署数量来衡量变更失败率。DORA指标使投资于DevOps转型的管理者能够了解其正在实施的流程和购买的工具的投资回报率。这些指标的变化可以很容易转化为团队的KPI。

从GitHub导入默认为当前组路径

从GitHub导入时,该里程碑将导入项目的默认目标更改为开始导入的GitLab组的上下文命名空间。之前,GitHub项目会统一导入到个人命名空间。这种可用性增强可帮助用户以更直观的方式导入项目,并且不会将导入的项目置于混乱的位置。

增量存储库备份减少备份时间

新版本中新增加了一个增量备份功能。至少进行一次完整备份后,以后可以运行后续增量备份,这些备份仅将自上次备份以来的存储库更改打包到备份包中。这大大减少了备份时间。

在自建GitLab实例上,默认启用增量备份。要禁用该功能,需要管理员设置功能标志incremental_repository_backup。基于一个完整备份,后续可以使用BACKUP=timestamp_of_backup选项来选择要使用的备份。

要创建增量备份,运行:

sudogitlab-backupcreateINCREMENTAL=yes

也可以使用以下命令从未解压的备份SKIP=tar创建增量备份:

sudogitlab-backupcreateINCREMENTAL=yesSKIP=tar

在UI中为标签创建管道计划

以前,只能使用API为标签创建管道计划。使用管道调度UI的更简单方法只能用于分支。

现在,当使用管道调度UI时,可以根据需要从分支或标签中进行选择,不再需要使用API。

使用Helm安装Kubernetes代理

Kubernetes的GitLab代理有一个需要安装到用户集群中的组件。之前提供了基于Docker的单行安装程序和基于Kpt的高级安装方法。由于Helm是安装Kubernetes应用程序的常用方法,因此使用Helm包替换基于Docker的安装程序。

已经用新的Helm包替换了基于Docker的安装方法,因为我们希望用户已经安装在本地机器上。

Helm包存在于charts.gitlab.io和ArtifactHUB存储库中。

将指标屏幕截图上传到警报

GitLab13.2在GitLab告警中引入了指标选项卡。但是,随着Metrics页面上的GitLab托管应用程序和警告的弃用,指标将不再自动填充到新警报中,并且很难支持旧告警。新版本完成了旧指标功能的弃用,并引入了向警报添加屏幕截图的功能,类似于如何将屏幕截图添加到事件中。拥有触发警报的指标的屏幕截图有助于响应者更有效地对警报进行分类。

Geo验证CI作业工件

Geo自动验证复制的CI作业工件的数据完整性。这确保了工件在传输或静止时不会损坏。如果将Geo用作灾难恢复策略的一部分,则可以保护客户免受数据丢失。

单页面上查看所有项目导入的历史记录

新的项目导入历史页面列出了所有项目导入,无论它们是从哪里导入的。此视图整合了以前分散在个引入源的进口页面上的信息。

在一个视图中包含有关先前导入的所有详细信息,可以在一个位置查找和查看所有先前导入的状态。这包括有关导入失败的详细信息,以便您可以验证是否已成功导入所有预期项目。

在实例级别设置的CI/CD限制

为了控制资源使用以支持实例稳定性,对高CI/CD使用率的实例的GitLab管理员可能希望为特定CI/CD事件添加限制。比如设置单个管道中的最大作业数、活动管道中的最大并发作业数或每个项目的最大预定管道数。

新版本中,GitLab实例管理员现在可以直接在实例的管理区域面板中设置这些限制(和其他限制)。

组runner的扩展视图

组运行器现在显示在扩展视图中,可以在其中更轻松地管理和管理与命名空间关联的运行器。要查看新UI,请在左侧边栏中选择CI/CD。此视图包括与组和子组关联的在线、离线和过时运行器的数量。

改进的管道变量继承

以前,可以通过触发作业将一些CI/CD变量传递到下游管道,但无法转发在手动管道运行或使用API中添加的变量。

在此版本中,新添加了一个关键字trigger:forward来控制转发到下游父子管道或多项目管道的内容,这提供了一种灵活的方式来处理下游管道中的变量继承。

部署审批API的多个审批规则(PREMIUM)

之前部署批准支持一个简单的模型,其中执行部署和批准部署的能力都由单个用户列表控制。新版本中可以更灵活、更细致地使用这些规则,并且可以使用API指定多个控制级别。现在可以支持的一种模型是组织中的部署执行者和批准者之间的职责分离。另一个受支持的模型是需要与多个级别分开批准的情况,例如QA测试人员组和安全组。

Helm图表中默认启用Kubernetes的代理服务器

在自建实例中使用Kubernetes代理的第一步是启用代理服务器,这是Kubernetes代理的后端服务。

在GitLab14.8中,基于Omnibus的安装启用了代理服务器。该功能在过去几个月中已经成熟,因此现在GitLabHelm图表中默认启用代理服务器,以简化GitLab管理员的设置。除了默认启用之外,代理服务器还接受各种配置选项以根据您的需要对其进行自定义。

Omnibus套件更新

GitLab14.10中,Mattermost版本更新到了6.5,其最新版本包括自定义组、跨团队频道导航、Playbook导入、导出和复制、改进的面板共享、Bitbucket集成、工作区优化、改进的面板体验、波斯语支持等等。

GitLabRunner14.10

同期还发布了GitLabRunner14.10。GitLabRunner是轻量级、高度可扩展的代理,可运行构建作业并将结果发送回GitLab实例。新增加功能包括:

配置工件下载路径;

脚本行时间戳改进。

GitLab图表改进

GitLab14.10包含了Sidekiq的health_checks.port修复,默认端口被设置为.。这确保Sidekiqpod将分别监听指标和健康检查,从而Kubernetes修复探测器的行为。

安全和合规性

合规报告个人违规报告(ULTIMATE)

合规性报告可以给出每个MR的违规信息。与之前的版本相比,这是一个巨大的改进,之前的版本只显示最新MR有一个或多项违规。新版本允许查看一段时间内的违规历史和模式。

这些违规行为单独列出,因此以查看导致违规行为的原因、涉及的人员以及发生时间。可以选择违规以显示有关导致它的合并请求的更多信息。另外还添加了一些适用性功能,包括过滤和排序,以帮助快速定位到所需的内容。

流式审计事件的用户界面(ULTIMATE)

现在可以使用GitLabUI在组中设置流式审核事件。在组审计事件页面的新Streams选项卡下访问它。

在该界面可以实现:

添加和删除流式审核事件目标。

查看流审计事件发送到的位置列表。

上报手动创建的事件(PREMIUM)

事件管理设置为触发新警报的升级策略。在这种情况下,被呼叫的on-call响应者可以通过确认警报来结束寻呼。如果响应者将状态更改回已触发,我们将重新启动升级策略并再次开始分页。当用户手动创建事件时,没有关联的警报,因此无法寻呼待命响应者。

该版本支持对手动创建的事件进行分页。响应者现在能够确认事件页面,或通过将状态重置为已触发来重新启动页面,就像警报一样。

SAST支持更快、更轻松地进行Java扫描

GitLab静态应用程序安全测试(SAST)现在支持Semgrep扫描Java代码。在支持了JavaScript、TypeScript、Python(GitLab13.12中引入)和Golang(在GitLab14.4中引入)之后这是有一个里程碑。

基于Semgrep的分析器比基于SpotBugs的现有运行速度明显更快,最高可以提高7倍速度。在扫描之前也无需编译代码,比SpotBugs使用也要简单得多。

静态分析和漏洞研究团队合作将规则转换为Semgrep格式,保留大多数现有规则。在转换规则时更新、改进和测试了规则。

如果使用GitLab管理的SAST模板(SAST.gitlab-ci.yml),Semgrep和SpotBugs现在都会在发现Java代码时运行。在GitLabUltimate中,安全仪表板结合了来自两个分析器的结果,因此不会看到重复的漏洞报告。

在GitLab15.0中,我将更改GitLab管理的SAST模板(SAST.gitlab-ci.yml)以仅运行基于Semgrep的Java代码分析器。基于SpotBugs的分析器仍将扫描其他JVM语言,如Groovy、Kotlin和Scala。

如果对新的基于Semgrep的Java扫描有任何疑问、反馈或问题,请提交问题。

静态分析分析器更新

GitLab静态分析包括GitLab静态分析团队积极管理、维护和更新的许多安全分析器。14.10版本中,也有大量更新。

Gosec分析器更新到版本2.11.0:

添加潜在目录遍历规则

1
查看完整版本: GitLab新版本1410增加增量式备