Skip to content

Commit 465645b

Browse files
feat(decision): add MCP namespace strategy in platform cluster (#13)
* chore: update authors.yaml * feat(decision): add MCP namespace strategy in platform cluster * rephrase Co-authored-by: Valentin Gerlach <valentin.gerlach@sap.com> * rephrase Co-authored-by: Valentin Gerlach <valentin.gerlach@sap.com> * update consequences Co-authored-by: Valentin Gerlach <valentin.gerlach@sap.com> * fix: authors file * fix: complie error because of {} --------- Co-authored-by: Valentin Gerlach <valentin.gerlach@sap.com>
1 parent bcef2d5 commit 465645b

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
authors:
3+
- MaximilianTechritz
4+
---
5+
6+
# MCP Namespace Strategy for Platform Cluster
7+
8+
## Context and Problem Statement
9+
10+
In the openMCP platform, we need to determine how to organize resources in the Platform Cluster that belong to Managed Control Planes (MCPs). Each MCP represents a separate tenant or customer environment that needs to be isolated and managed independently. The key question is: Should every MCP on the Platform Cluster have its own Namespace to ensure proper isolation, resource management, and security boundaries?
11+
12+
Without proper namespace isolation, MCPs could interfere with each other, leading to security vulnerabilities, resource conflicts, and operational complexity.
13+
14+
## Considered Options
15+
16+
1. **`mcp-{hash-mcp-name-and-namespace}`** - Create namespaces using a hash of the MCP name and original namespace (hash < 63 chars)
17+
2. **`mcp-{uid}`** - Create namespaces using the UID of the MCP resource
18+
19+
## Decision Outcome
20+
21+
Option 1: `mcp-{hash-mcp-name-and-namespace`, because it provides unique namespace isolation for each MCP while avoiding conflicts and maintaining deterministic naming that survives backup/restore operations. Option 2 would have been simpler but does not work well with backup/restore scenarios, as the UID changes after a restore operation, breaking the link between the MCP and its namespace.
22+
23+
The hash algorithm we will use with Option 1 is [SHAKE128](https://pkg.go.dev/crypto/sha3#SumSHAKE128). It is an 128-bit algorithm that is FIPS compliant. The 128-bit output allows us to print the hash in the UUID v8 format. So the namespace could look something like `mcp-3f4b2c1d-8e9a-7b6c-5d4e-3f2a1b0c9d8e`.
24+
25+
### Consequences
26+
27+
- The old hash function `K8sNameHash` should not be used anymore.

adrs/authors.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,10 @@ ValentinGerlach:
55
image_url: /img/authors/ValentinGerlach.png
66
socials:
77
github: ValentinGerlach
8+
9+
MaximilianTechritz:
10+
name: Maximilian Techritz
11+
title: openMCP Contributor
12+
url: https://github.com/maximiliantech
13+
socials:
14+
github: maximiliantech

0 commit comments

Comments
 (0)