Skip to content

Commit 7ad6fa5

Browse files
maximiliantechrobertgraeffValentinGerlach
authored
docs(user): add first draft guide for getting started (#16)
* docs(user): add first draft guide for getting started * docs(user): add landscaper installation to getting-started guide * fix: typo Co-authored-by: Valentin Gerlach <[email protected]> * docs: improve phrasing Co-authored-by: Valentin Gerlach <[email protected]> --------- Co-authored-by: Robert Graeff <[email protected]> Co-authored-by: Valentin Gerlach <[email protected]>
1 parent 6b0cfcc commit 7ad6fa5

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

docs/users/00-getting-started.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,113 @@
11
# Getting Started
2+
3+
> This is a quick guide on how to get started with the openMCP platform. This guide is not complete and will be extended in the future.
4+
5+
## Setup
6+
7+
### 1. Create a `Project`
8+
A `Project` is the starting point of your Manged Control Plane (MCP) journey. It is a logical grouping of `Workspaces` and `ManagedControlPlanes`. A `Project` can be used to represent an organization, department, team or any other logical grouping of resources.
9+
```yaml
10+
apiVersion: core.openmcp.cloud/v1alpha1
11+
kind: Project
12+
metadata:
13+
name: platform-team
14+
annotations:
15+
openmcp.cloud/display-name: Platform Team
16+
spec:
17+
members:
18+
- kind: User
19+
20+
roles:
21+
- admin
22+
- kind: User
23+
24+
roles:
25+
- view
26+
```
27+
28+
### 2. Create a `Workspace` in the `Project`
29+
30+
A `Workspace` is a logical grouping of `ManagedControlPlanes`. A `Workspace` can be used to represent an environment (e.g. dev, staging, prod) or again an organization, department, team or any other logical grouping of resources.
31+
32+
```yaml
33+
apiVersion: core.openmcp.cloud/v1alpha1
34+
kind: Workspace
35+
metadata:
36+
name: dev
37+
namespace: project-platform-team
38+
annotations:
39+
openmcp.cloud/display-name: Platform Team - Dev
40+
spec:
41+
members:
42+
- kind: User
43+
44+
roles:
45+
- admin
46+
- kind: User
47+
48+
roles:
49+
- view
50+
```
51+
52+
### 3. Create a `ManagedControlPlane` in the `Workspace`
53+
54+
The `ManagedControlPlane` resource is the heart of the openMCP platform. Each Managed Control Plane (MCP) has its own Kubernetes API endpoint and data store. You can use the `iam` property to define who should have access to the MCP and the resources it contains.
55+
56+
```yaml
57+
apiVersion: core.openmcp.cloud/v2alpha1
58+
kind: ManagedControlPlaneV2
59+
metadata:
60+
name: mcp-01
61+
namespace: project-platform-team--ws-dev
62+
spec:
63+
iam:
64+
roleBindings:
65+
- subjects:
66+
- kind: User
67+
68+
- kind: User
69+
70+
roleRefs:
71+
- kind: ClusterRole
72+
name: cluster-admin
73+
```
74+
75+
### 4. Install managed services in your Managed Control Plane (MCP)
76+
77+
You can install managed services in your Managed Control Plane (MCP) to extend its functionality. Currently, the following managed services are available:
78+
- Crossplane via the [service-provider-crossplane](https://github.com/openmcp-project/service-provider-crossplane)
79+
- Landscaper via the [service-provider-landscaper](https://github.com/openmcp-project/service-provider-landscaper)
80+
81+
#### Managed Service: Crossplane
82+
83+
Crossplane is an open source project that enables you to manage cloud infrastructure and services using Kubernetes-style declarative configuration. It allows you to define and manage cloud resources such as databases, storage, and networking using Kubernetes manifests.
84+
85+
To install Crossplane in your MCP, you need to create a `Crossplane` resource in the same namespace as your `ManagedControlPlane`. The following example installs Crossplane version `v1.20.0` with the `provider-kubernetes` provider version `v0.16.0`.
86+
87+
```yaml
88+
apiVersion: crossplane.services.openmcp.cloud/v1alpha1
89+
kind: Crossplane
90+
metadata:
91+
name: mcp-01 # Same name as your ManagedControlPlane
92+
namespace: project-platform-team--ws-dev # Same namespace as your ManagedControlPlane
93+
spec:
94+
version: v1.20.0
95+
providers:
96+
- name: provider-kubernetes
97+
version: v0.16.0
98+
```
99+
100+
#### Managed Service: Landscaper
101+
102+
Landscaper manages the installation, updates, and uninstallation of cloud-native workloads, with focus on larger complexities, while being capable of handling complex dependency chains between the individual components.
103+
104+
To install a Landscaper for your MCP, you need to create a `Landscaper` resource with the same namespace and name as your `ManagedControlPlane`. The following example installs the Landscaper with default configuration.
105+
106+
```yaml
107+
apiVersion: landscaper.services.openmcp.cloud/v1alpha1
108+
kind: Landscaper
109+
metadata:
110+
name: mcp-01 # Same name as your ManagedControlPlane
111+
namespace: project-platform-team--ws-dev # Same namespace as your ManagedControlPlane
112+
spec: {}
113+
```

0 commit comments

Comments
 (0)