Conversation
Member
jpalermo
suggested changes
Aug 6, 2022
Contributor
jpalermo
left a comment
There was a problem hiding this comment.
Did we do load testing on this yet? Feels like we'd want to make sure this scales fine up to ~2000 VMs or so.
- Updated NATS to a supported version: 2.8.3 - NATS 2.8.3 does not support wildcards in the users authorization section in the `nats.cfg` file. Wildcards were used previously to allow any bosh agents to publish/subscribe to NATS. Because of the new wildcards restrictions we need to add all the users explicitly in the configuration and that needs to be done continuously, as more VMs/Agents are added. To execute this continuous synchronization, we created the ruby gem 'bosh-nats-sync' which keeps the list of active agents up to date. - Added the monit infrastructure to start the bosh-nats-sync gem. [#182098993] Upgrade NATS to 2.0 Co-authored-by: Brian Upton <bupton@vmware.com> Co-authored-by: Seth Boyles <sboyles@vmware.com> Co-authored-by: Brian Cunnie <bcunnie@vmware.com> Co-authored-by: Manuel Alba <albam@vmware.com> Co-authored-by: Long Nguyen <nguyenlo@vmware.com> Co-authored-by: Daniel Felipe Ochoa <danielfelipo@vmware.com>
41df3a5 to
95961b9
Compare
No packages use the blob so it can be removed. [#182098993] Signed-off-by: Joseph Palermo <jpalermo@pivotal.io>
Contributor
|
@lnguyen could you note the performance tests you did here? How many "VMs" and how long it was taking to render? |
jpalermo
approved these changes
Aug 17, 2022
rkoster
requested changes
Aug 18, 2022
Contributor
rkoster
left a comment
There was a problem hiding this comment.
Looks good overall, just a small question with regards to the director and hm users (see comments above).
Member
I ran 500 vms on BOSH-lite and it was taking about 1 min per vm to come up |
rkoster
approved these changes
Aug 22, 2022
ystros
added a commit
that referenced
this pull request
Nov 8, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 11, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 11, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 12, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
aramprice
pushed a commit
that referenced
this pull request
Nov 15, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
aramprice
pushed a commit
that referenced
this pull request
Nov 16, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 18, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 20, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 20, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 21, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required that the nats-sync process also be launched during integration tests in order to allow agents to connect. Additionally, there was a race condition between an agent being launched by the Dummy CPI and the nats-sync process adding the agent to the nats-server config.
ystros
added a commit
that referenced
this pull request
Nov 21, 2024
The nats-server binary replaced the legacy forked gnatsd binary in 2022: #2391 However, the integration specs were still using an old version of gnatsd from an S3 bucket. Now, the integration specs use the current nats-server blob directly. This required allowing all users connecting to the NATS server to subscribe and publish to any channel, because the integration specs require an admin-level user but the nats-sync process does not allow custom users (only the Director, Health Monitor, and individual agents).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated NATS to a supported version: 2.8.3
NATS 2.8.3 does not support wildcards in the users authorization
section in the
nats.cfgfile. Wildcards were used previously toallow any bosh agents to publish/subscribe to NATS.
Because of the new wildcards restrictions we need to add all the
users explicitly in the configuration and that needs to be done
continuously, as more VMs/Agents are added.
To execute this continuous synchronization, we created the ruby
gem 'bosh-nats-sync' which keeps the list of active agents up to
date.
Added the monit infrastructure to start the bosh-nats-sync gem.
What tests have you run against this PR?
The BOSH Director unit tests.
How should this change be described in bosh release notes?
This is an update of NATS. This component used by the director was in an unsupported version.
Does this PR introduce a breaking change?
No, this won't affect users using BOSH with a standard NATS installation.
Warning: For BOSH installations with custom NATS configurations (e.g custom NATS server running outside of the director VM) the
bosh-nats-synccomponent needs to be configured and run according to the customizations.Tag your pair, your PM, and/or team!
Co-authored-by: Brian Upton bupton@vmware.com
Co-authored-by: Seth Boyles sboyles@vmware.com
Co-authored-by: Brian Cunnie bcunnie@vmware.com
Co-authored-by: Manuel Alba albam@vmware.com
Co-authored-by: Long Nguyen nguyenlo@vmware.com
Co-authored-by: Daniel Felipe Ochoa danielfelipo@vmware.com