Re: App attribute 'no-route:true' is invalid without 'health-check-type: none' in Diego

David McClure

One thing worth considering is that with container networking, there will
be more use cases for apps that bind to ports but do not expose a route

for example:

On Mon, Nov 14, 2016 at 6:44 AM, Koper, Dies <diesk(a)>

I remember bringing it up at a Runtime PMC meeting at the time, where I
thought the Greenhouse PM said he was about to share a proposal related to
app health checking.

(IIRC, the current mechanism didn’t work as smoothly on Windows where IS
behaved differently.)

While I’ve been patiently waiting for that proposal, the Greenhouse
project got a new PM.

Also, at the time the app manifest attribute to configure this at app push
time was not documented and that added to the confusion.

Since that has been addressed, I have not heard anyone about it anymore.

I’m quite open to reconsidering the proposal (see link Dan posted below)
if more people are supportive.


Dies Koper
Cloud Foundry Product Manager - CLI

*From:* Daniel Mikusa [mailto:dmikusa(a)]
*Sent:* Monday, November 14, 2016 11:05 PM
*To:* Discussions about Cloud Foundry projects and the system overall.
*Subject:* [cf-dev] Re: App attribute 'no-route:true' is invalid without
'health-check-type: none' in Diego

I think this has come up before, although I'm not sure if anything came
out of that thread.

FYI, there's also some background on the change here.


On Mon, Nov 14, 2016 at 8:17 AM, Nikolay Valchev <nikolay.valchev(a)>

I've detected one strange behavior change in Diego related to app
attributes. On DEA I've been used to push some worker apps that do not have
mapped routes simply by setting the 'no-route: true' application attribute.
In Diego, however, this attribute is not sufficient anymore and I have to
set additionally 'health-check-type: none'. I've found that this new
behavior is well documented at
devguide/deploy-apps/manifest.html#no-route with

In the newer Diego architecture, no-route skips creating and binding a
route for the app, but does not specify which type of health check to
perform. If your app does not listen on a port because it is a worker or a
scheduler app, then it does not satisfy the port-based health check and
Cloud Foundry marks it as crashed. To prevent this, disable the port-based
health check with cf set-health-check APP_NAME none.
In the older Droplet Execution Agent (DEA) architecture, cf
set-health-check APP_NAME none is unnecessary because no-route causes the
DEAs to skip the port health-check on app startup.

However, such a change, even well documented, does not have much sense
from my perspective. I believe the default values for app attributes should
be the most common ones and having the default value of 'health-check-type:
none' in case of 'no-route:true' would be something which comes for free,
but does not require me to set it explicitly. What do you think?


Join { to automatically receive all group messages.