8000 GitHub - upbound/platform-ref-azure: Upbound's reference platform for Microsoft Azure services with Crossplane Resources
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

upbound/platform-ref-azure

Repository files navigation

Azure Reference Platform

This repository contains a reference Azure Platform Configuration for Crossplane built with Upbound DevEx. It's a great starting point for building internal cloud platforms with Azure and offer a self-service API to your internal development teams.

This platform offers APIs for setting up fully configured AKS clusters with secure networking, stateful cloud services (MySQL Database) that can securely connect to the AKS clusters, an Observability Stack, and a GitOps System. All these components are built using cloud service tools from the Official Upbound Family Azure Provider. App deployments can securely connect to the infrastructure they need using secrets distributed directly to the app namespace.

Architecture

This platform uses Upbound DevEx with:

  • Embedded KCL Functions: Pipeline-mode compositions with embedded KCL functions instead of external patch-and-transform
  • Test-Driven Development: Comprehensive composition tests and e2e tests
  • Strong Typing: KCL models for type-safe resource definitions
  • Modern Workflow: up project build, up test run, and up composition render commands

Overview

This reference platform outlines a specialized API for generating an AKS cluster (XCluster) that incorporates XRs from the specified configurations:

graph LR;
    MyApp(My App)---MyCluster(XRC: my-cluster);
    MyCluster---XRD1(XRD: XCluster);
    MyApp---MyDB(XRC: my-db);
    MyDB---XRD2(XRD: XSQLInstance);
		subgraph Configuration:upbound/platform-ref-azure;
	    XRD1---Composition(XAKS, XNetwork, XServices);
	    XRD2---Composition2(Composition);
		end
		subgraph Provider:upbound/provider-azure
	    Composition---Network.MRs(MRs: ResourceGroup, VirtualNetwork, Subnet);
	    Composition---AKS.MRs(MRs: KubernetesCluster);
	    Composition2---Postgres.MRs(MRs: VirtualNetworkRule, Server);
		end

style MyApp color:#000,fill:#e6e6e6,stroke:#000,stroke-width:2px
style MyCluster color:#000,fill:#D68A82,stroke:#000,stroke-width:2px
style MyDB color:#000,fill:#D68A82,stroke:#000,stroke-width:2px
style Configuration:upbound/platform-ref-azure fill:#f1d16d,opacity:0.3
style Provider:upbound/provider-azure fill:#81CABB,opacity:0.3
style XRD1 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px,stroke-dasharray: 5 5
style XRD2 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px,stroke-dasharray: 5 5
style Composition color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px
style Composition2 color:#000,fill:#f1d16d,stroke:#000,stroke-width:2px

style Network.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px
style AKS.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px
style Postgres.MRs color:#000,fill:#81CABB,stroke:#000,stroke-width:2px
Loading

Learn more about Composite Resources in the Crossplane Docs.

Quickstart

Installation

Install this platform from the Upbound Marketplace:

up ctp configuration install xpkg.upbound.io/upbound/platform-ref-azure:v0.12.0

Development Workflow

This platform uses Upbound DevEx for modern development:

# Build the project and compile KCL functions
up project build

# Run composition tests
up test run tests/*

# Render compositions with examples
up composition render apis/xclusters/definition.yaml apis/xclusters/composition.yaml examples/cluster-claim.yaml

Using the Platform

Once installed, you can create platform resources using the provided examples:

# Create a cluster with networking, observability, and GitOps
kubectl apply -f examples/cluster-claim.yaml

# Create a MySQL database (after cluster is ready)
kubectl apply -f examples/mysql-claim.yaml

# Deploy a sample application
kubectl apply -f examples/app-claim.yaml

Monitor deployment status:

kubectl get claim,composite,managed

Development

Testing

# Run composition tests
up test run tests/*

# Run end-to-end tests
up test run tests/* --e2e

Building and Publishing

# Build the project
up project build

# Deploy locally
up project run

For publishing to the marketplace, see the Upbound documentation.

Next Steps

About

Upbound's reference platform for Microsoft Azure services with Crossplane Resources

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 13

Languages

0