Replies: 5 comments 6 replies
-
Hello Bosh community, |
Beta Was this translation helpful? Give feedback.
-
This is great work overall. As a complementary remark, the new certificates update flow would be valid before current NATS certificate expire, but in case of already expired certificates, then the recreation flow would still be required. One question pops up in my mind: could we explicit here the rationale behind the separated “update_settings.json” and “settings.json” files on Bosh instances? Is this to be able, when inspecting some BOSH instance, to audit which settings have been provided through which mean? |
Beta Was this translation helpful? Give feedback.
-
The pull-requests are really good. Two points came into my mind:
|
Beta Was this translation helpful? Give feedback.
-
Bosh Agent 2.388.0 and Bosh Director 271.12.0 have been published with the new behavior. |
Beta Was this translation helpful? Give feedback.
-
Stemcells Ubuntu Bionic 1.35 and Windows 2019.41 both have copies of the Bosh Agent with the new behavior. We've also updated the nats and blobstore credential rotation docs here: We think this track of work is finished at this point, but let us know if you run into any problems or have any enhancements. |
Beta Was this translation helpful? Give feedback.
-
Hello Bosh Community.
We’d like to propose an addition to make the rotation of certificates used by the bosh-agent easier. The current procedure is documented here: https://bosh.io/docs/nats-ca-rotation/
Some of the pain points associated with the current process:
bosh recreate
the individual VMs that did not yet get the new certificates)Part of updating VMs currently involves the agent “update_settings” action. This is currently used to update “trusted_certs” if they have been changed on the director. We’d like to expand the scope of this action to also include NATS and Blobstore certificates and credentials.
The director would track the SHA of the currently deployed certificates and credentials in a similar way that it does currently for “trusted_certs”, and if it detects a change, would send new values via the “update_settings” action.
The agent would then save these new values in the “update_settings.json” it keeps, and use them instead of the values found in “settings.json” if they are both available. The agent would be changed to restart itself as part of “update_settings” so the new certificates and credentials could be used by the internal NATS client as soon as possible.
The end result would be a similar flow as seen in https://bosh.io/docs/nats-ca-rotation/, but the recreates would instead be normal updates. Since this makes it part of a normal update, and the current state of each VM is tracked, it also means that if a deploy fails, the VMs that have already been updated will not be updated again when the deploy is retried.
The intent would be to make this a backwards compatible change. So if you have a director that supports this flow, but agents are still old, the director would send the new data with “update_settings”, but the agents would just ignore the extra data. In this case you would still need to use the old recreate process.
Beta Was this translation helpful? Give feedback.
All reactions