From ca8c5c202f7e2454a55cce82a2ce8fe1cee0c843 Mon Sep 17 00:00:00 2001 From: alhendrickson <159636032+alhendrickson@users.noreply.github.com.> Date: Wed, 11 Mar 2026 09:29:57 +0000 Subject: [PATCH 1/5] fix(helm): Cogstack-ce fix recursive helm dependencies --- .github/workflows/kubernetes-charts-build.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/kubernetes-charts-build.yaml b/.github/workflows/kubernetes-charts-build.yaml index 55f9a05..31e73e7 100644 --- a/.github/workflows/kubernetes-charts-build.yaml +++ b/.github/workflows/kubernetes-charts-build.yaml @@ -110,6 +110,19 @@ jobs: fi echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT" + - name: Recursive dependency update (all charts) + working-directory: . + run: | + # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated + for _ in 1 2; do + for chart in deployment/kubernetes/charts/*/; do + if [[ -f "${chart}Chart.yaml" ]] && grep -q "^dependencies:" "${chart}Chart.yaml" 2>/dev/null; then + echo "Updating dependencies for $chart" + helm dependency update "$chart" + fi + done + done + - name: Package Helm Charts # TODO: List the dir instead of hardcoding each one run: | From 6e9dccda18d01aa16c146cee4ad69c7b95fa96fe Mon Sep 17 00:00:00 2001 From: alhendrickson <159636032+alhendrickson@users.noreply.github.com.> Date: Wed, 11 Mar 2026 09:39:48 +0000 Subject: [PATCH 2/5] fix(helm): Cogstack-ce fix recursive helm dependencies --- .github/workflows/kubernetes-charts-build.yaml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/kubernetes-charts-build.yaml b/.github/workflows/kubernetes-charts-build.yaml index 31e73e7..4f082ef 100644 --- a/.github/workflows/kubernetes-charts-build.yaml +++ b/.github/workflows/kubernetes-charts-build.yaml @@ -110,17 +110,19 @@ jobs: fi echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT" - - name: Recursive dependency update (all charts) + - name: Recursive dependency update (all charts, including nested) working-directory: . run: | # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated for _ in 1 2; do - for chart in deployment/kubernetes/charts/*/; do - if [[ -f "${chart}Chart.yaml" ]] && grep -q "^dependencies:" "${chart}Chart.yaml" 2>/dev/null; then - echo "Updating dependencies for $chart" - helm dependency update "$chart" + # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory + while IFS= read -r chartfile; do + chart_dir="$(dirname "$chartfile")" + if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then + echo "Updating dependencies for $chart_dir" + helm dependency update "$chart_dir" fi - done + done < <(find deployment/kubernetes/charts -type f -name Chart.yaml) done - name: Package Helm Charts From 60c2661e2d503d9ac4d3a736d1b525010a429b60 Mon Sep 17 00:00:00 2001 From: alhendrickson <159636032+alhendrickson@users.noreply.github.com.> Date: Wed, 11 Mar 2026 09:43:13 +0000 Subject: [PATCH 3/5] fix(helm): Cogstack-ce fix recursive helm dependencies --- .github/workflows/kubernetes-charts-build.yaml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/kubernetes-charts-build.yaml b/.github/workflows/kubernetes-charts-build.yaml index 4f082ef..e2fbbb5 100644 --- a/.github/workflows/kubernetes-charts-build.yaml +++ b/.github/workflows/kubernetes-charts-build.yaml @@ -47,18 +47,19 @@ jobs: echo "changed=true" >> "$GITHUB_OUTPUT" fi - - name: Recursive dependency update - if: steps.list-changed.outputs.changed == 'true' + - name: Recursive dependency update (all charts, including nested) working-directory: . run: | - # Run twice so subcharts get their deps first, then umbrella gets updated copies (with nested deps) + # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated for _ in 1 2; do - for chart in deployment/kubernetes/charts/*/; do - if [[ -f "${chart}Chart.yaml" ]] && grep -q "^dependencies:" "${chart}Chart.yaml" 2>/dev/null; then - echo "Updating dependencies for $chart" - helm dependency update "$chart" + # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory + while IFS= read -r chartfile; do + chart_dir="$(dirname "$chartfile")" + if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then + echo "Updating dependencies for $chart_dir" + helm dependency update "$chart_dir" fi - done + done < <(find deployment/kubernetes/charts -type f -name Chart.yaml) done - name: Run chart-testing (lint) From ffd880c55ba4cdb5b4da87d0cab886961e92dbb2 Mon Sep 17 00:00:00 2001 From: alhendrickson <159636032+alhendrickson@users.noreply.github.com.> Date: Wed, 11 Mar 2026 09:43:56 +0000 Subject: [PATCH 4/5] fix(helm): Cogstack-ce fix recursive helm dependencies --- .../workflows/kubernetes-charts-build.yaml | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/.github/workflows/kubernetes-charts-build.yaml b/.github/workflows/kubernetes-charts-build.yaml index e2fbbb5..8d21825 100644 --- a/.github/workflows/kubernetes-charts-build.yaml +++ b/.github/workflows/kubernetes-charts-build.yaml @@ -111,27 +111,21 @@ jobs: fi echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT" - - name: Recursive dependency update (all charts, including nested) - working-directory: . + - name: Install Helm Cascade plugin run: | - # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated - for _ in 1 2; do - # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory - while IFS= read -r chartfile; do - chart_dir="$(dirname "$chartfile")" - if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then - echo "Updating dependencies for $chart_dir" - helm dependency update "$chart_dir" - fi - done < <(find deployment/kubernetes/charts -type f -name Chart.yaml) - done + helm plugin install https://github.com/origranot/helm-cascade + + - name: Build chart dependencies with Helm Cascade + run: | + # Build dependencies recursively for the umbrella chart (includes cogstack-jupyterhub -> jupyterhub) + helm cascade build ./charts/cogstack-helm-ce - name: Package Helm Charts # TODO: List the dir instead of hardcoding each one run: | helm package ./charts/medcat-service-helm --version ${{ steps.version.outputs.chart_version }} - helm package ./charts/medcat-trainer-helm --version ${{ steps.version.outputs.chart_version }} --dependency-update - helm package ./charts/cogstack-helm-ce --version ${{ steps.version.outputs.chart_version }} --dependency-update + helm package ./charts/medcat-trainer-helm --version ${{ steps.version.outputs.chart_version }} + helm package ./charts/cogstack-helm-ce --version ${{ steps.version.outputs.chart_version }} - name: Helm OCI login to Docker Hub run: helm registry login registry-1.docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} From c65abc3bcfa2e455b6423d89767145c81b6d7d7f Mon Sep 17 00:00:00 2001 From: alhendrickson <159636032+alhendrickson@users.noreply.github.com.> Date: Wed, 11 Mar 2026 09:50:44 +0000 Subject: [PATCH 5/5] fix(helm): Cogstack-ce fix recursive helm dependencies --- .../workflows/kubernetes-charts-build.yaml | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/kubernetes-charts-build.yaml b/.github/workflows/kubernetes-charts-build.yaml index 8d21825..47b4b67 100644 --- a/.github/workflows/kubernetes-charts-build.yaml +++ b/.github/workflows/kubernetes-charts-build.yaml @@ -111,21 +111,29 @@ jobs: fi echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT" - - name: Install Helm Cascade plugin - run: | - helm plugin install https://github.com/origranot/helm-cascade - - - name: Build chart dependencies with Helm Cascade + - name: Recursive dependency update (all charts, including nested) + # Waiting on helm recursive feature https://github.com/helm/helm/pull/30855 + # Could alternatively switch to helm "cascade" plugin + working-directory: . run: | - # Build dependencies recursively for the umbrella chart (includes cogstack-jupyterhub -> jupyterhub) - helm cascade build ./charts/cogstack-helm-ce + # Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated + for _ in 1 2; do + # Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory + while IFS= read -r chartfile; do + chart_dir="$(dirname "$chartfile")" + if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then + echo "Updating dependencies for $chart_dir" + helm dependency update "$chart_dir" + fi + done < <(find deployment/kubernetes/charts -type f -name Chart.yaml) + done - name: Package Helm Charts # TODO: List the dir instead of hardcoding each one run: | helm package ./charts/medcat-service-helm --version ${{ steps.version.outputs.chart_version }} - helm package ./charts/medcat-trainer-helm --version ${{ steps.version.outputs.chart_version }} - helm package ./charts/cogstack-helm-ce --version ${{ steps.version.outputs.chart_version }} + helm package ./charts/medcat-trainer-helm --version ${{ steps.version.outputs.chart_version }} --dependency-update + helm package ./charts/cogstack-helm-ce --version ${{ steps.version.outputs.chart_version }} --dependency-update - name: Helm OCI login to Docker Hub run: helm registry login registry-1.docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }}