Skip to content

Release: Updated stable and beta release steps. #165

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 9 commits into from
Jul 28, 2025
Merged

Conversation

ramantehlan
Copy link
Collaborator

@ramantehlan ramantehlan commented Jul 28, 2025

Description

This is to address #162, Here we add the RELEASE.md, and update the current release process with backward compatibility to older beta release.

These are the release we will do with this PR.

  1. Stable Release: Manually triggered via Github releases
  2. Beta Release: Manually triggered via Github releases
  3. Beta Releases (Legacy): Automated from the main branch

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • 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 not work as expected)
  • Documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.

  • Test A

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • A PR is open to update the helm chart (link)[https://github.com/truefoundry/elasti/tree/main/charts/elasti] if applicable
  • I have updated the CHANGELOG.md file with the changes I made

Summary by CodeRabbit

  • New Features

    • Improved release workflow to build and push Docker images for operator and resolver components on tag pushes.
    • Automated extraction and use of Helm chart metadata during the release process for streamlined packaging and publishing.
  • Documentation

    • Added detailed release process documentation covering release types, versioning conventions, and rollback procedures.

Copy link
Contributor

coderabbitai bot commented Jul 28, 2025

Warning

Rate limit exceeded

@ramantehlan has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 15 minutes and 22 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 37c3b43 and 56e0236.

📒 Files selected for processing (1)
  • .github/workflows/release.yaml (1 hunks)

Walkthrough

The release workflow was updated to trigger on tags matching v*, added jobs for building and pushing operator and resolver Docker images, and enhanced the release job to update Helm chart image tags and use yq with raw output for metadata extraction. A new RELEASE.md file documents the release process and versioning conventions.

Changes

Cohort / File(s) Change Summary
Release Workflow Automation
.github/workflows/release.yaml
Changed tag trigger pattern, added read-chart-values, build-operator, and build-resolver jobs, updated release job dependencies and steps, switched to yq (with raw output) for metadata extraction, and improved Helm chart packaging and pushing using extracted metadata.
Release Documentation
RELEASE.md
Added new documentation explaining release types, processes, semantic versioning, and rollback procedures.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant GitHub Actions
    participant Artifactory

    Developer->>GitHub Actions: Push tag (v*)
    GitHub Actions->>GitHub Actions: read-chart-values job (extract metadata)
    GitHub Actions->>GitHub Actions: build-operator job (build & push operator image)
    GitHub Actions->>GitHub Actions: build-resolver job (build & push resolver image)
    GitHub Actions->>GitHub Actions: release job (package & push Helm chart)
    GitHub Actions->>Artifactory: Push Helm chart
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related issues

Poem

🐇
A tag is pushed, the workflow spins,
Operator, resolver—Docker wins!
Helm charts updated, versions align,
RELEASE.md explains the sign.
With yq and care, the process flows—
In KubeElasti, progress grows!
🚀

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rt-release

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@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.

Actionable comments posted: 5

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 83749ba and 4519efa.

📒 Files selected for processing (2)
  • .github/workflows/release.yaml (3 hunks)
  • RELEASE.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
RELEASE.md

[grammar] ~1-~1: Use correct spacing
Context: # KubeElasti Release Process This document outlines the release proce...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...beElasti, covering both beta and stable releases. ## Release Workflow Overview KubeElasti fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...d stable releases. ## Release Workflow Overview KubeElasti follows a two-stage release p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~10-~10: Use correct spacing
Context: ...s (Legacy)**: Automated from the main branch ## 1. Stable Release Process Stable releas...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...he main branch ## 1. Stable Release Process Stable releases require manual preparati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ... and are triggered by creating a GitHub release. ### Preparation Steps 1. Update version inf...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: Use correct spacing
Context: ...ting a GitHub release. ### Preparation Steps 1. Update version information: - Update ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~20-~20: There might be a mistake here.
Context: ...elasti/Chart.yamlwith the new version number: ```yaml version: X.Y.Z appVersion: "X.Y.Z" ``` - Updatecharts/elasti/values.yaml` t...

(QB_NEW_EN_OTHER)


[grammar] ~25-~25: There might be a mistake here.
Context: ....yaml` to reference the specific commit SHA: yaml elastiController: manager: image: tag: vX.Y.Z elastiResolver: proxy: image: tag: vX.Y.Z 2. Create a pull request with th...

(QB_NEW_EN_OTHER)


[grammar] ~37-~37: There might be a mistake here.
Context: ...`` 2. Create a pull request with these changes 3. Review and merge the PR to main ### R...

(QB_NEW_EN_OTHER)


[grammar] ~38-~38: Use correct spacing
Context: ...hese changes 3. Review and merge the PR to main ### Release Steps 1. Create a new GitHub re...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~40-~40: Use correct spacing
Context: ...and merge the PR to main ### Release Steps 1. Create a new GitHub release: - Tag fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: There might be a mistake here.
Context: ...Z` - Include release notes detailing changes markdown We are happy to release KubeElasti vX.Y.Z 🎉 Here are some highlights of this release: - Hightlight 1 - Hightlight 2 Here are the breaking changes of this release: - Breaking Change 1 - Breaking Change 2 Learn how to deploy KubeElasti by reading [our documentation](https://kubeelasti.dev). # New - <Where the change was done>: <What was added> - <Resolved>: ... - <General>: ... ## Experimental - <Where the change was done>: <What was added> # Improvements - <Where the change was done>: <What was improved> # Fixes - <Where the change was done>: <What was fixed> # Breaking Changes - <Where the change was done>: <What was changed> # Other - <Where the change was done>: <What was changed> # New Contributors - @rethil made their first contribution in #154 etc... - Feel free to add more sections as needed...

(QB_NEW_EN_OTHER)


[style] ~87-~87: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...st contribution in #154 etc... ``` - Feel free to add more sections as needed, or remove ...

(FEEL_FREE_TO_STYLE_ME)


[grammar] ~87-~87: There might be a mistake here.
Context: ...``` - Feel free to add more sections as needed, or remove what is not needed. 2. The...

(QB_NEW_EN_OTHER)


[grammar] ~87-~87: Use correct spacing
Context: ...ctions as needed, or remove what is not needed. 2. The .github/workflows/release.yaml wor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~91-~91: There might be a mistake here.
Context: ...rkflow is triggered: - Helm chart is packaged - Chart is pushed to the JFrog Artifactory...

(QB_NEW_EN_OTHER)


[grammar] ~92-~92: There might be a mistake here.
Context: ...is pushed to the JFrog Artifactory Helm repository ## 2. Beta Release Process Same steps as s...

(QB_NEW_EN_OTHER)


[grammar] ~95-~95: Use correct spacing
Context: ...ry Helm repository ## 2. Beta Release Process Same steps as stable, we just replace it...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: There might be a mistake here.
Context: ... 2. Beta Release Process Same steps as stable, we just replace it with vX.Y.Z-beta. ...

(QB_NEW_EN_OTHER)


[grammar] ~97-~97: Use correct spacing
Context: ...teps as stable, we just replace it with vX.Y.Z-beta. ## 3. Beta(Legacy) Release Process Beta(L...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~100-~100: There might be a mistake here.
Context: ... replace it with vX.Y.Z-beta. ## 3. Beta(Legacy) Release Process Beta(Legac...

(QB_NEW_EN_OTHER)


[grammar] ~100-~100: There might be a problem here.
Context: ....Z-beta`. ## 3. Beta(Legacy) Release Process Beta(Legacy) releases are automatically generated w...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~102-~102: Use correct spacing
Context: ...rated when code is merged to the main branch. ### Workflow 1. Code is merged to the `main...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~106-~106: There might be a mistake here.
Context: ...rkflow 1. Code is merged to the main branch 2. The `.github/workflows/build-n-publish.y...

(QB_NEW_EN_OTHER)


[grammar] ~108-~108: There might be a mistake here.
Context: ...re built for both operator and resolver components - Images are tagged with the commit SHA ...

(QB_NEW_EN_OTHER)


[grammar] ~109-~109: Use proper capitalization
Context: ... - Images are tagged with the commit SHA - Images are pushed to JFrog Artifactory ...

(QB_NEW_EN_OTHER_ERROR_IDS_6)


[grammar] ~110-~110: There might be a mistake here.
Context: ...mit SHA - Images are pushed to JFrog Artifactory - The helm-main branch is updated with t...

(QB_NEW_EN_OTHER)


[grammar] ~111-~111: Use correct spacing
Context: ...branch is updated with the latest SHA invalues.yaml` ### Using Beta Releases Beta releases can b...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~113-~113: Use correct spacing
Context: ...st SHA in values.yaml ### Using Beta Releases Beta releases can be used for testing by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~117-~117: Use correct spacing
Context: ...s - The Helm chart from the helm-main branch ## Version Numbering KubeElasti follows se...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~120-~120: Use correct spacing
Context: ...rom the helm-main branch ## Version Numbering KubeElasti follows semantic versioning (...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~125-~125: Use correct spacing
Context: ...tch version for backward-compatible bug fixes ## Rollback Procedure If issues are discov...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~128-~128: Use correct spacing
Context: ...ward-compatible bug fixes ## Rollback Procedure If issues are discovered in a release: 1...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~130-~130: Use colons correctly
Context: ...rocedure If issues are discovered in a release: 1. For critical issues, create a hotfix rel...

(QB_NEW_EN_OTHER_ERROR_IDS_30)


[grammar] ~134-~134: Use correct spacing
Context: .... Mark the old release as deprecated or bad.

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
RELEASE.md

8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


12-12: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


21-21: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


24-24: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


26-26: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


45-45: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


46-46: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


86-86: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


87-87: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


89-89: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


90-90: Ordered list item prefix
Expected: 1; Actual: 2; Style: 1/1/1

(MD029, ol-prefix)


94-94: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


99-99: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


116-116: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


119-119: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


123-123: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


131-131: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


136-136: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 52-52: trailing spaces

(trailing-spaces)


[error] 66-66: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
  • GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (2)
.github/workflows/release.yaml (2)

52-52: Trailing whitespace – YAML-lint failure

Lines 52 and 66 contain stray spaces; CI with strict yamllint may fail.

Also applies to: 66-66


72-76: Image tag not actually injected – variable interpolation blocked by single quotes

Because the entire jq expression is single-quoted, ${{ … }} is not expanded; the literal string is written into values.yaml.

jq '.elastiController.manager.image.tag = "${{ steps.extract_info.outputs.IMAGE_TAG }}"'

Fix with --arg (safer) or double-quotes:

- jq '.elastiController.manager.image.tag = "${{ steps.extract_info.outputs.IMAGE_TAG }}"' charts/elasti/values.yaml > tmp.yaml && mv tmp.yaml charts/elasti/values.yaml
- jq '.elastiResolver.proxy.image.tag = "${{ steps.extract_info.outputs.IMAGE_TAG }}"' charts/elasti/values.yaml > tmp.yaml && mv tmp.yaml charts/elasti/values.yaml
+ IMAGE_TAG="${{ steps.extract_info.outputs.IMAGE_TAG }}"
+ jq --arg tag "$IMAGE_TAG" \
+   '(.elastiController.manager.image.tag, .elastiResolver.proxy.image.tag) = $tag' \
+   charts/elasti/values.yaml > tmp.yaml && mv tmp.yaml charts/elasti/values.yaml
⛔ Skipped due to learnings
Learnt from: rethil
PR: truefoundry/KubeElasti#154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: `jq` should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like `tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml` for JSON parsing.
Learnt from: rethil
PR: truefoundry/KubeElasti#154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like `jq` should be documented as E2E test prerequisites rather than worrying about container image contents.

Copy link
Contributor

@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.

Actionable comments posted: 6

♻️ Duplicate comments (1)
RELEASE.md (1)

48-55: Fix “Hightlight” typo in release-notes template

Small spelling correction to avoid copy-pasting the mistake in future releases.

-        - Highlight 1
-        - Highlight 2
+        - Highlight 1
+        - Highlight 2
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4519efa and 453cf97.

📒 Files selected for processing (2)
  • .github/workflows/release.yaml (3 hunks)
  • RELEASE.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/release.yaml (1)

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: jq should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml for JSON parsing.

🪛 LanguageTool
RELEASE.md

[style] ~85-~85: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...n #154 etc... ``` - Feel free to add more sections as needed, or remove ...

(FEEL_FREE_TO_STYLE_ME)

🪛 markdownlint-cli2 (0.17.2)
RELEASE.md

8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


12-12: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


20-20: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


22-22: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


26-26: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


28-28: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


48-48: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


84-84: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


85-85: Inconsistent indentation for list items at the same level
Expected: 3; Actual: 4

(MD005, list-indent)


87-87: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


92-92: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


97-97: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


114-114: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


117-117: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


121-121: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


129-129: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


134-134: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 52-52: trailing spaces

(trailing-spaces)


[error] 66-66: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
  • GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: Run Kuttl E2E Tests

Copy link
Contributor

@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.

Actionable comments posted: 3

♻️ Duplicate comments (2)
.github/workflows/release.yaml (2)

62-64: Comment is stale: no prefix stripping happens anymore
The inline comment still claims to remove the elasti-helm-v prefix, but the sed command was deleted. Either re-introduce the stripping logic or update the comment to avoid confusion.


53-58: jq is used later but never installed – step will fail at runtime
The “Install tools” step now only downloads yq, yet the workflow still invokes jq in a later step. ubuntu-latest does not ship with jq; the release job will therefore error out before packaging the chart. Either add jq to this install step or (preferable) drop jq entirely and use yq consistently.

-      - name: Install tools
-        run: |
-            # Install yq
-            sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq
-            sudo chmod +x /usr/bin/yq
+      - name: Install tools
+        run: |
+            sudo apt-get update -qq
+            sudo apt-get install -y jq wget
+            # Install yq
+            sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq
+            sudo chmod +x /usr/bin/yq
📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 453cf97 and a8e83e6.

📒 Files selected for processing (1)
  • .github/workflows/release.yaml (3 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/release.yaml (2)

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: jq should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml for JSON parsing.

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like jq should be documented as E2E test prerequisites rather than worrying about container image contents.

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 52-52: trailing spaces

(trailing-spaces)


[error] 65-65: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
  • GitHub Check: Run Kuttl E2E Tests

Copy link
Contributor

@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.

Actionable comments posted: 1

♻️ Duplicate comments (4)
RELEASE.md (3)

7-10: Insert a blank line before the ordered list (MD032)

Without a blank line separating the introductory sentence from the list, markdown-lint still complains and some renderers join the text and the first list item. Add a single blank line after line 7.

7
 KubeElasti has 3 release types:
+
8
 1. **Stable Release**: Manually triggered via Github releases

11-12: Remove extra blank line (MD012)

Two consecutive empty lines break linting and make the doc look ragged.

11
-
12
-

21-28: Surround fenced code block with blank lines (MD031)

A blank line is required before the ```yaml fence and after the closing fence inside a list; otherwise some renderers mis-nest the code block.

21
    - Update `charts/elasti/Chart.yaml` with the new version number:
+
22
     ```yaml
...
36
           tag: vX.Y.Z
37
     ```
+
.github/workflows/release.yaml (1)

18-25: Pin reusable workflow to a commit SHA for supply-chain safety

Referencing truefoundry/github-workflows-public/.github/workflows/build.yml@main means any push to main changes your release pipeline without review. Pin to a specific commit SHA.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a8e83e6 and bb06e49.

📒 Files selected for processing (2)
  • .github/workflows/release.yaml (3 hunks)
  • RELEASE.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/release.yaml (2)

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: jq should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml for JSON parsing.

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like jq should be documented as E2E test prerequisites rather than worrying about container image contents.

🪛 LanguageTool
RELEASE.md

[style] ~113-~113: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...n #154 etc... ``` - Feel free to add more sections as needed, or remove ...

(FEEL_FREE_TO_STYLE_ME)

🪛 markdownlint-cli2 (0.17.2)
RELEASE.md

8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


12-12: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


20-20: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


22-22: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


26-26: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


28-28: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


40-40: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


76-76: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


112-112: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


113-113: Inconsistent indentation for list items at the same level
Expected: 3; Actual: 4

(MD005, list-indent)


115-115: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


120-120: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


142-142: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


145-145: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


153-153: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


157-157: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


162-162: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 52-52: trailing spaces

(trailing-spaces)


[error] 64-64: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
  • GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
  • GitHub Check: Run Kuttl E2E Tests
🔇 Additional comments (1)
.github/workflows/release.yaml (1)

68-72: Image tag substitution is broken—variable inside single quotes is not expanded

Because the yq expression is single-quoted, ${{ steps.extract_info.outputs.IMAGE_TAG }} is written literally into values.yaml. Use double quotes and in-place editing.

-          yq '.elastiController.manager.image.tag = "${{ steps.extract_info.outputs.IMAGE_TAG }}"' charts/elasti/values.yaml > tmp.yaml && mv tmp.yaml charts/elasti/values.yaml
-          yq '.elastiResolver.proxy.image.tag = "${{ steps.extract_info.outputs.IMAGE_TAG }}"' charts/elasti/values.yaml > tmp.yaml && mv tmp.yaml charts/elasti/values.yaml
+          yq eval -i ".elastiController.manager.image.tag = \"${{ steps.extract_info.outputs.IMAGE_TAG }}\"" charts/elasti/values.yaml
+          yq eval -i ".elastiResolver.proxy.image.tag = \"${{ steps.extract_info.outputs.IMAGE_TAG }}\"" charts/elasti/values.yaml
⛔ Skipped due to learnings
Learnt from: rethil
PR: truefoundry/KubeElasti#154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: `jq` should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like `tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml` for JSON parsing.
Learnt from: rethil
PR: truefoundry/KubeElasti#154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like `jq` should be documented as E2E test prerequisites rather than worrying about container image contents.

Copy link
Contributor

@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.

Actionable comments posted: 1

♻️ Duplicate comments (2)
.github/workflows/release.yaml (2)

61-70: Pin reusable workflows to a commit SHA instead of the main branch

Referencing truefoundry/github-workflows-public@main means every push to that branch silently alters your release pipeline. For supply-chain safety and reproducibility, replace the branch ref with a specific commit SHA (GitHub UI → Copy commit SHA).
Example:

-    uses: truefoundry/github-workflows-public/.github/workflows/build.yml@main
+    uses: truefoundry/github-workflows-public/.github/workflows/build.yml@<COMMIT_SHA>

Apply the same change to both build-operator and build-resolver jobs.

Also applies to: 76-85


29-34: Remove trailing whitespace – YAML-lint is already failing

Lines 29, 34, 40, 43, 52, 108 and 111 end with stray spaces, causing the YAML-lint errors reported by CI.
Quick fix:

-<space>
+<blank line with no spaces>

Cleaning them up keeps the workflow lint-clean and prevents noisy pipeline failures.

Also applies to: 40-43, 52-52, 108-111

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bb06e49 and a9cdfdc.

📒 Files selected for processing (1)
  • .github/workflows/release.yaml (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/release.yaml (2)

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: jq should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml for JSON parsing.

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like jq should be documented as E2E test prerequisites rather than worrying about container image contents.

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 29-29: trailing spaces

(trailing-spaces)


[error] 34-34: trailing spaces

(trailing-spaces)


[error] 40-40: trailing spaces

(trailing-spaces)


[error] 43-43: trailing spaces

(trailing-spaces)


[error] 52-52: trailing spaces

(trailing-spaces)


[error] 108-108: trailing spaces

(trailing-spaces)


[error] 111-111: trailing spaces

(trailing-spaces)

Copy link
Contributor

@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.

Actionable comments posted: 2

♻️ Duplicate comments (4)
.github/workflows/release.yaml (1)

61-62: Pin reusable workflow reference to a commit SHA
Referencing truefoundry/github-workflows-public/.github/workflows/build.yml@main means every push to main in that repo silently alters your release pipeline. Pin this to a specific commit SHA for supply-chain safety.

Also applies to: 76-77

RELEASE.md (3)

7-12: Add a blank line before the ordered list
Markdown-lint MD032 complains because the list starting at line 8 is not separated from the preceding paragraph. Insert one blank line after line 7.


20-38: Surround fenced YAML block with blank lines
The code block at lines 22-25 isn’t padded by blank lines (MD031) and the list item carries trailing spaces (MD009). Add a blank line before yaml and after to silence lint warnings and improve rendering.


76-82: Same formatting issue for release-notes template
The fenced markdown block under “Release Steps” also lacks surrounding blank lines (MD031). Add blank lines before and after the block to keep docs generators happy.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a9cdfdc and 37c3b43.

📒 Files selected for processing (2)
  • .github/workflows/release.yaml (1 hunks)
  • RELEASE.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
.github/workflows/release.yaml (2)

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: jq should be added as a prerequisite for running KubeElasti E2E tests since it's used in test scripts like tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml for JSON parsing.

Learnt from: rethil
PR: #154
File: tests/e2e/tests/06-resolver-endpoint-sync/05-check-endpointslice-with-resolver-scaled-to-0.yaml:16-17
Timestamp: 2025-07-21T19:06:12.083Z
Learning: In KubeElasti E2E tests, kuttl TestStep scripts do not run inside the kuttl container - they run in the host environment or separate execution context, so external dependencies like jq should be documented as E2E test prerequisites rather than worrying about container image contents.

🪛 LanguageTool
RELEASE.md

[style] ~113-~113: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...n #154 etc... ``` - Feel free to add more sections as needed, or remove ...

(FEEL_FREE_TO_STYLE_ME)

🪛 markdownlint-cli2 (0.17.2)
RELEASE.md

8-8: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


12-12: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


20-20: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


22-22: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


26-26: Trailing spaces
Expected: 0 or 2; Actual: 3

(MD009, no-trailing-spaces)


28-28: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


40-40: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


76-76: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


112-112: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)


113-113: Inconsistent indentation for list items at the same level
Expected: 3; Actual: 4

(MD005, list-indent)


115-115: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


120-120: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


125-125: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


142-142: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


145-145: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


149-149: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


153-153: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


157-157: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


162-162: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🪛 YAMLlint (1.37.1)
.github/workflows/release.yaml

[error] 29-29: trailing spaces

(trailing-spaces)


[error] 34-34: trailing spaces

(trailing-spaces)


[error] 40-40: trailing spaces

(trailing-spaces)


[error] 43-43: trailing spaces

(trailing-spaces)


[error] 52-52: trailing spaces

(trailing-spaces)


[error] 107-107: trailing spaces

(trailing-spaces)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: golangci-lint (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/resolver)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/operator)
  • GitHub Check: test (/home/runner/work/KubeElasti/KubeElasti/pkg)
  • GitHub Check: Run Kuttl E2E Tests

@ramantehlan ramantehlan merged commit d399a83 into main Jul 28, 2025
9 checks passed
ramantehlan added a commit that referenced this pull request Aug 2, 2025
* feat: add new stable and beta release

* feat: review comments

* feat: remove jq

* feat: review comments

* feat: review comments

* feat: gett resolver and operator tag from file

* feat: minor update in release.md

* feat: remove loop from helm charts

* feat: reformat action file
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.

2 participants