Skip to content

Commit 8414ef4

Browse files
fix(helm): Cogstack-ce fix recursive helm dependencies (#53)
1 parent e772742 commit 8414ef4

1 file changed

Lines changed: 26 additions & 8 deletions

File tree

.github/workflows/kubernetes-charts-build.yaml

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,19 @@ jobs:
4747
echo "changed=true" >> "$GITHUB_OUTPUT"
4848
fi
4949
50-
- name: Recursive dependency update
51-
if: steps.list-changed.outputs.changed == 'true'
50+
- name: Recursive dependency update (all charts, including nested)
5251
working-directory: .
5352
run: |
54-
# Run twice so subcharts get their deps first, then umbrella gets updated copies (with nested deps)
53+
# Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated
5554
for _ in 1 2; do
56-
for chart in deployment/kubernetes/charts/*/; do
57-
if [[ -f "${chart}Chart.yaml" ]] && grep -q "^dependencies:" "${chart}Chart.yaml" 2>/dev/null; then
58-
echo "Updating dependencies for $chart"
59-
helm dependency update "$chart"
55+
# Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory
56+
while IFS= read -r chartfile; do
57+
chart_dir="$(dirname "$chartfile")"
58+
if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then
59+
echo "Updating dependencies for $chart_dir"
60+
helm dependency update "$chart_dir"
6061
fi
61-
done
62+
done < <(find deployment/kubernetes/charts -type f -name Chart.yaml)
6263
done
6364
6465
- name: Run chart-testing (lint)
@@ -110,6 +111,23 @@ jobs:
110111
fi
111112
echo "chart_version=$CHART_VERSION" >> "$GITHUB_OUTPUT"
112113
114+
- name: Recursive dependency update (all charts, including nested)
115+
# Waiting on helm recursive feature https://github.com/helm/helm/pull/30855
116+
# Could alternatively switch to helm "cascade" plugin
117+
working-directory: .
118+
run: |
119+
# Run twice so nested subcharts (like cogstack-jupyterhub -> jupyterhub) are fully updated
120+
for _ in 1 2; do
121+
# Find every Chart.yaml under deployment/kubernetes/charts and run helm dependency update in its directory
122+
while IFS= read -r chartfile; do
123+
chart_dir="$(dirname "$chartfile")"
124+
if grep -q "^dependencies:" "$chartfile" 2>/dev/null; then
125+
echo "Updating dependencies for $chart_dir"
126+
helm dependency update "$chart_dir"
127+
fi
128+
done < <(find deployment/kubernetes/charts -type f -name Chart.yaml)
129+
done
130+
113131
- name: Package Helm Charts
114132
# TODO: List the dir instead of hardcoding each one
115133
run: |

0 commit comments

Comments
 (0)