Skip to content

K8s: Update strategy as Recreate by default #2755

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

Merged
merged 1 commit into from
Apr 7, 2025
Merged

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Apr 7, 2025

User description

Grid components still not support well for RollingUpdate

Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it

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

Description

Motivation and Context

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Enhancement, Configuration changes


Description

  • Changed default Kubernetes update strategy to Recreate for Selenium Grid components.

  • Updated Helm chart configuration and documentation to reflect the new default strategy.

  • Modified test scripts to include the SET_UPDATE_STRATEGY parameter for testing.

  • Adjusted individual node configurations to allow overriding the global update strategy.


Changes walkthrough 📝

Relevant files
Tests
chart_test.sh
Add dynamic update strategy parameter in test script         

tests/charts/make/chart_test.sh

  • Added support for SET_UPDATE_STRATEGY parameter in Helm command.
  • Ensured the update strategy can be dynamically set during tests.
  • +5/-0     
    helm-chart-test.yml
    Update Helm chart test workflow for Recreate strategy       

    .github/workflows/helm-chart-test.yml

  • Included SET_UPDATE_STRATEGY=Recreate in the Helm chart upgrade test
    command.
  • Ensured the new update strategy is tested during CI workflows.
  • +1/-1     
    Documentation
    CONFIGURATION.md
    Update documentation for default Recreate update strategy

    charts/selenium-grid/CONFIGURATION.md

  • Updated documentation to set Recreate as the default update strategy.
  • Clarified that individual components can override the global strategy.
  • +5/-5     
    Configuration changes
    values.yaml
    Change default update strategy to Recreate in values.yaml

    charts/selenium-grid/values.yaml

  • Changed default update strategy from RollingUpdate to Recreate.
  • Updated individual node configurations to allow nullifying the update
    strategy.
  • +5/-5     

    Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • Copy link

    qodo-merge-pro bot commented Apr 7, 2025

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 PR contains tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Missing Closing Quote

    The added if statement for SET_UPDATE_STRATEGY is missing a closing quote in the string concatenation, which would cause a syntax error when the script runs.

    if [ -n "${SET_UPDATE_STRATEGY}" ]; then
      HELM_COMMAND_SET_IMAGES="${HELM_COMMAND_SET_IMAGES} \
      --set global.seleniumGrid.updateStrategy.type=${SET_UPDATE_STRATEGY} \
    fi

    Copy link

    qodo-merge-pro bot commented Apr 7, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    Possible issue
    Fix missing closing quote

    The bash script is missing a closing double quote at the end of the --set line,
    which will cause a syntax error when the script is executed.

    tests/charts/make/chart_test.sh [188-191]

     if [ -n "${SET_UPDATE_STRATEGY}" ]; then
       HELM_COMMAND_SET_IMAGES="${HELM_COMMAND_SET_IMAGES} \
       --set global.seleniumGrid.updateStrategy.type=${SET_UPDATE_STRATEGY} \
    +  "
     fi
    • Apply this suggestion
    Suggestion importance[1-10]: 10

    __

    Why: The suggestion fixes a critical syntax error in the bash script where a closing double quote is missing after setting the update strategy. This would cause the script to fail when executed, breaking the functionality of the new feature.

    High
    • Update

    Copy link

    qodo-merge-pro bot commented Apr 7, 2025

    CI Feedback 🧐

    (Feedback updated until commit 11cce17)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Rerun workflow when failure

    Failed stage: Authenticate GitHub CLI for PR [❌]

    Failure summary:

    The action failed because the GitHub CLI authentication failed with the error: "missing required
    scope 'read:org'". The token provided in the GH_CLI_TOKEN_PR environment variable does not have the
    necessary permissions to perform the required operations. Specifically, it's missing the 'read:org'
    scope which is required for the GitHub CLI to authenticate properly.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    22:  Issues: write
    23:  Metadata: read
    24:  Models: read
    25:  Packages: write
    26:  Pages: write
    27:  PullRequests: write
    28:  RepositoryProjects: write
    29:  SecurityEvents: write
    30:  Statuses: write
    31:  ##[endgroup]
    32:  Secret source: Actions
    33:  Prepare workflow directory
    34:  Prepare all required actions
    35:  Getting action download info
    36:  Download action repository 'actions/checkout@main' (SHA:85e6279cec87321a52edac9c87bce653a07cf6c2)
    37:  Complete job name: Rerun workflow when failure
    38:  ##[group]Run actions/checkout@main
    ...
    
    42:  ssh-strict: true
    43:  ssh-user: git
    44:  persist-credentials: true
    45:  clean: true
    46:  sparse-checkout-cone-mode: true
    47:  fetch-depth: 1
    48:  fetch-tags: false
    49:  show-progress: true
    50:  lfs: false
    51:  submodules: false
    52:  set-safe-directory: true
    53:  env:
    54:  GH_CLI_TOKEN: ***
    55:  GH_CLI_TOKEN_PR: ***
    56:  RUN_ID: 14302359885
    57:  RERUN_FAILED_ONLY: true
    58:  RUN_ATTEMPT: 1
    ...
    
    113:  Or undo this operation with:
    114:  git switch -
    115:  Turn off this advice by setting config variable advice.detachedHead to false
    116:  HEAD is now at cccdceb Merge 11cce17a7f1d1933608774a1c46f97fb6cd94415 into 15eb64ac06ad76d32977ec7a08b735460301f832
    117:  ##[endgroup]
    118:  [command]/usr/bin/git log -1 --format=%H
    119:  cccdceb3b50acb93b7808b61bd29ac33d6d2b22c
    120:  ##[group]Run sudo apt update
    121:  �[36;1msudo apt update�[0m
    122:  �[36;1msudo apt install gh�[0m
    123:  shell: /usr/bin/bash -e {0}
    124:  env:
    125:  GH_CLI_TOKEN: ***
    126:  GH_CLI_TOKEN_PR: ***
    127:  RUN_ID: 14302359885
    128:  RERUN_FAILED_ONLY: true
    129:  RUN_ATTEMPT: 1
    ...
    
    168:  Reading state information...
    169:  118 packages can be upgraded. Run 'apt list --upgradable' to see them.
    170:  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    171:  Reading package lists...
    172:  Building dependency tree...
    173:  Reading state information...
    174:  gh is already the newest version (2.69.0).
    175:  0 upgraded, 0 newly installed, 0 to remove and 118 not upgraded.
    176:  ##[group]Run echo "$GH_CLI_TOKEN_PR" | gh auth login --with-token
    177:  �[36;1mecho "$GH_CLI_TOKEN_PR" | gh auth login --with-token�[0m
    178:  shell: /usr/bin/bash -e {0}
    179:  env:
    180:  GH_CLI_TOKEN: ***
    181:  GH_CLI_TOKEN_PR: ***
    182:  RUN_ID: 14302359885
    183:  RERUN_FAILED_ONLY: true
    184:  RUN_ATTEMPT: 1
    185:  ##[endgroup]
    186:  error validating token: missing required scope 'read:org'
    187:  ##[error]Process completed with exit code 1.
    188:  Post job cleanup.
    

    @VietND96 VietND96 force-pushed the update-strategy branch 2 times, most recently from 944fec0 to 7f3d94e Compare April 7, 2025 05:02
    Grid components still not support well for RollingUpdate
    
    Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    @VietND96 VietND96 merged commit d34cc0d into trunk Apr 7, 2025
    25 of 28 checks passed
    @VietND96 VietND96 deleted the update-strategy branch April 7, 2025 07:28
    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.

    1 participant