You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> While kcp-operator is usable, the project is still in an early state. Please only use it if you know what you are doing. We recommend against using it in production setups right now.
@@ -29,115 +29,15 @@ The table below marks known support of a kcp version in kcp-operator versions.
29
29
30
30
[^1]: While we try to support kcp's `main` branch, this support is best effort and should not be used for deploying actual kcp instances.
31
31
32
-
## Installation
33
-
34
-
### Requirements
35
-
36
-
-[cert-manager](https://cert-manager.io/)
37
-
38
-
39
-
### Helm Chart
40
-
41
-
A Helm chart for kcp-operator is maintained in [kcp-dev/helm-charts](https://github.com/kcp-dev/helm-charts/tree/main/charts/kcp-operator). To install it, first add the Helm repository:
F --> M([$rootshard-front-proxy-client-ca]):::issuer
102
-
G --> N([$rootshard-server-ca]):::issuer
103
-
H --> O([$rootshard-requestheader-client-ca]):::issuer
104
-
I --> P([$rootshard-client-ca]):::issuer
105
-
J --> Q([kcp-service-account-issuer]):::issuer
106
-
107
-
K --- K1(kcp-etcd):::cert --> K2(kcp-etcd-client):::cert
108
-
L --> L1(kcp-etcd-peer):::cert
109
-
M --> M1($rootshard-$frontproxy-admin-kubeconfig):::cert
110
-
N --- N1(kcp):::cert --- N2($rootshard-$frontproxy-server):::cert --> N3(kcp-virtual-workspaces):::cert
111
-
O --- O1($rootshard-$frontproxy-requestheader):::cert --> O2("(kcp-front-proxy-vw-client)"):::cert
112
-
P --- P1($rootshard-$frontproxy-kubeconfig):::cert --> P2(kcp-internal-admin-kubeconfig):::cert
113
-
Q --> Q1(kcp-service-account):::cert
114
-
115
-
B --> R([$rootshard2-ca]):::issuer
116
-
R --> S(...):::ca
117
-
118
-
classDef issuer color:#77F
119
-
classDef ca color:#F77
120
-
classDef cert color:orange
121
-
```
122
-
123
32
## Contributing
124
33
125
-
Thanks for taking the time to start contributing!
34
+
Thanks for taking the time to start contributing! Please check out our [contributor documentation](https://docs.kcp.io/kcp-operator/main/contributing).
126
35
127
36
### Before You Start
128
37
129
38
* Please familiarize yourself with the [Code of Conduct][4] before contributing.
130
39
* See [our contributor documentation][2] for instructions on the developer certificate of origin that we require.
131
40
132
-
### Running E2E tests locally
133
-
134
-
In order to run the E2E tests locally, you will need to setup cert-manager with the sample clusterissuer:
While kcp-operator is usable, the project is still in an early state. Please only use it if you know what you are doing. We recommend against using it in production setups right now.
10
+
11
+
kcp-operator is a Kubernetes operator to deploy and run [kcp](https://github.com/kcp-dev/kcp) instances on a Kubernetes cluster. kcp is a horizontally scalable control plane for Kubernetes-like APIs.
12
+
13
+
## Features
14
+
15
+
- Create and update core components of a kcp setup (root shard, additional shards, front proxy)
16
+
- Support for multi-shard deployments of kcp
17
+
- Generate and refresh kubeconfigs for accessing kcp instances or specific shards
18
+
19
+
## Support Matrix
20
+
21
+
The table below marks known support of a kcp version in kcp-operator versions.
22
+
23
+
| kcp |`main`|
24
+
| ------ | ------------------ |
25
+
|`main`|:warning:|
26
+
| 0.27.x |:white_check_mark:|
27
+
28
+
<small>While we try to support kcp's `main` branch, this support is best effort and should not be used for deploying actual kcp instances.</small>
29
+
30
+
## Contributing
31
+
32
+
We ❤️ our contributors! If you're interested in helping us out, please head over to our [Contributing](./contributing/index.md)
33
+
guide.
34
+
35
+
## Getting in touch
36
+
37
+
There are several ways to communicate with us:
38
+
39
+
- The [`#kcp-dev` channel](https://app.slack.com/client/T09NY5SBT/C021U8WSAFK) in the [Kubernetes Slack workspace](https://slack.k8s.io).
40
+
- Our mailing lists:
41
+
-[kcp-dev](https://groups.google.com/g/kcp-dev) for development discussions.
42
+
-[kcp-users](https://groups.google.com/g/kcp-users) for discussions among users and potential users.
43
+
- By joining the kcp-dev mailing list, you should receive an invite to our bi-weekly community meetings.
44
+
- See recordings of past community meetings on [YouTube](https://www.youtube.com/channel/UCfP_yS5uYix0ppSbm2ltS5Q).
45
+
- The next community meeting dates are available via our [CNCF community group](https://community.cncf.io/kcp/).
46
+
- Check the [community meeting notes document](https://docs.google.com/document/d/1PrEhbmq1WfxFv1fTikDBZzXEIJkUWVHdqDFxaY1Ply4) for future and past meeting agendas.
47
+
- Browse the [shared Google Drive](https://drive.google.com/drive/folders/1FN7AZ_Q1CQor6eK0gpuKwdGFNwYI517M?usp=sharing) to share design docs, notes, etc.
48
+
- Members of the kcp-dev mailing list can view this drive.
Copy file name to clipboardExpand all lines: docs/content/contributing/architecture.md
+47-1Lines changed: 47 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,9 @@
1
-
# Design Notes for kcp-operator
1
+
---
2
+
description: >
3
+
An overview of architecture design decisions made for kcp-operator.
4
+
---
5
+
6
+
# Architecture
2
7
3
8
kcp-operator is a kubebuilder/controller-runtime based collection of controllers that allow setting up complex kcp environments.
4
9
@@ -28,3 +33,44 @@ The above flow chart renders the following considerations:
28
33
Due to the potential "global" nature of a kcp setup it might be necessary to run kcp-operator on multiple clusters while attempting to form one single kcp setup with multiple shards and front proxies.
29
34
30
35
To make this possible, resources with object references (see above) could have a secondary way of reading necessary configuration (instead of a `corev1.LocalObjectReference`). This could be a reference to a `ConfigMap` or a `Secret` (to be determined) which are automatically generated for various resource types. A sync process (outside of the kcp-operator) could then sync the `ConfigMap` (or the `Secret`, or a custom resource type) across namespaces or even clusters, where e.g. a `Shard` object references a `Secret` which was generated for a `RootShard` on another cluster.
36
+
37
+
## Certificate Management
38
+
39
+
The placeholders `$rootshard` and `$frontproxy` in the chart are used to denote the name of the corresponding operator resource.
A Helm chart for kcp-operator is maintained in [kcp-dev/helm-charts](https://github.com/kcp-dev/helm-charts/tree/main/charts/kcp-operator). To install it, first add the Helm repository:
0 commit comments