|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "2019-11-19 Infrastructure Team Meeting" |
| 4 | +author: Pietro Albini |
| 5 | +team: the infrastructure team <https://www.rust-lang.org/governance/teams/operations#infra> |
| 6 | +--- |
| 7 | + |
| 8 | +Meeting run by pietroalbini. Minutes written by pietroalbini. |
| 9 | +Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster |
| 10 | +[Start of the conversation][discord] |
| 11 | + |
| 12 | +[discord]: https://discordapp.com/channels/442252698964721669/443148319431065610/646409370095190016 |
| 13 | + |
| 14 | +## Migrating crates.io behind CloudFront |
| 15 | + |
| 16 | +While static.crates.io (hosting the source code of all the published crates) is |
| 17 | +behind CloudFront, that’s not true today for the crates.io web application. |
| 18 | +This causes problems because crates.io is hosted on Heroku, which requires |
| 19 | +pointing a CNAME to Heroku’s DNS. Unfortunately crates.io doesn’t use a |
| 20 | +subdomain, which prevents us from using CNAMEs. All our DNS zones are on AWS |
| 21 | +Route53, but AWS only supports CNAMEs on the apex pointing to other AWS |
| 22 | +resources. Because of that, the crates.io DNS was managed on a different |
| 23 | +service until today, causing maintenance issues on our end. |
| 24 | + |
| 25 | +The solution we’re working torwards is to put CloudFront in front of crates.io, |
| 26 | +and that will finally allow us to migrate the crates.io domain to AWS. |
| 27 | +pietroalbini is finishing the last infra touches, and we expect to deploy the |
| 28 | +changes in the coming days. |
| 29 | + |
| 30 | +## DNS management with Terraform |
| 31 | + |
| 32 | +pietroalbini announced to the rest of the team that he started working on |
| 33 | +migrating the DNS records of our domains to Terraform. He already migrated the |
| 34 | +zones of [cratesio.com] and [crates.io], and he plans to migrate the other ones |
| 35 | +over the coming weeks. pietroalbini also wrote [documentation] on this setup. |
| 36 | + |
| 37 | +[cratesio.com]: https://github.com/rust-lang/simpleinfra/blob/master/terraform/services/dns/cratesio.com.tf |
| 38 | +[crates.io]: https://github.com/rust-lang/simpleinfra/blob/master/terraform/services/dns/crates.io.tf |
| 39 | +[documentation]: https://forge.rust-lang.org/infra/docs/dns.html |
| 40 | + |
| 41 | +## Another GitHub Actions CI configuration prototype |
| 42 | + |
| 43 | +pietroalbini continued his investigation into another prototype for our new |
| 44 | +GitHub Actions configuration. To reiterate, GitHub Actions doesn’t support |
| 45 | +templates or includes, so the infrastructure team is looking into a way to |
| 46 | +reduce duplication between our pipelines. |
| 47 | + |
| 48 | +Since the two prototypes presented at last week’s meeting weren’t liked by all |
| 49 | +the team, pietroalbini continued experimenting, and the prototype presented |
| 50 | +this week was based around YAML anchors, a standard YAML feature to reuse parts |
| 51 | +of data inside a single file. Unfortunately GitHub Actions explicitly disables |
| 52 | +YAML anchors, so pietroalbini wrote a small tool that pre-generates the |
| 53 | +expanded configuration file and commits it into the repo. |
| 54 | + |
| 55 | +The team liked this approach much more, as it doesn’t introduce any new |
| 56 | +configuration syntax while keeping the configuration files in a manageable |
| 57 | +state. pietroalbini is going to polish the prototype and open a PR for it in |
| 58 | +the coming days. |
0 commit comments