Skip to content

feat: added documentation; restructure installation components; added install scripts#306

Merged
ron96g merged 10 commits into
mainfrom
feat/documentation
Apr 15, 2026
Merged

feat: added documentation; restructure installation components; added install scripts#306
ron96g merged 10 commits into
mainfrom
feat/documentation

Conversation

@ron96g
Copy link
Copy Markdown
Member

@ron96g ron96g commented Mar 31, 2026

Overhaul the documentation from a technology-focused structure (docs/pages/)
to a journey-based structure (docs/) organized around admin, user, and
developer workflows. Add comprehensive architecture documentation for all
domains.

Restructure install directory into base/overlays/components layout
Add admin journey docs (setup, environments, orgs, notifications, ops)
Add user journey docs (onboarding, APIs, events, approvals)
Add developer journey docs (contributing, operators, local dev)
Add architecture docs for all domains (admin, api, gateway, identity, etc.)
Add CRD reference generation scripts and remark plugin
Update CI workflows for new docs paths and enable deployment on feat branch
Simplify root README
Add local-setup script in hack/
Already published via https://telekom.github.io/controlplane/

Overhaul the documentation from a technology-focused structure (docs/pages/)
to a journey-based structure (docs/) organized around admin, user, and
developer workflows. Add comprehensive architecture documentation for all
domains.
- Restructure install directory into base/overlays/components layout
- Add admin journey docs (setup, environments, orgs, notifications, ops)
- Add user journey docs (onboarding, APIs, events, approvals)
- Add developer journey docs (contributing, operators, local dev)
- Add architecture docs for all domains (admin, api, gateway, identity, etc.)
- Add CRD reference generation scripts and remark plugin
- Update CI workflows for new docs paths and enable deployment on feat branch
- Simplify root README
- Add local-setup script in hack/
@ron96g ron96g temporarily deployed to github-pages March 31, 2026 13:31 — with GitHub Pages Inactive
@ron96g ron96g self-assigned this Mar 31, 2026
…teps 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
@ron96g ron96g temporarily deployed to github-pages April 2, 2026 11:27 — with GitHub Pages Inactive
ron96g added 3 commits April 8, 2026 09:30
…eneration script

Add @docusaurus/theme-mermaid for rendering Mermaid diagrams and
@easyops-cn/docusaurus-search-local for offline search. Include a new
script to generate JSON Schema files from CRD definitions and update
.gitignore to exclude the generated output.
… Remote Organizations as planned

Rename the user-journey features section for clarity and add "planned
feature" notices to Remote Organizations across the admin architecture
and reference pages. Add a resource hierarchy diagram to the components
overview and remove the redundant feature-support-by-Rover-section table
from the API reference. Remove the unused high-level architecture SVG.
Add a new "Platform Governance Features" section to the admin journey
with documentation for API Categories, covering category creation,
team restrictions, group prefix enforcement, and API linting. Add a
JSON Schema reference page listing downloadable schemas for all CRDs
with usage instructions for editor autocompletion.
@ron96g ron96g temporarily deployed to github-pages April 8, 2026 07:32 — with GitHub Pages Inactive
@ron96g ron96g marked this pull request as ready for review April 8, 2026 08:02
Copilot AI review requested due to automatic review settings April 8, 2026 08:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the documentation site from a technology-oriented layout into a journey-based information architecture, while updating local installation overlays and samples to match the new install structure and docs paths.

Changes:

  • Reorganize and modernize the docs site structure/assets (including scripts and dependencies).
  • Refactor install/ into a base/overlays/components model and extend the local overlay with sample admin/org/rover resources.
  • Update various READMEs and sample manifests to reflect new paths (docs assets, install overlays).

Reviewed changes

Copilot reviewed 144 out of 191 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
README.md Simplifies root README and updates logo path to new docs static location.
rover-server/README.md Updates install overlay link to install/overlays/default.
notification/config/samples/notification_v1_notificationtemplate.yaml Fixes logo asset URL to match new docs static path.
install/overlays/local/kustomization.yaml Reworks local overlay to use install/base, adjusts module paths, and enables eventing component.
install/overlays/local/README.md Adds local install documentation and command sequence for applying overlays/resources.
install/overlays/local/secret-manager-config.yaml Formatting-only change in commented config example.
install/overlays/local/resources/.gitignore Ignores locally-copied zone config files to reduce secret-leak risk.
install/overlays/local/resources/admin/kustomization.yaml Adds admin resource bundle (environment + zones).
install/overlays/local/resources/admin/environment.yaml Introduces Environment (and Namespace) sample manifest.
install/overlays/local/resources/admin/zones/kustomization.yaml Adds zone resource bundle referencing local-copied zone configs.
install/overlays/local/resources/admin/zones/dataplane1.example.yaml Adds example Zone manifest template for dataplane1.
install/overlays/local/resources/admin/zones/dataplane2.example.yaml Adds example Zone manifest template for dataplane2.
install/overlays/local/resources/admin/eventconfigs/README.md Adds eventconfig sample documentation.
install/overlays/local/resources/admin/eventconfigs/kustomization.yaml Updates eventconfig resources list (now only dataplane1).
install/overlays/local/resources/admin/eventconfigs/dataplane1.example.yaml Adds example EventConfig manifest template.
install/overlays/local/resources/org/kustomization.yaml Adds org resource bundle (group + team).
install/overlays/local/resources/org/group.yaml Adds sample Group manifest.
install/overlays/local/resources/org/team.yaml Adds sample Team manifest.
install/overlays/local/resources/rover/kustomization.yaml Adds rover sample bundle (ApiSpecification + Rover).
install/overlays/local/resources/rover/apispec.yaml Adds sample ApiSpecification for the local journey.
install/overlays/local/resources/rover/rover.yaml Adds sample Rover exposure/subscription resources.
install/components/notificationtemplates/onboarding-template-mail.yaml Updates/adds notification template manifest (component-provided templates).
docs/scripts/download-logos.sh Adds/updates logo download helper used by docs assets.
docs/package.json Updates docs build dependencies for the new docs site setup.
Comments suppressed due to low confidence (1)

