Skip to content

🌱 may want to use helm for installs#542

Merged
djzager merged 1 commit intokonveyor:mainfrom
djzager:install-konveyor-helm
Mar 10, 2026
Merged

🌱 may want to use helm for installs#542
djzager merged 1 commit intokonveyor:mainfrom
djzager:install-konveyor-helm

Conversation

@djzager
Copy link
Copy Markdown
Member

@djzager djzager commented Feb 26, 2026

Fixes #513

Summary by CodeRabbit

  • New Features

    • Added an option to install via Helm as an alternative to OLM, selectable from the installation workflow.
    • Installation workflow input now lets you choose Helm or OLM.
  • Improvements

    • Enhanced validation, monitoring, and progress messaging for both Helm and OLM installs.
    • Expanded debug output to include Helm-specific status and values.
    • Installation steps run more concurrently for faster deployments.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

Adds a USE_HELM flag and Helm-based installation path to the install-konveyor workflow, including new Helm-specific functions, conditional tool checks, adjusted debug output, and updates to the GitHub Action to accept a use_helm input.

Changes

Cohort / File(s) Summary
Install script
hack/install-konveyor.sh
Adds global USE_HELM flag; conditional tool requirement (helm vs operator-sdk); new functions start_helm_operator, wait_for_helm_operator, validate_helm_stack; Helm install/poll/validation flow, Helm-aware debug output, and adjusted main execution path with conditional parallelization.
GitHub Action
.github/actions/install-konveyor/action.yml
Adds use_helm input (default "false"); conditionally skips/operator installs and adds a Helm install step; passes USE_HELM into the install script.

Sequence Diagram(s)

sequenceDiagram
    participant Script as Installation Script
    participant Tool as Installer (Helm / OLM)
    participant Kube as Kubernetes API
    participant Op as Tackle Operator

    alt USE_HELM = true
        Script->>Tool: helm install tackle-operator
        Tool->>Kube: create namespace & deploy operator resources
        Script->>Kube: poll operator deployment readiness
        Kube-->>Script: deployment available
        Script->>Kube: create Tackle CR
        Kube->>Op: operator reconciles CR -> deploys Tackle resources
        Script->>Kube: validate deployments & services
        Kube-->>Script: stack ready
    else USE_HELM = false
        Script->>Tool: install OLM + operator via operator-sdk/bundle
        Tool->>Kube: install OLM components & operator
        Script->>Kube: poll operator readiness
        Kube-->>Script: operator available
        Script->>Kube: create Tackle CR
        Kube->>Op: operator reconciles CR -> deploys Tackle resources
        Script->>Kube: validate deployments & services
        Kube-->>Script: stack ready
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 I hopped into the script today,
A switch for Helm to lead the way.
Charts unfurl and pods take flight,
Two paths converge by morning light.
Hooray — install konveyor, bright and gay!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning All changes are directly related to implementing Helm-based installation support. However, the PR does not include documentation updates as specified in the linked issue's acceptance criteria. Add documentation updates (e.g., README or script comments) explaining the new USE_HELM flag and how to use Helm-based installation as specified in issue #513.
Title check ❓ Inconclusive The title is vague and generic, using a seedling emoji and indefinite phrasing ('may want to use helm') that doesn't clearly convey the specific change of adding a USE_HELM flag for optional Helm-based installation. Consider a more descriptive title like 'Add USE_HELM flag for optional Helm-based installation' that clearly indicates the main change being introduced.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed The code changes implement all core requirements from issue #513: adds USE_HELM environment variable, implements Helm-based installation path, maintains OLM as default, and introduces necessary helper functions.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
hack/install-konveyor.sh (1)

364-364: Static analysis: Declare and assign separately to avoid masking return values.

ShellCheck flags this line because combining local with command substitution can mask the command's exit status. However, this pattern is used consistently throughout the script (lines 181, 221, 271), and get_remaining_time is a simple arithmetic function unlikely to fail.

Given the project's preference for keeping hack scripts simple, this is acceptable as-is, but if you want to address it:

♻️ Optional fix
-    local remaining=$(get_remaining_time)
+    local remaining
+    remaining=$(get_remaining_time)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hack/install-konveyor.sh` at line 364, The assignment "local
remaining=$(get_remaining_time)" can mask the exit status of get_remaining_time;
change it to declare then assign separately by first doing "local remaining" and
then "remaining=$(get_remaining_time)" so the command substitution's exit code
isn't masked; update every similar occurrence (e.g., uses of remaining and calls
to get_remaining_time) to follow this pattern to satisfy ShellCheck and preserve
correct error propagation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@hack/install-konveyor.sh`:
- Line 364: The assignment "local remaining=$(get_remaining_time)" can mask the
exit status of get_remaining_time; change it to declare then assign separately
by first doing "local remaining" and then "remaining=$(get_remaining_time)" so
the command substitution's exit code isn't masked; update every similar
occurrence (e.g., uses of remaining and calls to get_remaining_time) to follow
this pattern to satisfy ShellCheck and preserve correct error propagation.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fe31a8c and 7c97bf0.

📒 Files selected for processing (1)
  • hack/install-konveyor.sh

Signed-off-by: David Zager <david.j.zager@gmail.com>
@djzager djzager force-pushed the install-konveyor-helm branch from 7c97bf0 to e5053a6 Compare February 26, 2026 21:34
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
hack/install-konveyor.sh (1)

363-368: Consider separating variable declaration and assignment.

Static analysis flags SC2155 on line 364. While get_remaining_time is unlikely to fail, separating declaration and assignment is a shell best practice to avoid masking potential return values.

♻️ Suggested fix
   while true; do
-    local remaining=$(get_remaining_time)
+    local remaining
+    remaining=$(get_remaining_time)
     if [ $remaining -le 0 ]; then

Note: This same pattern exists in other functions (lines 181, 221, 271). Consider applying consistently if you choose to address this.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@hack/install-konveyor.sh` around lines 363 - 368, The shell uses a combined
declaration+assignment for "local remaining=$(get_remaining_time)" which
triggers SC2155; change it to separate the declaration and assignment in the
loop: first "local remaining" (or reuse an existing local outside the loop),
then "remaining=$(get_remaining_time)" and check the command exit status (e.g.,
if ! remaining=$(get_remaining_time); then handle error) before using
"$remaining"; apply the same change to the other occurrences that call
get_remaining_time in this script to satisfy SC2155.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@hack/install-konveyor.sh`:
- Around line 363-368: The shell uses a combined declaration+assignment for
"local remaining=$(get_remaining_time)" which triggers SC2155; change it to
separate the declaration and assignment in the loop: first "local remaining" (or
reuse an existing local outside the loop), then
"remaining=$(get_remaining_time)" and check the command exit status (e.g., if !
remaining=$(get_remaining_time); then handle error) before using "$remaining";
apply the same change to the other occurrences that call get_remaining_time in
this script to satisfy SC2155.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7c97bf0 and e5053a6.

📒 Files selected for processing (2)
  • .github/actions/install-konveyor/action.yml
  • hack/install-konveyor.sh

Copy link
Copy Markdown
Member

@jmontleon jmontleon left a comment

Choose a reason for hiding this comment

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

LGTM

@djzager djzager merged commit e95f7f2 into konveyor:main Mar 10, 2026
19 of 20 checks passed
Sign up for free to 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.

Add option to bypass OLM and use Helm chart in install-konveyor script

2 participants