Kube Resource Orchestrator, From Experiment to Community Project

January 30, 2025 By Mark Otto 0

When we introduced our new experimental project Kube Resource Orchestrator (kro) in November last year at KubeCon North America, we were thrilled by the initial response. Customers are excited about kro’s simplicity, and we have seen some creative and novel solutions to common problems. We have heard from platform teams looking to simplify resource management, developers streamlining API creation, and open source contributors jumping in to expand kro’s capabilities. The collective enthusiasm has shown us that kro isn’t just solving a technical problem, it’s creating new possibilities for how teams work with Kubernetes.

Today, energized by this momentum, we’re taking a significant step forward for the project and announcing that kro is now an open collaboration between AWS, Microsoft Azure, and Google Cloud. This is aligned with our mission for kro to be developed entirely in the open as part of the cloud native community, and our vision for kro to simplify the complexities of Kubernetes custom resource authoring. Ultimately, this decision reflects our commitment to ensure kro’s future is driven by the very people who use it.

Catching up: Why kro?

Customers adopt Kubernetes to standardize the way they build and ship software, and its inherent extensibility has revolutionized how customers build systems. Platform and DevOps engineers can build custom platform APIs that enable simpler workflows for building and shipping applications. The tradeoff is that there is inherent complexity that comes with this extensibility, and teams spend a lot of time defining their resources and implementing custom controllers to support them.

kro provides a powerful abstraction layer that allows you to define complex multi-resource constructs as reusable components in your applications and systems. You define these using kro’s fundamental custom resource, ResourceGraphDefinition. This resource serves as a blueprint for creating and managing collections of underlying Kubernetes resources. Note for customers that have been with us since the beginning, this was previously named ResourceGroup. We think that the new resource name is more correct regarding its intent and helps to disambiguate it.

With kro, you can define custom resources as your fundamental building blocks for Kubernetes. These building blocks can include any other Kubernetes resources, including those that manage the life cycle of cloud resources, and you can specify the dependencies between them. This lets you define complex custom resources, and encode default configurations aligned with your organizational best practices. The kro controller will determine the dependencies between resources, establish the correct order of operations to create and configure them, and then dynamically create and manage all of the underlying resources for you.

To learn more and get started with kro, check out our evolving documentation on the kro.run website.

Building kro Together: A New Chapter of Community-Driven Development

We’re excited to announce that kro has moved to its new vendor-neutral home, github.com/kro-run. This isn’t just a change of address, it’s a commitment to building kro in the open and with the community. We’re also in the process of formally adopting Cloud Native Computing Foundation (CNCF) governance guidelines, to ensure that critical decisions, feature enhancements, and improvements reflect the needs of the community. This means that kro’s future will be driven by developers, platform engineers, and Kubernetes enthusiasts like you. Whether you’re contributing code, sharing ideas, opening issues, or providing feedback, your voice will shape kro’s evolution.

One of the most exciting aspects of this community-driven approach is our commitment to making kro vendor-agnostic at its core. We believe that the power of Kubernetes lies in its extensibility and portability, and kro will embrace these principles fully. Our goal is to ensure that kro works seamlessly with any Kubernetes resource and any CRD, regardless of where or how you run your clusters.

Join Us in Building kro’s Future

We’ll soon announce regular community meetings where everyone can directly participate in discussions about kro’s direction, features, and implementation. These meetings will be a place for you to engage with the project, and will inform our decision making process. In the meantime, please visit our new home on GitHub and join us in the #kro channel on the Kubernetes Slack.

We’re in the process of implementing open governance that ensures all community members have a role to play, at all levels of contribution. In the coming weeks, we plan to share more details about the project’s technical roadmap, so it’s a great time to check in and have your voice heard. Whether you’re an individual developer, part of a platform team, or representing an organization, we’re excited for you to be part of the kro community.