会议由 pietroalbini 主持。会议记录由 pietroalbini 撰写。
参会人员:alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster
对话开始
将 crates.io 迁移到 CloudFront 之后
虽然 static.crates.io(托管所有已发布 crate 的源代码)位于 CloudFront 之后,但对于 crates.io Web 应用程序来说,今天的情况并非如此。这会导致问题,因为 crates.io 托管在 Heroku 上,这需要将 CNAME 指向 Heroku 的 DNS。不幸的是,crates.io 没有使用子域名,这阻止了我们使用 CNAME。我们所有的 DNS 区域都在 AWS Route53 上,但 AWS 只支持指向其他 AWS 资源的 apex CNAME。因此,crates.io DNS 一直在不同的服务上进行管理,直到今天,这导致了我们的维护问题。
我们正在努力的解决方案是将 CloudFront 放在 crates.io 前面,这将最终允许我们将 crates.io 域名迁移到 AWS。pietroalbini 正在完成最后的 infra 调整,我们预计将在未来几天内部署这些更改。
使用 Terraform 进行 DNS 管理
pietroalbini 向团队其他成员宣布,他开始着手将我们域名的 DNS 记录迁移到 Terraform。他已经迁移了 cratesio.com 和 crates.io 的区域,并计划在未来几周内迁移其他区域。pietroalbini 还编写了关于此设置的 文档。
另一个 GitHub Actions CI 配置原型
pietroalbini 继续研究我们的新 GitHub Actions 配置的另一个原型。重申一下,GitHub Actions 不支持模板或 include,因此基础设施团队正在寻找一种方法来减少管道之间的重复。
由于上周会议上提出的两个原型没有得到所有团队的喜欢,pietroalbini 继续进行实验,本周提出的原型基于 YAML 锚点,这是一种在单个文件中重用数据部分的标准 YAML 功能。不幸的是,GitHub Actions 显式禁用了 YAML 锚点,因此 pietroalbini 编写了一个小工具,该工具预先生成扩展的配置文件并将其提交到存储库中。
团队更喜欢这种方法,因为它不会引入任何新的配置语法,同时使配置文件保持可管理状态。pietroalbini 将完善该原型,并在未来几天内为其打开一个 PR。