我创建了一个credhub
实例并使用下面的cf command
存储我的秘密
cf create-service credhub default my-secrets -c“{\”secretMessage \“:\”1234567 \“}”
我的春季启动应用程序没有任何问题地获取secretMessage
值。现在我执行update-service
命令并使用以下命令旋转secretMessage
cf update-service my-secrets -c“{\”secretMessage \“:\”1234567-updated \“}”
但我的spring-boot应用程序并未选择更新的应用程序,除非直到我在PCF中重新启动应用程序。
有没有办法在不重启的情况下获取旋转凭证?
但我的spring-boot应用程序并未选择更新的应用程序,除非直到我在PCF中重新启动应用程序。
有没有办法在不重启的情况下获取旋转凭证?
不,这是预期的行为。
https://docs.pivotal.io/credhub-service-broker/using.html#update
您的服务实例已绑定到您的应用。与绑定到应用程序的所有服务实例一样,它通过VCAP_SERVICES
环境变量提供信息。环境变量(包括VCAP_SERVICES
)仅在您重新启动应用程序时更新。
你可能在想,等我的VCAP_SERVICES
有来自CredHub的占位符,不应该自动更新吗?很不幸的是,不行。 Diego生命周期负责查找CredHub占位符并解决它们。这在您的应用程序启动之前运行。然后它将实际值放入VCAP_SERVICES
。这是您的应用程序可以看到实际价值而不是占位符的方式,同时又不了解CredHub。