所在的位置: js >> js市场 >> GitLab146优化Geo高可用,安

GitLab146优化Geo高可用,安

北京中科白殿风医院正规吗 https://wapyyk.39.net/bj/zhuanke/89ac7.html

昨天,GitLab官方按照管理发布了有一个月度版本GitLab14.6的发布,这也是本年度收官版本。14.6中在安全合规性方面,在Geo方面以及MD代码块一键复制等方便做了优化,另外还在UI图标方面发布了一套全新的图标。详细情况请和虫虫一起学习。

GitLab14.6主要改进

使用Geo实现无缝的全球性能(PREMIUM)

在GitLab14.6之前,可以为所有Git操作使用一个统一的UR设置Geo。但是,每个Geo副本都有自己的WebUI和API访问URL,因此用户必须知道其使用的特定Geo副本的URL。Geo副本的WebUI也是只读的,限制用户查看页面并要求去主站点上执行更改。

在GitLab14.6中,GEO辅助站点透明地将写入请求代理到主站点,同时加速大多数读取请求。系统管理员可以为整个组织的所有GitLab用户提供一个URL,该URL会自动使用离他们最近的Geo站点。用户无需使用不同的配置适配Geo,也不用担心哪些操作在Geo二级站点上不起作用。全球分布的团队现在受益于加速gitclone或gitpull命令,以及无缝的全球体验。

默认情况下为新的Geo安装启用辅助代理和统一URL支持。还可以在现有Geo安装上设置统一URL并启用辅助代理。

GitLabAgent的活动信息

能够监控集群的活动有助于检测和排除故障事件,并在它们成功时放心。GitLab现在随附记录实时事件的GitLab代理的活动列表。第一个实现记录连接和令牌状态,并将在未来版本中跟踪更多事件。

无缝切换维基编辑器

使用新的丰富的Markdown编辑器编辑wiki页面,让每个人都可以更轻松地做出贡献,无论他们对Markdown语法的了解程度如何。在某些情况下,可能还喜欢编写原始Markdown,但使用WYSIWYG界面进行更复杂或乏味的格式化任务,例如创建表格。

以前版本的GitLab要求在丰富的Markdown编辑器和Markdown源之间切换之前保存更改,这给编辑增加了更多的步骤和摩擦。在GitLab14.6中,现在可以在两种编辑体验之间无缝切换,而无需提交更改,随时选择适合需求的编辑器。

在贡献日历图表中可见的私人贡献

在新本中,更改了用户配置文件中的贡献日历图表显示贡献的方式。私人贡献显示在贡献列表中,但未显示在贡献日历图表中,用户配置文件并未完全代表用户贡献。

使用API将组转移到父组

在新本中,添加了使用GroupsAPI将组转移到新父组的功能。之前,该操作只能通过过UI实现。

使用GroupsAPI将子组移动到不同的父组并将子组变成顶级组。

管理员和用户可以使用此新功能:

要转移组的角色。

如果转移组,则允许在新的父组中创建子组。

如果将子组转换为顶级组,则允许创建顶级组。

一键复制Markdown中的代码块

现在可以通过单击在Markdown复制代码块,而不是选择块中的所有代码并使用键盘将其复制到。

全新清新图标系

GitLab中的产品图标已更新为:

与其他UI元素更加平衡。

更好地与品牌保持一致。

通过允许更容易地迭代和新图标的引入,被构建为更加面向未来。

在浅色和深色UI中都能很好地工作。

更好地传达抽象概念和隐喻。

查看内联使合并请求线程过时的更改

在处理合并请求中的审阅反馈时,经常更改审阅者行。在这些评论线程中,GitLab表示进行了新的更改。但是,要了解这些新更改是否针对反馈,审阅者必须离开讨论的上下文。

新版本中在查看与旧更改相关的线程时,可以直接在线程中查看新更改。这种改进的上下文可帮助您更快、更准确地复习。

GitLabRunnerPod清理

如果有剩余的KubernetesRunnerPod,现在可以使用GitLabRunnerPodCleanup来清理它们。该开源实用程序与GitLabRunnerManager一起安装在Kubernetes集群中,并在配置后删除集群中孤立的runnerpod。当使用GitLabRunner的Kubernetes执行器大规模执行CI/CD作业时,新程序可减少维护开销。

在CI/CD配置中支持job:when

以前,不可能将GitLabCI/CD作业配置为在作业级别同时定义rules和when关键字。必须when在每个rules部分都添加内部,这可能会导致CI/CD配置过长或重复。

在新版本中,取消了该限制,现在可以when在作业级别使用rules.这使得when更灵活,并有助于创建更简单的作业配置。

从UI启用依赖代理清理策略

可以使用GitLab依赖代理代理和缓存来自DockerHub的容器镜像,以实现更快、更可靠的构建。随着时间的推移,团队可能会向缓存中添加许多项目,从而导致更高的存储成本。

