Skip to content
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

RHOAIENG-17306, RHOAIENG-17307, RHOAIENG-17308: feat(workbenches): support IPv6 environments in codeserver, jupyterlab and rstudio #827

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

chaturvedi-kna
Copy link

@chaturvedi-kna chaturvedi-kna commented Dec 20, 2024

Tied to a PR against Dashboard

Description

This PR aims to bring support for single stack IPv6 env's.
This change allows Jupyter server to listen on all IP addresses
Note: This is a replacement of PR

Changes include:

  • Updated --ServerApp.ip=0.0.0.0 to --ServerApp.ip="" across all applicable start-notebook.sh files.
  • Verified and confirmed the changes were applied consistently across all Jupyter notebooks.

Modified Files:

  1. jupyter/intel/ml/ubi9-python-3.11/start-notebook.sh
  2. jupyter/intel/ml/ubi9-python-3.9/start-notebook.sh
  3. jupyter/intel/pytorch/ubi9-python-3.11/start-notebook.sh
  4. jupyter/intel/pytorch/ubi9-python-3.9/start-notebook.sh
  5. jupyter/intel/tensorflow/ubi9-python-3.11/start-notebook.sh
  6. jupyter/intel/tensorflow/ubi9-python-3.9/start-notebook.sh
  7. jupyter/minimal/ubi9-python-3.11/start-notebook.sh
  8. jupyter/minimal/ubi9-python-3.9/start-notebook.sh

How Has This Been Tested?

Testing was performed by building and running a custom Jupyter Data Science UBI9 Python 3.9 image derived from the Minimal UBI9 Python 3.9 image.

Environment Details:

  • Platform: OpenShift AI
  • Cluster Type: Single stack IPv6 OpenShift 4.16 cluster

Testing Process:

  1. Built the updated images based on the modified start-notebook.sh scripts.
  2. Deployed and ran the images in the OpenShift AI environment.
  3. Verified successful start-up and functionality of the Jupyter Notebooks in the cluster.

Merge criteria:

  • The commits are squashed in a cohesive manner and have meaningful messages.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work.

Copy link
Contributor

openshift-ci bot commented Dec 20, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign atheo89 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Contributor

openshift-ci bot commented Dec 20, 2024

Hi @chaturvedi-kna. Thanks for your PR.

I'm waiting for a opendatahub-io member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@chaturvedi-kna
Copy link
Author

@jiridanek and @atheo89

While making changes to the code server, I noticed a specific instruction to remove listening on IPv6. Was that intentional.

I have built and deployed code server image manually in IPv6 only env and tested it post modifications works fine.

Let me know if any further adjustments are needed!

@chaturvedi-kna
Copy link
Author

/retest-required

1 similar comment
@chaturvedi-kna
Copy link
Author

/retest-required

@jiridanek
Copy link
Member

@chaturvedi-kna the remaining failures are stubborn infra issues, there's little point in retrying the tests, they won't pass. The OpenShift-CI tests are largely duplicated by GitHub Actions tests, so when GitHub actions all pass, then I consider a PR to be above suspicion.

@jiridanek jiridanek changed the title Fix: Update to support IPv6 environments Fix: Update codeserver and jupyter workbenches to support IPv6 environments Dec 23, 2024
@jiridanek jiridanek changed the title Fix: Update codeserver and jupyter workbenches to support IPv6 environments RHOAIENG-17306, RHOAIENG-17307: feat(workbenches): support IPv6 environments in codeserver and jupyterlab Dec 23, 2024
@jiridanek
Copy link
Member

The GHA failures are known issues, see https://issues.redhat.com/browse/RHOAIENG-16587

@chaturvedi-kna
Copy link
Author

Hi @jiridanek, Thanks for clarifying. I felt something wrong with the infra but thought it may be due to being busy. Anyhow, I guess I missed the required changes for rstudio. I will do the modifications, local testing and update PR tomorrow.

@jiridanek
Copy link
Member

Thanks. All maintainer of this repo (incl. me) are on Christmas holiday this week, so somebody will look at it the next week.

Copy link
Contributor

openshift-ci bot commented Dec 25, 2024

@chaturvedi-kna: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/notebook-jupyter-datascience-ubi9-python-3-11-pr-image-mirror 05fead0 link true /test notebook-jupyter-datascience-ubi9-python-3-11-pr-image-mirror
ci/prow/intel-notebooks-e2e-tests 05fead0 link true /test intel-notebooks-e2e-tests
ci/prow/notebooks-ubi9-e2e-tests 05fead0 link true /test notebooks-ubi9-e2e-tests
ci/prow/codeserver-notebook-e2e-tests 05fead0 link true /test codeserver-notebook-e2e-tests
ci/prow/rstudio-notebook-e2e-tests 05fead0 link true /test rstudio-notebook-e2e-tests
ci/prow/notebook-jupyter-intel-tf-ubi9-python-3-11-pr-image-mirror 05fead0 link true /test notebook-jupyter-intel-tf-ubi9-python-3-11-pr-image-mirror
ci/prow/images 05fead0 link true /test images

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jiridanek
Copy link
Member

My take is that these changes are harmless for ipv4/v6 dualstack; gotta figure out how to check still work with ipv4 singlestack. Checking that this actually fixed v6 is not all that important for me, my first responsibility should be not to cause a regression in existing (guaranteed) functionality. Ipv6 is for me at this point a nice optional bonus.

@chaturvedi-kna chaturvedi-kna changed the title RHOAIENG-17306, RHOAIENG-17307: feat(workbenches): support IPv6 environments in codeserver and jupyterlab RHOAIENG-17306, RHOAIENG-17307, RHOAIENG-17308: feat(workbenches): support IPv6 environments in codeserver, jupyterlab and rstudio Jan 7, 2025
@chaturvedi-kna
Copy link
Author

I understand the importance of ensuring that IPv4 functionality remains intact and does not regress. I have kept that in mind while making changes. However, I currently do not have access to an IPv4 single-stack environment to perform the necessary tests.

Could you please confirm if the existing tests cover this case? If not, I would appreciate any guidance on how to proceed with testing in an IPv4 single-stack environment.

@jiridanek
Copy link
Member

jiridanek commented Jan 7, 2025

I wanted to look into docker/podman networking for this. Worst case, create the container without any network and then add ipv4 interface by following some of those "hard way" guides, like all these ip netns commands in https://lists.podman.io/archives/list/[email protected]/thread/W6MCYO6RY5YFRTSUDAOEZA7SC2EFXRZE/. Maybe I'd ask chatgpt how to do it.

edit: the last two comments on containers/podman#22359 say that all of ipv4 only, ipv6 only and ipv4v6 dualstack is currently possible with podman, just that the cli options to enable it are somewhat confusing; so this is good news

edit: for testing the image, I'm completely satisfied in trying with podman, it's sufficiently faithful representation of what happens in openshift. Going into https://docs.redhat.com/en/documentation/openshift_container_platform/4.17/html/networking/multiple-networks should not be necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants