ruper . blog

Insights on Cloud Architecture and Solutions from the Field

Platform Engineering for Azure with Kubernetes Operators and GitOps

April 11, 2025

platform engineering kubernetes gitops azure crossplane argo cd azure service operator kube resource operator aso kro

Modern platform engineering empowers developers to manage cloud infrastructure and applications using Kubernetes-native tools and GitOps practices. This approach streamlines the deployment and management of Azure resources, allowing teams to focus on building value rather than handling complex infrastructure.

If you are willing to experiment with several key technologies, I've developed a comprehensive repository that demonstrates how to implement platform engineering principles using Kubernetes operators and GitOps for Azure. The use cases and labs are designed to be flexible, allowing you to run them in a hybrid environment (Kubernetes + Azure) or fully native on Azure.

Use Cases

  • Managing Azure resources with ASO and KRO (hybrid and native)
  • Composing resources with Crossplane (hybrid and native)
  • Multi-tenancy scenarios across Azure subscriptions
  • GitOps automation with Argo CD

Key Technologies

  • Azure Service Operator (ASO): Provision and manage Azure services directly from Kubernetes using custom resources.

  • Kube Resource Operator (KRO): Define and manage groups of Kubernetes resources as reusable, cloud-agnostic units.

    alt text

  • Crossplane: Use Kubernetes-style APIs to compose and manage Azure resources, enabling higher-level abstractions and reusable infrastructure templates.

    alt text

  • Argo CD: Implement GitOps for continuous delivery, ensuring your Kubernetes clusters always match the desired state defined in Git.

Reference Application

To help compare these key technologies a reference application is provided and is designed to be simple yet effective in demonstrating the Platform Engineering capabilities. It simulates a real-world scenario and provides a hands-on experience for developers to understand how to use the tools and technologies involved in the use cases.

alt text

The reference application is a simple web application that allows users to upload files and view the list of uploaded files. The application consists of a web frontend packed in a container, a PostgreSQL database and Blob storage. The web frontend is built using Python and Flask. The PostgreSQL database is used to store metadata about the uploaded files and Blob storage is used to store the uploaded files.

Getting Started

You can set up the full platform engineering environment from scratch or integrate individual tools into your existing Kubernetes cluster. Step-by-step instructions are provided in this GitHub repository to help you get started quickly.