update rocket-chat

This commit is contained in:
2025-04-03 15:16:10 +02:00
parent 31f6b361ac
commit 571c3a4dbb
180 changed files with 1 additions and 48 deletions

View File

@@ -0,0 +1,148 @@
{{- if .Values.mongodb.enabled }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ template "rocketchat.fullname" . }}-scripts"
labels:
app.kubernetes.io/name: {{ include "rocketchat.name" . }}
helm.sh/chart: {{ include "rocketchat.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
verifyMongodb.js: |
const versions = [
"4.0",
"4.2",
"4.4",
"5.0",
"6.0"
];
// [0]=mongosh path, [1]=mongosh path, [2]=connection string, [3]=script path, [4]=new tag
const newVersion = process.argv[4].split('.').splice(0, 2).join('.');
const currentVersion = db.version().split('.').splice(0, 2).join('.');
if (currentVersion === newVersion) quit(0);
const featureCompatibilityVersionResp = db.adminCommand({ getParameter:
1, featureCompatibilityVersion: 1 });
if (!featureCompatibilityVersionResp.ok) {
print("failed to read current feature compatibility version");
quit(1);
}
const featureCompatibilityVersion = featureCompatibilityVersionResp.featureCompatibilityVersion.version;
if (featureCompatibilityVersion !== currentVersion) {
print("current feature compatibility version is incompatible with the mongodb version you're trying to update to");
quit(1);
}
if (versions.indexOf(newVersion) - versions.indexOf(currentVersion) !== 1) {
print("you can't skip a mongodb version while updating, please read our update documentation for more information");
quit(1);
}
quit(0);
updateSynapseHomeserverConfig.sh: |
[[ $(basename $SHELL) != "bash" ]] && {
echo "must be run in bash"
exit 1
} || :
set -x
_data_dir="${SYNAPSE_DATA_DIR:-/data}"
_data_dir="${_data_dir%/}"
_config_dir="${SYNAPSE_CONFIG_DIR:-/data}"
_config_dir="${_config_dir%/}"
start_or_exit() {
if [ "$1" = "--start" ]; then
exec /start.py
fi
exit 0
}
_remove_block() {
local type="${1^^}"
#local type="$(printf "%s" "$1" | tr '[[:lower:]]' '[[:upper:]]')"
local file="$2"
local start="@@@ $type ($(basename $HOMESERVER_EXTRA_CONFIG)) START @@@"
local end="@@@ $type ($(basename $HOMESERVER_EXTRA_CONFIG)) END @@@"
local l1="$(awk "/$start/ {print NR; exit}" "$file")"
local l2="$(awk "/$end/ {print NR; exit}" "$file")"
if [ -z "$l1" -o -z "$l2" ]; then
return
fi
sed -i "${l1},${l2}d" $file
}
remove_extra_config() {
_remove_block "extra config" "$HOMESERVER"
}
add_extra_config() {
if [ "$(tail -n 1 "$HOMESERVER" | base64)" != "Cg==" ]; then # `echo | base64`
printf "\n" >> "$HOMESERVER"
fi
echo "# @@@ EXTRA CONFIG START ($(basename $HOMESERVER_EXTRA_CONFIG)) @@@" >>"$HOMESERVER"
cat "$HOMESERVER_EXTRA_CONFIG" >> "$HOMESERVER"
echo "# @@@ EXTRA CONFIG END ($(basename $HOMESERVER_EXTRA_CONFIG)) @@@" >>"$HOMESERVER"
}
hash() {
sha256sum "$1" | awk '{ print $1 }'
}
hash_file() {
local basename \
name \
basename="$(basename "$1")"
name=".${basename%.*}_hash"
echo -n "${_config_dir}/${name}"
}
extra_config_hash() {
hash "$HOMESERVER_EXTRA_CONFIG"
}
extra_config_current_hash() {
[[ -f "$(hash_file "$HOMESERVER_EXTRA_CONFIG")" ]] || return ""
cat "$(hash_file "$HOMESERVER_EXTRA_CONFIG")"
}
_save_hash() {
hash "$1" > "$(hash_file "$1")"
}
save_extra_config_hash() {
_save_hash "$HOMESERVER_EXTRA_CONFIG"
}
HOMESERVER="${SYNAPSE_CONFIG_PATH:-$(ls "$_config_dir"/homeserver.y{a,}ml 2>/dev/null)}"
if [ -z "$HOMESERVER" -o ! -f "$HOMESERVER" ]; then
echo "homeserver config not found: \"$HOMESERVER\"" >&2
exit 1
fi
if [ -z "$HOMESERVER_EXTRA_CONFIG" ]; then
start_or_exit
fi
current_hash="$(extra_config_hash)"
expected_hash="$(extra_config_current_hash)"
if [ "$expected_hash" = "$current_hash" ]; then
echo "extra config hashes matched, ignoring append op."
exit 0
fi
echo "extra config hashes mismatch, re-setting extra config" >&2
remove_extra_config
add_extra_config
save_extra_config_hash
start_or_exit
{{- end }}