install/overlays/local/resources/admin/eventconfigs/kustomization.yaml:6

  • resources references dataplane1.yaml, but this directory only contains dataplane1.example.yaml (no dataplane1.yaml), so kustomize build/apply will fail. Either commit a real dataplane1.yaml, or switch the kustomization to reference the example file and/or document a copy step (and gitignore the copied file) similar to admin/zones/*.example.yaml.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +10
# local zone configs copied from *.example.yaml templates (may contain secrets)
admin/zones/dataplane1.yaml
admin/zones/dataplane2.yaml
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If admin/eventconfigs/dataplane*.yaml files are meant to be created locally from the *.example.yaml templates (they contain credentials/placeholders), they should also be gitignored like the zone configs to reduce the risk of committing secrets. Otherwise, consider committing non-secret sample dataplane*.yaml files and keeping them referenced by kustomize.

Copilot uses AI. Check for mistakes.
Comment on lines +7 to +12
metadata:
labels:
cp.ei.telekom.de/environment: env
name: onboarded--mail
namespace: env
spec:
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These templates hardcode metadata.namespace: env and cp.ei.telekom.de/environment: env. Notifications resolve templates by looking them up in the current environment namespace (from context), so leaving this placeholder will cause template lookup to fail (and may fail apply if namespace env doesn't exist). Make the namespace/environment configurable (e.g., remove the explicit namespace so a parent kustomization can set it, or provide an overlay/patch example) and update all templates in this component consistently.

Copilot uses AI. Check for mistakes.
Comment thread docs/package.json
Comment on lines +20 to +28
"dependencies": {
"@docusaurus/core": "3.9.2",
"@docusaurus/preset-classic": "3.9.2",
"@docusaurus/theme-mermaid": "^3.9.2",
"@easyops-cn/docusaurus-search-local": "^0.55.1",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"docusaurus-plugin-image-zoom": "^3.0.1",
"js-yaml": "^4.1.1",
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@docusaurus/theme-mermaid is version-ranged (^3.9.2) while the core/preset packages are pinned to 3.9.2. This can lead to mismatched Docusaurus package versions after fresh installs. Prefer pinning all @docusaurus/* packages to the same exact version.

Copilot uses AI. Check for mistakes.
Comment thread install/overlays/local/README.md
Comment on lines +7 to +10
# Event Configuration

This directory contains sample event configuration which are needed to enable the eventing feature in the controlplane.
They are zone-specific and need to be applied in each zone where you want to use the eventing feature.
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar: “sample event configuration which are needed” should be “sample event configurations that are needed” (or similar).

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/docs-deploy.yaml
Copilot AI changed the title docs: restructure documentation site with journey-based architecture ci: trigger docs deployment on main branch Apr 8, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 144 out of 191 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

install/overlays/local/resources/admin/eventconfigs/kustomization.yaml:6

  • kustomization.yaml references dataplane1.yaml, but this directory only contains dataplane1.example.yaml in the PR. As-is, kubectl apply -k install/overlays/local/resources/admin/eventconfigs will fail due to the missing file. Either add/rename the tracked file to dataplane1.yaml or update the kustomization to reference the .example.yaml (and document/ignore the local copy if it may contain secrets).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +106 to +112
// Fix links pointing to "roverctl" (the root command):
// In subcommand pages these become broken because the file is now index.md.
// Replace (roverctl) with (./) but only when it is an exact match — not a
// prefix like roverctl_apply.
if (!isRoot) {
transformed = transformed.replace(/\]\(roverctl\)/g, "](.)");
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In subcommand pages, the script replaces links to (roverctl) with ](.), but the comment says it should become (./). (.) is not a valid relative link target in Markdown/Docusaurus and will likely produce broken links to the root command page. Update the replacement to a working relative target (e.g., ./ or ./index) and keep it consistent with how the root file is renamed to index.md.

Copilot uses AI. Check for mistakes.
Comment on lines +9 to +11
This directory contains sample event configuration which are needed to enable the eventing feature in the controlplane.
They are zone-specific and need to be applied in each zone where you want to use the eventing feature.
You can apply them after installing the controlplane components. No newline at end of file
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar: "sample event configuration which are needed" should be plural/agree (e.g., "sample event configurations that are needed"). Also consider consistently spelling the product name as "Control Plane" in prose (currently "controlplane").

Copilot uses AI. Check for mistakes.
@ron96g ron96g changed the title ci: trigger docs deployment on main branch feat: added documentation; restructure installation components; added install scripts Apr 10, 2026
Copy link
Copy Markdown
Member

@stefan-ctrl stefan-ctrl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall create documentation +1

Could we perhabs improve some broken links? Otherwise, I fould feel confident merging it, and further improving it over time

Comment on lines +13 to +14
- **Go 1.25.8** — the primary language for all operators and services
- **Kubebuilder 4.9.0** — scaffolding and code generation for Kubernetes operators
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should not add this here, and instead link to our main ./contributing.md in the root-repo paths, so that we do not double this information.

Comment on lines +24 to +34
### Operators

These are Kubebuilder-scaffolded controllers, each managing a specific domain:

`admin/` · `api/` · `application/` · `approval/` · `event/` · `gateway/` · `identity/` · `notification/` · `organization/` · `pubsub/` · `rover/`

### Services

Backend services that are not Kubernetes operators:

`common-server/` · `controlplane-api/` · `rover-server/` · `secret-manager/` · `file-manager/`
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhabs be a little bit more abstract and only name them as examples, so that we are more flexible adding new ones, without needing to up this part of the doc?

Comment on lines +134 to +140
### End-to-End Tests

```bash
make test-e2e
```

Runs [Ginkgo](https://onsi.github.io/ginkgo/) tests against a Kind cluster.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we do not have general e2e tests per domain right now, should be perhabs remove that for now?

Comment thread install/overlays/local/README.md
@@ -4,4 +4,3 @@

resources:
- dataplane1.yaml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated, but dataplane1.yaml does not exists.

Instead it should be dataplane1.example.yaml

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example is not useable so this was actually intentional that people copy it and fill in the required values. That the problem with the CP that we cannot provide easy-to-use defaults

Comment thread docs/docs/user-journey/subscribing-to-apis.mdx
Comment thread docs/docs/user-journey/subscribing-to-events.mdx
payloadType: Data
callback: https://analytics.internal:8080/events
trigger:
responseFilterMode: INCLUDE
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/telekom/controlplane/blob/feat%2Fdocumentation/event/config/crd/bases/event.cp.ei.telekom.de_eventexposures.yaml#L156-L158:

Uses responseFilterMode: INCLUDE / EXCLUDE (uppercase). CRD validation expects Include / Exclude (PascalCase). The mapper does a direct cast with no normalization, so uppercase values would fail CRD validation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #322

| ----- | ----------- |
| `security.type` | The authentication method. Use `oauth2` for OAuth2-based authentication or `basicAuth` for username/password authentication. |
| `security.tokenEndpoint` | The OAuth2 token endpoint URL. Required when using an external identity provider. |
| `security.grantType` | The OAuth2 grant type. Supported values: `CLIENT_CREDENTIALS`, `PASSWORD`, `REFRESH_TOKEN`. |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/telekom/controlplane/blob/feat%2Fdocumentation/api/api/v1/security_types.go#L74

Lists REFRESH_TOKEN as a valid grantType but the CRD enum is client_credentials;authorization_code;password. refresh_token would fail validation. Also omits AUTHORIZATION_CODE which is a valid CRD value.

Comment thread docs/docs/architecture/gateway.mdx Outdated
Comment on lines +13 to +24
## Feature Architecture

The Gateway operator uses a plugin-based feature system for configuring route behavior:

| Feature | Description |
| ------- | ----------- |
| **PassThrough** | Basic request forwarding. |
| **AccessControl** | Consumer-based access control. |
| **RateLimit** | Request rate limiting via Redis. |
| **ExternalIDP** | External identity provider authentication. |
| **CustomScopes** | Fine-grained OAuth2 scope enforcement. |
| **LastMileSecurity** | End-to-end security in cross-mesh scenarios. |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are not all features here listed by design?

- Remove hardcoded version numbers and e2e test references from local
  development guide
- Fix enum casing (Include/Exclude) in event filtering docs and remove
  unsupported REFRESH_TOKEN grant type
- Replace gateway feature table with prose description
- Pin @docusaurus/theme-mermaid version and fix CLI docs link generation
- Standardize notification templates: use kustomize managed-by label,
  remove hardcoded namespace
- Update install overlay links, gitignore patterns, and minor wording
@ron96g ron96g temporarily deployed to github-pages April 13, 2026 10:11 — with GitHub Pages Inactive
@ron96g ron96g added documentation Improvements or additions to documentation enhancement New feature or request labels Apr 13, 2026
@ron96g ron96g merged commit 27478bb into main Apr 15, 2026
132 of 143 checks passed
@ron96g ron96g deleted the feat/documentation branch April 15, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants