Skip to content

openmcp-project/blueprint-building-blocks

REUSE status

blueprint-building-blocks

About this project

This repositry contains sub helm charts of the OpenMCP which are the building blocks for the OpenMCP Blueprints. To start your Infrastructure as Data Cloud Journey with the OpenMCP Blueprint, visit this repository and follow Getting Started section.

Requirements and Setup

Helm Charts

Helm Charts located at ./helm/charts are build with various purpose in mind. Please consult README.md file of each Helm Chart to discover its purpose, values.yaml structure and intended puropse.

Continous Delivery

All Helm Charts located in this repository will be automatically versioned and pushed into Projects OCI registry and Helm Repositry cloud-orchestrator-mcp-blueprint-building-blocks.

More details see Github Workflow .github/workflows/git-pr-status-checks.yml of blueprint-workflows

File chart-abc/.ci.config.yaml is optional for every Helm Chart and influences execution of .github/workflows/git-pr-status-checks.yml.

You can enable or disable processing of certain Github Workflows for certain Helm Charts via .ci.config.yaml!

helm-chart-dependency-update: 
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
helm-chart-linting:
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
  options:
    --strict: true # fail on lint warnings (default true)
    --with-subcharts: false # lint dependent charts (default false)
helm-chart-validation:
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
  options:
    --skip-crds: false # if set true, no CRDs will be templated. By default, CRDs are templated (default false)
    --skip-tests: false # skip tests from templated output (default false)
    --include-crds: false # include CRDs in the templated output (default false)
    --debug: false # enable verbose output (default false)
    --dependency-update: true # update dependencies if they are missing before installing the chart (default true)
helm-docs:
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
  options:
    --badge-style: "flat-square" # badge style to use for charts (default "flat-square")
    --document-dependency-values: true # For charts with dependencies, include the dependency values in the chart values documentation
    --documentation-strict-mode: false # Fail the generation of docs if there are undocumented values
    --skip-version-footer: false # if true the helm-docs version footer will not be shown in the default README template
    --sort-values-order: "file" # order in which to sort the values table ("alphanum" or "file") (default "alphanum")
    --output-file: "README.md" #  markdown file path relative to each chart directory to which rendered documentation will be written (default "README.md")
helm-chart-version-bump:
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
k8s-manifest-templating:
  enable: true # default is true, even if you do NOT declare this in .ci.config.yaml!
  options:
    --skip-crds: false # if set true, no CRDs will be templated. By default, CRDs are templated (default false)

‼️ It is HIGHLY recommended NOT to enabled: falsefor helm-chart-linting-manifest-validation.sh ‼️

‼️ DO NOT DELETE / DISABLE your Umbrella Helm Chart Dependencies all at ONCE ‼️ If you want to clean-up / deprovision / delete SAP & Hyperscaler Resources, you need to follow a certain order!

We recommend to delete / disable the Helm Chart Dependencies in the following order: read from right to left

flux-config
└── crossplane-provider-pkgs
    └── external-secrets-config
        ├── crossplane-provider-configs
        └── crossplane-provider-apiextensions-composition
            ├── crossplane-gardener-shoot-clusters
            │   ├── crossplane-provider-helm
            │   └── crossplane-provider-kubernetes
            ├── crossplane-gardener-shoot-kubeconfigs
            │   ├── crossplane-provider-helm
            │   └── crossplane-provider-kubernetes
            ├── crossplane-provider-aws-*
            ├── crossplane-provider-btp-accounts
            └── crossplane-provider-dynatrace

E.g.: The flux-config dependency shall be deleted / disabled as last.

Example

Lets have a look at the Chart.yaml of the template provider-gardener.abc.shoot.live.k8s-hana.ondemand.com.

dependencies:
  - name: crossplane-provider-configs
    alias: crossplane-provider-configs
    version: ....
    repository: "oci://ghcr.io/openmcp-project"
    tags:
      - crossplane-provider-configs
  - name: external-secrets-config
    alias: external-secrets-config
    version: ...
    repository: "oci://ghcr.io/openmcp-project"
    tags:
      - external-secrets-config
  - name: crossplane-gardener-shoot-clusters
    alias: crossplane-gardener-shoot-clusters
    version: ...
    repository: "oci://ghcr.io/openmcp-project"
    tags:
      - crossplane-gardener-shoot-clusters
  - name: crossplane-provider-helm
    alias: crossplane-provider-helm
    version: ...
    repository: "oci://ghcr.io/openmcp-project"
    tags:
      - crossplane-provider-helm
# values.yaml
tags:
  external-secrets-config: true
  crossplane-provider-configs: true
  crossplane-gardener-shoot-clusters: true
  crossplane-provider-helm: true

According to the Deletion Dependency Graph section, the order of deletion / disabling the Helm Chart dependency is:

  1. crossplane-provider-helm
  2. crossplane-gardener-shoot-clusters
  3. crossplane-provider-configs
  4. external-secrets-config

Why in this order?

  1. crossplane-provider-helm

This Helm Chart is used to orchestrate the k8s stack on your Gardener / Kyma Cluster.

  1. crossplane-gardener-shoot-clusters

This Helm Chart is used to orchestrate Gardener Shoot Clusters.

  1. crossplane-provider-configs

This Helm Chart is used to create crossplane k8s manifests kind: ProviderConfig (e.g. apiVersion: account.btp.sap.crossplane.io/v1alpha1) for crossplane providers in order to orchestrate (cloud) service providers (e.g. BTP Accounts)

  1. external-secrets-config

This Helm Chart is used to establish a connection to SAP HashiCorp Vault in order to pull/push credentials of (cloud) service providers.

Support, Feedback, Contributing

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.

Security / Disclosure

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.

Code of Conduct

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.

Licensing

Copyright 2025 SAP SE or an SAP affiliate company and blueprint-building-blocks 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.