From ae3ddefdad4e832944e9d48cf61daaa0038ee66f Mon Sep 17 00:00:00 2001 From: sHa Date: Tue, 24 Mar 2026 17:06:44 +0200 Subject: [PATCH] feat: Add home-assistant-dev chart and update update-charts script for image tag management --- .gitignore | 2 ++ home-assistant-dev/Chart.yaml | 12 ++++++++++++ home-assistant-dev/values.yaml | 25 +++++++++++++++++++++++++ scripts/update-charts.sh | 23 ++++++++++++++++++++++- 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 home-assistant-dev/Chart.yaml create mode 100644 home-assistant-dev/values.yaml diff --git a/.gitignore b/.gitignore index 6d82dfc..0ddbcda 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ Icon charts/*.tgz charts/*/charts/ charts/*/tmpcharts/ +**/charts/*.tgz +**/Chart.lock # IDE files .vscode/ diff --git a/home-assistant-dev/Chart.yaml b/home-assistant-dev/Chart.yaml new file mode 100644 index 0000000..7ebb154 --- /dev/null +++ b/home-assistant-dev/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: home-assistant-dev +description: Home Assistant development build - wraps home-assistant chart with dev defaults +type: application +annotations: + version-source: dockerhub-dev:homeassistant/home-assistant:^[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+$ +version: 0.1.9-dev +appVersion: "2026.4.0.dev202603240309" +dependencies: + - name: home-assistant + version: ">=0.1.0" + repository: "file://../home-assistant" diff --git a/home-assistant-dev/values.yaml b/home-assistant-dev/values.yaml new file mode 100644 index 0000000..7bfe819 --- /dev/null +++ b/home-assistant-dev/values.yaml @@ -0,0 +1,25 @@ +home-assistant: + image: + # Must match Chart.yaml appVersion — subchart can't access parent's appVersion + tag: "2026.4.0.dev202603240309" + + hostNetwork: false + + homekit: + enabled: false + + persistence: + config: + type: pvc + size: 5Gi + storageClass: local-path + media: + enabled: false + + resources: + requests: + cpu: "100m" + memory: "512Mi" + limits: + cpu: "2" + memory: "2Gi" diff --git a/scripts/update-charts.sh b/scripts/update-charts.sh index d4d866a..22a904f 100755 --- a/scripts/update-charts.sh +++ b/scripts/update-charts.sh @@ -25,6 +25,11 @@ fetch_latest() { local pattern="${source_data#*:}" version=$(curl -s "https://registry.hub.docker.com/v2/repositories/$repo/tags?page_size=100" | jq -r '.results[].name' | grep -E "$pattern" | sort -V -r | head -1) ;; + "dockerhub-dev") + local repo="${source_data%%:*}" + local pattern="${source_data#*:}" + version=$(curl -s "https://registry.hub.docker.com/v2/repositories/$repo/tags?page_size=100" | jq -r '.results[].name' | grep -E "$pattern" | head -1) + ;; *) return 1 ;; @@ -46,10 +51,16 @@ apply_pattern() { # Bump semver patch version (0.1.9 -> 0.1.10) bump_version() { local version=$1 + # Extract optional suffix (e.g., -dev, -beta) + local suffix="" + if [[ "$version" == *-* ]]; then + suffix="-${version#*-}" + version="${version%%-*}" + fi local major minor patch IFS='.' read -r major minor patch <<< "$version" patch=$((patch + 1)) - echo "$major.$minor.$patch" + echo "$major.$minor.$patch$suffix" } # Main loop through charts @@ -101,6 +112,16 @@ for chart_dir in "$REPO_ROOT"/*/; do "$chart_yaml" rm -f "$chart_yaml.bak" + # Update image.tag in values.yaml if it has a non-empty tag (for wrapper charts) + values_yaml="$chart_dir/values.yaml" + if [ -f "$values_yaml" ] && grep -qE 'tag: ".+"' "$values_yaml"; then + sed -i.bak \ + -e 's|tag: "[^"][^"]*"|tag: "'"$latest_clean"'"|' \ + "$values_yaml" + rm -f "$values_yaml.bak" + echo " Updated values.yaml image.tag" + fi + UPDATES_FOUND="$UPDATES_FOUND\n- **$chart_name**: $current_app_version ➔ $latest_clean (Chart v$new_chart_version)" else echo " Up to date."