Celebrating 2 years as CNCF Sandbox
๐ Score turned 2 as a CNCF Sandbox project this past July! ๐
On July, 2024, Score joined the CNCF and last year, we celebrated our first anniversary. Time still flies, and this second year was packed with great moments, with the same takeaway: Score only goes as far as its community takes it. Thank you to every contributor, user, speaker and maintainer who helped along the way. ๐
Our mission hasn’t changed:
Score is loved by developers because they can run the same workload on completely different technology stacks, without needing to be an expert in any one of them.
Here is a look back at what we accomplished over the last 12 months.
๐ More adoption, in the real world
The best sign that Score’s mission resonates is seeing others build on it.
Engine shared how their Infrastructure team uses Score as the service specification layer of a production Kubernetes platform: a single score.yaml per service, about 13 custom provisioners, score-k8s running inside an ArgoCD plugin, and 25+ Kubernetes resources generated from a file the developer barely has to think about. What used to take days now takes minutes. They also hit a limitation, and instead of working around it they contributed the fix upstream (score-k8s#232), which is a perfect illustration of what we love about open source. Read the full story: How Engine Built a Self-Service Kubernetes Platform with Score.
KodeKloud took Score to KubeCon India 2026 with the talk “The Death of the YAML-Engineer”. Mumshad Mannambeth and Abhinav Sharma showed how Score’s provisioners can generate Crossplane resources, so that developers get a database by writing a 20-line score.yaml and zero infrastructure YAML. A pipeline runs once, a control plane runs forever! They even published the demo as a hands-on lab, so you can replay it yourself.
And Score keeps showing up next to other CNCF projects, which is one of the things we enjoy the most:
- Microcks: Score and Microcks to unify the inner and outer loops, with a talk at KubeCon EU.
- Radius: the new experimental
score-radiusimplementation, demoed during a Radius community meeting. - OpenChoreo: a conversation, and an experimental implementation, are on the way.
- Docker Model Runner:
score-composenow natively supports it, to deploy workloads with local LLM models.
๐ค Community spotlight: ordered container start
If one feature illustrates what this community can do together, it’s ordered container start: the new before property in the Score Specification.
Many workloads need some setup before the main container can run: a schema migration to complete, static data to generate, a shared state to initialize. This is the well-known “init container” and “sidecar” pattern, and until now there was no platform-agnostic way to express it in a Score file. Now there is:
apiVersion: score.dev/v1b1
metadata:
name: myapp
containers:
db-migrate:
image: migrate/migrate:v4
command: ["up"]
before:
main:
ready: complete
main:
image: myapp:latestThe db-migrate container runs before main, and ready defines when main can start: started (the default), complete or healthy. Each Score implementation then maps this to what its platform natively provides and validates the workload at generation time, to catch containers referencing themselves, unknown containers and cyclic dependencies.
What makes this feature special is that it took the whole community to ship it:
- Chris, one of the Score Maintainers, proposed the idea back in September 2024. He also reviewed the pull requests, including the feedback that led to a simpler design.
- kai-kystverket took the idea and implemented it in the Score Specification: spec#136.
- Mathieu laid the foundation in the shared Go library with score-go#121, so that the implementations could start building on it before the Specification was even released.
- Abhishek did the heavy lifting afterwards: he refactored the
beforefield from an array to a per-container mapping (and fixed the schema validation that wasn’t kicking in), integrated it in score-go#178, and then implemented the feature in bothscore-composeandscore-k8s. - Matthieu spotted that the generated types in
score-gowere broken and fixed theContainerBeforestructure and thereadyconditions with score-go#222.
Five contributors, four Score repositories and about two years from the initial idea to the implementation in both Docker Compose and Kubernetes: that’s open source at its best.
And it goes beyond Score
The story doesn’t stop there. When Docker Compose shipped native init containers with pre_start, Abhishek opened a feature request for score-compose to leverage it, with a detailed analysis of which Score init containers could be converted. The feedback shared with Docker Compose maintainer Guillaume Lours directly influenced the Compose implementation itself: the limitations Score contributors identified, such as hooks not being able to set their own command or volumes, were addressed on the Compose side, with hooks now supporting the full container specification. A great example of Score contributors not only building on top of OSS projects, but also helping shape them. The work is still in progress, and you’re welcome to join the conversation!
Huge kudos to all of you! ๐
๐ฎ The path to V1
As we hit 2 years as a Sandbox project, it’s really about time we got to v1 of the spec (yes, we’re still on v1b1!) Chris has been gathering requirements since the start of the year for our discussion of what a v1 of the spec would look like. You can still contribute your ideas in the community Doc here. The biggest thing is to make Score compatible with the Kubernetes Custom Resource schema, opening up interesting use-cases of “Score Operators”. We also heard the feedback from the community that out “implementation” approach is not very reusable, so we’re rebuilding the score-go library to allow for better code-reuse and importing your favourite score implementations as packages in Go!
๐ A stronger security posture
As a CNCF project, we want to demonstrate security best practices by default. Thanks to the CNCF and Docker partnership, Score was onboarded into the Docker-Sponsored Open Source Program, and the results speak for themselves:
- Docker Scout on every pull request and in our registry, with CVE, package and policy comparisons between
mainand each PR. - Docker Hardened Images as base images for our containers: minimal, non-root, with SBOMs and SLSA provenance, and a very smooth migration.
docker/github-builderto build our container images, with signed SLSA provenance.- OIDC connections for Docker Hub, replacing long-lived tokens with short-lived ones.
- Our container images now live on Docker Hub, with insights on how they are actually used.
The full journey, with before/after snippets you can reuse in your own projects, is in the dedicated blog post.
๐งช Learn Score hands-on with the Labspace
“I get the idea behind Score, but I’d like to try it before setting everything up.” We heard that feedback many times, so we recently released the Score Labspace: a guided lab where the instructions and a ready-to-use terminal live side by side, with all the tools already installed. All you need is Docker:
docker compose -f oci://scorespec/score-labspace:latest upIn seven short modules, you write one score.yaml and deploy it twice, with score-compose and score-k8s, without changing a single line. Then you go further with patch templates and provisioners. It’s open source and open to contributions at score-spec/score-labspace.
๐ค Two more KubeCons
Since our last anniversary, we have been at two more KubeCons as a CNCF Sandbox project:
- KubeCon NA 2025 in Atlanta: a talk about Score and Kro at Cloud Native Rejekts, the Maintainer Summit and our Project Pavilion kiosk.
- KubeCon EU 2026 in Amsterdam: the Maintainer Summit, the Score + Microcks talk, our kiosk and an update from TAG DevEx.
Each of these was a great opportunity to meet users, answer questions and hear what you would like to see next. Many of the ideas in this post started as a conversation in front of the kiosk.
๐ Next stop: KubeCon NA in Salt Lake City
We are going back to where it all started: our first KubeCon as a CNCF Sandbox project was in Salt Lake City in 2024, and next week we are back there for KubeCon + CloudNativeCon North America 2026 (November 9-12) for our fifth!
Come and meet the Score Maintainers at our kiosk, we will demo the new Labspace live:
- ๐ Where: Kiosk P-17B, Project Pavilion, Hall 5 (Cosmic Canyon), Level 1, Salt Palace Convention Center
- ๐ When: Thursday, November 12, 10:15 AM - 2:00 PM
Bring your questions, run the lab with us and tell us what you would like to see in Score’s third year.
Upwards
On behalf of the Score Maintainers and the entire Score community, thank you for an amazing second year. Whether you opened an issue, sent a pull request, wrote a blog post, gave a talk or simply gave Score a try, you shaped what it is today.
Can’t wait to see what the community will bring to the Score project in year 3!
- Join the #score channel in the CNCF Slack
- Get started with Score or try the Labspace
- Contribute to Score
See you in Salt Lake City! Let’s Score it! ๐ถ
