Flock 2026 Two Years In: Accelerating Microsoft Contribution to Fedora
Watch on YouTubeVideo summary
Microsoft has significantly deepened its engagement with the Fedora community over the past two years, moving beyond simple usage to active contribution and infrastructure integration. A primary focus has been on expanding the availability of Fedora images within Azure environments, starting with the upload of Fedora Cloud variant images two years ago and evolving into automated testing workflows that now feed results directly into Fedora's Wiki. This initiative not only provides a robust additional testing ground for Fedora outputs but also helps identify upstream bugs, such as specific issues in glibc on AArch64 architectures, by isolating problems that are not exclusive to Azure or Hyper-V. Furthermore, the launch of the Azure Community Gallery in 2024 has provided a dedicated channel for non-commercial projects like Fedora to publish images directly to Azure, fostering a healthy ecosystem where users can easily access and upgrade their instances while maintaining visibility into usage trends across different Fedora releases.
The presentation also highlighted the strategic development of Microsoft's own enterprise distributions, which are explicitly designed to leverage Fedora as an upstream foundation. Azure Linux 4.0 was formally launched as a downstream derivative of Fedora 43, optimized specifically for Azure cloud workloads such as Kubernetes clusters and containers. To maintain transparency and avoid the pitfalls of hard forks, the team utilizes a mono-repo approach with declarative TOML-based metadata to manage deviations from upstream packages. This method allows Microsoft to selectively include or exclude features, apply vendor-specific macros, and handle build overrides without obscuring the source of changes, ensuring that any customizations are clearly accounted for and potentially backportable to the broader Fedora community in the future.
In addition to Azure Linux, Microsoft introduced Azure Container Linux, an immutable and hardened container host operating system that bridges the gap between traditional RPM-based distributions and image-mode deployments. This distribution draws its design principles and SDK from Flatcar while integrating package inputs from Azure Linux downstream of Fedora, creating a hybrid model that serves specific enterprise security needs. The infrastructure supporting these builds has been modernized to run on Azure Kubernetes Service, utilizing containerized build tools like Koji and integrated with standard cloud services for storage and certificate management. This setup ensures that the build process is transparent, auditable, and capable of scaling efficiently within Microsoft's corporate environment while remaining open to community inspection via public GitHub repositories.
Ultimately, the core philosophy driving these efforts is a commitment to upstream contribution rather than creating isolated silos. The Community Linux Engineering team at Microsoft acts as an onboarding and ambassador group, guiding internal engineers to contribute directly to Fedora using proper workflows and documentation. While acknowledging the practical necessity of maintaining distinct distributions for specific enterprise use cases like Azure Linux, the team emphasizes their intention to share learnings and improvements back to the upstream community. The goal is to find a sustainable balance between providing fresh, stable software for customers and ensuring that innovations developed within Microsoft's ecosystem can eventually benefit the wider open-source world, reinforcing Fedora's role as a foundational element of enterprise Linux strategy.
Read the full video transcript
Hey.
Hello everybody. Welcome.
Um
I'm Jeremy Cline.
Uh with me are Brian and Ruben. Uh sadly
Sandeep couldn't be here today.
Um so you'll have to make do with three
of us.
Um
and today we're going to talk about what
Microsoft has been up to in the last
couple years in the Fedora community.
>> I'm going to ask you to tell us what
team you're on or how you're here or
why.
>> Okay.
>> Excuse me for my turn off because we're
streaming.
>> Yeah.
>> You want to speak there?
>> And I'm on the uh
community Linux engineering team at
Microsoft. We're all on different teams.
So we'll all introduce ourselves.
>> I'm Ruben Olinsky. I work on the Azure
Linux team at Microsoft.
>> We lost our slides.
>> Oh.
>> Oh, I probably hit spacebar or
something.
>> I'll get it back. Why don't you
introduce yourself?
>> Sure.
I'm Brian Exelbierd. Um
so I officially I'm a product manager,
which is weird as a title because my
real job is to annoy engineers who
contribute on behalf of Microsoft
upstream Linux communities including the
Fedora community, the Debian community,
and Flatcar Linux. Um I've done jobs
like that a lot. A lot of you know me
from doing that.
We have slides again. Okay, cool.
>> Why is it weird that product managers
annoy engineers?
>> Uh it's not weird that we annoy
engineers. I don't work on any product.
Um but we have a small number of titles
and so that's the one I got. So people
are always like, "Oh, you do the thing."
and I'm like, "No, I don't do the thing.
I don't even know how to use the thing."
Um
so two years ago we created the
community Linux engineering team and
last year I had the privilege of coming
here and presenting a lot of this man's
work
uh about what we had done in Fedora and
you all liked it and you came to the
talk so we did it again.
Um
want to talk a little bit about what
we've learned and what we've done in
Fedora here in year two, but there's
some other cool things that have been
going on at Microsoft that we wanted to
talk about as well, because they have
intersection and impact with Fedora.
So, stop me if you've heard me say these
exact words before. Um Microsoft is not
monolithic. There is no single thought,
there is no hive mind. And And the
reason I asked my friends here to make a
point of saying what they do at
Microsoft was to point out like we're on
three different parts of different
organizations. Although, I think
actually in the last reorg we all became
one organization. But, we're still
figuring that out. Um and so, a key
thing is Fedora's going to see a lot of
participation from Microsoft that like
you'll be like, "Oh, these people showed
up and did that thing. I'll go ask Becks
about that." And I have no idea. Because
it worked. They came in and they
participated and they did their thing.
And so, people are going to show up from
different paths with different thoughts
and ideas. So, take this presentation
within that context.
I don't know why we keep losing our
slides. That said, take this
presentation in that context.
>> You're running Windows.
>> Probably.
It happens.
Um take this presentation in that
context. We're not trying to teach you
our org chart, but we're trying to help
you understand there's a lot of things
going on in the background.
Jeremy.
>> This is me.
Um so, one of the things that's happened
in the last year, um
so 2 years ago we started uploading
Fedora Cloud variant images to Azure. Um
and in the last year or so, we've
started uh automated testing of those
images. Um yes, I can see Adam cheering.
Um however, those tests aren't really
reported anywhere externally yet or
they're not wired into the Wiki workflow
that Fedora uses. So,
over the summer I do plan to finish that
work. So, 45 should have automated
results for the Azure images in the
Wiki, so we can look at those during the
uh the blocker meetings and final
review. So, that should hopefully be
exciting.
Um and this is this is great not just
for Azure, um but for everyone because a
lot of the issues we do hit aren't Azure
specific. They're not about Hyper-V.
Um
and it's a a nice
um
not second or third, but additional way
to test uh Fedora outputs. Um as an
example, there was a um
a G lib C bug that Kevin Fenzi reported
and he thought maybe it was his
um interesting AArch64 laptop, but it
turned out that it wasn't and um I was
able to go back in our test history and
spot the day that it broke and I had a
very small diff of packages. So, that
made it much easier to go find the root
cause.
Um so, that's pretty great and I'm
excited about getting that tied into
more official results.
Um so, that's what we've been up to in
the cloud space.
I think it's back to you.
>> We we didn't plan for a podium. Um
so, Jeremy [clears throat] talked
yesterday about signing infrastructure
and a lot of the work that he's done
there
uh and I'm not going to repeat it all
for you. Please go watch that recording.
It was absolutely amazing.
Uh what I did want to kind of talk about
was some other work that the CLA, our
Community Linux Engineering Team, does
at Microsoft that aligns very closely
with Fedora. A big goal around here is
to increase the number of contributors.
And part of the work of our Community
Linux Engineering Team is to serve as an
onboarding and ambassador style group
inside of Microsoft because we don't
want to proxy all of Microsoft's work
through that team. We want the upstream
in our side, upstream engineering teams,
to be coming directly to Fedora to work
as the upstream for the things that
we're going to do. We want all of those
folks showing up. We don't want them
taking shortcuts. We want them doing it
the right way, the Fedora way. And the
best way is for us to help guide them to
the right people in the community to
talk to, the right documentation, the
right onboarding, and those pieces.
I'm going to kind of change tones here.
Our colleague Sandeep couldn't be here,
so I'm going to try and cover some of
his material and try and do it justice.
This is some information about Fedora
WSL.
We began producing official images for
Fedora on WSL, Windows Subsystem for
Linux, with Fedora 42. This is a graph
of active users over that time. You'll
notice that it peaks close to about
30,000 monthly active users, which is
fantastic. That shows us that people
like this, they're using it.
It's clearly being used. We're using it
some internally. Like it's it's a good
thing. You'll notice this drop.
That's cuz I don't have Fedora 43 data.
We really do believe, and we're waiting
on it, that this represents as well a
healthy transition from the release of
43 of people actually upgrading their
WSL instances. And that's what we want
to see. It's what as a community with a
13-month release cycle we want to see
our users doing. And so we're really
glad that that's there.
My colleague Sandeep specifically works
on something called the Azure Community
Gallery, and we launched that in 2024,
and it's our answer to how does a
project put an image on Azure
when they're not like trying to sell it
in the Azure Marketplace. And so his
team launched that in '24, and Fedora
was a launch partner with it, and they
are super excited about it. This is a
chart of usage of Fedora on Azure with
some huge asterisks that I want to talk
about. This is only direct launches of
the Fedora published market or Azure
Gallery image. So, if someone brought in
their own copy, if a third-party
publisher published it, they converted
some other system, you're not going to
see that in this chart. This is
literally people who went and clicked on
the Fedora published image.
The other thing to keep in mind is that
this is the image they clicked on.
So, if those Fedora 40 folks have
upgraded to 43, we don't know that.
But, I really like this chart, and I
hope I'm not going too off script,
Sandeep, when you review the recording.
I like this chart because what it tells
me is people have used the Fedora images
and are continuing to use the Fedora
images based on that 40,
but with 43 being second, they're also
continuing to launch new ones.
We can debate the number in terms of the
raw units. Like, what does it mean? Why
would you use Fedora in public cloud?
Like, those are all great questions, but
this shows that the community's output
is valued.
Couple other things I actually looking
at my notes from Sandeep here. Uh couple
things to talk about as well are that uh
we're continuing to use what we've
learned from working with Fedora in
community gallery to improve the
community gallery experience. So, we're
working on some new ways to help
publishers like Fedora optimize the way
that they're publishing and to
communicate better to users who are
using the images, and for those users to
be able to better tell things like when
an image has gone end-of-life or is
going to be deprecated so that they can
manage their life cycles better as well.
Ruben.
>> All right.
Thanks.
So,
Max hit a a number of the the high
points here, but you know, why why does
Fedora matter to Microsoft across our
different teams. You know, as we
definitely have heard in the the
sessions here, right? Fedora's
foundational to enterprise Linux. That's
definitely true for for Microsoft as
well.
Uh I'll be talking in the next few
slides about Azure Linux, which uh we
just sort of formally more fully
launched about a month ago at uh Open
Source Summit in in North America. Uh
and it is based uh very formally on on
Fedora as it's upstream.
Definitely, Fedora gives us upstream
signal, you know, via Rawhide and future
releases as to changes that will be
coming
uh to our future versions and changes
that will be working through how to
absorb, integrate, uh and make work for
our customers.
We, you know, would like to believe that
there's some some things we've learned
from from our work and what we do at
Microsoft and with the Azure cloud that
we can bring back, we can contribute in
in appropriate ways that, you know, we
hope to to benefit the broader
community.
Um and something else Bex hit on a
little bit is, you know, what's what's
our intended working model. Um I can
speak also for specifically for for
Azure Linux. You know, we we know we we
need to come here uh to meet Fedora and
the upstream. That's why I'm here.
That's why why we're here. Um and, you
know, we know we need to show up with
with the contributions and and uh find
ways that uh the things we're doing we
can we can benefit the broader
community.
So, I'll give a couple slides. This will
be just a sort of very high-level what
is Azure Linux. Um it was mentioned a
couple times I think yesterday morning.
Um it's what I primarily work on and
have been working on for quite a while
uh even though it was only just more
formally announced. So, it's a Microsoft
maintained Linux distro. It's built for
the Azure cloud primarily. Uh that means
for hosting VMs, for uh Kubernetes
clusters, for containers. And I'll also
uh we will be shortly publishing an
Azure Linux specific Windows Subsystem
for Linux WSL image um that I use mostly
as my daily driver right now for for
things when I have to be on on my
Windows laptop.
Uh we are formally for 4.0 downstream of
Fedora 43. Uh it is rebuilt from the
specs. So, we're we're, you know, we're
taking sources and and input um and and
building the the binaries and packages
uh for our distro.
What are the main differences?
That's definitely a question get asked a
bunch. It's intended to be configured,
tuned, optimized for our customers, for
the Azure cloud, uh for our use cases.
It's now in public preview, so it's
available. It's there. Um if you're
interested in looking at it, the sources
for it are all on or at least whatever
sources we have uh on top of of Fedora
are are present on GitHub. I'm not
expecting that you go look there, but if
you're interested, uh it is available
and and they're in the open.
Something else I'd like to also
introduce, we sort of the other coin,
the other half of of of some of what we
do,
um
uh was announced also about a month ago,
Azure Container Linux. So, that's, you
know, if you think of Azure Linux uh 4.0
as our more traditional RPM-based based
distro, Azure Container Linux is our
more image mode. It's the hardened,
immutable, secured container host OS. Um
it's got an interesting derivation. Um
it actually takes its design, its image
definition, its SDK from Flatcar.
But, um once we intersect it with our
4.0 releases, um it's going to take its
packages, it's our uh uh as inputs to
that image build process from Azure
Linux downstream from Fedora, and kind
of putting the those two together.
Uh
the 3.0 version of Azure Container Linux
is generally available. Um also, the
sources for it all all on GitHub uh and
available in in the Azure cloud for for
those who might be interested.
We'll get into a just a little bit of
how do we build it? What's what's sort
of inside and how do we interface with
kind of infra and and sources? Uh
One of the goals we set out with uh for
with with Azure Linux 4.0 is we want to
really highlight where we're deviating
from upstream. We want to highlight it,
and we want to be declarative about it.
For ourselves, and also for for, you
know, auditability and inspectability.
We want to know
uh you know, we we considered do we do a
hard fork? You know, what do we do? We
We've had various experiences in the
past cuz we have had previous versions
of our distro more for internal use
within Microsoft. Uh and we realized of
course with you know, risk of a hard
fork is you start making changes, it's
hard to know where the changes come
from, how do you rebase?
Once you also have a sources you can
very easily edit, you start making
changes that maybe you didn't need to
make, but they were really easy to do
so. We really trying to trying to avoid
that through construction. We have a
mono repo on GitHub. It's got a set of
declarative we use TOML-based uh
metadata.
It includes a sort of a selection of
what's the subset of Fedora packages
that we include and we build for our
distro.
Uh and specifically what are the very
specific upstream version of those
upstream sources and specs that we're
taking from. Broadly, we do have a
configuration that says take from Fedora
43 as of a certain snapshot, but we also
have the capability of saying no for
this package, we actually want this disk
get commit for this package and and pull
that forward so we can we can pull
individual targeted changes.
We have specs that we've added.
Some very obvious ones Azure Linux
release, Azure Linux icons, things like
that where it's about branding. Also
additional packages that we would like
to be in the process of of upstreaming
and trying to get sponsored for
introducing it to Fedora, but maybe
aren't there yet.
We apply per package build overrides
where thankfully there's actually a
bunch of useful if def macros already in
the specs to be able to do feature
disablement or enablement uh or to be
able to let's say override vendor
macros, things like that. Um concrete
example here, you know, for for DNF5
uh the Red Hat subscription manager
plugin to uh to it is not relevant for
our product. So, that's something we can
easily just specify a without flag and
the right thing will get sent to RPM
build.
The other thing that's a little bit more
custom that we've done is identifying
places where there might not already be
those easy toggles and we do need to
make some targeted adjustments to the
specs. We wanted to make these as
declarative as possible. So instead of
going with kind of patches, we ended up
going with kind of taking inspiration of
more semantic patches where we can say,
"Hey, we want to remove this build
require to remove a dependency or we'd
like to replace this argument to
CMAKE_BUILD
uh so that we can disable a feature."
You know, here again an example is
setting, you know, RPM vendor macro in
rpm.spec. Now, even as I say that I
realize probably that might be something
that could be factored out also as an as
a a spec macro in the future. Maybe
that's that's an upstream change that
can that we could try to contribute.
What else is in the repo? Um we do take
that metadata as well as the selected
upstream specs and we have a an open
source tool. It's elsewhere on our
GitHub uh called AZL dev that applies
them together and produces the final set
of of spec and and disk it sources that
are going to be sent to standard build
tools. So we can send to RPM build, to
mock, to koji
uh to be able to produce. And those are
sort of a cache of those that are
checked in for for transparency and to
make sure we've got exactly the same
version of those across builds.
We've got our base image definitions
that are all there across WSL
containers, uh images. We have a a live
ISO for installer. Uh those were those
were a bit more forked. We're heavily
inspired by Fedora Kiwi descriptions
which we went and we we took as a
starting point and then we customized
those for our for our product, for our
use cases. Um but uh are using using
Kiwi and trying to at least stay using
the same tech stack.
There's additional test metadata. Um
some of this may include referencing
upstream tests that we're on boarding
and and trying to run within our
infrastructure. They also include uh
product or or uh image-specific tests
that we're bringing online ourselves.
Uh as well as disposition metadata.
That's not really a great name for it.
Didn't know how else to summarize it is
we want to basically have accounting for
all of the changes that we're making. I
mentioned these overlays, these
customizations to the specs. Want to
have tagging for these of which of these
we are really deeming as
non-upstreamable branding changes or
configuration options. Which of these
are things that are, you know, I sort of
see as debt as uh for for our project.
These are changes we'd like to to bring
upstream and see if there's openness to
uh to accepting. And I want to have some
way to account and see how we're doing
with that.
I'll go really quick since since we're
getting a little bit uh shorter on time.
Um so our infra, we've stood up in a
deployment of Koji running in the Azure
Kubernetes service. So uh we're able to
benefit from a bunch of community stuff
we'd seen uh containerizing uh
all the different services. We've got
that running and integrated with uh you
know, we use uh NFS-mounted Azure-hosted
blob storage and an Azure-hosted
Postgres. And we use all the standard
Kubernetes stuff, you know, cert-manager
for being able to uh manage a CA and get
the right certs we need for for the
different services of of Koji to
interact.
Uh we do have a distro-specific build
and release service. That's really
that's the piece that's more integrating
with our own sort of corporate uh kind
of back-end stuff and our our our more
business kind of business-driven
requirements.
Um it's connected to our GitHub
workflows and PR workflows and so forth.
Orchestrates Koji builds, manages uh we
have a lookaside cache that we maintain
uh ourselves um that, you know, has a
fair bit of content mirrored from
upstream Fedora as well as, you know,
things we're adding or or or changing
versions on. And of course, publishing
to to all the the locations where we
have stuff.
And that's the super short version of
Azure Linux.
If people are interested, I'll certainly
happy to talk in the hallway or online
later um where there's interest and I
hope you'll be seeing more of me and
some of my colleagues uh Matrix and all
all the usual locations.
>> Yeah, this
Sorry, we're all recording. Um this is
literally a summary slide. We'd rather
have your questions.
>> So,
thank you.
>> [applause]
>> Yeah, it's one.
Um so, you were mentioning the life
cycle for the Azure Linux and I have a
question about the versioning. So,
now you are running Azure Linux 4, which
is based on Fedora 43.
Um how long are you going to keep this?
And if you're going to exceed the life
of Fedora 43, are you going to be
backporting patches or just straight
away move to Fedora 44 or Fedora 45? And
then how this going to reflect in the
versioning of Azure image itself?
Like Azure 5, Azure 6, or
>> Yeah, that's a great question. Um I
don't have all the I'm not the right
person to have all all the answers on
some of that, but what I can say is it
will uh outlast, you know, uh live past
the the the supported life cycle of of
uh Fedora 43. Um we do anticipate, you
know, we have a mechanism in place where
we can pull updates
as, you know, Fedora 43 evolves or we
can move certain certain packages or
sets of packages forward uh to later
versions. Obviously, you know, when we
do that, we start deviating
uh from kind of coherent set of things
that had been been tested upstream. Uh
so, it's it's a place where we have
options, but we will be doing
backporting and obviously keeping
things, you know, in in the current
season we're in CVE patched and um and
appropriate for our customers. There
will be down the road, you know, a 5.0,
a 6.0, a 7.0, um you know, sort of
traditional enterprise Linux style. And
uh you You at those times we'll be
finding the right places to to intersect
future Fedora releases. Part of it is
we're we're learning. We're in preview
right now. So, we want to get feedback
from our customers around, you know,
what they're looking for. Obviously,
lots of trade-offs between freshness and
and stability. I think we as we heard
about in some previous talks. So, trying
to find the right the right fit there,
but uh
hopefully definitely look to to share
more as we as we solidify that.
Thank you.
>> Uh you spoke about people upgrading
their WSL images from 42 or 43 and so
on. So, do you have any kind of prompt
in that WSL environment, the CLI
environment, that encourages people to
upgrade or do they just like
uh
figure it out on their own or just
>> Yeah, I can probably answer that, which
is I believe no, but that is a really
good idea. And uh we could do that.
>> [clears throat]
>> So,
>> Well, I mean, I'm I'm maintaining a
project against I'm maintaining this
project called toolbox, which has like
this CLI environment, and uh yeah, I
have a feature request for this for a
long time, and I was just doing a market
research.
>> Okay. Well,
we don't do it, but I like the idea. So,
maybe we can talk and figure that out
and share it.
>> Okay. Okay.
>> Cool.
>> You have 2 more minutes.
Any questions?
Okay.
Thank you.
>> Thank you all very much.
>> [applause]
>> Thank you.
Thank you.
>> [cheering]
>> And now we'll never speak again. No, I'm
just kidding.