会议由 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 只支持将根域(apex)的 CNAME 指向其他 AWS 资源。因此,直到今天,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 anchors,这是一种标准的 YAML 特性,用于在单个文件内重用部分数据。不幸的是,GitHub Actions 明确禁用了 YAML anchors,因此 pietroalbini 编写了一个小型工具,用于预先生成展开的配置文件并提交到仓库中。
团队更喜欢这种方法,因为它在保持配置文件处于可管理状态的同时,没有引入任何新的配置语法。pietroalbini 将完善该原型,并在未来几天内为其提交一个 PR。