Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
Showing results for 
Search instead for 
Did you mean: 
Active Contributor
Previously, I Install Gardener on Rancher, wondering what Gardener might add to Prepare your SAP Data Intelligence installation with Rancher. Coming from Make your SAP Data Hub Distributed Runtime work on the SUSE CaaS Platform, I had been leveraging SUSE Linux Enterprise Server to start with. Lately, I have been having also good experience with Ubuntu though, resulting in some additional optimizations described in this blog along the 5 steps:

  1. Load Balancer

  2. Vertical Pod Autoscaler

  3. DNS Provider

  4. Storage Class

  5. Gardener

Load Balancer

I continue to leverage MetalLB on premise which is easy enough to install choosing the Helm option.

Helm Ubuntu optimized

sudo snap install helm --classic


helm repo add metallb
helm install metallb metallb/metallb -f values.yaml

Example values.yaml

- name: default
protocol: layer2

Vertical Pod Autoscaler

Gardener still requires a Vertical Pod Autoscaler that does not come with Gardener but it remains not difficult to install.
git clone
cd autoscaler/vertical-pod-autoscaler/

DNS Provider

Gardener requires External DNS Management for the DNS controller manager artefact. I continue to choose Clouflare DNS service, but since The DNSProvider resource of type cloudflare-dns is only implemented in gardener/external-dns-management, which currently is a hard dependency of g/g, I continue have to implement it manually. Additionally, I create a test DNSEntry.

DNS controller manager

git clone
cd external-dns-management
helm install charts/external-dns-management --generate-name --namespace=default --set configuration.identifier=garden


apiVersion: v1
kind: Secret
name: cloudflare-credentials
namespace: default
type: Opaque
CLOUDFLARE_API_TOKEN: <Your Cloudflare API token>


kind: DNSProvider
name: cloudflare
namespace: default
type: cloudflare-dns
name: cloudflare-credentials
# this must be replaced with a (sub)domain of the hosted zone
- <Your domain>


kind: DNSEntry
name: mydnsentry
namespace: default
dnsName: ""
ttl: 600

There is a plan Move DNSProvider capabilities out of g/g though.

Storage Class

Gardener requires persistent storage. Previously, I Provision Volumes on Kubernetes and Nomad using Ceph CSI by Kidong Lee. However, lately I switched to Longhorn, that does not require another proprietary cluster but runs natively on Kubernetes instead and is better integrated with Rancher as well.
kubectl apply -f
kubectl patch storageclass longhorn -p '{"metadata": {"annotations":{"":"true"}}}'
kubectl get storageclass

Longhorn appears in my cluster respectively.

From where I can reach the dashboard.

Gardener Ubuntu optimized

Given the above, installing Gardener is straight forward.
git clone
mkdir landscape
cd landscape
cp ~/.kube/config kubeconfig
git clone "" crop
cd ..
sudo su
cd sow
export PATH=$PATH:$PWD/docker/bin
cd ../landscape
sow order -A
sow deploy -A
sow url

As a result, Gardener is running and I create a cluster in preparation for my SAP Data Intelligence installation on Gardener.

Labels in this area