内容提要
GitLab 16.8发布,新增GCP Secret Manager集成以在CI/CD中安全调用密钥,Maven依赖代理缓存外部Java包以加速构建并提升可靠性。Workspaces正式可用,支持按需远程开发环境。新增基于DORA指标的DevOps绩效基准面板、问题分析速度视图和组级分析仪表板。还支持强制管理员启用2FA、按工作区限制CPU和内存、文件页直接查看blame、Kubernetes 1.28支持、自定义角色新权限、更智能的合并请求审批重置及CI/CD组件目录等改进。
延伸解读
密钥管理集成降低CI/CD泄露风险
GitLab 16.8 新增 GCP Secret Manager 集成,允许 CI/CD 作业直接获取存储在 Google Cloud 中的密钥。这减少了在 GitLab 变量或代码中硬编码敏感信息的需要,从而降低泄露风险。对于已使用 GCP 的团队,该集成简化了密钥调用流程,但需注意它仅适用于 GCP 环境,其他云平台用户仍需依赖现有方案。
Maven 依赖代理兼顾速度与一致性
Maven 依赖代理通过缓存外部 Java 包来加速构建:首次拉取后包会存入 GitLab 项目,后续请求直接使用缓存,即使外部仓库故障也不影响构建。代理还会检测外部包变更并使缓存失效,确保版本正确。这有助于提升流水线可靠性和安全性,但每个项目仅支持添加一个外部 Java 仓库,可能限制多源依赖的场景。
Workspaces 正式可用,资源控制更精细
Workspaces 结束测试正式可用,提供按需远程开发环境,支持私有项目、SSH 连接和错误处理改进。新增按工作区设置 CPU 和内存请求与限制的能力,可防止个别开发者过度占用云资源,有助于控制基础设施成本。该功能平台无关,可利用现有云基础设施托管,适合需要快速 onboarding 和标准化开发环境的团队。
DORA 基准与审批优化提升协作效率
新增基于 DORA 指标的 DevOps 绩效面板,可对比行业基准,帮助管理者识别改进领域。合并请求审批现在基于 patch-id 判断,仅当变更新增实际修改时才重置审批,避免因 rebase 无实质变更而重复审批。此外,自定义角色新增管理访问令牌、组成员等权限,支持更细粒度的权限控制,但需注意升级前必须经过 16.7 版本。
Q&A
GitLab 16.8 如何支持在 CI/CD 中使用 GCP Secret Manager 的密钥?
GitLab 16.8 新增了 GCP Secret Manager 集成,可以轻松检索存储在 GCP Secret Manager 中的密钥并在 CI/CD 作业中使用,从而简化与 GCP Secret Manager 的交互过程,帮助简化构建和部署流程。
Maven 依赖代理如何加速构建并提升可靠性?
在 GitLab 项目中添加一个外部 Java 仓库后,使用依赖代理安装包时,GitLab 会先检查项目内是否有该包;如果没有,则从外部仓库拉取并导入项目。下次拉取同一包时直接从 GitLab 获取,不再访问外部仓库。即使外部仓库连接出现问题,只要依赖代理中有该包,拉取仍可正常工作,从而使流水线更快、更可靠。如果外部仓库中的包发生变化,依赖代理会检测到并使包失效,确保下载正确的包,减少安全漏洞。
Workspaces 现在正式可用了吗?它有什么好处?
是的,Workspaces 已正式可用。通过创建安全、按需的远程开发环境,可以减少管理依赖和 onboarding 新开发人员的时间,专注于更快交付价值。平台无关的方法允许使用现有云基础设施托管工作区,保持数据私密和安全。自 16.0 引入以来,Workspaces 在错误处理和协调、对私有项目和 SSH 连接的支持、额外配置选项以及新的管理员界面等方面进行了改进,使其更灵活、更有弹性且更易于大规模管理。
如何强制 GitLab 管理员启用双因素认证(2FA)?
在自管理实例中,现在可以强制要求 GitLab 管理员使用双因素认证(2FA)。如果启用了该设置,而管理员尚未使用 2FA,则必须在下次登录时设置 2FA。
GitLab 16.8 在 DevOps 绩效基准方面有哪些新功能?
GitLab 16.8 在价值流仪表板中新增了 DORA Performers 评分面板,可视化组织在不同项目中的 DevOps 绩效状态。该面板显示 DORA 评分(高、中、低)的细分,使高管能够全面了解组织的 DevOps 健康状况。四个 DORA 指标开箱即用,现在通过新的 DORA 评分,组织可以将自己的 DevOps 绩效与行业基准或同行进行比较,帮助高管了解自身位置并识别最佳实践或落后领域。
如何限制每个工作区的 CPU 和内存使用量?
除了在 devfile 中按项目配置 CPU 和内存使用量外,现在还可以按工作区设置 CPU 和内存使用量。通过在 GitLab agent 级别配置请求和限制,可以防止个别开发人员使用过多的云资源。
GitLab 16.8 对合并请求审批重置做了哪些改进?
合并请求审批现在与 git-patch-id 对齐。git-patch-id 是一个相对稳定且唯一的标识符,通过比较 rebase 前后的 patch-id,可以判断是否引入了应重置审批的新更改。这样,如果 rebase 没有引入新更改,就不会不必要地使现有审批失效,从而避免作者重新寻求审批。
GitLab 16.8 支持哪个版本的 Kubernetes?
GitLab 16.8 添加了对 Kubernetes 1.28 版本的全面支持,该版本于 2023 年 8 月发布。如果应用程序部署到 Kubernetes,现在可以将连接的集群升级到最新版本并利用其所有功能。