Skip to content

Update list CLI Options of Selenium Grid align to version 4.41.0#2596

Merged
VietND96 merged 2 commits intotrunkfrom
grid-cli-options
Mar 2, 2026
Merged

Update list CLI Options of Selenium Grid align to version 4.41.0#2596
VietND96 merged 2 commits intotrunkfrom
grid-cli-options

Conversation

@VietND96
Copy link
Copy Markdown
Member

@VietND96 VietND96 commented Feb 26, 2026

User description

Thanks for contributing to the Selenium site and documentation!
A PR well described will help maintainers to review and merge it quickly

Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, and help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Types of changes

  • Change to the site (I have double-checked the Netlify deployment, and my changes look good)
  • Code example added (and I also added the example to all translated languages)
  • Improved translation
  • Added new translation (and I also added a notice to each document missing translation)

Checklist

  • I have read the contributing document.
  • I have used hugo to render the site/docs locally and I am sure it works.

PR Type

Documentation


Description

  • Add Kubernetes configuration section with 12 new CLI options

  • Update Docker CLI options with 3 new parameters and formatting fixes

  • Add Events, Node, and SessionQueue CLI options for Grid 4.41.0

  • Fix table formatting and improve option descriptions


Diagram Walkthrough

flowchart LR
  A["CLI Options Documentation"] --> B["Docker Section"]
  A --> C["Kubernetes Section"]
  A --> D["Events Section"]
  A --> E["Node Section"]
  A --> F["SessionQueue Section"]
  B --> B1["3 new options added"]
  C --> C1["12 new options added"]
  D --> D1["1 new option added"]
  E --> E1["4 new options added"]
  F --> F1["3 options updated"]
Loading

File Walkthrough

Relevant files
Documentation
cli_options.en.md
Add Kubernetes section and update Grid CLI options             

website_and_docs/content/documentation/grid/configuration/cli_options.en.md

  • Added new Kubernetes section with 12 configuration options for K8s
    deployments
  • Added 3 new Docker options (--docker-api-version,
    --docker-server-start-timeout, --docker-grouping-labels)
  • Fixed Docker option name from --docker- to --docker / -D with
    corrected description
  • Added 1 new Events option (--eventbus-heartbeat-period)
  • Added 4 new Node options (--enable-bidi, --delete-session-on-ui,
    --register-shutdown-on-failure, --node-down-failure-threshold)
  • Updated SessionQueue section with 3 new/modified options and corrected
    option names
  • Fixed table formatting issues and improved descriptions for clarity
+47/-8   

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented Feb 26, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
Weak secret example

Description: The documentation provides a concrete example value ("Hunter2") for --registration-secret,
which could be copied into real deployments and result in a weak/reused shared secret;
consider replacing with a clearly non-real placeholder (e.g., "") and/or explicitly
warning to use a strong unique secret.
cli_options.en.md [303-303]

Referred Code
| `--registration-secret` | string | `"Hunter2"` | Shared secret used to authenticate Node registration requests. Must match the value set on the Hub/Distributor. |
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Secret example value: The documentation introduces --registration-secret with an explicit example value
("Hunter2") which could unintentionally normalize weak/shared secrets and should
be reviewed for safer guidance (e.g., using a placeholder like
<strong-random-secret>).

Referred Code
| `--registration-secret` | string | `"Hunter2"` | Shared secret used to authenticate Node registration requests. Must match the value set on the Hub/Distributor. |

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 26, 2026

Deploy Preview for selenium-dev ready!

Name Link
🔨 Latest commit fa16bf0
🔍 Latest deploy log https://app.netlify.com/projects/selenium-dev/deploys/69a09b2dfa284a0008de39c8
😎 Deploy Preview https://deploy-preview-2596--selenium-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented Feb 26, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Automate CLI documentation from source code

Instead of manually updating the CLI options documentation, implement an
automated system. This system would generate the documentation page directly
from the application's source code, ensuring it remains accurate and reducing
maintenance.

Examples:

website_and_docs/content/documentation/grid/configuration/cli_options.en.md [194-210]
### Kubernetes

