Skip to content

Commit 4df40c5

Browse files
committed
docs: expand admin journey with quickstart, installation, and first-steps guides; add install overlay improvements
- Replace setup.md with separate quickstart (Kind) and installation (ArgoCD) guides - Add first-steps tutorial for bootstrapping environment, zones, teams, and sample APIs - Expand environments-and-zones with zone setup details and EventConfig configuration - Rewrite notification-templates with selection logic, placeholders, and troubleshooting - Add user-journey features section (traffic management, security, event delivery, filtering) - Add secret-manager architecture page and update resource specs - Add Kustomize component with default notification templates - Rename zone files to .example.yaml; add EventConfig examples for local overlay - Fix install path in .releaserc.mjs; remove deprecated install.sh
1 parent 48e059e commit 4df40c5

50 files changed

Lines changed: 3480 additions & 733 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/scripts/update_install.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
# SPDX-License-Identifier: Apache-2.0
66

77
# This script should only be run in a CI environment when a new release is created.
8-
# It will update the install-files to point to the newly released version.
9-
# See `.releaserc.mjs` for more information on how its integrated with semantic-release.
8+
# It updates the install overlay references to the newly released version.
9+
# See `.releaserc.mjs` for integration with semantic-release.
1010

1111
set -e
1212

@@ -18,4 +18,4 @@ if [ -z "$NEXT_VERSION" ]; then
1818
fi
1919

2020
sed -i "s/ref=[^ ]*/ref=${NEXT_VERSION}/" "$KUSTOMIZATION_FILE"
21-
sed -i "s/newTag: [^ ]*/newTag: ${NEXT_VERSION}/" "$KUSTOMIZATION_FILE"
21+
sed -i "s/newTag: [^ ]*/newTag: ${NEXT_VERSION}/" "$KUSTOMIZATION_FILE"

.github/workflows.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -171,23 +171,23 @@ The repository uses a **unified versioning approach** where all modules and Helm
171171

172172
#### **Versioning Scripts** (`.github/scripts/`)
173173

174-
Two scripts ensure consistent versioning across the monorepo:
174+
Two scripts ensure consistent versioning across install overlays and Helm charts:
175175

176-
1. **`update_chart_version.sh`**
176+
1. **`update_install.sh`**
177+
- Updates `install/overlays/default/kustomization.yaml` to the newly released tag
178+
- Rewrites both remote `ref` values and image `newTag` values
179+
- Called by semantic-release during the prepare phase
180+
181+
2. **`update_chart_version.sh`**
177182
- Updates `version` and `appVersion` in Helm Chart.yaml files
178183
- Called by semantic-release during the prepare phase
179184
- Example: Updates `common-server/helm/Chart.yaml`
180185

181-
2. **`update_install.sh`**
182-
- Updates the install kustomization file with new version references
183-
- Modifies `install/overlays/default/kustomization.yaml` to point to the new release tag
184-
- Updates both `ref` and `newTag` fields
185-
186186
#### **Integration with Semantic Release**
187187

188188
These scripts are executed automatically during the release process via `.releaserc.mjs`:
189189
- Runs during the `prepare` phase before creating the release
190-
- Updates version references in install files and Helm charts
190+
- Updates version references in install overlays and Helm charts
191191
- Commits changes back to the repository
192192
- Modified files: `CHANGELOG.md`, `install/overlays/default/kustomization.yaml`, `common-server/helm/Chart.yaml`
193193

