Uh oh!
There was an error while loading. Please reload this page.
Conversation
- Updated .gitignore to include environment-specific secrets and Helm deployment value files. - Added MySQL PersistentVolumeClaim and ConfigMap for configuration management. - Introduced MySQL Deployment and Service templates for better database management. - Enhanced jobs-manager-deployment with security context, resource requests, and environment variable management. - Updated RBAC roles to include service account creation and improved access control. - Added resource monitor DaemonSet configuration and associated settings. - Improved documentation in NOTES.txt for deployment verification and component overview.
- Introduced a new Helm CI workflow for automated linting, templating, and validation across multiple platforms. - Added deprecation notices for legacy charts (aks, bm, eks, oc) in favor of the unified tracebloc chart. - Updated templates to utilize a centralized registry secret name for improved consistency. - Enhanced values schema and default values for better configuration management. - Added tests for jobs manager and MySQL deployment to ensure template integrity and functionality. - Improved documentation in values.yaml and NOTES.txt for clarity on deployment configurations.
…m Helm chart - Eliminated `imageRegistry` and `nodeSelector` settings from various configuration files to streamline deployment. - Updated templates to default to `docker.io` for image references, ensuring consistency across environments. - Added PodDisruptionBudgets for jobs manager and MySQL deployments to enhance availability during maintenance. - Improved deployment configurations with termination grace periods for better resource management. - Enhanced documentation in NOTES.txt for clearer deployment instructions and component overview.
- Updated `MIGRATION.md` to reflect changes in cluster role configuration, replacing `useClusterScope` with `clusterScope`. - Revised `values.schema.json` to streamline required properties and enhance descriptions for environment variables, PVCs, and RBAC settings. - Modified `values.yaml` to consolidate environment variable settings and clarify PVC configurations. - Enhanced template files to utilize new helper functions for PVC names and storage sizes, ensuring consistency across deployments. - Improved test configurations to align with updated schema and values, ensuring robust validation of deployments.
- Introduced `install-k8s.sh` for a one-command Kubernetes installation on macOS and Linux, utilizing k3d for lightweight clusters. - Added various helper scripts in the `lib` directory for GPU detection, driver installation, and cluster management. - Enhanced `.gitignore` to exclude unnecessary files while including the `scripts/lib` directory. - Implemented logging and utility functions for better user feedback during installation and setup processes. - Provided a summary script to display cluster status and common commands post-installation.
- Added creation of host data directory in `_create_new_cluster` if it doesn't exist. - Updated `HOST_DATA_DIR` default value to `$HOME/.tracebloc` for better user experience. - Modified summary output to include volume mount information for clarity. - Revised `MIGRATION.md` to reflect new host path structure for data, logs, and MySQL. - Updated `values.schema.json` to change property names from `dataPath`, `logsPath`, and `mysqlPath` to `dataDir`, `logsDir`, and `mysqlDir` for consistency. - Enhanced template files to utilize new helper functions for host path management in PVC configurations.
…treamlined deployment
…ved clarity in configuration
- Added functions to detect Ubuntu codename and RHEL version for dynamic package retrieval. - Implemented a method to scrape the ROCm repository for the latest .deb and .rpm files. - Improved error handling for unsupported distributions and missing packages. - Updated installation logic to support both Ubuntu and RHEL/CentOS systems more effectively.
- Updated package manager installation commands to include options for handling configuration file changes during upgrades. - Set environment variables to ensure non-interactive installations and manage restart behavior during the setup process.
…onality - Introduced `_merge_kubeconfig` to handle kubeconfig updates and context switching. - Added `_wait_for_api` to ensure the Kubernetes API server is reachable before proceeding. - Streamlined the `create_cluster` function by delegating kubeconfig merging and API readiness checks to the new helper functions.
- Introduced claimRef with name and namespace fields in logs-pvc.yaml, mysql-storage-pvc.yaml, and shared-images-pvc.yaml to enhance the association of PersistentVolumeClaims with their respective resources.
- Revised the README to include a quick installation guide for setting up a local Kubernetes cluster with GPU support using a single command. - Introduced a new `install.sh` script that downloads necessary installation scripts and executes the Kubernetes installation process. - Updated the `install-k8s.sh` script reference in the comments to point to the new bootstrap installer for clarity.
- Modified the `install.sh` script to allow users to specify a branch for downloading the installer, defaulting to 'main'. - Enhanced the download message to indicate the selected branch for better user clarity.
…r dynamic downloads
…ce for dynamic downloads
- Updated the Docker installation process to force install the application if not already present. - Improved waiting mechanism for Docker engine startup with a configurable maximum wait time. - Added user guidance for accepting the Docker license agreement on first launch to prevent errors during setup.
- Introduced a new `install.ps1` script for Windows that downloads and executes the `install-k8s.ps1` script. - Updated `install.sh` to include instructions for Windows users, directing them to use the new PowerShell installer. - Enhanced error handling and retry logic in various scripts to improve robustness during downloads. - Improved help messages and usage instructions across installation scripts for better user guidance.
- Standardized comment formatting and improved clarity in usage instructions. - Enhanced error messages for better user feedback during installation. - Updated logging and banner display for a more consistent user experience. - Refined GPU detection logic and added error handling for missing NVIDIA drivers.
…er guidance - Added WSL update command with error handling to ensure the latest version is used. - Improved feedback messages for setting WSL2 as the default version, including instructions for manual updates if necessary.
… experience - Implemented asynchronous WSL update with progress feedback to enhance user guidance during installation. - Improved logic for selecting a WSL2 distribution, prioritizing Ubuntu and providing fallback options. - Updated commands to ensure compatibility and clarity in executing WSL commands within the script.
…8s.ps1 - Adjusted console encoding to properly handle WSL output, ensuring accurate retrieval of available distributions. - Enhanced logic for selecting a WSL2 distribution, improving fallback behavior when no Ubuntu distro is found. - Updated command execution for kubectl and helm to ensure compatibility and clearer output handling.
- Added logic to determine the real hardware architecture on macOS, ensuring the correct version of Docker Desktop is installed. - Updated the installation script to download the appropriate Docker DMG based on the detected architecture. - Implemented verification to warn users if the installed Docker binary does not match the hardware architecture.
- Added a spinner utility to provide visual feedback during long-running commands in the installation scripts. - Updated Docker, kubectl, k3d, and helm installation processes to use the new spinner functionality, enhancing user experience by indicating progress. - Refactored existing command execution to improve clarity and maintainability.
- Introduced a check for fresh Docker installations, prompting users with setup instructions on first launch. - Improved architecture verification to warn users if the installed Docker binary does not match their hardware. - Adjusted waiting mechanism for Docker engine startup, reducing maximum wait time for improved responsiveness.
- Introduced a new `preflight_sudo` function to warm the credential cache for sudo, preventing interactive prompts during installations. - Integrated the `preflight_sudo` call at the start of both `install_macos` and `install_linux` functions to ensure necessary privileges are obtained before proceeding with installations. - Enhanced user experience by providing clear messaging regarding administrator privileges required for the installation process.
- Introduced a new `download_with_progress` function to provide a visual progress bar during the download of Docker Desktop, enhancing user experience. - Updated the `install_docker_desktop` function to utilize the new download function, replacing the previous download command with a retry mechanism for improved reliability. - The progress bar displays percentage and size information, working seamlessly on both macOS and Linux.
- Improved the waiting mechanism for Docker Desktop to include a visual spinner, providing real-time feedback while waiting for the Docker engine to start. - Added informative messages to guide users if Docker is not responding, ensuring clarity on what to check during the startup process. - Enhanced user experience by replacing static messages with dynamic updates during the waiting period.
…up script - Added a new function to identify and terminate any lingering Docker Desktop processes that may block a clean startup. - Integrated the cleanup function into the Docker installation process to ensure a smooth user experience during setup. - Enhanced overall reliability of the installation script by preventing potential startup issues related to Docker.
…on improvements - Introduced a new function to determine the Windows architecture, ensuring the correct binaries are downloaded for Docker Desktop and kubectl installations. - Enhanced input validation for configuration parameters, including stricter checks for CLUSTER_NAME, SERVERS, AGENTS, HTTP_PORT, and HTTPS_PORT. - Implemented checksum verification for downloaded binaries to ensure integrity and prevent tampering. - Added a tool directory initialization function to streamline the installation process and ensure necessary paths are set correctly.
…alidation improvements - Added a -NoReboot switch to the install-k8s.ps1 script to allow users to skip the reboot prompt after enabling Windows features. - Updated K8S_VERSION default to a pinned version (v1.29.4-k3s1) for better stability, with clear instructions on using the latest version. - Improved validation for HOST_DATA_DIR to ensure it is under USERPROFILE and not a system path, enhancing security. - Refined cluster creation logic in cluster.sh to ensure exact cluster name matching and improved handling of existing clusters. - Enhanced GPU plugin deployment scripts to download manifests to a temporary file for better integrity checks and error handling.
- Added TRACEBLOC_SKIP_REBOOT_PROMPT parameter to install-k8s.sh to allow skipping the reboot prompt after NVIDIA driver installation. - Updated common.sh to provide specific feedback for Docker first-time setup, improving user guidance during installation. - Enhanced setup-macos.sh to clarify Docker Desktop setup instructions and signal expected exit behavior for first-time installations.
- Improved user guidance for first-time Docker Desktop setup, clarifying steps and expectations. - Enhanced feedback during Docker startup with dynamic waiting messages and increased maximum wait time. - Updated error handling to inform users if Docker does not start in the expected timeframe.
- Added architecture detection to ensure the correct version of Docker Desktop is installed based on the user's hardware. - Implemented checks to remove existing Docker installations that do not match the detected architecture, improving compatibility for Apple Silicon users. - Streamlined the installation process by consolidating architecture checks and installation conditions.
- Updated the hdiutil command to use the -nobrowse option for better handling of mounted volumes. - Added xattr command to remove extended attributes from the Docker.app, ensuring a smoother installation experience.
- Updated the validation logic for HOST_DATA_DIR to resolve the parent directory first, improving error handling and ensuring the directory is correctly set even if the target does not exist initially. - Enhanced error messages to provide clearer feedback when the parent directory cannot be resolved, improving user guidance during configuration.
- Added a new function to detect headless environments and install Colima as the Docker runtime when no GUI session is available. - Enhanced the Docker installation process to check for existing installations and start the Colima Docker daemon if necessary. - Updated messaging to inform users about the headless setup and provide guidance on potential issues with Docker daemon startup.
- Renamed the function for detecting GUI sessions to improve clarity and reliability. - Updated the logic to check for GUI sessions using the ownership of /dev/console, enhancing detection accuracy for headless environments. - Adjusted the Docker installation process to utilize the new function, ensuring proper handling of headless setups.
- Added a new function to check Docker Desktop architecture on macOS, providing clear instructions for users if the installed version does not match their hardware. - Updated the Docker installation process to prompt users before replacing incorrect architecture installations, improving user experience and guidance. - Enhanced messaging to inform users about potential performance issues related to architecture mismatches, ensuring better clarity during setup.
- Refactored the Docker binary path detection to use the correct main executable, improving accuracy in architecture validation. - Enhanced the logic to check for the Docker binary's architecture, ensuring compatibility with both Intel and ARM architectures on macOS.
- Modified the Docker removal command to include 'sudo' for proper permissions, ensuring successful removal of Docker.app during installation. - This change enhances the installation process by preventing potential permission issues when removing existing Docker installations.
- Added comments to clarify the need for 'sudo' when removing Docker.app due to protected paths. - Noted that the official uninstall script is not used to avoid blocking issues during non-interactive runs, enhancing the installation process documentation.
- Updated echo statements in install.sh to provide clearer context about the Tracebloc client installer. - Improved the banner in common.sh to reflect the Tracebloc branding and provide additional information about the setup process. - Adjusted summary messages in summary.sh to emphasize the readiness of the Tracebloc client and the Kubernetes cluster, enhancing user feedback.
- Modified the zypper update command to remove the '-q' flag for improved output clarity during package refresh. - Ensured the installation command retains the '-y' flag for non-interactive installations, maintaining user experience consistency.
- Added a fast-path check to see if k3d is already installed, improving efficiency. - Implemented a fallback to use the openSUSE/SLES package manager (zypper) for installation when available, enhancing compatibility. - Maintained checksum verification for downloaded k3d releases to ensure integrity, with improved error handling for checksum fetching. - Updated success and warning messages for better user feedback during the installation process.
- Enhanced the fallback mechanism for k3d installation on openSUSE/SLES to log errors quietly when the package is not found. - Updated warning messages for better clarity regarding the fallback to the upstream GitHub installer, improving user feedback during the installation process.
- Replaced the fallback mechanism for k3d installation with the official installer script for improved reliability and simplicity. - Removed the previous zypper installation logic and checksum verification, streamlining the installation process. - Added error handling to ensure k3d is available on PATH after installation, enhancing user feedback and installation success verification.
- Introduced a new section in README.md detailing the installation of the tracebloc Helm chart for production environments. - Created INSTALL.md to provide comprehensive installation instructions, including prerequisites, installation methods, required configurations, and upgrade/rollback procedures. - Added a GitHub Actions workflow for packaging and publishing the tracebloc Helm chart to GitHub Pages, ensuring users can easily access the chart for installation.
- Removed outdated PVC identifiers from README.md for clarity and conciseness. - Changed the 'minAvailable' setting to 'maxUnavailable' in jobs-manager-pdb.yaml to align with updated deployment strategies.
- Renamed configuration keys from 'dataDir', 'logsDir', and 'mysqlDir' to 'dataPath', 'logsPath', and 'mysqlPath' for clarity. - Updated descriptions to reflect the new key names and their usage in path rendering. - Adjusted helper template functions to utilize the new key names for generating paths. - Modified test cases to align with the updated configuration structure, ensuring proper functionality for hostPath settings.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| {{- define "tracebloc.hostPath.data" -}} | ||
| /tracebloc/{{ .Values.hostPath.dataDir }} | ||
| /tracebloc/{{ trimPrefix (toString .Values.hostPath.dataPath) "/" }} |
There was a problem hiding this comment.
Swapped arguments to trimPrefix produce wrong hostPath
High Severity
The arguments to Sprig's trimPrefix are reversed. trimPrefix takes (prefix, string), but the code passes the path value as the prefix and "/" as the string. For example, trimPrefix "/mnt/data" "/" returns "/" (no match), so all three helpers produce /tracebloc// instead of the intended path like /tracebloc/mnt/data. The path value and "/" literal need to be swapped.


Note
Medium Risk
Changes Helm values keys and hostPath path rendering for PVs/init Job, which can break existing bare-metal installs or point volumes at different directories if values aren’t migrated correctly.
Overview
Updates the chart’s bare-metal
hostPathconfiguration by renamingdataDir/logsDir/mysqlDirtodataPath/logsPath/mysqlPathand enforcing schema validation accordingly.HostPath mount rendering now treats these as path segments under
/tracebloc/and strips any leading/viatrimPrefix, reducing double-slash/absolute-path surprises.Helm unit tests are updated to set
hostPath.enabled: truewhere PVs/init Job are expected, and OpenShift SCC creation tests now requireopenshift.scc.enabled: true.Written by Cursor Bugbot for commit f38f0b3. This will update automatically on new commits. Configure here.