| Option | Type | Value/Example | Description |
|---|---|---|---|
| `--kubernetes-url` | string | `"https://my-k8s-cluster:6443"` | Kubernetes API server URL. When set, connects to a remote cluster instead of using in-cluster or kubeconfig auto-discovery. |
| `--kubernetes-configs` / `-K` | string[] | `selenium/standalone-firefox:latest '{"browserName": "firefox"}'` | Kubernetes configs which map image name to stereotype capabilities (example: `-K selenium/standalone-firefox:latest '{"browserName": "firefox"}'`). Use `configmap:[namespace/]<name>` as the key to load a Job template from a Kubernetes ConfigMap instead of an image name. |
| `--kubernetes-namespace` | string | `"selenium"` | Kubernetes namespace to create browser Jobs in. Auto-detected from the client when running in-cluster if not set. |
| `--kubernetes-service-account` | string | `"selenium-session"` | Override service account for browser Jobs. Auto-inherited from the Node Pod when running in K8s. |
| `--kubernetes-image-pull-policy` | string | `"IfNotPresent"` | Override image pull policy for browser containers (`Always`, `IfNotPresent`, `Never`). Auto-inherited from the Node Pod when running in K8s. |
| `--kubernetes-server-start-timeout` | int | `120` | Max time (in seconds) to wait for the browser server to start up in the K8s Pod. |

 ... (clipped 7 lines)

Solution Walkthrough:

Before:

// file: website_and_docs/content/documentation/grid/configuration/cli_options.en.md

// Manually add/update sections for each component
### Kubernetes

| Option | Type | Value/Example | Description |
|---|---|---|---|
| `--kubernetes-url` | string | `"https://my-k8s-cluster:6443"` | Kubernetes API server URL... |
| `--kubernetes-configs` / `-K` | string[] | `...` | Kubernetes configs which map... |
// ... manually add many more options

### Node

| Option | Type | Value/Example | Description |
|---|---|---|---|
| `--enable-bidi`| boolean | `true` | Enable BiDi proxying in Grid... |
// ... manually add more options

After:

// In Java source code (e.g., KubernetesOptions.java)
// Annotate options directly in the code
public class KubernetesOptions {
    @Parameter(names = "--kubernetes-url", description = "Kubernetes API server URL...")
    private String kubernetesUrl;

    @Parameter(names = {"--kubernetes-configs", "-K"}, description = "Kubernetes configs which map...")
    private List<String> kubernetesConfigs;

    // ... other options
}

// In a build script (e.g., build.gradle)
task generateCliDocs() {
    // Logic to scan source code for @Parameter annotations
    // and automatically generate the cli_options.en.md file.
}
Suggestion importance[1-10]: 9

__

Why: This is an excellent high-level suggestion that addresses the root cause of a significant maintainability problem, which the PR's manual changes perfectly illustrate.

High
Possible issue
Correct unit in option description

Correct the unit for --session-retry-interval from milliseconds to seconds in
its description to prevent misconfiguration.

website_and_docs/content/documentation/grid/configuration/cli_options.en.md [314]

-| `--session-retry-interval` | int | `15` | Retry interval in milliseconds. If all slots are busy, new session request will be retried after the given interval. |
+| `--session-retry-interval` | int | `15` | Retry interval in seconds. If all slots are busy, new session request will be retried after the given interval. |
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies that the unit for --session-retry-interval is documented as milliseconds but should be seconds, preventing potential user misconfiguration.

Medium
General
Clarify contradictory option description

Clarify the description for --kubernetes-video-image to state that video
recording is disabled by default and enabled by providing an image name,
removing the confusing reference to setting it to false.

website_and_docs/content/documentation/grid/configuration/cli_options.en.md [208]

-| `--kubernetes-video-image` | string | `"selenium/video:latest"` | Container image to use as a video recording sidecar. Set to `false` to disable video recording (default). |
+| `--kubernetes-video-image` | string | `"selenium/video:latest"` | Container image to use as a video recording sidecar. Video recording is disabled by default. To enable it, provide a valid container image. |
  • Apply / Chat
Suggestion importance[1-10]: 4

__

Why: The suggestion correctly identifies a confusing description for the --kubernetes-video-image option and proposes a clearer text, improving documentation quality and user understanding.

Low
  • Update

Signed-off-by: Viet Nguyen Duc <[email protected]>
@VietND96 VietND96 requested a review from diemol February 27, 2026 15:01
@VietND96 VietND96 merged commit 597090a into trunk Mar 2, 2026
6 checks passed
@VietND96 VietND96 deleted the grid-cli-options branch March 2, 2026 09:51
selenium-ci added a commit that referenced this pull request Mar 2, 2026
* Update list CLI Options of Selenium Grid align to version 4.41.0
* Update download list to 4.41.0

[deploy site]

---------

Signed-off-by: Viet Nguyen Duc <[email protected]> 597090a
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.

2 participants