已经能够通过使用API清除整个缓存来解决此问题。但这是低效的,因为只想删除不再使用的陈旧过时的项目。这就是我们为依赖代理添加清理策略的原因。您可以以编程方式从团队最近未使用的缓存图像标签中删除。但是,此功能需要您使用GraphQL,如果不经常使用它,则效率很低。

新版本中,可以从用户界面为依赖代理启用自动生存时间(TTL)策略。通过设置注册表依赖代理,并启用设置以在90天后自动从缓存中清除项目。

使用部署令牌下载Composer依赖项

现在可以使用部署令牌来验证与Composer存储库交互的用户。此前,个人访问令牌和作业令牌可用于对从GitLabComposer存储库发布和下载Composer依赖项的用户进行身份验证。这些令牌与特定用户相关联。部署令牌提供了一种与特定用户无关的身份验证方法,确保生产工作流程更加高效和安全。

支持RetireJS的HTTPS代理设置(ULTIMATE)

依赖扫描现在通过尊重HTTPS_PROXY环境变量来支持Retire.js中的代理设置。如果HTTPS_PROXY设置,它将retire作为CLI选项传递到命令行。

自动删除旧的部署git引用

随着项目的不断部署,部署的数量可能会大幅增加。为了保持Git命令的高性能,我们添加了自动删除旧部署的Git引用。GitLab将保留每个项目最近的个部署,并自动删除其他项目的Git引用。

Geo验证四种附加数据类型(PREMIUM)

GitLab将上传、LFS对象、页面部署和外部合并请求差异等数据存储在文件系统或对象存储中。Geo将这些数据复制到一个或多个辅助站点,以提高分布式团队的生产力或作为灾难恢复策略的一部分。当存储在文件系统中时,Geo现在还自动验证复制的上传、LFS对象、页面部署和外部MR差异的数据完整性。这确保它们在传输或静止时不会损坏。如果使用Geo作为灾难恢复策略的一部分,这将提供额外的数据丢失保护。

Markdown中呈现引用问题的标题

在Markdown字段中引用问题、Epic或合并请求时,以前无法显示和显示除ID之外的其他上下文。现在可以附加到问题、Epic或合并请求引用以呈现标题。

Squash提交消息模板

Squash提交是通过在合并时组合所有提交来清理合并请求的提交历史的好方法。分支历史变得更容易阅读和遵循,而变化后台信息保持不变。GitLab之前使用合并请求标题作为默认的提交消息。如果您在合并前未编辑消息,则有关更改的重要详细信息可能会丢失。

项目维护人员现在可以根据项目需要自定义默认的提交消息。包括有关每个合并请求的详细信息,例如源分支和目标分支,以及有用的变量。有了更完整的提交消息,每个人现在都可以更好地了解更改的上下文。

API响应中返回的作业失败原因

使用API收集有关作业失败原因的数据可能很困难。例如,可能需要准确的失败原因以更好地使用retry:when关键字。

现在,在对JobsAPI的响应中添加了failure_reason,这样收集作业失败数据要容易得多。

为待处理作业触发的Webhook

以前,使用作业事件Webhook进行CI/CD监控具有挑战性,因为很难跟踪项目中可能存在的作业数量。

现在,当作业状态更改为pending时,Webhook会触发事件,因此不再需要实施变通方法或自定义集成来跟踪所有作业状态。

仅使用name和发布Conan包version

使用GitLabConan存储库来发布和共享的C/C++包。当创建一个Conan包,有四个领域要考虑:name,version,user,和channel。这些字段唯一地标识一个包。该user和channel字段是可选的Conan2.0,但GitLab需要继续使用它们。自定义命名约定以匹配GitLab中的要求而不是Conan设置的标准是低效且不切实际的。

新版本中更新了GitLabConan存储库以与Conan保持一致。现在可以使用或不使用user和channel字段发布和下载Conan包。

Omnibus套件更新

Mattermost升级为了6.1,新版本包括团队中最近提及和保存帖子的单一视图、快速访问最近使用的反应、定时请勿打扰、剧本和板预览、Playbooks和面板预览,改进的通知和板计算。还包括安全更新,建议从早期版本升级。

GitLab14.6附带了适用于amd64和arm64架构的Debian11Bullseye软件包。

安全和合规性审计

设置最大SSH密钥生命周期(ULTIMATE)

管理员现在可以设置SSH密钥可以保持有效的最大天数。对于有合规性要求定时间间隔后强制执SSH密钥到期的组织尤其有用。GitLab已经能够设置个人访问令牌(PAT)可以保持有效的最大天数,并且此功能以类似的方式工作。

要设置此新限制,管理员可以导航到管理区域并选择设置常规。通过展开帐户和限制以设置SSH密钥的最大允许生命周期(以天为单位)来查找新设置。