.releaserc.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ EOF`,
3131
['@semantic-release/git', {
3232
assets: [
3333
'CHANGELOG.md',
34-
'install/kustomization.yaml',
34+
'install/overlays/default/kustomization.yaml',
3535
'common-server/helm/Chart.yaml',
3636
],
3737
}],
3838
],
39-
};
39+
};

docs/docs/admin-journey/environments-and-zones.md

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sidebar_position: 2
2+
sidebar_position: 4
33
---
44

55
# Environments & Zones
@@ -32,6 +32,20 @@ A Zone represents a physical or logical deployment target within an environment.
3232
3333
Zones are the key building block for multi-cloud deployments. You can have zones pointing to different cloud providers (for example, one zone on AWS and another on Azure), and the Control Plane will manage API routing and event meshing across them.
3434
35+
### How a Zone is Set Up
36+
37+
Each zone is expected to have:
38+
39+
- **1 Gateway instance** — used for API routing and policy enforcement in that zone
40+
- **1 Identity Provider (IDP) instance** — used for authentication and client management in that zone
41+
42+
By default, the current platform setup uses:
43+
44+
- **Kong** as the gateway, typically deployed with Helm via [`gateway-kong-charts`](https://github.com/telekom/gateway-kong-charts)
45+
- **Keycloak** as the IDP, typically deployed with Helm via [`identity-iris-keycloak-charts`](https://github.com/telekom/identity-iris-keycloak-charts)
46+
47+
When creating the Zone resource in the Control Plane, you provide the connection details for exactly these zone-local instances (gateway + IDP). This keeps each zone self-contained and allows different zones to use separate runtime endpoints if needed.
48+
3549
### Creating a Zone
3650

3751
A Zone references the gateway and identity provider to use, along with Redis configuration and visibility settings:
@@ -94,6 +108,81 @@ spec:
94108
namespace: dev
95109
```
96110

111+
## Event Config
112+
113+
:::info
114+
Before creating an `EventConfig`, make sure the eventing subsystem is enabled in your Control Plane installation. Follow the steps in [Installation](./installation.md#optional-enable-the-eventing-subsystem).
115+
:::
116+
117+
After a zone is created, eventing is still not active for that zone by default. To enable the event feature, create an `EventConfig` resource for the zone.
118+
119+
`EventConfig` is the zone-level setup for the Event domain. It bootstraps the required event infrastructure in that zone (for example gateway routes, identity clients, and event store wiring).
120+
121+
### What `EventConfig` does
122+
123+
When an `EventConfig` is reconciled, the event controller prepares core building blocks used by event publishers and subscribers:
124+
125+
- **Identity clients** for event administration and cross-zone mesh communication
126+
- **EventStore** connection used by the pub/sub runtime
127+
- **Gateway routes and URLs** for publishing, callbacks, and (optionally) Voyager APIs
128+
129+
### Creating an `EventConfig`
130+
131+
Apply one `EventConfig` per zone:
132+
133+
```yaml
134+
apiVersion: event.cp.ei.telekom.de/v1
135+
kind: EventConfig
136+
metadata:
137+
name: dataplane1-event-config
138+
namespace: dev
139+
spec:
140+
zone:
141+
name: dataplane1
142+
namespace: dev
143+
admin:
144+
url: https://config-backend.example.com
145+
client:
146+
clientId: event-admin
147+
clientSecret: <your-event-admin-secret>
148+
serverSendEventUrl: http://event-backend.dev.svc.cluster.local/sse
149+
publishEventUrl: http://event-backend.dev.svc.cluster.local/publish
150+
voyagerApiUrl: http://voyager.dev.svc.cluster.local
151+
mesh:
152+
fullMesh: true
153+
client:
154+
clientId: event-mesh
155+
clientSecret: <your-event-mesh-secret>
156+
```
157+
158+
### Mesh configuration options
159+
160+
- **`fullMesh: true`** — events can be distributed across all zones.
161+
- **`fullMesh: false` + `zoneNames`** — events are only distributed to selected zones.
162+
163+
Example for partial mesh:
164+
165+
```yaml
166+
mesh:
167+
fullMesh: false
168+
zoneNames:
169+
- dataplane2
170+
- dataplane3
171+
client:
172+
clientId: event-mesh
173+
clientSecret: <your-event-mesh-secret>
174+
```
175+
176+
### Verifying readiness
177+
178+
After creation, the resource status is populated with generated references and URLs (for example `publishUrl`, `callbackUrl`, and `eventStore`).
179+
180+
If these fields appear and conditions are healthy, your zone is ready for event exposures and subscriptions.
181+
182+
:::caution
183+
Do not commit secrets (for example `clientSecret`) to version control. Use your platform's secret management approach.
184+
:::
185+
97186
## Next Steps
98187

99188
- [Organizations & Teams](./organizations-and-teams.md) — Set up teams within your environments

0 commit comments

Comments
 (0)