Skip to content

Commit b3c90bc

Browse files
add infra q1-q2 2026 blog post
Co-authored-by: Ubiratan Soares <ubiratan.f.soares@gmail.com>
1 parent 4fcbed4 commit b3c90bc

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
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+
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+
> Rulesets are the new way in which GitHub suggests protecting branches and tags.
23+
> They allow more configurability with respect to classic branch protections, and
24+
> they are the only way in which you can setup new functionalities such as merge queues
25+
> via API.
26+
27+
We converted all repositories, except for
28+
the [`rust`](https://github.com/rust-lang/rust) repository. We are [working on it](https://github.com/rust-lang/team/pull/2327)!
29+
30+
As part of this effort, we also made all the branch protection and ruleset options we use
31+
configurable via the `team` repository, so that they can be managed as Infrastructure as Code (IaC).
32+
33+
Here are the newly available configuration options:
34+
35+
- [`allowed-merge-apps`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L460)
36+
- [`merge-queue`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L462)
37+
- [`prevent-deletion`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L487)
38+
- [`prevent-force-push`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L490)
39+
- [`require-conversation-resolution`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L433)
40+
- [`require-linear-history`](https://github.com/rust-lang/team/blob/d12b9d821a4494aa16c8666e5d6131d96873dd17/docs/toml-schema.md?plain=1#L438)
41+
42+
For more details, see the [GitHub issue](https://github.com/rust-lang/team/issues/2356).
43+
44+
### Improved CI security
45+
46+
We always try to improve our security posture. Here are the most relevant examples for this quarter:
47+
48+
- In the [`team`](https://github.com/rust-lang/team) repository, we enabled [Renovate](https://docs.renovatebot.com/), a bot
49+
that automatically creates pull requests to keep GitHub Actions and Rust
50+
dependencies up to date.
51+
This makes it easier for us to keep our dependencies up to date and fix security issues in a timely manner.
52+
- In the [`compiler-builtins`](https://github.com/rust-lang/compiler-builtins) CI, we
53+
[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.
54+
- 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.
55+
56+
### Two new dev desktops
57+
58+
We provisioned two new dev desktops: `dev-desktop-us-2.infra.rust-lang.org` and `dev-desktop-eu-2.infra.rust-lang.org`.
59+
60+
We also enabled IPv6 access for dev desktops, making them easier to reach from more network environments.
61+
See the [GitHub issue](https://github.com/rust-lang/simpleinfra/issues/186).
62+
63+
Learn more in the [Forge docs](https://forge.rust-lang.org/infra/docs/dev-desktop.html).
64+
65+
### Bigger docs.rs instance
66+
67+
We are experiencing an unprecedented increase in crates published on `crates.io`,
68+
which is putting a lot of pressure on the `docs.rs` infrastructure, which has to build
69+
the documentation for more crates than before.
70+
71+
To keep up with this growth, we upgraded the `docs.rs` instance to a more powerful one, doubling
72+
the available RAM and CPU cores.
73+
74+
### Improved access controls for Rust infrastructure with SAML SSO
75+
76+
We introduced Google SSO as part of Rust infrastructure offerings.
77+
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.
78+
79+
More on that in the [GitHub issue](https://github.com/rust-lang/infra-team/issues/64).
80+
81+
## Q2 Plans
82+
83+
### Finish Q1 goals
84+
85+
In Q1, we didn't manage to finish all our goals, so we will continue working on them in Q2:
86+
87+
- **docs.rs infrastructure modernization:** Although we made some improvements to docs.rs in Q1,
88+
such as using GitHub OIDC for publishing container images to AWS ECR,
89+
we still want to move from the single EC2 instance to a modern, managed deployment.
90+
- **External hardware CI policy:** Publish requirements for running Rust CI on external hardware.
91+
- **Move to GitHub Rulesets:** Migrate the `rust` repository to GitHub Rulesets.
92+
- **SAML SSO:**
93+
- Enable provisioning Google Workspace accounts from the `team` repository.
94+
- Onboard all users that require infrastructure access and add the SAML setup for other service providers, like AWS.
95+
96+
### Improve CI security and developer experience
97+
98+
We want to keep making the CI of the Rust Project both safer and easier to work with.
99+
100+
We have many ideas and we're not sure which ones we will prioritize yet, but here are some examples:
101+
102+
- Make it easier for Rust Project members to adopt tools like Renovate to keep their dependencies up to date and secure.
103+
- Check CVEs of our dependencies.
104+
- Add more static analysis tools such as [`zizmor`](https://zizmor.sh) to secure more CI workflows.
105+
- Improve our CI observability by creating dashboards around metrics such as CI jobs duration and failure rate.
106+
- Improve visibility of the test coverage of the CI jobs.
107+
108+
## Hardware security keys for critical infrastructure access
109+
110+
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
111+
to the Rust teams with access to critical infrastructure.
112+
113+
Our plan is to distribute hardware keys in May, during the [Rust All Hands](https://2026.rustweek.org/#week-schedule).
114+
See the related [GitHub issue](https://github.com/rust-lang/infra-team/issues/245).
115+
116+
## Join us!
117+
118+
If you're interested in contributing to Rust's infrastructure, have a look at the
119+
[infra-team](https://github.com/rust-lang/infra-team) repository to learn more about us
120+
and reach out on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra).
121+
122+
We are always looking for new contributors!

0 commit comments

Comments
 (0)