依赖列表中的容器扫描结果(ULTIMATE)

安全团队、合规团队和开发人员必须全面了解项目使用的所有依赖项。默认情况下,容器扫描作业现在将任何已识别的系统依赖项添加到依赖项列表中。此系统依赖项列表与依赖项扫描作业标识的任何应用程序依赖项一起出现。用户现在可以在安全与合规性依赖项列表页面上的一个集中位置查看项目依赖项的完整列表。

SAST扫描执行策略(ULTIMATE)

用户现在可以要求SAST扫描定期运行或作为项目CI管道的一部分运行,而与.gitlab-ci.yml文件的内容无关。这允许安全团队单独管理这些扫描要求,而无需开发人员更改配置。可以在安全与合规策略页面上开始使用安全策略。要指定SAST扫描,请将字段设置为scansast

默认启用WebAuthn

新版本中默认启用WebAuthn。用户现在可以在Apple设备上使用TouchID作为第二个身份验证因素,只要他们的浏览器支持它。这也消除了在弃用U2F而支持WebAuthn的浏览器中看到的错误消息。

SAST和秘密检测的自定义规则集可组合性(ULTIMATE)

正在改进我们在GitLab13.5中引入的SAST和秘密检测的自定义规则集功能。自定义规则集让用户可以根据组织的偏好定制SAST和秘密检测分析器的行为。为了改进此功能,新引入了从多个源添加规则的功能,例如Git存储库、本地文件和原始源更改。此更改使合成和管理来自不同位置的多个自定义规则集变得更加容易,组织可以使用这些规则集跨存储库和源继承规则以获得更大的灵活性。最初,该更改适用于SASTSemgrep、Nodejs和Gosec分析器以及秘密检测.未来版本中将此功能扩展到其他分析器。

静态分析分析器更新

GitLab静态分析由一组许多安全分析器组成,GitLab静态分析团队积极管理、维护和更新这些分析器。14.6版本中带来了额外的覆盖范围、错误修复和改进。

Spotbugs更新到v2.28.11:

Log4j库更新为补丁版本(v4.5.2);

修复自定义CA证书支持。

PMD更新到v2.12.10:主动删除Log4j库。

Semgrep更新到v0.76.2;

Gosec更新到v2.9.5;

如果使用GitLab托管的供应商SAST模板(SAST.gitlab-ci.yml),则无需执行任何操作即可接收这些更新。但是,如果覆盖或自定义自己的CI板,则需要更新CI配置。要保留任何分析器的特定版本,可以固定到分析器的次要版本。固定到以前的版本会阻止接收自动分析器更新,并要求在CI模板中手动增加分析器版本。

变量DS_EXCLUDED_PATHS行为更改为预过滤器(ULTIMATE)

对于依赖扫描变量的用户DS_EXCLUDED_PATHS,它现在将进行预过滤。依赖扫描现在会DS_EXCLUDED_PATHS在搜索支持的项目时考虑,并将预先过滤掉那些匹配的项目。预过滤可防止分析器在处理已使用DS_EXCLUDED_PATHS.这使用户可以根据需要跳过依赖文件并构建文件,并且在某些情况下可以提高性能。

此更改于年12月2日针对gemnasium、年12月6日针对gemnasium-python和年12月日针对gemnasium-maven进行。此更改适用于所有版本,因为更改已向后移植。

将问题提升为事件的快速行动

在为某个问题投入时间和精力后,有时参与者会意识到该问题实际上是一个事件。利用快速操作/promote_to_incident,用户现在可以将问题升级为事件。当问题被提升时,所有现有的上下文(标题、描述、标签、受让人、评论等)仍然是事件的一部分。

自定义容器扫描漏洞的重复数据删除(ULTIMATE)

扫描镜像时,容器扫描默认假设镜像命名约定在镜像标签中存储任何特定于分支的标识符而不是镜像名称。对于遵循分支名称是映像名称一部分的命名约定的客户,此默认设置使扫描程序无法正确删除相同漏洞的重复数据。现在可以通过CS_DEFAULT_BRANCH_IMAGE在容器扫描作业中指定新变量来自定义默认设置。默认情况下,为使用AutoDevOps的项目设置此变量。这允许合并请求中的安全检查通过删除默认分支中已经存在的任何漏洞来正确识别新漏洞和预先存在的漏洞。

SAST对.NET6的支持

Microsoft发布的.NET6.0是.NETCore的下一个主要版本,它包含巨大的性能提升和新的计算选项,并且应该支持简化的.NET代码。GitLab.NETSAST分析器SecurityCodeScan以支持这个新版本,SAST语言检测也支持它,允许GitLabSAST自动检测.NET6项目。由于向后兼容性问题,如果想利用这个新的.NET6SAST扫描,将需要更新的.gitlab-ci.yml文件以固定到安全代码扫描的新主要版本。可以将此代码段添加到的.gitlab-ci.yml文件中以尝试这些新的扫描功能。在未来的版本中,即将在GitLab15.0中废除和删除3.0之前的任何.NET版本的SAST扫描。在GitLab15.0中,将推动这个新版本的安全代码扫描默认运行,将启用.NET5和6SAST扫描,而无需实验标志。

