<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Upbound :: Tag :: Rejekts2026 and KubeCon EU 2026</title>
    <link>https://kubecon25.nicolai-ort.com/tags/upbound/index.html</link>
    <description></description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://kubecon25.nicolai-ort.com/tags/upbound/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Achiving Platform Engineering Multi-Tenancy with kcp and Crossplane</title>
      <link>https://kubecon25.nicolai-ort.com/day-2/10_kcpcrossplane/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://kubecon25.nicolai-ort.com/day-2/10_kcpcrossplane/index.html</guid>
      <description>Code/Demo An introductory talk to kcp and crossplanes by the companies maintaining both of them.&#xA;The basics A platform should me automated and self-service driven to count as platform engineering Provider teams: Certificates, databases, … Consumer teams: Want to use a provided Service IDP: Sits in the middle -&gt; The real hard part KCP Idea: Why not use Kubernetes as our API-Layer? It tracks API ownership, versioning and resource managment and has built-in extensibility (CRD) Problems: APIs are always cluster-scoped (you advertise them to everyone) -&gt; You could give everyone a cluster Ramping up a new cluster takes time and resources -&gt; Let’s just create a lightweight hosted control plane with it’s own datastore Sharing APIs to multiple clusters is hard -&gt; Leightweight control planes with a shared datastore Solution: Workspaces that are organized in a tree and each workspace contains it’s own CRDs and RBAC -&gt; All resources (e.g. namespaces) exist just in their own workspace API-Sharing; APIExport CRD and APIBinding CRD (reference via the workspace path of the APIExport) Running the operators that work on the APIs: Virtual Workspaces (virtually connects your operator to all of their resources across kcp via a magic kubeconfig) -&gt; Controller needs to be built with multicluster-runtime (drop in replacement for controler runtime) KCP API-Syncagent allows you to use a existing operator without modifying it for use with multicluster-runtime graph KCP Datastore User subgraph Workspace APIs[API/CRD] RBAC end KCP--&gt;|interact with|Datastore User--&gt;|Create tenant|KCP KCP--&gt;|Manages|Workspace KCP--&gt;|Return kubeconfig|User User--&gt;|Uses KCP like the apiserver|KCP Crossplane Providers for all kunds of resources (kubernetes or infra/cloud) Compositions for higher level abstractions accross one or multiple providers Uses the Kubernetes API (aka CRDs) as it’s api to enable integration with standardized tooling (like GitOps) apiVersion: ... kind: CompositeResourceDefinition spec: compositetyperef: group: my.exdample/v1aplha1 kind: Test mode: pipeline pipeline: - ... The demo I recommend watching the recording but thul shall serve as a overview of the scenario. Or run it locally (code linked above).</description>
    </item>
  </channel>
</rss>