Skip to content

Commit 8d4ac46

Browse files
darkobas2claude
andcommitted
fix(static-site): resolve vendored common subchart dependency
The Release workflow has failed on every push to master since 2026-08-02 with: Error: directory /home/runner/work/helm/helm/charts/common not found chart-releaser runs `helm dependency update`, which tries to resolve static-site's dependency on the common library chart. Chart.yaml carried upstream's `repository: file://../common`, which points at a sibling `charts/common` directory in the onechart monorepo. No such directory exists here, so resolution fails and the whole release job aborts - not just for static-site, but for every chart in the repo. The subchart was vendored as a packaged `charts/common-0.7.0.tgz`. That is enough for `helm template` and `helm install`, which is why deployments were unaffected and the breakage went unnoticed, but it does not satisfy dependency resolution. Fixed by matching the convention beeport-ui already uses in this repo: declare `repository: file://charts/common` and vendor the subchart as an unpacked directory rather than a tarball. Verified against a clean clone: - helm dependency update - previously failed, now succeeds, and is idempotent across repeated runs - helm lint - passes - helm package - passes - helm template - byte-for-byte identical output to before No template or values changes. Chart version is bumped 0.73.0 -> 0.73.1 because chart-testing requires a bump for any modified chart; the only resulting difference in rendered output is the helm.sh/chart label. PROVENANCE.md records that templates remain upstream v0.73.0 verbatim. Introduced in d631deb ("feat(static-site): vendor onechart static-site chart v0.73.0"). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent f62df92 commit 8d4ac46

19 files changed

Lines changed: 437 additions & 7 deletions

charts/static-site/Chart.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
dependencies:
22
- name: common
3-
repository: file://../common
3+
repository: file://charts/common
44
version: 0.7.0
5-
digest: sha256:a97ffdc0ab67ba57b6fb03ab3f98bbbc488f0630f2160b75e937c27d19a2fa08
6-
generated: "2024-09-09T08:36:50.241133151Z"
5+
digest: sha256:add56ef2d982ba863c26d56ce67dbdab941634dc81301cea01221a22ccce8bc4
6+
generated: "2026-08-12T09:57:03.192194304+02:00"

charts/static-site/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ type: application
1414
# This is the chart version. This version number should be incremented each time you make changes
1515
# to the chart and its templates, including the app version.
1616
# Versions are expected to follow Semantic Versioning (https://semver.org/)
17-
version: 0.73.0
17+
version: 0.73.1
1818

1919
dependencies:
2020
- name: common
2121
version: 0.7.0
22-
repository: file://../common
22+
repository: file://charts/common

