cloudfoundry / cf-for-k8s

The open source deployment manifest for Cloud Foundry on Kubernetes
Apache License 2.0
300 stars 115 forks source link

Update the holdApplicationUntilProxyStarts Istio setting #664

Closed davewalter closed 3 years ago

davewalter commented 3 years ago

WHAT is this change about?

When we run the build/istio/build.sh script with istioctl 1.9.4, we saw a deprecation warning about the holdApplicationUntilProxyStarts configuration:

$ ./build/istio/build.sh
generating Istio resource definitions...
! values.global.proxy.holdApplicationUntilProxyStarts is deprecated; use meshConfig.defaultConfig.holdApplicationUntilProxyStarts instead
resolve | final: cloudfoundry/cf-k8s-networking-fluentbit@sha256:2b8563a032c007bdb5f8a1cdbd093edd8505fadd21a3443a2b891e87caee7504 -> index.docker.io/cloudfoundry/cf-k8s-networking-fluentbit@sha256:2b8563a032c007bdb5f8a1cdbd093edd8505fadd21a3443a2b891e87caee7504
resolve | final: index.docker.io/istio/pilot:1.9.4 -> index.docker.io/istio/pilot@sha256:a613e4535cad4028d0aca7e16450f16f41ed2466fa522f6c22c2b96bfbc26eba
resolve | final: index.docker.io/istio/proxyv2:1.9.4 -> index.docker.io/istio/proxyv2@sha256:5e5d6153164c6a71fb1538cb11b3b8c13edc7f9628a4927c180df7ea5c02bae2

This PR updates the Istio configuration to use the new property.

#178029864

Does this PR introduce a change to config/values.yml?

No

Acceptance Steps

Deploy as normal.

Tag your pair, your PM, and/or team

@Birdrock

cf-gitbot commented 3 years ago

We have created an issue in Pivotal Tracker to manage this:

https://www.pivotaltracker.com/story/show/178030096

The labels on this github issue will be updated when the story is started.

tcdowney commented 3 years ago

For context, we set the holdApplicationUntilProxyStarts property to support apps that need to be able to make network calls as part of start up. If the sidecar proxy isn't ready when these apps try to start they will crash. It's related to this issue: https://github.com/cloudfoundry/cf-for-k8s/issues/189#issue-614714974

I think if we want to check that there are no functional regressions we could push the app referenced in this comment. If the cf push succeeds for it then it means that the app container wasn't started until the proxy was ready.

tcdowney commented 3 years ago

I created a chore to add a test to the cf-k8s-networking acceptance tests so that we can get some automated validation of this: https://www.pivotaltracker.com/story/show/178040917

tcdowney commented 3 years ago

@acosta11 and I manually validated this by deploying the changes from this PR and running the test we added in the story above (https://github.com/cloudfoundry/cf-k8s-networking/commit/9726f4997c57c8cf250a345ac7e19c89dbd570a3).