Skip to content

2019-11-19 infra team meeting minutes #460

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 19, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions posts/inside-rust/2019-11-19-infra-team-meeting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
layout: post
title: "2019-11-19 Infrastructure Team Meeting"
author: Pietro Albini
team: the infrastructure team <https://www.rust-lang.org/governance/teams/operations#infra>
---

Meeting run by pietroalbini. Minutes written by pietroalbini.
Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster
[Start of the conversation][discord]

[discord]: https://discordapp.com/channels/442252698964721669/443148319431065610/646409370095190016

## Migrating crates.io behind CloudFront

While static.crates.io (hosting the source code of all the published crates) is
behind CloudFront, that’s not true today for the crates.io web application.
This causes problems because crates.io is hosted on Heroku, which requires
pointing a CNAME to Heroku’s DNS. Unfortunately crates.io doesn’t use a
subdomain, which prevents us from using CNAMEs. All our DNS zones are on AWS
Route53, but AWS only supports CNAMEs on the apex pointing to other AWS
resources. Because of that, the crates.io DNS was managed on a different
service until today, causing maintenance issues on our end.

The solution we’re working torwards is to put CloudFront in front of crates.io,
and that will finally allow us to migrate the crates.io domain to AWS.
pietroalbini is finishing the last infra touches, and we expect to deploy the
changes in the coming days.

## DNS management with Terraform

pietroalbini announced to the rest of the team that he started working on
migrating the DNS records of our domains to Terraform. He already migrated the
zones of [cratesio.com] and [crates.io], and he plans to migrate the other ones
over the coming weeks. pietroalbini also wrote [documentation] on this setup.

[cratesio.com]: https://github.com/rust-lang/simpleinfra/blob/master/terraform/services/dns/cratesio.com.tf
[crates.io]: https://github.com/rust-lang/simpleinfra/blob/master/terraform/services/dns/crates.io.tf
[documentation]: https://forge.rust-lang.org/infra/docs/dns.html

## Another GitHub Actions CI configuration prototype

pietroalbini continued his investigation into another prototype for our new
GitHub Actions configuration. To reiterate, GitHub Actions doesn’t support
templates or includes, so the infrastructure team is looking into a way to
reduce duplication between our pipelines.

Since the two prototypes presented at last week’s meeting weren’t liked by all
the team, pietroalbini continued experimenting, and the prototype presented
this week was based around YAML anchors, a standard YAML feature to reuse parts
of data inside a single file. Unfortunately GitHub Actions explicitly disables
YAML anchors, so pietroalbini wrote a small tool that pre-generates the
expanded configuration file and commits it into the repo.

The team liked this approach much more, as it doesn’t introduce any new
configuration syntax while keeping the configuration files in a manageable
state. pietroalbini is going to polish the prototype and open a PR for it in
the coming days.