Skip to content

K8s: Add template for file browser video records service #2763

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 8, 2025

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Apr 7, 2025

User description

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

Implement part of this #2753

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, Documentation


Description

  • Introduced a new videoManager component for managing video recordings.

    • Added deployment, service, and ingress templates for videoManager.
    • Configurable options for image, resources, probes, and environment variables.
  • Updated Helm chart configuration to include videoManager settings.

    • Enabled toggling of videoManager via values.yaml.
    • Added detailed configuration options for videoManager in CONFIGURATION.md.
  • Added test configuration to enable videoManager in simplex-docker-desktop.yaml.


Changes walkthrough 📝

Relevant files
Enhancement
4 files
_nameHelpers.tpl
Added helper function for videoManager fullname generation
+7/-0     
file-browser-deployment.yaml
Added deployment template for videoManager                             
+121/-0 
file-browser-ingress.yaml
Added ingress template for videoManager                                   
+59/-0   
file-browser-service.yaml
Added service template for videoManager                                   
+44/-0   
Documentation
1 files
CONFIGURATION.md
Documented configuration options for videoManager               
+40/-0   
Configuration changes
2 files
values.yaml
Added configuration options for videoManager in values.yaml
+94/-0   
simplex-docker-desktop.yaml
Enabled videoManager in test configuration                             
+3/-0     

Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    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 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 Security concerns

    Authentication concerns:
    The default configuration sets noauth: true which disables authentication for the file browser. This could potentially expose video recordings to unauthorized users if the service is accessible. While there are configuration options for username/password, the default is to have no authentication at all, which is a security risk.

    ⚡ Recommended focus areas for review

    Volume Mount Issue

    The extraVolumeMounts configuration is incorrectly templated. When using extraVolumeMounts, it's trying to render the entire context (.) instead of the extraVolumeMounts value, which would cause template errors.

    {{- if .Values.videoManager.extraVolumeMounts }}
      {{- tpl (toYaml .) $ | nindent 12 }}
    {{- else }}
    Volume Configuration

    Similar to the volume mounts issue, the extraVolumes templating is incorrect. It's trying to render the entire context (.) instead of the extraVolumes value.

    {{- if .Values.videoManager.extraVolumes }}
      {{ tpl (toYaml .) $ | nindent 8 }}
    {{- else }}
    Ingress Path Templating

    When using custom ingress paths, the template is trying to render the entire context (.) instead of the paths value, which would cause template errors.

    {{- if .Values.videoManager.ingress.paths }}
      {{- tpl (toYaml . | nindent 10) $ }}
    {{- else }}

    Copy link

    qodo-merge-pro bot commented Apr 7, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    Possible issue
    Fix incorrect variable reference

    The toYaml function is being applied to the wrong variable. It's currently using
    the root context (.) instead of .Values.videoManager.extraVolumeMounts. This
    will cause template rendering errors.

    charts/selenium-grid/templates/video-manager/file-browser-deployment.yaml [60-66]

     {{- if .Values.videoManager.extraVolumeMounts }}
    -  {{- tpl (toYaml .) $ | nindent 12 }}
    +  {{- tpl (toYaml .Values.videoManager.extraVolumeMounts) $ | nindent 12 }}
     {{- else }}
       - name: srv
         mountPath: /srv
         subPath: srv
     {{- end }}
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    __

    Why: The current code incorrectly uses the root context (.) with toYaml instead of the intended .Values.videoManager.extraVolumeMounts variable. This would cause template rendering to fail completely when extraVolumeMounts is defined, as it would try to serialize the entire template context rather than just the volume mounts array.

    High
    • More

    Copy link

    qodo-merge-pro bot commented Apr 7, 2025

    CI Feedback 🧐

    (Feedback updated until commit 1d63c1a)

    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: 14320591968
    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 5b71de5 Merge 1d63c1a94bbf3d8af6f1ee553f285ca535ec2806 into 9348ed1bc845bd773473ad0ec8ff9229129f64b3
    117:  ##[endgroup]
    118:  [command]/usr/bin/git log -1 --format=%H
    119:  5b71de59861078423f2512c29a55d6aac5d08e7c
    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: 14320591968
    128:  RERUN_FAILED_ONLY: true
    129:  RUN_ATTEMPT: 1
    ...
    
    168:  Reading state information...
    169:  126 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 126 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: 14320591968
    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 merged commit 9efdd3e into trunk Apr 8, 2025
    26 of 28 checks passed
    @VietND96 VietND96 deleted the video-manager branch April 8, 2025 01:16
    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