取消关联安全策略项目(ULTIMATE)

项目所有者现在可以取消安全策略项目与开发项目的链接。为此,首先导航到安全与合规性策略,然后选择编辑策略项目按钮。然后选择垃圾桶图标以取消链接先前关联的安全策略项目。

GitLabRunner14.6

同期还还发布了GitLabRunner14.6,主要更新有:

始终在gitlab_runner_jobsPrometheus指标中包含idle值

Bug修复:

PWSHExecutor无法在作业失败时终止

永远不会删除旧的Runnerpod。

GitLabHelmchart改进

GitLab4.6中,捆绑的NGINXIngressController已升级到v1.0.4。对于使用图表内NGINXIngressController的用户,Kubernetes的新最低版本为1.19。

Bug修复

14.6中还进行了大量的bug修复:

运行手动作业时的原始变量不会在作业重试时重用。

当被阻止的SAML用户尝试登录时,user_failed_loginwebhook会导致无限循环。

Elasticsearchpassword中不支持特殊字符。

修复GITLAB_USER_LOGIN偶尔不正确的值。

修复CI分钟使用图表反向显示时间。

服务台自定义邮箱应检查其他标题。

为组禁用依赖代理页面时隐藏它。

如果ContainerRegistry以只读模式启动,请禁用上传清除程序。

修复由于验证错误导致的ContainerRegistry推送失败。

如果ContainerRegistry数据库凭据错误,则修复恐慌。

对CI分钟图表应用程序的月份进行排序。

修复CI/CD关闭时可用的CI/CD设置。

修复管道页面中损坏的分段控件。

当任一管道没有覆盖报告时,修复覆盖批准规则同步中的错误。

在问题板上设置标签会产生乱码结果。.

在MR搜索中按迭代过滤不起作用。

在范围迭代的问题板上创建问题不会将其分配给当前活动的迭代。

问题导出到CSV忽略负标签过滤器。

YAML错误导致安全策略执行失败。

将漏洞检查字段添加到API文档。

使用$CI_JOB_TOKEN按标签名称获取发布返回ProjectNotFound的错误。

可用性改进

在GitLab14.6中,在问题、项目、里程碑等提供了可用性改进:

将“上次活动”列添加到/admin/users中的CSV导出。

在UI中过滤和显示陈旧的跑步者。

重新定位工具栏中的在线跑步者文本数量。

运行程序管理页面的版本字段溢出IP地址。

在runnertable中的列之间添加空格。

pages:deploy作业已切换作业表中的列。

在项目中提供来自AnalyticsCI/CD的失败管道的链接。

更新依赖代理副本和标签。

在迷你管道图中垂直对齐上游和下游管道。

包列表:更新管道元数据。

改进了批量删除容器镜像标签的用户体验。

依赖代理TTL的新设置。

修复在合并请求中调整文件浏览器的大小。

合并请求中超过13个文本改进。

用户需要更多有关代码搜索结果上次修改时间的信息。

突出显示时代码行号的地址颜色对比。

VSA:创建和删除选项应在VS下拉菜单中保持可见。

允许用户设置要在MR小部件中显示的规则名称。

漏洞报告:替换管理员图标。

作业运行时间总是标题为“已用时间”。

不支持EpicsAPI中的过滤器。

将parent_iid和parent链接添加到EpicsAPI。

功能变更和删除

免费层中将触发管道的数量限制为5K

变更日期:年12月22日

单个项目中的大量触发管道会影响GitLab的性能。在GitLab14.6中,将GitLabSaaS上单个项目中的触发管道数量限制为。该更改仅适用于免费套餐中的项目,Premium和Ultimate不受此更改的影响。

发布CLI作为通用包分发

变更日期:年12月22日

新版本中CLI将被释放作为一个普通的包在GitLab14.2起。将继续将其作为二进制文件部署到S3,直到GitLab14.5并停止在GitLab14.6的S3中分发。

升级更新

Omnibus

通过Omnibus安装的自建实例可直接使用Linux包管理器可以升级。例如对CentOS:

yumupdata/installgitlab-ce

就能自动完成升级:

Docker

先停止和删除旧的容器:

sudodockerstopgitlab

sudodockerrmgitlab

然后Pull官方最新镜像:

sudodockerpullgitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)即可,比如:

sudodockerrun--detach\

--hostnamegitlab.example.


转载请注明:http://www.aierlanlan.com/rzdk/5203.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了