Skip to content
This repository was archived by the owner on Nov 29, 2024. It is now read-only.

Commit 68ac83b

Browse files
authored
Add overview section to README (#16)
1 parent 5217dd6 commit 68ac83b

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

README.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,24 @@
44

55
Implementation of [Kardinal](https://github.com/kurtosis-tech/kardinal) as a K8S Operator.
66

7+
## Overview
8+
9+
The Kardinal operator watches the cluster K8S resources, generates a cluster topology and applies changes to satisfy the cluster topology. One difference with today is that the operator only manages what needs to be added to the user cluster (dev services, network resources…). The operator does not reconcile user resources. We introduce some k8s custom resources: service dependencies, flows, plugins and templates. Those resources will be namespaced.
10+
11+
The operator performs the same operation each time one of the watched Flow custom resources is added or removed.
12+
13+
- Generate the base cluster topology from the list of services, dependencies, deployments, gateways…
14+
- Generate flow topologies from the list of flows, plugins and templates. Every operation performed by the operator needs to be idempotent which means the plugins need to be idempotent.
15+
- Merge the topologies
16+
- Generate the K8s resources needed (dev services, network resources…) to satisfy the merged topology and reconcile the cluster.
17+
18+
![](images/overview.png)
19+
720
## Install
821

922
### Requirements
1023

11-
Istio is required and your namespaces should be labeled for injection.
24+
Istio is required and your namespaces should be labeled for injection.
1225

1326
```
1427
istioctl manifest install --set profile=default
@@ -68,7 +81,7 @@ make run (Run operator against your local cluster)
6881
Manage custom resources with kubectl:
6982

7083
```
71-
# Create a flow
84+
# Create a flow
7285
kubectl create -f ./ci/flow-test.yaml
7386
7487
# Delete a flow
@@ -77,7 +90,7 @@ kubectl delete -f ./ci/flow-test.yaml
7790
# Get all flows in namespace
7891
kubectl get flows -n baseline
7992
80-
# Describe a flow by its name
93+
# Describe a flow by its name
8194
kubectl describe flows flow-test -n baseline
8295
```
8396

@@ -105,9 +118,9 @@ kubectl describe flows flow-test -n baseline
105118

106119
#### Gateway
107120

108-
If you previously ran `Kardinal Manager`, you may already have a `gateway-istio` deployment in your cluster. This could lead to requests being
109-
routed through it instead of the `gateway-istio` deployment in the `baseline` namespace. This issue arises because a gateway resource may
110-
still exist. We recommend removing it —only if you're certain it was created by Kardinal— before deploying the `./ci/obd-demo.yaml` manifest.
121+
If you previously ran `Kardinal Manager`, you may already have a `gateway-istio` deployment in your cluster. This could lead to requests being
122+
routed through it instead of the `gateway-istio` deployment in the `baseline` namespace. This issue arises because a gateway resource may
123+
still exist. We recommend removing it —only if you're certain it was created by Kardinal— before deploying the `./ci/obd-demo.yaml` manifest.
111124
You can do this with the following command: `kubectl delete Gateway gateway`
112125

113126
[api-design-doc]: https://book.kubebuilder.io/cronjob-tutorial/api-design

images/overview.png

33.1 KB
Loading

0 commit comments

Comments
 (0)