-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Connext use Connext's openssl on all platforms #409
Conversation
7192a47
to
41fad72
Compare
Could you please create a PR to update the ROS 2 installation instructions to set the appropriate environment variables to make this change work? |
I'm not sure I got what you are referring to, could you please clarify which instructions you're thinking of? I don't see the "normal" installation instructions detailing how to setup the security plugins for Connext. Are you referring to this page https://github.com/ros2/ros2_documentation/blob/master/source/Installation/Install-Connext-Security-Plugins.rst ? (noting that that page is not distro or platform specific) Also the |
If the documentation update is not a blocker it would be awesome to get this PR reviewed / merged to fix ci on MacOS and hopefully unblock ros2/ci#421 |
Special goo for our CI system doesn't give me the warm fuzzies 🙁 but since we're just making the existing behavior consistent across platforms, this seems like an OK change to make. I was looking for documentation so that if/when we spin-up additional macOS workers on ci.ros2.org, we make sure that they get the older @mjcarroll, did you follow any directions besides the official ROS 2 documentation when you set up |
Lore was being shared between the OSRF and ROS 2 CI farms so it had additional setup performed for that. I've undone some of the Jenkins-related things that were done but not any other operations, which I also don't have an enumeration of. |
If we have to fabricate variables for our CI to work we should at least share what we needed to do to get it working. Even if we don't tell people to replicate our variables, explaining what function they serve and how to achieve the same effect if they want to use connext security should IMO be documented |
I talked about this PR with @cottsay a little bit and my least favorite thing about it is that it's being implemented "at runtime" in the tests rather than something we can configure as behavior whenever security is being used with connext. I can't think of a way to pin this behavior at the rmw_connext level that isn't worse than the problem it solves. |
True
Yeah for a bit more history, it is needed on CI only because we want to use that specific version only for Connext but want to be able to use the system one I've been refraining from changing https://github.com/ros2/ros2_documentation/blob/master/source/Installation/Install-Connext-Security-Plugins.rst that is written + maintained by RTI. That page does already specify to install their version of OpenSSL. Best way forward is still to use a version of Connext that works with OpenSSL 1.1.1* (like Connext 6.0.1) ;) and remove all custom workarounds |
For this change to fix CI, these |
Connext 5.3.1 requires an older version of openssl which is no longer available from the system macOS installation. Connext supplies a compatible openssl distribution and ros2/system_tests#409 sets up a convention for using it only for the security tests which require it when running with Connext. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
@cottsay @nuclearsandwich friendly 🛎️ is there anything we can do to move this forward ? There are currently no rmw implementation with passing security tests on MacOS, so this is challenging for validating new features before the freeze |
I set up mini2 with Connext's openssl 1.0.2n installed to I posted this branch to ros2/ci which sets the RTI_OPENSSL_BIN and RTI_OPENSSL_LIBS environment variables to match the installation on mini2 and ran https://ci.ros2.org/job/test_ci_osx/308/ on mini2. With 128 security test failures it seems like either I did something wrong or there's an issue with the patch. I haven't had a chance to investigate further. |
I'd love to address these test failures as it would cut down on the macos noise A LOT. I just don't have the personal bandwidth atm to do much but change configs and run tests. Feel free to take that CI branch and iterate on it if need be. |
593d700
to
df11e23
Compare
Connext 5.3.1 requires an older version of openssl which is no longer available from the system macOS installation. Connext supplies a compatible openssl distribution and ros2/system_tests#409 sets up a convention for using it only for the security tests which require it when running with Connext. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
df11e23
to
4c63988
Compare
no code changes just a rebase. |
@mikaelarguedas thanks for figuring this out. Is this then what needs to happen?
If that's correct, it sounds like We could merge this and ros2/ci#426 now since it resolves the failures on most of the machines, and that's better than the current state of test failures on all of the machines. Then mini3 can be investigated separately. How does that sound? |
Ubuntu Focal, Homebrew and chocolatey now provide OpenSSL 1.1.1 RTI Connext 5.3.1 supports only 1.0.2 so we need to modify the library path and the path for connext's version of openssl be used when running tests with connext. Use system OpenSSL for other rmw implementations Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com>
4c63988
to
28c4488
Compare
This PR had an unwanted side effect on windows which is now fixed at 28c4488.
Yes as far as MacOS is concerned. For windows:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks reasonable to me. I'm going to kick off one more CI on all platforms (just for Connext) to make sure it passes.
@mikaelarguedas Assuming that comes back green, can I just merge this? Does it have any other dependencies?
Merging as is should have no impact (what already fails will keep failing, what passes will keep passing) but give us the groundwork to fix things on top. |
aarch64 is expected to fail for connext-only. macOS is already failing the builds that are failing. Thus I'll merge this one. |
Thanks @mikaelarguedas, and @clalancette for getting this over the edge. |
The environment variable introduced in ros2/system_tests#409 is RTI_OPENSSL_LIBS not RTI_OPENSSL_LIB Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
* Update Foxy OpenSSL to 1.1.1g on Windows. This OpenSSL binary distribution also has a different default install location: C:\Program Files\OpenSSL-Win64 * Fix RTI_OPENSSL_LIBS envar name. The environment variable introduced in ros2/system_tests#409 is RTI_OPENSSL_LIBS not RTI_OPENSSL_LIB Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
Connext 5.3.1 requires an older version of openssl which is no longer available from the system macOS installation. Connext supplies a compatible openssl distribution and ros2/system_tests#409 sets up a convention for using it only for the security tests which require it when running with Connext. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
Connext 5.3.1 requires an older version of openssl which is no longer available from the system macOS installation. Connext supplies a compatible openssl distribution and ros2/system_tests#409 sets up a convention for using it only for the security tests which require it when running with Connext. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com>
* Set default values for RTI_OPENSSL_* to use in test_security. Connext 5.3.1 requires an older version of openssl which is no longer available from the system macOS installation. Connext supplies a compatible openssl distribution and ros2/system_tests#409 sets up a convention for using it only for the security tests which require it when running with Connext. Signed-off-by: Steven! Ragnarök <steven@nuclearsandwich.com> * update path to rti openssl Signed-off-by: Mikael Arguedas <mikael.arguedas@gmail.com> Co-authored-by: Steven! Ragnarök <steven@nuclearsandwich.com>
Ubuntu Focal, Homebrew and chocolatey now provide OpenSSL 1.1.1
RTI Connext 5.3.1 supports only 1.0.2 so we need to modify the library path and the path for connext's version of openssl be used when running tests with connext. Use system OpenSSL for other rmw implementations
related to ros2/ci#421