[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[DO NOT MERGE] Add hyp create ray-dashboard-connection command - #446

Merged
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command
Aug 17, 2026
Merged

[DO NOT MERGE] Add hyp create ray-dashboard-connection command#446
zhaoqizqwang merged 1 commit into
aws:mainfrom
jchatter321:add-hyp-create-ray-dashboard-connection-command

Conversation

@jchatter321

@jchatter321jchatter321 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Adds a CLI command to create a RayDashboardConnection CR and return the dashboard URL.

Usage:

hyp create ray-dashboard-connection --cluster-name <name> --namespace <ns>

Returns the connection URL from the operator's extension API. Flag --namespace defaults to default namespace if not provided.

Testing

Installed CLI with pip install -e . and successfully generated a RayDashboardConnection using hyp create ray-dashboard-connection --cluster-name my-raycluster.

Unit tests -

dev-dsk-jdchatte-2a-4e225af8 % python -m pytest test/unit_tests/cli/test_ray_dashboard_connection.py -v
✓ hyperpod-cluster-stack-template installed successfully from local directory
==================================== test session starts =====================================
platform linux -- Python 3.12.11, pytest-8.3.2, pluggy-1.6.0 -- /home/jdchatte/.local/share/mise/installs/python/3.12.11/bin/python
cachedir: .pytest_cache
rootdir: /local/home/jdchatte/sagemaker-hyperpod-cli
configfile: setup.cfg
plugins: cov-5.0.0, anyio-4.14.2, order-1.3.0, hydra-core-1.3.2, dependency-0.6.0
collected 8 items test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_success_returns_url PASSED [ 12%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_default_namespace PASSED [ 25%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_empty_url_raises_error PASSED [ 37%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_no_status_raises_error PASSED [ 50%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_api_not_installed PASSED [ 62%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_404_namespace_not_found PASSED [ 75%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_create_403_raises_exception PASSED [ 87%]
test/unit_tests/cli/test_ray_dashboard_connection.py::TestRayDashboardConnectionCommand::test_missing_cluster_name PASSED [100%]<unknown>:33: SyntaxWarning: invalid escape sequence '\/'

@jchatter321
jchatter321 requested a review from a team as a code ownerAugust 11, 2026 16:57
if connection_url:
click.echo(connection_url)
else:
click.echo(f"RayDashboardConnection created in namespace '{namespace}' for cluster '{cluster_name}'")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can never happen because agg APIs are sychronous. Lets fail with an error message 'contact your administrator' or something when URL is null / empty.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception.

"""Create a RayDashboardConnection to get a dashboard URL for a RayCluster."""
api_client = _get_eks_api_client()

body = {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we handle the case where the ray endpoint operator is not installed gracefully? If kind RayDashboardConnection is not recognized by the API server, lets instruct customers to install ray-endpoint-operator (we'll come back and link the docs when it's ready)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added exception below.

@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch 2 times, most recently from b4aeb21 to 4281c4aCompareAugust 11, 2026 17:29
@jchatter321
jchatter321deployed to manual-approval August 11, 2026 17:33 — with GitHub Actions Active
@zhaoqizqwang

Copy link
Copy Markdown
Collaborator

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

@jchatter321

Copy link
Copy Markdown
ContributorAuthor

Did we update the help message or add documentation for this new command: ray-dashboard-connection?

We plan to release public documentation containing this information.

@jchatter321jchatter321 changed the title Add hyp create ray-dashboard-connection command[DO NOT MERGE] Add hyp create ray-dashboard-connection commandAug 13, 2026
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 4281c4a to 98d3755CompareAugust 13, 2026 21:17
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 98d3755 to 0a8d259CompareAugust 13, 2026 21:19
@jchatter321
jchatter321deployed to manual-approval August 13, 2026 21:19 — with GitHub Actions Active
@jchatter321
jchatter321force-pushed the add-hyp-create-ray-dashboard-connection-command branch from 0a8d259 to 6f37c9bCompareAugust 15, 2026 00:05
@jchatter321
jchatter321deployed to manual-approval August 15, 2026 00:05 — with GitHub Actions Active
@zhaoqizqwang
zhaoqizqwang merged commit cc1294b into aws:mainAug 17, 2026
5 of 6 checks passed
@nargokulnargokul mentioned this pull request Aug 21, 2026
3 tasks
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@jchatter321@zhaoqizqwang@psnilesh@rsareddy0329