PCF Credhub 服务代理 - 无法轮换凭据并要求重新启动

PCF Credhub Service broker - Unable to rotate credentials and demands restart

我创建了一个 credhub 实例并使用以下 cf command

存储了我的秘密

cf create-service credhub default my-secrets -c "{\"secretMessage\":\"1234567\"}"

我的 spring 启动应用程序可以毫无问题地获取 secretMessage 值。现在我执行了 update-service 命令并使用下面的命令

旋转了 secretMessage

cf update-service my-secrets -c "{\"secretMessage\":\"1234567-updated\"}"

但是我的 spring-boot 应用程序不会选择更新的应用程序,除非我在 PCF 中重新启动该应用程序。

有什么方法可以在不重新启动的情况下获取旋转的凭据吗?

But my spring-boot app isn't picking the updated one unless and untill I restart the app in PCF.

Is there any way to pick up the rotated-credentials without restart ?

不,这是预期的行为。

https://docs.pivotal.io/credhub-service-broker/using.html#update

您的服务实例已绑定到您的应用。与绑定到应用程序的所有服务实例一样,它通过 VCAP_SERVICES 环境变量提供信息。环境变量,包括 VCAP_SERVICES,仅在您重新启动应用程序时更新。

您可能在想,等等,我的 VCAP_SERVICES 有来自 CredHub 的占位符,那些不应该自动更新吗?抱歉不行。 Diego 生命周期负责查找 CredHub 占位符并解析它们。这在您的应用程序启动之前运行。然后它将实际值放入 VCAP_SERVICES。这就是您的应用可以看到实际值而不是占位符,同时不了解 CredHub 的方式。