Service Provider Landscaper manages the lifecycle of Landscaper instances.
The Service Provider Landscaper requires a ProviderConfig resource to be present on the platform cluster of an OpenMCP landscape.
This resource defines the container image repository and the available versions of the Landscaper instances that can be installed.
apiVersion: landscaper.services.openmcp.cloud/v1alpha2
kind: ProviderConfig
metadata:
name: default
labels:
landscaper.services.openmcp.cloud/providertype: default
spec:
deployment:
repository: europe-docker.pkg.dev/sap-gcp-cp-k8s-stable-hub/landscaper
availableVersions:
- v0.136.0
- v0.137.0 If the label landscaper.services.openmcp.cloud/providertype is set to default, the Service Provider Landscaper will automatically use this ProviderConfig resource.
The default provider configuration will be used by all Landscaper instances that are not explicitly defining a provider configuration name.
An OpenMCP user can request a Landscaper instance by creating a custom resource of kind Landscaper on the onboarding cluster of an OpenMCP landscape. A prerequisite is that the user has already created an ManagedControlPlane (MCP). Both resources, ManagedControlPlane and Landscaper, must have the same name and namespace.
For example, let's suppose an OpenMCP user has already created a ManagedControlPlane resource with name sample in namespace project-x--workspace-y. The user could then create the following Landscaper resource to use the MCP together with a Landscaper instance:
apiVersion: landscaper.services.openmcp.cloud/v1alpha2
kind: Landscaper
metadata:
name: sample
namespace: project-x--workspace-y
spec:
version: v0.136.0If the Landscaper instance should use a specific provider configuration, the user can specify the name of the ProviderConfig resource in the spec.providerConfigRef field.
apiVersion: landscaper.services.openmcp.cloud/v1alpha2
kind: Landscaper
metadata:
name: sample
namespace: project-x--workspace-y
spec:
version: v0.120.0
providerConfigRef:
name: custom-providerThe Service Provider Landscaper will then install a Landscaper instance together with a helm and manifest deployer.
The Service Provider Landscaper runs on the platform cluster of an OpenMCP landscape. It reconciles Landscaper resources and installs the corresponding Landscaper instances. Each Landscaper installed in this way runs on a so-called workload cluster and reconciles Installation resources on the MCP cluster.
flowchart LR
subgraph Platform
provider[Landscaper Provider]
end
subgraph onboarding_cluster[Onboarding]
mcp([MCP])
landscaper([Landscaper])
landscaper -- ref --> mcp
end
subgraph workload_cluster[Workload]
landscaper_controller[Landscaper]
end
subgraph mcp_cluster[MCP]
installation([Installation])
end
provider -- reconciles --> landscaper
provider -- requests --> workload_cluster
provider -- installs --> landscaper_controller
mcp -- represents --> mcp_cluster
landscaper_controller -- reconciles --> installation
The setup of the Service Provider Landscaper within an OpenMCP landscape is described in: Installing the Service Provider Landscaper.
This project is open to feature requests/suggestions, bug reports etc. via GitHub 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.
If you find any bug that may be a security problem, please follow our instructions at in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.
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 at all times.
Copyright 2025 SAP SE or an SAP affiliate company and service-provider-landscaper contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.