|
6 | 6 |
|
7 | 7 | The Platform Service Gateway is responsible for enabling the [Gateway API](https://gateway-api.sigs.k8s.io/) on openMCP backend clusters, allowing webhooks from MCP resources to reach services in the platform or workload clusters. |
8 | 8 |
|
9 | | -### Architecture |
| 9 | +### 📏 Architecture |
10 | 10 |
|
11 | 11 |  |
12 | 12 |
|
13 | 13 | ### Dependencies |
14 | 14 |
|
15 | 15 | This platform service uses [Envoy Gateway](https://gateway.envoyproxy.io/) as the Gateway API implementation and [cert-manager](https://cert-manager.io/) to provision TLS certificates. |
16 | 16 |
|
17 | | -## Requirements and Setup |
| 17 | +## 🏗️ Installation of the Platform Service Gateway |
18 | 18 |
|
19 | | -*Insert a short description what is required to get your project running...* |
| 19 | +### Local Development |
20 | 20 |
|
21 | | -## Support, Feedback, Contributing |
| 21 | +To run the platform-service-gateway locally, you need to first bootstrap an openMCP environment by using [openmcp-operator](https://github.com/openmcp-project/openmcp-operator) and [cluster-provider-kind](https://github.com/openmcp-project/cluster-provider-kind). A comprehensive guide will follow soon. |
| 22 | + |
| 23 | +For current testing reasons, the platform-service-gateway needs to run in the cluster. To run the latest version of your changes in your local environment, you need to run: |
| 24 | + |
| 25 | +```bash |
| 26 | +task build:img:build |
| 27 | +``` |
| 28 | + |
| 29 | +This will build the image of the platform-service-gateway locally and puts it into your local Docker registry. |
| 30 | + |
| 31 | +```bash |
| 32 | +docker images ghcr.io/openmcp-project/images/platform-service-gateway |
| 33 | +``` |
| 34 | + |
| 35 | +You can then apply the `PlatformService` resource to your openMCP Platform cluster: |
| 36 | + |
| 37 | +```yaml |
| 38 | +apiVersion: openmcp.cloud/v1alpha1 |
| 39 | +kind: PlatformService |
| 40 | +metadata: |
| 41 | + name: gateway |
| 42 | +spec: |
| 43 | + image: ghcr.io/openmcp-project/images/platform-service-gateway:... # latest local docker image build |
| 44 | +``` |
| 45 | +
|
| 46 | +### OpenMCP Landscape |
| 47 | +
|
| 48 | +When you already have an openMCP environment set up, you can deploy the platform-service-gateway by applying the following manifest: |
| 49 | +
|
| 50 | +```yaml |
| 51 | +apiVersion: openmcp.cloud/v1alpha1 |
| 52 | +kind: PlatformService |
| 53 | +metadata: |
| 54 | + name: gateway |
| 55 | +spec: |
| 56 | + image: ghcr.io/openmcp-project/images/platform-service-gateway:<latest-version> # latest upstream version |
| 57 | +``` |
| 58 | +
|
| 59 | +## 📖 Usage |
| 60 | +
|
| 61 | +### Configure a `ProviderConfig` |
| 62 | + |
| 63 | +A `ProviderConfig` is an API where you can configure the platform-service-gateway. |
| 64 | +The `ProviderConfig` is stored in the Platform cluster and therefore in the responsibility realm of the platform owner. |
| 65 | + |
| 66 | +```yaml |
| 67 | +apiVersion: gateway.openmcp.cloud/v1alpha1 |
| 68 | +kind: ProviderConfig |
| 69 | +metadata: |
| 70 | + name: default |
| 71 | +spec: |
| 72 | + envoyGateway: |
| 73 | + images: |
| 74 | + proxy: "ghcr.io/openmcp-project/components/github.com/openmcp-project/openmcp/images/envoy-proxy:distroless-v1.36.2" |
| 75 | + gateway: "ghcr.io/openmcp-project/components/github.com/openmcp-project/openmcp/images/envoy-gateway:v1.5.4" |
| 76 | + rateLimit: "ghcr.io/openmcp-project/components/github.com/openmcp-project/openmcp/images/envoy-ratelimit:99d85510" |
| 77 | + chart: |
| 78 | + url: "oci://ghcr.io/openmcp-project/components/github.com/openmcp-project/openmcp/charts/envoy-gateway" |
| 79 | + tag: "1.5.4" |
| 80 | +
|
| 81 | + clusters: |
| 82 | + - selector: |
| 83 | + matchPurpose: |
| 84 | + - platform |
| 85 | + - selector: |
| 86 | + matchPurpose: |
| 87 | + - workload |
| 88 | +
|
| 89 | + dns: |
| 90 | + baseDomain: dev.openmcp.example.com |
| 91 | +
|
| 92 | +``` |
| 93 | + |
| 94 | +## 📚 Documentation |
| 95 | + |
| 96 | +More documentation for the platform-service-gateway can be found in the [docs](./docs) folder. |
| 97 | + |
| 98 | +## 🧑💻 Development |
| 99 | + |
| 100 | +### Building the binary locally |
| 101 | + |
| 102 | +To build the binary locally, you can use the following command: |
| 103 | + |
| 104 | +```bash |
| 105 | +task build |
| 106 | +``` |
| 107 | + |
| 108 | +### Build the image locally |
| 109 | + |
| 110 | +To build the image locally, you can use the following command: |
| 111 | + |
| 112 | +```bash |
| 113 | +task build:img:build |
| 114 | +``` |
| 115 | + |
| 116 | +### Run unit tests locally |
| 117 | + |
| 118 | +To run the unit tests locally, you can use the following command: |
| 119 | + |
| 120 | +```bash |
| 121 | +task test |
| 122 | +``` |
| 123 | + |
| 124 | +### Generating the CRDs, DeepCopy functions etc. |
| 125 | + |
| 126 | +To generate the CRDs, DeepCopy functions, and other boilerplate code, you can use the following command: |
| 127 | + |
| 128 | +```bash |
| 129 | +task generate |
| 130 | +``` |
| 131 | + |
| 132 | +## ❤️ Support, Feedback, Contributing |
22 | 133 |
|
23 | 134 | This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/openmcp-project/platform-service-gateway/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md). |
24 | 135 |
|
25 | | -## Security / Disclosure |
| 136 | +## 🔐 Security / Disclosure |
| 137 | + |
26 | 138 | If you find any bug that may be a security problem, please follow our instructions at [in our security policy](https://github.com/openmcp-project/platform-service-gateway/security/policy) on how to report it. Please do not create GitHub issues for security-related doubts or problems. |
27 | 139 |
|
28 | | -## Code of Conduct |
| 140 | +## 🤝 Code of Conduct |
29 | 141 |
|
30 | | -We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/SAP/.github/blob/main/CODE_OF_CONDUCT.md) at all times. |
| 142 | +We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/openmcp-project/.github/blob/main/CODE_OF_CONDUCT.md) at all times. |
31 | 143 |
|
32 | | -## Licensing |
| 144 | +## 📋 Licensing |
33 | 145 |
|
34 | 146 | Copyright 2025 SAP SE or an SAP affiliate company and platform-service-gateway contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/openmcp-project/platform-service-gateway). |
0 commit comments