Technical Articles
Easy Deployment of applications to SAP BTP Kyma Runtime using Helm
Easy Deployment of applications to SAP BTP Kyma Runtime using Helm
SAP BTP Kyma Environment provides a fully managed Kubernetes runtime based on the open-source project “Kyma”. This cloud-native solution allows developers to extend SAP solutions with serverless Functions and combine them with containerized microservices.
The detailed documentation and the sample applications helps the developers to quickly onboard to SAP BTP Kyma Runtime.
As a next step, let’s consider having a microservices based application which has a User Interface, multiple micro-services serving the requests and a database.
In this case we would be doing the following
- We will be building and pushing multiple docker images for our microservices based application
- Deploy workload resources (Deployment, ServiceBinding, Function, etc) using a yaml descriptor.
In this blog let’s discuss how we can simplify the above two processes using a make utility and Helm.
Building and pushing multiple docker images:
Makeutility simplifies this process of running multiple commands using Makefile.
To use the make utility, create an empty file in your directory called Makefile.
Add the below snippet to your make file and customise it based on your needs
DOCKER_ACCOUNT=<Your Docker Account>
build-service1:
docker build -f Dockerfile1 -t $(DOCKER_ACCOUNT)/kyma1:latest .
build-service2:
docker build -f Dockerfile2 -t $(DOCKER_ACCOUNT)/kyma2:latest .
build-uiimage:
docker build -f app/businesspartners/Dockerfile -t $(DOCKER_ACCOUNT)/kymaui:latest ./app/businesspartners
push-images: build-service1 build-service2 build-uiimage
docker push $(DOCKER_ACCOUNT)/kyma1:latest
docker push $(DOCKER_ACCOUNT)/kyma2:latest
docker push $(DOCKER_ACCOUNT)/kymaui:latest
Now, run “make push-images”. Your images will be built and pushed.
Deploying workload resources
Helm is a package manager for Kubernetes. It simplifies the process of deploying workload resources by a packaging format called Charts.
- After installing helm, run “helm create <Chart Name>” to create a new chart
- The above command creates a new folder with the given chart name. The new folder has a templates folder, values.yaml file and Chart.yaml file.
- Navigate to the newly created folder
- Place your workload resources(yaml files) inside the templates folder
- You can store the configurations in values.yaml file
- Update Chart.yaml with the required information
- Now, run “helm install <release name> ./ -n <namespace>” to deploy your workloads.
Feel free to post your queries in the comments section.