|
| 1 | ++++ |
| 2 | +path = "inside-rust/9999/12/31/infrastructure-team-q1-recap-and-q2-plan" |
| 3 | +title = "Infrastructure Team 2026 Q1 Recap and Q2 Plan" |
| 4 | +authors = ["Marco Ieni"] |
| 5 | + |
| 6 | +[extra] |
| 7 | +team = "The Rust Infrastructure Team" |
| 8 | +team_url = "https://www.rust-lang.org/governance/teams/infra#team-infra" |
| 9 | ++++ |
| 10 | + |
| 11 | +Here's what the Infrastructure Team delivered in Q1 2026 and what we're focusing on in Q2. |
| 12 | + |
| 13 | +You can find the previous blog post of this series [here](@/inside-rust/infrastructure-team-2025-q4-recap-and-q1-2026-plan/index.md). |
| 14 | + |
| 15 | +## Q1 Accomplishments |
| 16 | + |
| 17 | +### Move to GitHub Rulesets |
| 18 | + |
| 19 | +To gain more flexibility and configurability, we started migrating from branch protection rules to |
| 20 | +[GitHub Rulesets](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets). |
| 21 | + |
| 22 | +We converted all repositories, except for |
| 23 | +the [`rust`](https://github.com/rust-lang/rust) repository. We are [working on it](https://github.com/rust-lang/team/pull/2327)! |
| 24 | + |
| 25 | +As part of this effort, we also made all the branch protection and ruleset options we use |
| 26 | +configurable via the `team` repository, so that they can be managed as Infrastructure as Code (IaC). |
| 27 | + |
| 28 | +Here are the newly available configuration [options](https://github.com/rust-lang/team/blob/main/docs/toml-schema.md): |
| 29 | + |
| 30 | +- `allowed-merge-apps` |
| 31 | +- `merge-queue` |
| 32 | +- `prevent-deletion` |
| 33 | +- `prevent-force-push` |
| 34 | +- `require-conversation-resolution` |
| 35 | +- `require-linear-history` |
| 36 | + |
| 37 | +For more details, see the [GitHub issue](https://github.com/rust-lang/team/issues/2356). |
| 38 | + |
| 39 | +### Improved CI security |
| 40 | + |
| 41 | +We always try to improve our security posture. Here are the most relevant examples for this quarter: |
| 42 | + |
| 43 | +- In the [`team`](https://github.com/rust-lang/team) repository, we updated all GitHub Actions and |
| 44 | + Rust dependencies and enabled Renovate to keep them up to date. |
| 45 | +- In the [`compiler-builtins`](https://github.com/rust-lang/compiler-builtins) CI, we |
| 46 | + [enabled Renovate](https://github.com/rust-lang/compiler-builtins/pull/1114) and [resolved](https://github.com/rust-lang/compiler-builtins/pull/1113) the security issues reported by [`zizmor`](https://zizmor.sh) in preparation for running the RISC-V self-hosted runner in CI in a more secure way. |
| 47 | +- We released `crates-io-auth-action` [v1.0.4](https://github.com/rust-lang/crates-io-auth-action/releases/tag/v1.0.4), updating its dependencies and moving it from Node 20 to Node 24 after GitHub announced the deprecation of Node 20 on Actions runners. |
| 48 | + |
| 49 | +### Two new dev desktops |
| 50 | + |
| 51 | +We provisioned two new dev desktops: `dev-desktop-us-2.infra.rust-lang.org` and `dev-desktop-eu-2.infra.rust-lang.org`. |
| 52 | + |
| 53 | +We also enabled IPv6 access for dev desktops, making them easier to reach from more network environments. |
| 54 | +See the [GitHub issue](https://github.com/rust-lang/simpleinfra/issues/186). |
| 55 | + |
| 56 | +Learn more in the [Forge docs](https://forge.rust-lang.org/infra/docs/dev-desktop.html). |
| 57 | + |
| 58 | +### Bigger docs.rs instance |
| 59 | + |
| 60 | +We are experiencing an unprecedented increase in crates published on `crates.io`, |
| 61 | +which is putting a lot of pressure on the `docs.rs` infrastructure, which has to build |
| 62 | +the documentation for more crates than before. |
| 63 | + |
| 64 | +To keep up with this growth, we upgraded the `docs.rs` instance to a more powerful one, doubling |
| 65 | +the available RAM and CPU cores. |
| 66 | + |
| 67 | +### Improved access controls for Rust infrastructure with SAML SSO |
| 68 | + |
| 69 | +We introduced Google SSO as part of Rust infrastructure offerings. |
| 70 | +We enabled Google Workspace accounts for the infrastructure team and validated the SAML setup for some of the key infrastructure providers, like Datadog and Fastly. |
| 71 | + |
| 72 | +More on that in the [GitHub issue](https://github.com/rust-lang/infra-team/issues/64). |
| 73 | + |
| 74 | +## Q2 Plans |
| 75 | + |
| 76 | +### Finish Q1 goals |
| 77 | + |
| 78 | +In Q1, we didn't manage to finish all our goals, so we will continue working on them in Q2: |
| 79 | + |
| 80 | +- **docs.rs infrastructure modernization:** Although we made some improvements to docs.rs in Q1, |
| 81 | + such as using GitHub OIDC for publishing container images to AWS ECR, |
| 82 | + we still want to move from the single EC2 instance to a modern, managed deployment. |
| 83 | +- **External hardware CI policy:** Publish requirements for running Rust CI on external hardware. |
| 84 | +- **Move to GitHub Rulesets:** Migrate the `rust` repository to GitHub Rulesets. |
| 85 | +- **SAML SSO:** |
| 86 | + - Enable provisioning Google Workspace accounts from the `team` repository. |
| 87 | + - Onboard all users that require infrastructure access and add the SAML setup for other service providers, like AWS. |
| 88 | + |
| 89 | +### Improve CI security and developer experience |
| 90 | + |
| 91 | +We want to keep making the CI of the Rust Project both safer and easier to work with. |
| 92 | + |
| 93 | + |
| 94 | +## Hardware security keys for critical infrastructure access |
| 95 | + |
| 96 | +We want to secure access to critical Rust infrastructure even further by using hardware security keys. The Rust Foundation partnered with [Yubico](https://www.yubico.com/why-yubico/secure-it-forward/), and we want to provide YubiKeys |
| 97 | +to the Rust teams with access to critical infrastructure. |
| 98 | + |
| 99 | +Our plan is to distribute hardware keys in May, during the [Rust All Hands](https://2026.rustweek.org/#week-schedule). |
| 100 | +See the related [GitHub issue](https://github.com/rust-lang/infra-team/issues/245). |
| 101 | + |
| 102 | +## Join us! |
| 103 | + |
| 104 | +If you're interested in contributing to Rust's infrastructure, have a look at the |
| 105 | +[infra-team](https://github.com/rust-lang/infra-team) repository to learn more about us |
| 106 | +and reach out on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra). |
| 107 | + |
| 108 | +We are always looking for new contributors! |
0 commit comments