Skip to content

Commit d061303

Browse files
authored
Replace high level architecture diagram with editable PNG (cloudfoundry#3059)
Replace high level architecture and routing diagrams with editable PNG - The previous diagrams were created in a Miro whiteboard that other contributors do not have access to - This replaces it with a https://www.drawio.com/ PNG with embedded diagram metadata that can be opened and edited by anyone
1 parent a897232 commit d061303

4 files changed

+8
-4
lines changed

CONTRIBUTING.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,16 @@ documentation, fixing a bug, adding or enhancing a feature, or fixing a typo.
4646

4747
Changes to the behavior of `korifi/api` or `korifi/controllers` will require that you build and test your changes.
4848

49-
When adding new functionality, or fixing bugs, add appropriate test coverage
49+
When adding new functionality or fixing bugs, add appropriate test coverage
5050
where possible. Different parts of the code base have different strategies and
5151
patterns for testing, some of which may be in flux at any point in time.
52-
Consider commenting on the issue to seek input or or opening a draft pull
52+
Consider commenting on the issue to seek input or opening a draft pull
5353
request to seek feedback on approaches to testing a particular change.
5454

55+
When contributing new diagrams to the docs, provide a way for others to update the diagrams in the future.
56+
We recommend using [Draw IO](https://www.drawio.com/) since it supports embedding diagram metadata within
57+
the PNG files themselves. This allows future contributors to import the diagram and update it.
58+
5559
To build the project from source, please consider the docs on [local development](HACKING.md).
5660

5761
### Commit Messages

docs/architecture.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Overview
44

5-
![Korifi Architecture Diagram](images/korifi_architecture.jpg)
5+
![Korifi Architecture Diagram](images/korifi-high-level-architecture.drawio.png)
66

77
### Core Components
88
Korifi is built up of the following core components:
@@ -88,7 +88,7 @@ Cloud Foundry has a tiered tenancy system consisting of the cluster or "foundati
8888
We model these using Kubernetes namespaces. There is a root "cf" namespace that can contain multiple `CFOrg` custom resources. These trigger the creation of K8s namespaces for each org which themselves will contain `CFSpace` resources that point to additional namespaces for each space. This is convenient because it maps closely to the CF model in terms of app isolation and user permissions on Kubernetes. Initially we used the [Hierarchical Namespaces Controller project](https://github.com/kubernetes-sigs/hierarchical-namespaces) to manage this hierarchy, but moved away to a custom implementation for [various reasons](https://docs.google.com/document/d/1AVZPcoOphbWU8tVJ2gM7UkEC0EvHaki6scWgp8DuCDY/edit).
8989

9090
### Routing
91-
![Korifi Routing Diagram](images/korifi_routing.jpg)
91+
![Korifi Routing Diagram](images/korifi-routing-diagram.drawio.png)
9292

9393
We integrate with the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/) to implement routing to both the Korifi API and app workloads. The `CFRoute` custom resource supports the CF route management APIs and is converted into GatewayAPI `HTTPRoute` and Kubernetes `Service` resources. We use a validating webhook to apply Cloud Controller's validation rules to the routes (e.g. no duplicate routes, route has a matching `CFDomain`, etc).
9494

Loading
107 KB
Loading

0 commit comments

Comments
 (0)