This repository contains umbrella helm charts of the Open Managed Control Plane (openMCP) Project which are leveraging the Helm Charts of the building blocks to give you a big jump start in your Infrastructure as Data Cloud Journey.
Create your own openmcp-blueprints
Github Repository into your own Github Organisation by "Use this Template" for. Make sure to provide following repository Secrets with your own identity token or technical user for your artifact repository:
Repository Secret Name | Description |
---|---|
HELM_REPO_USERNAME | name of your own user or technical user |
HELM_REPO_TOKEN | own or technical user identity token |
Sadly Github does NOT copy repository settings, you have to set them initially by yourself!
Do not disable or change Github Workflow .github/workflows/git-pr-status-checks.yml
or following main
branch protection! Otherwise, the described functionality and value-add cannot be guaranteed!
Additionally do NOT delete / rename helm/charts/_templates_footer.gotmpl
and helm/charts/_templates_header.gotmpl
! Otherwise, README.md
generation will fail! Feel free to modify this files to your needs!
In order for your own Github Repository to access Github Workflow .github/workflows/git-pr-status-checks.yml
on openmcp-project/blueprint-workflows you need to configure Settings
-> Actions
-> General
-> the access of GitHub Actions workflows in other repositories to:
If this section is not available, please check with GitHub Docs and set visibility of your repository to internal
. If
Field | Value |
---|---|
Branch name pattern | main |
Require a pull request before merging | ✅ |
Require approvals | ✅ |
Require approval of the most recent reviewable push | ✅ |
Require status checks to pass before merging | ✅ |
Require branches to be up-to-date before merging | ✅ |
Status checks that are required. | Managed Control Plane Blueprints |
Require conversation resolution before merging | ✅ |
Do not allow bypassing the above settings | ✅ |
All Helm Charts located at ./helm/umbrella
are build to demonstrate orchestration of different SAP Cloud Resources. Please consult README.md
file of each Umbrella Helm Chart to discover its purpose, values.yaml
structure and intended purpose.
Feel free to browse existing Umbrella Helm Chart Blueprints and pick one or multiple which covers most of the SAP Resources you want to orchestrate. Copy the templates into ./helm/umbrella/mcps/
to distinguish your own Helm Charts from the existing templates.
Add additional Sub Helm Charts from the building blocks repository and add/modify/delete values.yaml
structure to orchestrate your desired landscape.
Open a Github PR into main
in order to validate and template your Helm Charts via Github Workflow git-pr-status-checks.yml
.
The Github Workflow git-pr-status-checks.yml
ensures that every Helm Chart:
- templates valid k8s manifests
.version
ofChart.yaml
is bumped, in case there is a changeREADME.md
is up-to-date- k8s manifest is templated, moved to
./manifests
, committed and pushed for every PR merging intomain
!! Do not disable or change Github Workflow .github/workflows/git-pr-status-checks.yml
or main
branch protection!!
Set up a GitOps workflow by enabling the Flux component and configuring it to sync with your Git repository. Use the provided Helm charts to manage credentials and configurations for tools like External Secrets Operator.
Please use Helm Chart flux-config to enable GitOps on your own OpenMCP and sync the corresponding ./manifests/..
folder.
Be aware, that you need to delete / deactivate your Umbrella Helm Chart Dependencies in a certain order for deletion NOT get STUCK!! More details here.
Do i need to follow a certain folder structure? A: No! You can put your Helm Chart wherever you want. It's highly recommended following the open source community best practices:
Folder | Purpose |
---|---|
./helm/charts | Contains only (Sub) Helm Charts with chart-abc/templates/*.yaml/yml files. |
./helm/umbrella | Contains only (Umbrella) Helm Charts which reference to a dependent (Sub) Helm Chart within Chart.yaml . Typhically Umbrella Helm Charts do not contain any chart-abc/templates/*.yaml/yml files. |
./manifests | This folder contains all the templated Helm Charts and can NOT be changed! |
How to disable k8s manifest generation?
A: Create / Update chart-abc/.ci.config.yaml
with the following content:
move-manifests.sh:
enabled: false
With the next run of Github Action .github/workflows/git-pr-status-checks.yml
the ./manifest/...
folder of chart-abc
should be removed!
I am missing k8s manifest xyz
. How can I include it into k8s manifest generation
?
A: There is no need, to re-use CO MCP Blueprint Building Blocks Helm Charts!
Feel free to create your own custom (Sub) Helm Charts at helm/charts
and declare it as Dependency in an Umbrella Helm Chart at helm/umbrella
.
Helm Chart | Purpose |
---|---|
(Sub) Custom Chart | Custom (Sub) Helm Chart containing k8s manifests which are not covered by CO MCP Blueprint Building Blocks or not to your liking. |
(Umbrella) Custom Chart | Umbrella Helm Chart which references to local (Sub) Helm Chart helm/charts/custom-chart and re-uses additionally CO MCP Blueprint Building Blocks. Of course, k8s manifest generation for ./manifests/.. also works without any external Dependencies. |
Invalid workflow file: .github/workflows/git-pr-status-checks.yml#L12
error parsing called workflow ".github/workflows/git-pr-status-checks.yml"
-> "cloud-orchestration/mcp-blueprint-building-blocks/.github/workflows/git-pr-status-checks.yml@main"
: workflow was not found. See https://docs.github.com/en/actions/sharing-automations/reusing-workflows#access-to-reusable-workflows for more information.
A: See Access Workflow and Github Docs
A: See in-depth documentation
Github Workflow cloud-orchestration/mcp-blueprint-building-blocks/.github/actions/helm-chart-dep-build@main
is failing with
$ helm dependency update ./helm/umbrella/dev
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "cloud-orchestrator-mcp-blueprint-building-blocks" chart repository
Update Complete. ⎈Happy Helming!⎈
Error: can't get a valid version for repositories crossplane-provider-configurations. Try changing the version constraint in Chart.yaml
======== ERROR STOPPING EXECUTION =======
A: Check if all dependencies[].version
of /helm/umbrella/dev/Chart.yaml
are existing! Versions are expected to follow Semantic Versioning and ranges can be defined e.g. version: ">1.2.1"
. Semantic Versioning ranges are NOT recommended because a Helm Chart Dependency upgrade to a new version
should always be a conscious action!
How can I compare what has changed of crossplane-provider-aws-ec2
from Helm Chart Version 0.0.1
to 0.0.2
?
A: For every Helm Chart version
change of every mcp-blueprint-building-blocks
Helm Chart, there is a Git Tag created.
You can either use Github Functionality of comparing commits/tags (e.g. crossplane-provider-aws-ec2/0.0.1 <-> crossplane-provider-aws-ec2/0.0.2) or use git diff
to compare certain folder or files.
git diff "crossplane-provider-aws-ec2/0.0.1" "crossplane-provider-aws-ec2/0.0.2" -- helm/charts/mcp/crossplane-provider-aws-ec2
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 blueprints 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.