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
Copy file name to clipboardExpand all lines: README.md
+4-113Lines changed: 4 additions & 113 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,104 +3,13 @@
3
3
# Control Plane Operator
4
4
5
5
## About this project
6
-
The Control Plane Operator is a universal Kubernetes Operator which bundles all necessary functionality to install so called `Components` (like Crossplane, External Secrets Operator, etc.) in a managed fashion into a Kubernetes cluster.
6
+
The Control Plane Operator is a universal Kubernetes Operator which bundles all necessary functionality to automate the lifecycle of so called `Components` (like Crossplane, External Secrets Operator, etc.) in a managed fashion into a Kubernetes cluster.
7
7
8
-
The Control Plane Operator can be used in different flavors and scenarios:
9
-
-[Self-hosted](#self-hosted): You install the Control Plane Operator into your own Kubernetes cluster.
10
-
* You can install `Components` like Crossplane, External Secrets Operator, etc. via one central [`ControlPlane` API](./config/crd/bases/core.orchestrate.cloud.sap_controlplanes.yaml). For more information see the [Components](#components) section.
11
-
* You are responsible running and if necessary upgrading the Control Plane Operator.
12
-
-[Managed](#managed): You are using a Managed Control Plane offering, where you order a `ManagedControlPlane` either via an API or via an Onboarding system.
13
-
8
+
The Control Plane Operator is part of the openMCP project. It exposes the [`ControlPlane` API](./config/crd/bases/core.orchestrate.cloud.sap_controlplanes.yaml), where `Components` can be configured that should be reconciled on another Kubernetes cluster. With openMCP, the `ControlPlane` is not directly exposed to an end user. Instead, the `ManagedControlPlane` API is the facade. The [mcp-operator](https://github.com/openmcp-project/mcp-operator) is interacting with the `ControlPlane` API.
14
9
15
-
## Flavors
10
+
## Using the Control Plane Operator in a Managed Setup
16
11
17
-
### Self-hosted
18
-
19
-
**PLEASE EXPECT SOME HICK-UPS WHEN SETTING UP THE OPERATOR IN A SELF-HOSTED SCENARIO. The following instructions might not be up-to-date.**
20
-
21
-
If you want to use the Control Plane Operator in your own Kubernetes cluster, please follow the instructions below.
22
-
Make sure you are connected to a Kubernetes cluster that should serve as ControlPlane environment.
After the installation you will see that a Pod will spin up.
54
-
55
-
Now, you have to install two `ReleaseChannel` resources.
56
-
A `ReleaseChannel` resource defines which version you define should be latest or stable.
57
-
(FYI: The `ReleaseChannel` feature was implemented with as a requirement in a managed setup. This may not seem suitable for a self-hosted environment. There are currently discussions about it. So this could change in the future. Feedback is much appreciated here.)
58
-
59
-
In the [`config/samples/releasechannel/`](./config/samples/releasechannel) directory you will find two sample `ReleaseChannel` resources.
60
-
You can safely apply them to your cluster with the following command
61
-
```shell
62
-
kubectl apply -f config/samples/releasechannel/
63
-
```
64
-
65
-
Make sure to keep the `latest` and `stable``ReleaseChannel` resources up-to-date to your own needs.
66
-
In the `ControlPlane` CR you can define which `ReleaseChannel` of a Component you want to use.
67
-
68
-
```yaml
69
-
apiVersion: core.orchestrate.cloud.sap/v1beta1
70
-
kind: ControlPlane
71
-
metadata:
72
-
name: controlplane-sample
73
-
spec:
74
-
target:
75
-
# use local cluster
76
-
serviceAccount: {}
77
-
fluxServiceAccount:
78
-
name: flux-deployer
79
-
namespace: default
80
-
overrides:
81
-
host: https://kubernetes.default.svc
82
-
crossplane: # Remove to disable Crossplane and Providers
83
-
version: latest
84
-
providers:
85
-
- name: provider-kubernetes # IMPORTANT: this name must match the name in the ReleaseChannel!
version: latest # this will install version v0.13.0 (defined in ReleaseChannel "latest") - see above
88
-
btpServiceOperator: # Remove to disable the BTP Service Operator
89
-
version: stable
90
-
certManager: # Remove to disable Cert Manager
91
-
version: stable
92
-
externalSecretsOperator: # Remove to disable External Secrets Operator
93
-
version: stable
94
-
kyverno: # Remove to disable Kyverno
95
-
version: stable
96
-
```
97
-
**Note:** Currently, it is only possible to install Crossplane Providers which are Open Source via the ControlPlane resource. We are working on the fix. In the meantime, you can go ahead and install them via the `Provider` CRD from Crossplane itself.
98
-
99
-
If you apply the `ControlPlane` CR, the Control Plane Operator will start to install the `Components` into your cluster.
100
-
101
-
### Managed
102
-
103
-
With the Managed setup, we will use this Operator in our landscape to provide a new API called `ManagedControlPlane`.
12
+
With the Managed setup, we will use this Operator in our OpenMCP landscape to provide a new API called `ManagedControlPlane`.
104
13
105
14
With the `ManagedControlPlane` you will also have two different cluster setups how the MCP will look like:
106
15
- Dedicated Cluster Setup - A standard Kubernetes cluster
0 commit comments