From 3e26ccbea5930e295cff13c1ff64e258cbce0281 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 15 Apr 2026 17:39:17 +0300 Subject: [PATCH 01/28] first commit --- .github/workflows/pr-validation.yml | 105 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 54 +++++++++++--- cliff.toml | 67 ++++++++++++++++++ 3 files changed, 217 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/pr-validation.yml create mode 100644 cliff.toml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml new file mode 100644 index 00000000..88c4172e --- /dev/null +++ b/.github/workflows/pr-validation.yml @@ -0,0 +1,105 @@ +name: PR Validation + +on: + pull_request: + types: [opened, edited, reopened] + +jobs: + validate-and-label: + runs-on: ubuntu-latest + permissions: + pull-requests: write + issues: write + + steps: + - name: Validate PR title and assign label + uses: actions/github-script@v7 + with: + script: | + const title = context.payload.pull_request.title; + const prNumber = context.payload.pull_request.number; + + const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; + + const scopeToLabel = { + feature: { name: 'feature', color: '0075ca' }, + ci: { name: 'ci', color: '0075ca' }, + fix: { name: 'bug', color: 'd73a4a' }, + docs: { name: 'documentation', color: '0052cc' }, + improvement: { name: 'improvement', color: 'bfd4f2'}, + revert: { name: 'revert', color: 'fef2c0' }, + breaking: { name: 'breaking-change',color: 'b60205' }, + }; + + const match = title.match(/^\[([^\]]+)\]\s+\S+/); + + if (!match) { + core.setFailed( + `PR title must follow the format: [scope] description\n` + + `Example: [Feat] Add SeaweedFS bucket auto-creation\n` + + `Allowed scopes: ${allowedScopes.join(', ')}` + ); + return; + } + + const scope = match[1].toLowerCase(); + + if (!allowedScopes.includes(scope)) { + core.setFailed( + `Invalid scope "[${match[1]}]".\n` + + `Allowed scopes: ${allowedScopes.join(', ')}\n` + + `Example: [Feat] Add SeaweedFS bucket auto-creation` + ); + return; + } + + const { name: labelName, color: labelColor } = scopeToLabel[scope]; + + // Ensure label exists in the repo, create it if not + try { + await github.rest.issues.getLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + name: labelName, + }); + } catch (e) { + if (e.status === 404) { + await github.rest.issues.createLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + name: labelName, + color: labelColor, + }); + core.info(`Created label: ${labelName}`); + } else { + throw e; + } + } + + // Remove any stale scope labels from a previous title edit + const allScopeLabels = Object.values(scopeToLabel).map(l => l.name); + const currentLabels = context.payload.pull_request.labels.map(l => l.name); + + for (const stale of currentLabels) { + if (allScopeLabels.includes(stale) && stale !== labelName) { + await github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + name: stale, + }); + core.info(`Removed stale label: ${stale}`); + } + } + + // Apply the correct label if not already present + if (!currentLabels.includes(labelName)) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: [labelName], + }); + } + + core.info(`PR title valid — scope: [${scope}] → label: ${labelName}`); diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a2cfb4f2..b673f917 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,6 +36,21 @@ jobs: git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + - name: Extract Chart Version and check RC + id: version_check + run: | + CHART_VERSION=$(grep '^version:' charts/mlrun-ce/Chart.yaml | awk '{print $2}') + if [[ -z "$CHART_VERSION" ]]; then + echo "Error: Failed to extract version from Chart.yaml" >&2 + exit 1 + fi + echo "version=$CHART_VERSION" >> $GITHUB_OUTPUT + if [[ "$CHART_VERSION" =~ -rc ]]; then + echo "is_rc=true" >> $GITHUB_OUTPUT + else + echo "is_rc=false" >> $GITHUB_OUTPUT + fi + - name: Add Helm Repos run: | helm repo add stable https://charts.helm.sh/stable @@ -52,18 +67,39 @@ jobs: env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - - name: Extract Chart Version from Chart.yaml - id: extract_version + - name: Find first RC tag for this version + if: steps.version_check.outputs.is_rc == 'false' + id: first_rc run: | - CHART_VERSION=$(grep '^version:' charts/mlrun-ce/Chart.yaml | awk '{print $2}') - if [[ -z "$CHART_VERSION" ]]; then - echo "Error: Failed to extract version from Chart.yaml" >&2 - exit 1 - fi - echo "version=$CHART_VERSION" >> $GITHUB_OUTPUT + VERSION="${{ steps.version_check.outputs.version }}" + FIRST_RC=$(git tag --sort=version:refname \ + | grep "^mlrun-ce-${VERSION}-rc." \ + | head -1) + echo "tag=${FIRST_RC}" >> $GITHUB_OUTPUT + echo "First RC tag: ${FIRST_RC}" + + - name: Generate release notes with git-cliff + if: steps.version_check.outputs.is_rc == 'false' + uses: orhun/git-cliff-action@v4 + with: + config: cliff.toml + args: >- + ${{ steps.first_rc.outputs.tag }}^..HEAD + --tag mlrun-ce-${{ steps.version_check.outputs.version }} + --ignore-tags "mlrun-ce-${{ steps.version_check.outputs.version }}-rc.*" + env: + OUTPUT: RELEASE_NOTES.md + + - name: Update GitHub Release with release notes + if: steps.version_check.outputs.is_rc == 'false' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release edit "mlrun-ce-${{ steps.version_check.outputs.version }}" \ + --notes-file RELEASE_NOTES.md outputs: - version: ${{ steps.extract_version.outputs.version }} + version: ${{ steps.version_check.outputs.version }} deploy_ce_onprem: needs: release diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..d68d65f8 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,67 @@ +[changelog] +header = "" +body = """ +{% for group, commits in commits | sort(attribute="group") | group_by(attribute="group") %}\ + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %}\ + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | split(pat="\n") | first | upper_first }} \ + ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/mlrun/ce/commit/{{ commit.id }}))\ + \n \ + {% endfor %} +{% endfor %}\n +""" +trim = true +footer = "" + +[git] +conventional_commits = false +filter_unconventional = false +split_commits = false +commit_preprocessors = [] +commit_parsers = [ + # skip merge commits + { message = "(?i)^merge", skip = true }, + + # new PR title format (enforced going forward): [scope] ... + { message = "(?i)^\\[feat\\]", group = "Features" }, + { message = "(?i)^\\[fix\\]", group = "Bug Fixes" }, + { message = "(?i)^\\[perf\\]", group = "Performance" }, + { message = "(?i)^\\[refactor\\]", group = "Refactor" }, + { message = "(?i)^\\[docs?\\]", group = "Documentation" }, + { message = "(?i)^\\[chore\\]", group = "Miscellaneous" }, + { message = "(?i)^\\[revert\\]", group = "Reverts" }, + { message = "(?i)^\\[breaking\\]", group = "Breaking Changes" }, + + # conventional commits format: feat: / fix: ... + { message = "(?i)^feat", group = "Features" }, + { message = "(?i)^fix", group = "Bug Fixes" }, + { message = "(?i)^perf", group = "Performance" }, + { message = "(?i)^refactor", group = "Refactor" }, + { message = "(?i)^docs?", group = "Documentation" }, + { message = "(?i)^chore\\(deps\\)", group = "Dependencies" }, + { message = "(?i)^chore", group = "Miscellaneous" }, + { message = "(?i)^revert", group = "Reverts" }, + + # historical [ComponentName] format — infer type from the verb in the message + { message = "(?i)^\\[[^\\]]+\\].*(fix|bug|broken|regression)", group = "Bug Fixes" }, + { message = "(?i)^\\[[^\\]]+\\].*(add|support|enable|upgrade|update|migrate|connect|expose|allow)", group = "Features" }, + { message = "(?i)^\\[[^\\]]+\\].*(disable|remove|clean|deprecat)", group = "Miscellaneous" }, + { message = "(?i)^\\[[^\\]]+\\]", group = "Changes" }, + + # plain English fallback + { message = "(?i)^(fix|bug)", group = "Bug Fixes" }, + { message = "(?i)^(add|update|upgrade|support|enable|migrate|expose|allow)", group = "Features" }, + { message = "(?i)^(remove|disable|clean|deprecat)", group = "Miscellaneous" }, + + # catch-all — anything that didn't match above + { message = ".*", group = "Other" }, +] +protect_breaking_commits = false +filter_commits = false +tag_pattern = "mlrun-ce-[0-9].*" +skip_tags = "" +ignore_tags = "" +topo_order = false +sort_commits = "newest" From 91aa535fe398ebef6b4c4a1272bcb47210539fc4 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 15 Apr 2026 17:47:58 +0300 Subject: [PATCH 02/28] fix --- .github/workflows/pr-validation.yml | 39 +++++++---------------------- 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 88c4172e..4c66fa91 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -22,13 +22,13 @@ jobs: const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; const scopeToLabel = { - feature: { name: 'feature', color: '0075ca' }, - ci: { name: 'ci', color: '0075ca' }, - fix: { name: 'bug', color: 'd73a4a' }, - docs: { name: 'documentation', color: '0052cc' }, - improvement: { name: 'improvement', color: 'bfd4f2'}, - revert: { name: 'revert', color: 'fef2c0' }, - breaking: { name: 'breaking-change',color: 'b60205' }, + feature: 'feature', + ci: 'ci', + fix: 'bug', + docs: 'documentation', + improvement: 'improvement', + revert: 'revert', + breaking: 'breaking-change', }; const match = title.match(/^\[([^\]]+)\]\s+\S+/); @@ -53,31 +53,10 @@ jobs: return; } - const { name: labelName, color: labelColor } = scopeToLabel[scope]; - - // Ensure label exists in the repo, create it if not - try { - await github.rest.issues.getLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - name: labelName, - }); - } catch (e) { - if (e.status === 404) { - await github.rest.issues.createLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - name: labelName, - color: labelColor, - }); - core.info(`Created label: ${labelName}`); - } else { - throw e; - } - } + const labelName = scopeToLabel[scope]; // Remove any stale scope labels from a previous title edit - const allScopeLabels = Object.values(scopeToLabel).map(l => l.name); + const allScopeLabels = Object.values(scopeToLabel); const currentLabels = context.payload.pull_request.labels.map(l => l.name); for (const stale of currentLabels) { From 355728a81fce02a233323b76cccdc2dc0aced72b Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 10:47:22 +0300 Subject: [PATCH 03/28] fix run issue --- .github/workflows/pr-validation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 4c66fa91..4dde66c2 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -2,19 +2,19 @@ name: PR Validation on: pull_request: - types: [opened, edited, reopened] + types: [opened, edited, reopened, synchronize] jobs: validate-and-label: runs-on: ubuntu-latest permissions: pull-requests: write - issues: write steps: - name: Validate PR title and assign label uses: actions/github-script@v7 with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" script: | const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; From ba88c03624e19e0a409f6723d2976da982099578 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 10:49:43 +0300 Subject: [PATCH 04/28] fix run issue --- .github/workflows/pr-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 4dde66c2..59271c39 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -14,7 +14,7 @@ jobs: - name: Validate PR title and assign label uses: actions/github-script@v7 with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" + github-token: "${{ secrets.GITHUB_TOKEN }}" script: | const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; From 5ed1f8353c10004be1a9cd0acd0a19cbf0bc5797 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 11:19:17 +0300 Subject: [PATCH 05/28] fix run issue --- .github/workflows/pr-validation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 59271c39..d61ee441 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -1,14 +1,14 @@ name: PR Validation on: - pull_request: + pull_request_target: types: [opened, edited, reopened, synchronize] jobs: validate-and-label: runs-on: ubuntu-latest permissions: - pull-requests: write + issues: write steps: - name: Validate PR title and assign label From 9640e9cc5955baabcde303f00928687777855840 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 11:45:07 +0300 Subject: [PATCH 06/28] remove label --- .github/workflows/pr-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index d61ee441..8b9aa3d9 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -19,7 +19,7 @@ jobs: const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; - const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; + const allowedScopes = ['feature', 'fix', 'docs', 'improvement', 'revert', 'breaking', 'ci']; const scopeToLabel = { feature: 'feature', From cbe71fc2b18506ea817982271e4d884502023c3d Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Mon, 20 Apr 2026 15:02:22 +0300 Subject: [PATCH 07/28] fix after review --- .github/workflows/pr-validation.yml | 8 ++++---- .github/workflows/release.yml | 28 +++++++++++++++++++++++----- cliff.toml | 23 ++++++++++------------- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 8b9aa3d9..6a9e24b5 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -36,8 +36,8 @@ jobs: if (!match) { core.setFailed( `PR title must follow the format: [scope] description\n` + - `Example: [Feat] Add SeaweedFS bucket auto-creation\n` + - `Allowed scopes: ${allowedScopes.join(', ')}` + `Allowed scopes (case-insensitive): [Feature], [Fix], [Docs], [Improvement], [Revert], [Breaking], [CI]\n` + + `Example: [Feature] Add SeaweedFS bucket auto-creation` ); return; } @@ -47,8 +47,8 @@ jobs: if (!allowedScopes.includes(scope)) { core.setFailed( `Invalid scope "[${match[1]}]".\n` + - `Allowed scopes: ${allowedScopes.join(', ')}\n` + - `Example: [Feat] Add SeaweedFS bucket auto-creation` + `Allowed scopes (case-insensitive): [Feature], [Fix], [Docs], [Improvement], [Revert], [Breaking], [CI]\n` + + `Example: [Fix] Resolve crash on startup` ); return; } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b673f917..5de4bdfd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,11 +72,29 @@ jobs: id: first_rc run: | VERSION="${{ steps.version_check.outputs.version }}" + FIRST_RC=$(git tag --sort=version:refname \ - | grep "^mlrun-ce-${VERSION}-rc." \ + | grep "^mlrun-ce-${VERSION}-rc\." \ | head -1) - echo "tag=${FIRST_RC}" >> $GITHUB_OUTPUT - echo "First RC tag: ${FIRST_RC}" + + if [[ -n "$FIRST_RC" ]]; then + echo "range=${FIRST_RC}^..HEAD" >> $GITHUB_OUTPUT + echo "Range start: first RC tag ${FIRST_RC}" + else + # Hotfix with no RC — use previous stable tag so notes cover only this version + PREV_STABLE=$(git tag --sort=version:refname \ + | grep "^mlrun-ce-[0-9]" \ + | grep -v "\-rc\." \ + | grep -v "^mlrun-ce-${VERSION}$" \ + | tail -1) + if [[ -n "$PREV_STABLE" ]]; then + echo "range=${PREV_STABLE}..HEAD" >> $GITHUB_OUTPUT + echo "Range start: previous stable tag ${PREV_STABLE}" + else + echo "range=HEAD" >> $GITHUB_OUTPUT + echo "Range start: none (first ever release)" + fi + fi - name: Generate release notes with git-cliff if: steps.version_check.outputs.is_rc == 'false' @@ -84,7 +102,7 @@ jobs: with: config: cliff.toml args: >- - ${{ steps.first_rc.outputs.tag }}^..HEAD + ${{ steps.first_rc.outputs.range }} --tag mlrun-ce-${{ steps.version_check.outputs.version }} --ignore-tags "mlrun-ce-${{ steps.version_check.outputs.version }}-rc.*" env: @@ -93,7 +111,7 @@ jobs: - name: Update GitHub Release with release notes if: steps.version_check.outputs.is_rc == 'false' env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: | gh release edit "mlrun-ce-${{ steps.version_check.outputs.version }}" \ --notes-file RELEASE_NOTES.md diff --git a/cliff.toml b/cliff.toml index d68d65f8..aa741b03 100644 --- a/cliff.toml +++ b/cliff.toml @@ -24,36 +24,33 @@ commit_parsers = [ # skip merge commits { message = "(?i)^merge", skip = true }, - # new PR title format (enforced going forward): [scope] ... - { message = "(?i)^\\[feat\\]", group = "Features" }, + # new PR title format (enforced by pr-validation.yml): [scope] description + # allowed scopes: feature, fix, docs, improvement, revert, breaking, ci + { message = "(?i)^\\[feature\\]", group = "Features" }, { message = "(?i)^\\[fix\\]", group = "Bug Fixes" }, - { message = "(?i)^\\[perf\\]", group = "Performance" }, - { message = "(?i)^\\[refactor\\]", group = "Refactor" }, - { message = "(?i)^\\[docs?\\]", group = "Documentation" }, - { message = "(?i)^\\[chore\\]", group = "Miscellaneous" }, + { message = "(?i)^\\[docs\\]", group = "Documentation" }, + { message = "(?i)^\\[improvement\\]", group = "Improvements" }, { message = "(?i)^\\[revert\\]", group = "Reverts" }, { message = "(?i)^\\[breaking\\]", group = "Breaking Changes" }, + { message = "(?i)^\\[ci\\]", group = "CI/CD" }, # conventional commits format: feat: / fix: ... { message = "(?i)^feat", group = "Features" }, { message = "(?i)^fix", group = "Bug Fixes" }, - { message = "(?i)^perf", group = "Performance" }, - { message = "(?i)^refactor", group = "Refactor" }, + { message = "(?i)^refactor", group = "Improvements" }, { message = "(?i)^docs?", group = "Documentation" }, - { message = "(?i)^chore\\(deps\\)", group = "Dependencies" }, - { message = "(?i)^chore", group = "Miscellaneous" }, + { message = "(?i)^chore\\(deps\\)", group = "Improvements" }, { message = "(?i)^revert", group = "Reverts" }, # historical [ComponentName] format — infer type from the verb in the message { message = "(?i)^\\[[^\\]]+\\].*(fix|bug|broken|regression)", group = "Bug Fixes" }, { message = "(?i)^\\[[^\\]]+\\].*(add|support|enable|upgrade|update|migrate|connect|expose|allow)", group = "Features" }, - { message = "(?i)^\\[[^\\]]+\\].*(disable|remove|clean|deprecat)", group = "Miscellaneous" }, - { message = "(?i)^\\[[^\\]]+\\]", group = "Changes" }, + { message = "(?i)^\\[[^\\]]+\\]", group = "Other" }, # plain English fallback { message = "(?i)^(fix|bug)", group = "Bug Fixes" }, { message = "(?i)^(add|update|upgrade|support|enable|migrate|expose|allow)", group = "Features" }, - { message = "(?i)^(remove|disable|clean|deprecat)", group = "Miscellaneous" }, + { message = "(?i)^(remove|disable|clean|deprecat)", group = "Other" }, # catch-all — anything that didn't match above { message = ".*", group = "Other" }, From 3413976c63b7f124c3147faf42d0dabe5f855051 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Sun, 26 Apr 2026 17:59:11 +0300 Subject: [PATCH 08/28] fix after review --- .github/workflows/pr-validation.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 6a9e24b5..2ec97d5c 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -2,7 +2,10 @@ name: PR Validation on: pull_request_target: - types: [opened, edited, reopened, synchronize] + types: [opened, edited, reopened] +concurrency: + group: pr-validation-${{ github.event.pull_request.number }} + cancel-in-progress: true jobs: validate-and-label: From 5364f3c6d06c591282d5df54881741bdfceffa3a Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Mon, 27 Apr 2026 17:04:33 +0300 Subject: [PATCH 09/28] first commit --- charts/mlrun-ce/values.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index 5be67e10..94337589 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -328,6 +328,9 @@ seaweedfs: enabled: false volume: enabled: false + dataDirs: + - name: data1 + maxVolumes: 12 filer: enabled: false @@ -342,6 +345,8 @@ seaweedfs: # Reduces from 4 component pods down to 1, cutting CPU/memory footprint significantly. allInOne: enabled: true + extraEnvironmentVars: + WEED_MASTER_VOLUME_GROWTH_COPY_1: "1" s3: enabled: true port: 8333 From 61988fb2882b455a1fe62d86ac7b8d0624735fa0 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Mon, 27 Apr 2026 18:13:34 +0300 Subject: [PATCH 10/28] fix installation issue --- charts/mlrun-ce/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index 94337589..58815271 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -322,6 +322,8 @@ seaweedfs: # delete other pods during data migration (e.g., multi-node rebalancing). # Enabling this creates a ClusterRole, which conflicts in multi-NS deployments. createClusterRole: false + extraEnvironmentVars: + WEED_MASTER_VOLUME_GROWTH_COPY_1: "1" # Disable individual component pods - allInOne runs everything in a single deployment master: @@ -345,8 +347,6 @@ seaweedfs: # Reduces from 4 component pods down to 1, cutting CPU/memory footprint significantly. allInOne: enabled: true - extraEnvironmentVars: - WEED_MASTER_VOLUME_GROWTH_COPY_1: "1" s3: enabled: true port: 8333 From 3ac86b329c19e4665af0a59a73f5fcd340914ae4 Mon Sep 17 00:00:00 2001 From: GiladShapira94 <100074049+GiladShapira94@users.noreply.github.com> Date: Mon, 27 Apr 2026 18:32:00 +0300 Subject: [PATCH 11/28] Update release.yml --- .github/workflows/release.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5de4bdfd..bdabc31b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,21 +51,21 @@ jobs: echo "is_rc=false" >> $GITHUB_OUTPUT fi - - name: Add Helm Repos - run: | - helm repo add stable https://charts.helm.sh/stable - helm repo add nuclio https://nuclio.github.io/nuclio/charts - helm repo add v3io-stable https://v3io.github.io/helm-charts/stable - helm repo add minio https://charts.min.io/ - helm repo add spark-operator https://kubeflow.github.io/spark-operator - helm repo add prometheus-community https://prometheus-community.github.io/helm-charts - helm repo add strimzi https://strimzi.io/charts/ - helm repo add seaweedfs https://seaweedfs.github.io/seaweedfs/helm - - - name: Run chart-releaser - uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f - env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + # - name: Add Helm Repos + # run: | + # helm repo add stable https://charts.helm.sh/stable + # helm repo add nuclio https://nuclio.github.io/nuclio/charts + # helm repo add v3io-stable https://v3io.github.io/helm-charts/stable + # helm repo add minio https://charts.min.io/ + # helm repo add spark-operator https://kubeflow.github.io/spark-operator + # helm repo add prometheus-community https://prometheus-community.github.io/helm-charts + # helm repo add strimzi https://strimzi.io/charts/ + # helm repo add seaweedfs https://seaweedfs.github.io/seaweedfs/helm + + # - name: Run chart-releaser + # uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f + # env: + # CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Find first RC tag for this version if: steps.version_check.outputs.is_rc == 'false' From 961888866d18df47bd2269ab202909cd4c5ab3cb Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 10:47:46 +0300 Subject: [PATCH 12/28] change chart version --- charts/mlrun-ce/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index 04562d73..7f066992 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mlrun-ce -version: 0.11.0-rc.33 +version: 0.11.0-rc.34 description: MLRun Open Source Stack home: https://iguazio.com icon: https://www.iguazio.com/wp-content/uploads/2019/10/Iguazio-Logo.png From c95a662b0881087d374cf0309a2385e61a7cc6c8 Mon Sep 17 00:00:00 2001 From: GiladShapira94 <100074049+GiladShapira94@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:21:00 +0300 Subject: [PATCH 13/28] Update pr-validation.yml --- .github/workflows/pr-validation.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 2ec97d5c..c9a32903 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -12,6 +12,7 @@ jobs: runs-on: ubuntu-latest permissions: issues: write + pull-requests: write steps: - name: Validate PR title and assign label From 59655d21dddc7877bc1e610b18dc1ed95e51e390 Mon Sep 17 00:00:00 2001 From: GiladShapira94 <100074049+GiladShapira94@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:25:47 +0300 Subject: [PATCH 14/28] Update pr-validation.yml --- .github/workflows/pr-validation.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index c9a32903..28673fa7 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -11,7 +11,6 @@ jobs: validate-and-label: runs-on: ubuntu-latest permissions: - issues: write pull-requests: write steps: From 55691a6032568f6ebc5f5e445352c7ba442eaf95 Mon Sep 17 00:00:00 2001 From: GiladShapira94 <100074049+GiladShapira94@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:32:39 +0300 Subject: [PATCH 15/28] Update release.yml --- .github/workflows/release.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bdabc31b..2dacb409 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -119,13 +119,13 @@ jobs: outputs: version: ${{ steps.version_check.outputs.version }} - deploy_ce_onprem: - needs: release - uses: ./.github/workflows/deploy_ce_onprem_public.yaml - with: - version: ${{ needs.release.outputs.version }} - secrets: - GH_APP_ID: ${{ secrets.GH_APP_ID }} - GH_APP_PRIVATE_KEY: ${{ secrets.GH_APP_PRIVATE_KEY }} - DEPLOYMENT_REPO: ${{ secrets.DEPLOYMENT_REPO }} - SYSTEM_ID: ${{ secrets.SYSTEM_ID }} + # deploy_ce_onprem: + # needs: release + # uses: ./.github/workflows/deploy_ce_onprem_public.yaml + # with: + # version: ${{ needs.release.outputs.version }} + # secrets: + # GH_APP_ID: ${{ secrets.GH_APP_ID }} + # GH_APP_PRIVATE_KEY: ${{ secrets.GH_APP_PRIVATE_KEY }} + # DEPLOYMENT_REPO: ${{ secrets.DEPLOYMENT_REPO }} + # SYSTEM_ID: ${{ secrets.SYSTEM_ID }} From efa5752ac5de99f7ada071af5231028e0c667f37 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 14:49:37 +0300 Subject: [PATCH 16/28] [Fix] testing fix --- charts/mlrun-ce/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/mlrun-ce/README.md b/charts/mlrun-ce/README.md index e3707b48..1283f5bf 100644 --- a/charts/mlrun-ce/README.md +++ b/charts/mlrun-ce/README.md @@ -271,6 +271,7 @@ $ rm -rf my-mlrun-mlrun-ce-mlrun ... ``` + ### Using Kubeflow Pipelines MLRun enables you to run your functions while saving outputs and artifacts in a way that is visible to Kubeflow Pipelines. From 252af2c7aeef0c64161ee3881c389928daaab611 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 15:03:58 +0300 Subject: [PATCH 17/28] print the release rc --- charts/mlrun-ce/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index 7f066992..fd6d41c1 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mlrun-ce -version: 0.11.0-rc.34 +version: 0.11.0 description: MLRun Open Source Stack home: https://iguazio.com icon: https://www.iguazio.com/wp-content/uploads/2019/10/Iguazio-Logo.png From 78c4af7fb9f5bd7852596681012948fb24965d85 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 12:06:31 +0300 Subject: [PATCH 18/28] upgrade MLRun and Nuclio --- charts/mlrun-ce/requirements.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/mlrun-ce/requirements.yaml b/charts/mlrun-ce/requirements.yaml index c9ff37ab..973ab668 100644 --- a/charts/mlrun-ce/requirements.yaml +++ b/charts/mlrun-ce/requirements.yaml @@ -1,9 +1,9 @@ dependencies: - name: nuclio - version: "0.21.9" + version: "0.21.25" repository: "https://nuclio.github.io/nuclio/charts" - name: mlrun - version: "0.11.18" + version: "0.11.23" repository: "https://v3io.github.io/helm-charts/stable" condition: mlrun.enabled - name: mpi-operator From e68c7e453078f4f1fad375fd5df969fb7485bc2e Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 12:06:34 +0300 Subject: [PATCH 19/28] upgrade MLRun and Nuclio --- charts/mlrun-ce/requirements.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/mlrun-ce/requirements.lock b/charts/mlrun-ce/requirements.lock index e0355fb1..3cd69ba4 100644 --- a/charts/mlrun-ce/requirements.lock +++ b/charts/mlrun-ce/requirements.lock @@ -1,10 +1,10 @@ dependencies: - name: nuclio repository: https://nuclio.github.io/nuclio/charts - version: 0.21.9 + version: 0.21.25 - name: mlrun repository: https://v3io.github.io/helm-charts/stable - version: 0.11.18 + version: 0.11.23 - name: mpi-operator repository: https://v3io.github.io/helm-charts/stable version: 0.6.0 @@ -23,5 +23,5 @@ dependencies: - name: opentelemetry-operator repository: https://open-telemetry.github.io/opentelemetry-helm-charts version: 0.105.0 -digest: sha256:ffa30cab1c7fdc60950e1184741bf359b1b0f8487192cffedae7209f85a4fadc -generated: "2026-04-30T16:39:21.63182+03:00" +digest: sha256:929dcfeabcef6d74d5d61b87eb41680e9eb87ff4795f1400d74528f74fbdb25b +generated: "2026-05-27T12:05:39.447395+03:00" From e5edcef98450ba79b1e369b81c172b605e95bc12 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 12:22:53 +0300 Subject: [PATCH 20/28] update README.md --- charts/mlrun-ce/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/mlrun-ce/README.md b/charts/mlrun-ce/README.md index 7ec41186..d34eb42e 100644 --- a/charts/mlrun-ce/README.md +++ b/charts/mlrun-ce/README.md @@ -329,6 +329,6 @@ Refer to the [**Kubeflow documentation**](https://www.kubeflow.org/docs/started/ This table shows the versions of the main components in the MLRun CE chart: -| MLRun CE | MLRun | Nuclio | Jupyter | MPI Operator | SeaweedFS | Spark Operator | Pipelines | Kube-Prometheus-Stack | OpenTelemetry Operator | -|------------|--------|--------|---------|--------------|-----------|----------------|-----------|-----------------------|------------------------| -| **0.11.0** | 1.11.0 | 1.15.9 | 4.5.0 | 0.2.3 | 4.17.0 | 2.1.0 | 2.15.0 | 72.1.1 | 0.78.1 | +| MLRun CE | MLRun | Nuclio | Jupyter | MPI Operator | SeaweedFS | Spark Operator | Pipelines | Kube-Prometheus-Stack | OpenTelemetry Operator | +|------------|--------|---------|---------|--------------|-----------|----------------|-----------|-----------------------|------------------------| +| **0.11.0** | 1.11.0 | 1.15.25 | 4.5.0 | 0.2.3 | 4.17.0 | 2.1.0 | 2.15.0 | 72.1.1 | 0.78.1 | From 0613005c7c7cd423a16154226a149472e798e029 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 12:43:24 +0300 Subject: [PATCH 21/28] update nuclio requirments --- charts/mlrun-ce/requirements.lock | 6 +++--- charts/mlrun-ce/requirements.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/charts/mlrun-ce/requirements.lock b/charts/mlrun-ce/requirements.lock index 3cd69ba4..9ddf9c15 100644 --- a/charts/mlrun-ce/requirements.lock +++ b/charts/mlrun-ce/requirements.lock @@ -1,7 +1,7 @@ dependencies: - name: nuclio repository: https://nuclio.github.io/nuclio/charts - version: 0.21.25 + version: 0.21.27 - name: mlrun repository: https://v3io.github.io/helm-charts/stable version: 0.11.23 @@ -23,5 +23,5 @@ dependencies: - name: opentelemetry-operator repository: https://open-telemetry.github.io/opentelemetry-helm-charts version: 0.105.0 -digest: sha256:929dcfeabcef6d74d5d61b87eb41680e9eb87ff4795f1400d74528f74fbdb25b -generated: "2026-05-27T12:05:39.447395+03:00" +digest: sha256:c0dd11f7ede02b836b2adf65ee2de0d93f839b4cfd9c962f5832cf589977dfae +generated: "2026-05-27T12:41:48.19826+03:00" diff --git a/charts/mlrun-ce/requirements.yaml b/charts/mlrun-ce/requirements.yaml index 973ab668..4d26336d 100644 --- a/charts/mlrun-ce/requirements.yaml +++ b/charts/mlrun-ce/requirements.yaml @@ -1,6 +1,6 @@ dependencies: - name: nuclio - version: "0.21.25" + version: "0.21.27" repository: "https://nuclio.github.io/nuclio/charts" - name: mlrun version: "0.11.23" From 3e9b2bc9a92d0405da7e6114b9efa57af54b6917 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 14:06:08 +0300 Subject: [PATCH 22/28] remove hardcoded mlrun tags --- charts/mlrun-ce/values.yaml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index 008b2154..916590bc 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -153,16 +153,10 @@ mlrun: create: true v3io: enabled: false - api: - image: - tag: 1.11.0-rc28 ingress: enabled: false annotations: {} sidecars: - logCollector: - image: - tag: 1.11.0-rc28 enabled: true fullnameOverride: mlrun-api functionSpecServiceAccountDefault: ~ @@ -211,9 +205,7 @@ mlrun: # services: # - name: alerts - ui: - image: - tag: 1.11.0-rc28 + fullnameOverride: mlrun-ui ingress: enabled: false @@ -282,7 +274,6 @@ jupyterNotebook: # - chart-example.local image: repository: quay.io/mlrun/jupyter - tag: 1.11.0-rc28 pullPolicy: IfNotPresent pullSecrets: [] busybox: From 97ee8c35d89c2bb44a2675e8e1262d6068bc71dd Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 14:26:07 +0300 Subject: [PATCH 23/28] fix jupyter tag --- charts/mlrun-ce/values.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index 916590bc..cf48e69a 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -274,6 +274,7 @@ jupyterNotebook: # - chart-example.local image: repository: quay.io/mlrun/jupyter + tag: 1.11.0 pullPolicy: IfNotPresent pullSecrets: [] busybox: From e6b2f9ab6f75affe99b4ea0d39b525b7ecb356c1 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 15:44:25 +0300 Subject: [PATCH 24/28] bump version --- charts/mlrun-ce/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index 166ad46f..448f4c52 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mlrun-ce -version: 0.11.0-rc.37 +version: 0.11.0-rc.38 description: MLRun Open Source Stack home: https://iguazio.com icon: https://www.iguazio.com/wp-content/uploads/2019/10/Iguazio-Logo.png From 33db1557be10b2149e3c4e2a24986b299b7b1046 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 17:34:22 +0300 Subject: [PATCH 25/28] fix values issue --- charts/mlrun-ce/values.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index cf48e69a..15603c3f 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -153,6 +153,7 @@ mlrun: create: true v3io: enabled: false + api: ingress: enabled: false annotations: {} @@ -205,7 +206,7 @@ mlrun: # services: # - name: alerts - + ui: fullnameOverride: mlrun-ui ingress: enabled: false From 231348bbe99adc4ce74ff1c15aa9f5b7076f576c Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 17:43:57 +0300 Subject: [PATCH 26/28] fix lint issue --- charts/mlrun-ce/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index 15603c3f..cdd96375 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -158,7 +158,7 @@ mlrun: enabled: false annotations: {} sidecars: - enabled: true + enabled: true fullnameOverride: mlrun-api functionSpecServiceAccountDefault: ~ service: From 805158e7593d8d89f289fbe4e9d4b513a2193760 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 27 May 2026 18:08:12 +0300 Subject: [PATCH 27/28] fix logCollector --- charts/mlrun-ce/values.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/charts/mlrun-ce/values.yaml b/charts/mlrun-ce/values.yaml index cdd96375..a7609aff 100644 --- a/charts/mlrun-ce/values.yaml +++ b/charts/mlrun-ce/values.yaml @@ -158,7 +158,8 @@ mlrun: enabled: false annotations: {} sidecars: - enabled: true + logCollector: + enabled: true fullnameOverride: mlrun-api functionSpecServiceAccountDefault: ~ service: From 77f375702c16ddd894af961627050a38d7ab4743 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Mon, 1 Jun 2026 09:35:01 +0300 Subject: [PATCH 28/28] Update readme file --- charts/mlrun-ce/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/README.md b/charts/mlrun-ce/README.md index d34eb42e..146d61b1 100644 --- a/charts/mlrun-ce/README.md +++ b/charts/mlrun-ce/README.md @@ -331,4 +331,4 @@ This table shows the versions of the main components in the MLRun CE chart: | MLRun CE | MLRun | Nuclio | Jupyter | MPI Operator | SeaweedFS | Spark Operator | Pipelines | Kube-Prometheus-Stack | OpenTelemetry Operator | |------------|--------|---------|---------|--------------|-----------|----------------|-----------|-----------------------|------------------------| -| **0.11.0** | 1.11.0 | 1.15.25 | 4.5.0 | 0.2.3 | 4.17.0 | 2.1.0 | 2.15.0 | 72.1.1 | 0.78.1 | +| **0.11.0** | 1.11.0 | 1.15.27 | 4.5.0 | 0.2.3 | 4.17.0 | 2.1.0 | 2.15.0 | 72.1.1 | 0.78.1 |