Here goes a full-fledged deployment script of hxe on a single node BTP3Tier SKR.
Please note the location and the version of the image: Official image for SAP HANA, express edition on Linux for Docker Engine.
kind: ConfigMap
apiVersion: v1
metadata:
name: hxe-pass
data:
password.json: |+
{"master_password" : "<your master password>"}
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: hxe-pvc
labels:
app: hxe
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 60Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hxe
labels:
name: hxe
spec:
selector:
matchLabels:
run: hxe
app: hxe
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
run: hxe
app: hxe
role: master
tier: backend
spec:
initContainers:
- name: install
image: busybox
command: [ 'sh', '-c', 'chown 12000:79 /hana/mounts', 'chmod g+s /hana/mounts', 'ls -lh -d /hana/mounts' ]
volumeMounts:
- name: hxe-data
mountPath: /hana/mounts
volumes:
- name: hxe-data
persistentVolumeClaim:
claimName: hxe-pvc
- name: hxe-config
configMap:
name: hxe-pass
imagePullSecrets:
- name: mydockerregsecret
hostname: k8-hxe
subdomain: isveng
containers:
- name: hxe-container
image: saplabs/hanaexpress:2.00.072.00.20231123.1 ### https://hub.docker.com/r/saplabs/hanaexpress
ports:
- containerPort: 39017
- containerPort: 39041
- containerPort: 4390
- containerPort: 8090
- containerPort: 59013
- containerPort: 59014
args: [ "--agree-to-sap-license", "--dont-check-system", "--passwords-url", "file:///hana/hxeconfig/password.json" ]
volumeMounts:
- name: hxe-data
mountPath: /hana/mounts
- name: hxe-config
mountPath: /hana/hxeconfig
resources:
limits:
memory: 12Gi
requests:
memory: 8Gi
- name: sqlpad-container
image: "sqlpad/sqlpad"
ports:
- containerPort: 3000
restartPolicy: Always
strategy:
type: Recreate
revisionHistoryLimit: 1
---
apiVersion: v1
kind: Service
metadata:
name: hxe-connect
labels:
app: hxe
spec:
type: LoadBalancer
ports:
- port: 39017
targetPort: 39017
protocol: TCP
name: port1
- port: 39041
protocol: TCP
name: port2
- port: 4390
protocol: TCP
name: port3
- port: 8090
protocol: TCP
name: port4
- port: 59013
protocol: TCP
name: port5
- port: 59014
protocol: TCP
name: port6
selector:
app: hxe
---
apiVersion: v1
kind: Service
metadata:
name: sqlpad
labels:
app: hxe
spec:
type: LoadBalancer
ports:
- port: 3000
targetPort: 3000
protocol: TCP
name: sqlpad
selector:
app: hxe