@ -11,7 +11,11 @@ source "${script_dir}/common.sh"
find_latest_image_tag( ) {
local docker_hub_repo = $1
local regExp = "^(k|weekly-k)\d+-[a-z0-9]+"
crane ls " ${ docker_hub_repo } " | grep -P " ${ regExp } " | sed -E "s/([weekly-]*k[[:digit:]]*)-([^-]*).*/\1-\2/g" | uniq | sort -Vur | head -1
local crane_results
crane_results = " $( crane ls " ${ docker_hub_repo } " | grep -P " ${ regExp } " | sed -E "s/([weekly-]*k[[:digit:]]*)-([^-]*).*/\1-\2/g" | sort -Vur) "
set +o pipefail
echo " ${ crane_results } " | head -1
set -o pipefail
}
# takes k197-abcdef and returns r197, k197-abcdef-arm64 and returns k197, weekly-k197-abcdef and returns k197
@ -22,6 +26,7 @@ extract_k_version() {
calculate_next_chart_version( ) {
local current_chart_version = $1
local latest_image_tag = $2
local k_release = $3
local current_chart_semver
current_chart_semver = $( echo " ${ current_chart_version } " | grep -P -o '^(\d+.){2}\d+' )
@ -35,7 +40,12 @@ calculate_next_chart_version() {
# Also reset the patch release number to 0.
new_chart_semver = $( set_semver_patch_to_zero " ${ new_chart_semver } " )
fi
echo " ${ new_chart_semver } -weekly. ${ new_chart_weekly } "
if ${ k_release } ; then
echo " ${ new_chart_semver } -weekly. ${ new_chart_weekly } "
else
echo " ${ new_chart_semver } "
fi
}
validate_version_update( ) {
@ -60,25 +70,43 @@ validate_version_update() {
fi
}
k_release = false
if [ [ " $1 " = = "-k" ] ] ; then
k_release = true
shift
fi
values_file = production/helm/loki/values.yaml
chart_file = production/helm/loki/Chart.yaml
latest_loki_tag = $( find_latest_image_tag grafana/loki)
latest_gel_tag = $( find_latest_image_tag grafana/enterprise-logs)
current_chart_version = $( get_yaml_node " ${ chart_file } " .version)
new_chart_version = $( calculate_next_chart_version " ${ current_chart_version } " " ${ latest_loki_tag } " )
new_chart_version = $( calculate_next_chart_version " ${ current_chart_version } " " ${ latest_loki_tag } " " ${ k_release } " )
validate_version_update " ${ new_chart_version } " " ${ current_chart_version } " " ${ latest_gel_tag } " " ${ latest_loki_tag } "
update_yaml_node " ${ values_file } " .loki.image.tag " ${ latest_loki_tag } "
update_yaml_node " ${ values_file } " .enterprise.image.tag " ${ latest_gel_tag } "
update_yaml_node " ${ chart_file } " .appVersion " $( extract_k_version " ${ latest_loki_tag } " ) "
if ${ k_release } ; then
update_yaml_node " ${ values_file } " .loki.image.tag " ${ latest_loki_tag } "
update_yaml_node " ${ values_file } " .enterprise.image.tag " ${ latest_gel_tag } "
update_yaml_node " ${ chart_file } " .appVersion " $( extract_k_version " ${ latest_loki_tag } " ) "
fi
update_yaml_node " ${ chart_file } " .version " ${ new_chart_version } "
sed --in-place \
--regexp-extended \
" s/(.*\<AUTOMATED_UPDATES_LOCATOR\>.*)/\1\n\n## ${ new_chart_version } \n\n- \[CHANGE\] Changed version of Grafana Loki to ${ latest_loki_tag } \n- \[CHANGE\] Changed version of Grafana Enterprise Logs to ${ latest_gel_tag } /g " production/helm/loki/CHANGELOG.md
if ${ k_release } ; then
sed --in-place \
--regexp-extended \
" s/(.*\<AUTOMATED_UPDATES_LOCATOR\>.*)/\1\n\n## ${ new_chart_version } \n\n- \[CHANGE\] Changed version of Grafana Loki to ${ latest_loki_tag } \n- \[CHANGE\] Changed version of Grafana Enterprise Logs to ${ latest_gel_tag } /g " production/helm/loki/CHANGELOG.md
else
sed --in-place \
--regexp-extended \
" s/(.*\<AUTOMATED_UPDATES_LOCATOR\>.*)/\1\n\n## ${ new_chart_version } /g " production/helm/loki/CHANGELOG.md
fi
make TTY = '' helm-docs
echo " ::set-output name=new_chart_version:: ${ new_chart_version } "
if ${ k_release } ; then
echo " ::set-output name=weekly:: $( extract_k_version " ${ latest_loki_tag } " ) "
fi