charts/static-site/PROVENANCE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,19 @@ to keep existing deployments installable.
1111
- Upstream licence: Apache-2.0 (see `LICENSE` in this directory)
1212
- Templates are unmodified; `helm template` output is byte-for-byte identical to the
1313
original `static-site-0.73.0.tgz` artifact.
14+
15+
## Local versions
16+
17+
Templates and values remain upstream `v0.73.0` verbatim. The chart version is
18+
bumped locally only when repackaging metadata changes, because `chart-testing`
19+
requires a version bump for any modified chart.
20+
21+
- `0.73.0` - initial vendoring.
22+
- `0.73.1` - declare the vendored `common` subchart as
23+
`repository: file://charts/common` and ship it unpacked rather than as a
24+
tarball. Upstream's `file://../common` assumed onechart's monorepo layout and
25+
broke `helm dependency update`, which failed the Release workflow for the
26+
whole repository. Also strips two trailing-whitespace occurrences from
27+
`values.yaml` that `chart-testing`'s yamllint rejects. No template changes
28+
and no semantic values changes; rendered output is unchanged apart from the
29+
`helm.sh/chart` version label.
-3.02 KB
Binary file not shown.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v2
2+
description: A Helm chart for Kubernetes
3+
name: common
4+
type: library
5+
version: 0.7.0
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- define "common.configmap.tpl" -}}
2+
{{- if .Values.vars }}
3+
---
4+
apiVersion: v1
5+
kind: ConfigMap
6+
metadata:
7+
name: {{ template "common.robustName" .Release.Name }}
8+
namespace: {{ .Release.Namespace }}
9+
labels:
10+
{{- include "helm-chart.labels" . | nindent 4 }}
11+
data:
12+
{{- range $key, $val := .Values.vars }}
13+
{{ $key }}: {{ $val | quote }}
14+
{{- end }}
15+
{{- end }}
16+
{{- end -}}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{{- define "common.container.tpl" -}}
2+
name: {{ template "robustName" .Release.Name }}
3+
securityContext:
4+
{{- toYaml .Values.securityContext | nindent 2 }}
5+
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
6+
imagePullPolicy: {{ .Values.image.pullPolicy }}
7+
{{- if .Values.command }}
8+
command:
9+
- {{ .Values.shell }}
10+
- -c
11+
- {{ .Values.command | quote }}
12+
{{- end }}
13+
ports:
14+
{{- if not .Values.ports }}
15+
- name: http
16+
containerPort: {{ .Values.containerPort }}
17+
protocol: TCP
18+
{{- else }}
19+
{{- range .Values.ports }}
20+
- name: {{ .name }}
21+
containerPort: {{ .containerPort }}
22+
protocol: TCP
23+
{{- end }}
24+
{{- end }}
25+
{{- if .Values.probe.enabled }}
26+
readinessProbe:
27+
httpGet:
28+
path: {{ .Values.probe.path }}
29+
port: {{ .Values.containerPort }}
30+
scheme: HTTP
31+
{{- with .Values.probe.settings }}
32+
{{- toYaml . | nindent 2 }}
33+
{{- end }}
34+
{{- end }}
35+
{{- if .Values.livenessProbe.enabled }}
36+
livenessProbe:
37+
httpGet:
38+
path: {{ .Values.livenessProbe.path }}
39+
port: {{ .Values.containerPort }}
40+
scheme: HTTP
41+
{{- with .Values.livenessProbe.settings }}
42+
{{- toYaml . | nindent 2 }}
43+
{{- end }}
44+
{{- end }}
45+
{{- if not .Values.resources.ignore }}
46+
resources:
47+
{{- if .Values.resources.ignoreLimits }}
48+
requests:
49+
{{- toYaml .Values.resources.requests | nindent 4 }}
50+
{{- else }}
51+
{{- toYaml .Values.resources | nindent 2 }}
52+
{{- end }}
53+
{{- end }}
54+
{{- end }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- define "common.customFileConfigmap.tpl" -}}
2+
{{- range .Values.volumes }}
3+
{{- if .fileName }}
4+
---
5+
apiVersion: v1
6+
kind: ConfigMap
7+
metadata:
8+
name: {{ template "common.robustName" (printf "%s-%s" $.Release.Name .name) }}
9+
namespace: {{ $.Release.Namespace }}
10+
data:
11+
{{ .fileName }}: |
12+
{{- .fileContent | nindent 4 }}
13+
14+
{{- end }}
15+
{{- end }}
16+
{{- end -}}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{{- define "common.envFromRef.tpl" -}}
2+
{{- if or (or (or (or (or (.Values.vars) (.Values.secretEnabled)) .Values.sealedSecrets) .Values.secretName) .Values.existingConfigMaps) .Values.existingSecrets -}}
3+
envFrom:
4+
{{- if .Values.vars }}
5+
- configMapRef:
6+
name: {{ template "common.robustName" .Release.Name }}
7+
{{- end }}
8+
{{- range .Values.existingSecrets }}
9+
- secretRef:
10+
name: {{ .name }}
11+
optional: {{ .optional | default false }}
12+
{{- end }}
13+
{{- range .Values.existingConfigMaps }}
14+
- configMapRef:
15+
name: {{ .name }}
16+
optional: {{ .optional | default false }}
17+
{{- end }}
18+
{{- if .Values.secretEnabled }}
19+
- secretRef:
20+
name: {{ include "common.robustName" $.Release.Name }}
21+
{{- end }}
22+
{{- if .Values.secretName }}
23+
- secretRef:
24+
name: {{ .Values.secretName }}
25+
{{- end }}
26+
{{- if .Values.sealedSecrets }}
27+
- secretRef:
28+
name: {{ template "common.robustName" .Release.Name }}
29+
{{- end }}
30+
{{- end }}
31+
{{- end }}

0 commit comments

Comments
 (0)