# 20220801_Building-Fedora-CoreOS
Interesting things that we do in Fedora CoreOS:
- lockfiles
- bump-lockfile job -> CI run that gates lockfile definition bumping
- supported by custom koji tags
- allows package overriding/pinning
- allows us to build `stable` weeks after `testing`
- COSA
- runs anywhere you can run a container and have `/dev/kvm`
- same build tools on laptop and in production pipeline
- tests
- live alongside our configs
- easy to write at the same time as new features are written
- we do test our images on every major cloud provider
- Azure, AWS, GCP, and OpenStack
- pipelines
- tests run as part of the build pipeline
- bulids don't progress if tests don't succeed
- all architectures are built together from same package set (SA needs clarification on this)
- if any architecture doesn't succeed then releases don't get promoted
Introduction
- Talk about the streams and delivering each of the 3 streams every two weeks on 3 different architectures
- ^^ this is a feat
1st Half of Presentation
- Hacking/Building FCOS locally and needed pieces
- The configs repo
- COSA
- local overrides
- rootfs/rpms
- how to run tests
- how are our tests defined?
2nd Half of Presentation
- How do we productize this? How do we deliver FCOS
- We also use COSA (same thing that is used locally) in our pipeline
- Running our tests (CI) as part of the builds
- lockfiles (pinning/overriding packages)
- explain why we need to pin sometimes
- need to keep old version of package because we found a bug and not fixed yet, but we don't want to introduce regression in our streams (SA needs clarification here)
- explain why we need to override sometimes
- we need package faster than fedora can deliver (SA needs clarification here)
- our CI gives us confidence that the package is sane
- multi-arch builds are farmed out to individual nodes of that architecture running Fedora CoreOS