Cloud foundry PCF Credhub Service broker-无法旋转凭据并要求重新启动
我创建了一个Cloud foundry PCF Credhub Service broker-无法旋转凭据并要求重新启动,cloud-foundry,Cloud Foundry,我创建了一个credhub实例,并使用下面的cf命令存储了我的秘密 cf create service credhub默认我的秘密-c“{\“secretMessage\”:\“1234567\”} 我的spring boot应用程序会毫无问题地拾取secretMessage值。现在我执行了updateservice命令,并用下面的命令旋转了secretMessage cf更新服务我的秘密-c“{\“secretMessage\”:\“1234567 updated\”} 但我的spring b
credhub
实例,并使用下面的cf命令存储了我的秘密
cf create service credhub默认我的秘密-c“{\“secretMessage\”:\“1234567\”}
我的spring boot应用程序会毫无问题地拾取secretMessage
值。现在我执行了updateservice
命令,并用下面的命令旋转了secretMessage
cf更新服务我的秘密-c“{\“secretMessage\”:\“1234567 updated\”}
但我的spring boot应用程序不会选择更新的,除非我在PCF中重新启动应用程序
有没有办法在不重新启动的情况下提取已旋转的凭据
但我的spring boot应用程序不会选择更新的,除非我在PCF中重新启动应用程序
有没有办法在不重新启动的情况下提取已旋转的凭据
不,这是预期的行为
您的服务实例已绑定到您的应用程序。与绑定到应用程序的所有服务实例一样,它通过VCAP\u SERVICES
环境变量提供信息。环境变量,包括VCAP\u服务
,仅在重新启动应用程序时更新
你可能会想,等等,我的
VCAP\u服务有来自CredHub的占位符,这些占位符不应该自动更新吗?不幸的是,没有。迭戈生命周期负责查找CredHub场所持有者并解决他们。这将在应用程序启动之前运行。然后,它将实际值放入VCAP\u服务
。这就是你的应用程序可以看到实际值而不是占位符的方式,同时对CredHub一无所知。很抱歉打扰你,但你能看看这个吗谢谢@Daniel:VCAP\u服务
对于CredHub,内容不包含实际凭证的值,而是指向“CredHub ref”:“/credhub service broker/credhub/f96e4398-9784-4224-a568-c81XXXXX/credentials“
。我猜它指的是凭证,无论何时请求,都可以轻松旋转,而无需重新启动应用程序。VCAP\u credhub服务的内容不包含实际凭证的值。
->这取决于您查看的位置:)如果您查看Cloud Controller,那么您是对的。如果您查看应用程序容器中的值,则不会。迭戈生命周期负责查找CredHub place Holder并解决它们。然后,它将实际值放入VCAP\u服务
。这就是你的应用程序在不了解CredHub的情况下如何看到实际价值&而不是占位符。我做了cf ssh
并执行了echo VCAP\u SERVICES
。。。我仍然无法看到凭证l,而只有credhubref在那里。我认为有两种方法可以看到实际值。1.)运行cf ssh”“-t-c”/tmp/lifecycle/launcher/home/vcap/app bash“”“
,它使用启动器启动bash shell。2.)查看usecf ssh
,然后查看cat/proc//environ
,其中pid
是应用程序进程的进程id。