Clone the Simplifier BTP Kubernetes Repository
To download and clone the needed setup files, create a workdirectory and clone the repository into it
git clone --branch release/8.1 https://github.com/simplifier-ag/simplifier-sap-btp-kyma-deployment.git
Set the KUBECONFIG Variable to this Kyma Cluster Configuration
export KUBECONFIG=PATH/TO/kubeconfig.yaml
Test if the configuration is loaded:
kubectl config get-contexts
You should see something like this
Prepare Configuration
The configuration file includes all secrets like passwords for mysql server etc – you can adjust it to your security requirements:
# base64 encoded apiVersion: v1 kind: Secret metadata: name: simplifier-secrets namespace: simplifier type: Opaque data: MYSQL_ROOT_PW: <YourSecretPasswordforMySQLRootAccount> SIMPLIFIER_PW: <YourSecretPasswordforSimplifierDatabase> MYSQL_USER: <NameofSimplifierUserforSimplifierDatabase> SIMPLIFIER_DB: <NameofSimplifierDatabase>
After changing the config to your needs, deploy the secrets and namespaces
kubectl apply -f ./config/config.yaml
Deploy MySQL Database Service
Deploy MySQL Database Server
kubectl apply -f ./mysql/mysql-deployment.yaml
Create databases with Job, wait for the finished job
kubectl apply -f ./mysql/mysql-init-deployment.yaml
Check if Database is running
kubectl -n simplifier get pods -l app=mysql
Deploy Simplifier
Deploy Simplifier Application Server
kubectl apply -f ./simplifier/simplifier-deployment.yaml
Deploy Simplifier Launchpad (optional)
kubectl apply -f ./simplifier/simplifier-launchpad.yaml
Deploy Simplifier Workflow Designer (optional)
kubectl apply -f ./simplifier/simplifier-designtime.yaml
Deploy Simplifier Workflow Runtime (optional)
Before you deploy the Workflow Runtime – pls add the provided Kyma Public Access URL into
simplifier/simplifier-runtime.yaml
like
- name: SIMPLIFIER_LAUNCHPAD_BASE_URL value: "https://mysimplifier.kyma.ondemand.com"
after changing to the correct url , the workflow runtime service can be deployed:
kubectl apply -f ./simplifier/simplifier-runtime.yaml
Setup Ingress Routes using istio
This file configure the routing using the default Kyma Gateway and also set the needed Header to support CORS Policy. (Read more)
Before deployment, the Base Domain Name to Simplifier Kyma URL has to be changed within:
kyma/istio.yaml
to
# todo url apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: simplifier-svc namespace: simplifier spec: hosts: - <your-full-qualified-domain-name-here> http:
After configuring a valid host, the policies and routes can be deployed
kubectl apply -f ./kyma/istio.yaml
Backup / Restore
Create Backup
kubectl apply -f ./snapshot/create-snapshot.yaml
Notice: the snapshot has no dynamic name and no changes would be recognized and therefore no new snapshot created. Rename the snapshot or delete the old one
After creating the snapshot it takes some time until the snapshot is usable
Check the “READYTOUSE”-flag
kubectl -n simplifier get volumesnapshot NAME READYTOUSE SOURCEPVC snapshot-mysql true mysql-pvc snapshot-simplifier true simplifier-pvc snapshot-simplifier-designtime true simplifier-designtime-pvc snapshot-simplifier-launchpad true simplifier-launchpad-pvc snapshot-simplifier-runtime true simplifier-runtime-pvc
Restore Backup
To restore the backup delete the current deployments
kubectl delete -f ./mysql/mysql-deployment.yaml kubectl delete -f ./simplifier/simplifier-deployment.yaml kubectl delete -f ./simplifier/simplifier-launchpad.yaml kubectl delete -f ./simplifier/simplifier-designtime.yaml kubectl delete -f ./simplifier/simplifier-runtime.yaml
Then recreate the persistent volume claim from the snapshot
kubectl apply -f ./snapshot/restore-snapshot.yaml
Finally recreate the deployments
kubectl apply -f ./mysql/mysql-deployment.yaml kubectl apply -f ./simplifier/simplifier-deployment.yaml kubectl apply -f ./simplifier/simplifier-launchpad.yaml kubectl apply -f ./simplifier/simplifier-designtime.yaml kubectl apply -f ./simplifier/simplifier-runtime.yaml