TIP: You can find more information in the Deploy Your CAP Application on SAP BTP Kyma Runtime tutorial and in the Deploy to Kyma/K8s guide of the CAP documentation.
- BTP Subaccount with Kyma Runtime
- BTP Subaccount with Cloud Foundry Space
- HANA Cloud instance available for your Cloud Foundry space
- BTP Entitlements for: HANA HDI Services & Container plan hdi-shared, Launchpad Service plan standard
- Container Registry
- Command Line Tools:
kubectl
,kubectl-oidc_login
,pack
,docker
,helm
,cf
- Logged into Kyma Runtime (with
kubectl
CLI), Cloud Foundry space (withcf
CLI) and Container Registry (withdocker login
) @sap/cds-dk
>= 6.0.1
CAP tooling provides your a Helm chart for deployment to Kyma.
Add the CAP Helm chart with the required features to this project:
cds add helm
cds add helm:html5_apps_deployer
This project contains a pre-configured configuration file deployment/kyma/values.yaml
, you just need to do the following changes in this file:
<your-container-registry>
- full-qualified hostname of your container registrydomain
- full-qualified domain name used to access applications in your Kyma cluster
-
Export the kubeconfig.yaml
set KUBECONFIG=~/.kube/cap-kyma-app-config
-
Setting the namespace
kubectl config set-context --current --namespace=<<NAMESPACE>>
Create a secret container-registry
with credentials to access the container registry:
bash deployment/kyma/scripts/create-container-registry-secret.sh
The Docker Server is the full-qualified hostname of your container registry.
bash deployment/kyma/scripts/create-db-secret.sh sflight-db
Do the following steps if you want to deploy the Node.js application.
The CDS_ENV=node
env variable needs to be provided to build for Node.js. The application will be built for Java by default.
CDS_ENV=node cds build --production
Build data base deployer image:
pack build $YOUR_CONTAINER_REGISTRY/sflight-hana-deployer \
--path gen/db \
--buildpack gcr.io/paketo-buildpacks/nodejs:0.16.1 \
--builder paketobuildpacks/builder:base
(Replace $YOUR_CONTAINER_REGISTRY
with the full-qualified hostname of your container registry)
Build image for CAP service:
pack build \
$YOUR_CONTAINER_REGISTRY/sflight-srv \
--path "gen/srv" \
--buildpack gcr.io/paketo-buildpacks/nodejs \
--builder paketobuildpacks/builder:base
Do the following steps if you want to deploy the Java application.
Build data base deployer image:
cds build --production
pack build $YOUR_CONTAINER_REGISTRY/sflight-hana-deployer \
--path db \
--buildpack gcr.io/paketo-buildpacks/nodejs:0.16.1 \
--builder paketobuildpacks/builder:base
(Replace $YOUR_CONTAINER_REGISTRY
the full-qualified hostname of your container registry)
Build image for CAP service:
mvn package
pack build $YOUR_CONTAINER_REGISTRY/sflight-srv \
--path srv/target/*-exec.jar \
--buildpack gcr.io/paketo-buildpacks/sap-machine \
--buildpack gcr.io/paketo-buildpacks/java \
--builder paketobuildpacks/builder:base \
--env SPRING_PROFILES_ACTIVE=cloud
bash deployment/kyma/scripts/build-ui-image.sh
You can push all the docker images to your docker registry, using:
docker push $YOUR_CONTAINER_REGISTRY/sflight-hana-deployer
docker push $YOUR_CONTAINER_REGISTRY/sflight-srv
docker push $YOUR_CONTAINER_REGISTRY/sflight-html5-deployer
helm upgrade sflight ./chart --install -f deployment/kyma/values.yaml
- Create Launchpad Service subscription in the BTP Cockpit
- Create a role collection
sflight
- Add role
admin
ofsflight.tXYZ
application to role collection - Add your user to the role collection
- Goto HTML5 Applications
- Start HTML5 application
sapfecaptravel
Additionally, you can add the UI to a Launchpad Service site like it is described in in the last two steps of this tutorial.