#1
This guide explains how to deploy SAP HANA Express with a Spring Boot application on Kubernetes. Straight to the point.

1. Create Docker Image for Spring Boot

Build the JAR file:
mvn clean package -DskipTests
Create Dockerfile:
FROM openjdk:17-jdk-slim
COPY target/app.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
Build and push image:
docker build -t myrepo/spring-boot-hana .
docker push myrepo/spring-boot-hana

2. Run SAP HANA Express in Kubernetes

Create a StatefulSet hana.yaml:
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: hana
spec:
  serviceName: "hana"
  replicas: 1
  selector:
    matchLabels:
      app: hana
  template:
    metadata:
      labels:
        app: hana
    spec:
      containers:
      - name: hana
        image: saplabs/hana-express:latest
        ports:
        - containerPort: 39015
Apply it:
kubectl apply -f hana.yaml

3. Configure Spring Boot Deployment

Create spring-boot.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: spring-boot-hana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spring-boot-hana
  template:
    metadata:
      labels:
        app: spring-boot-hana
    spec:
      containers:
      - name: spring-boot-hana
        image: myrepo/spring-boot-hana
        ports:
        - containerPort: 8080
        env:
        - name: SPRING_DATASOURCE_URL
          value: jdbc:sap://hana:39015/?databaseName=HXE
        - name: SPRING_DATASOURCE_USERNAME
          value: SYSTEM
        - name: SPRING_DATASOURCE_PASSWORD
          value: MyPassword
Apply it:
kubectl apply -f spring-boot.yaml

4. Expose Services

apiVersion: v1
kind: Service
metadata:
  name: spring-boot-service
spec:
  type: LoadBalancer
  selector:
    app: spring-boot-hana
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
Apply it and get external IP:
kubectl apply -f service.yaml
kubectl get svc spring-boot-service

5. Test Deployment

Access Spring Boot app via the service external IP. It will connect to SAP HANA Express running inside Kubernetes automatically.

image quote pre code