SAP/cloud-mta-build-tool

support for `readiness-health-check-*`

Opened this issue · 10 comments

<module>.parameters.health-check-* are already supported, as described here.

readiness-health-check-* should also be supported.

Hi sjvans,
The 'readiness-health-check-' and 'health-check-' parameters are part of the MTA deployment descriptor. You can configure these settings in the mta.yaml file for MTA development. However, for these features to be utilized, the BTP deployment service must support them. Therefore, it is essential to submit this requirement to the BTP deployment service team for their consideration and support.

Thanks
Yutao

hi @yutaoj

thanks for the info, i'll check again. if they are supported, then they should probably be added to https://help.sap.com/docs/SAP_HANA_PLATFORM/cf8b4c5847374960a68b55cb86eae013/4050fee4c469498ebc31b10f2ae15ff2.html?version=2.0.07#parameters

best,
sebastian

hi @yutaoj

i checked again and the following mta does not produce a readiness check:

---
_schema-version: 3.3.0
ID: foobar
version: 1.0.0
modules:
  - name: foobar
    path: ./
    type: nodejs
    parameters:
      buildpacks:
      - nodejs_buildpack
      health-check-type: http
      health-check-http-endpoint: /healthy
      readiness-health-check-type: http
      readiness-health-check-http-endpoint: /ready
      readiness-health-check-interval: 10

further, via cf create-app-manifest foobar, i get a manifest with:

  processes:
  - type: web
    instances: 1
    memory: 1024M
    disk_quota: 1024M
    log-rate-limit-per-second: -1
    health-check-type: http
    health-check-http-endpoint: "/healthy"
    readiness-health-check-type: process

so something get's lost.

if i need to reach out to somebody else, please point me there.

thanks and best,
sebastian

Hi sjvans,

you used cf command but mbt command .
the MBT(MTA Build Tools) command usage: run "mbt build" in in your prjoect, you can get a mtar file under mta_achives folder. you may unzip it, and you will find the "reeadiness-health-check*" parameters in the mtad.yaml under META-INF.

Regards
Yutao

hi @yutaoj

good to know that mbt build preserves the config. but obviously cf does not understand that it shall perform readiness checks. otherwise it would be in the manifest that cf generates for the app (cf. create-app-manifest). who is responsible for the deployment of the build result?

best,
sebastian

Hello @sjvans

Currently readiness health check is not supported via MTA deployment.

You can refer to:
https://help.sap.com/docs/btp/sap-business-technology-platform/multitarget-applications-in-cloud-foundry-environment#prerequisites-and-restrictions -> Unsupported Cloud Foundry Features

I saw that you have opened internal ticket as well. We can provide further details there.

Best Regards,
Boyan

Hi @boyan-velinov I am the original requester

Currently readiness health check is not supported via MTA deployment.

Why can't the CF in the BTP provide this function? What is SAP's workaround for this? If the function is not there, we need not wonder why we sometimes have such outliers.

You can refer to: https://help.sap.com/docs/btp/sap-business-technology-platform/multitarget-applications-in-cloud-foundry-environment#prerequisites-and-restrictions -> Unsupported Cloud Foundry Features

I am in opinion of SAP consolidating the documentation, the CAP documentation mentions the readiness checks and even generates them. In the BTP CF documentation there are 2 places where non-existent features are mentioned. Very confusing for a developer.

I saw that you have opened internal ticket as well. We can provide further details there.

Why are the reasons not communicated to the customers, e.g. in the documentary or in this issue? After all, they are the ones who use and pay for the service. If it is explicitly not desired, we also have a case open: 1145217/2024

Best regards
Andre

Hi @qby-ankul

Thanks for the honest opinion!

I will try to answer of all points:

  • Boyan: Currently readiness health check is not supported via MTA deployment
    Andre: Why can't the CF in the BTP provide this function? What is SAP's workaround for this? If the function is not there, we need not wonder why we sometimes have such outliers.
    Boyan: SAP BTP CF provides the functionality since it follows the standard CAPI releases. You can configure readiness health check, if you are using CF native approach with "cf push". It is not possible with MTA deployment only. MTA deployment in CF steps into the OSS project multiapps-controller, part of CFF. The project is maintained and developed by our team. The project relies on OSS CF Java client to orchestrates CF API calls. We have opened PR to OSS CF Java client in the beginning of the year but it is still not accepted: Add readiness health check support in client cloudfoundry/cf-java-client#1213
    We did not expect that the change would take so much time to be accepted and released by repository maintaneners. We have contacted them many times since the beginning of the year and based on the CF community setup only maintaners can accept the PRs.
    Recently SAP colleague receives maintaner permissions to that repo and hope the situation would be improved.
  • Boyan: You can refer to: https://help.sap.com/docs/btp/sap-business-technology-platform/multitarget-applications-in-cloud-foundry-environment#prerequisites-and-restrictions -> Unsupported Cloud Foundry Features
    Andre: I am in opinion of SAP consolidating the documentation, the CAP documentation mentions the readiness checks and even generates them. In the BTP CF documentation there are 2 places where non-existent features are mentioned. Very confusing for a developer.
    Boyan: I agree that this is confusing for developers. Will approach User Assistance collageagues who are reponsible for setup and content of the documentation, if it is possible to made up more coherent user experience.
  • Boyan: I saw that you have opened internal ticket as well. We can provide further details there.
    Andre: Why are the reasons not communicated to the customers, e.g. in the documentary or in this issue? After all, they are the ones who use and pay for the service. If it is explicitly not desired, we also have a case open: 1145217/2024
    Boyan: I do not see any reason why technical details not to be communicated to end customers, that is why I explain it above. Note that new features provided by CF API will not be available automatically via MTA deployment. I guess this is one common miunderstanding. There is a certain process and activity around enabling new CF API features in MTA deployment.
    I was talking about the internal issue because there we can refer some internal information, like platform timelines. Such information is not suitable for external users.

Hope I manage to answer to your questions.

Best Regards, Boyan

Hi @boyan-velinov thank you for the honest and transparent answer. We hope that it will be approved as soon as possible. And that it is then also integrated into the deploy process.

cf push is difficult to implement if the ctms service is used, right?

@sjvans Please correct the CAP templates by removing readiness health check and fix the CAP documentation.
I found these places:
https://cap.cloud.sap/docs/guides/deployment/health-checks#health-checks
https://cap.cloud.sap/docs/releases/archive/2024/mar24#liveness-readiness-checks