changed initcontainer

This commit is contained in:
2026-01-14 20:20:14 +01:00
parent fc113374d9
commit 42945b2134
+21 -45
View File
@@ -1964,58 +1964,34 @@ spec:
fsGroup: 1000
initContainers:
- name: build-bookmarks-index
image: python:3.12-alpine
image: mikefarah/yq:4
securityContext:
runAsUser: 0
runAsGroup: 0
runAsUser: 1000
runAsGroup: 1000
allowPrivilegeEscalation: false
command: ["/bin/sh", "-c"]
args:
- |
apk add --no-cache py3-yaml >/dev/null
python - <<'PY'
import json, os, yaml
set -e
mkdir -p /app/assets
cfg = yaml.safe_load(open('/config/glance.yml', 'r', encoding='utf-8'))
items = []
yq -o=json '
[ .pages[] as $p
| ($p.columns[]?.widgets[]? | select(.type == "bookmarks")) as $w
| $w.groups[]? as $g
| $g.links[]?
| select(.url != null and .url != "")
| {
title: ((.title // .url) | tostring),
url: (.url | tostring),
page: ($p.name // "" | tostring),
widget: ($w.title // "" | tostring),
group: ($g.title // "" | tostring)
}
] | unique_by(.url)
' /config/glance.yml > /app/assets/bookmarks.json
for page in cfg.get('pages', []):
page_name = page.get('name', '')
for col in page.get('columns', []):
for w in col.get('widgets', []):
if w.get('type') != 'bookmarks':
continue
widget_title = w.get('title', '')
for g in w.get('groups', []):
group_title = g.get('title', '')
for l in g.get('links', []):
title = (l.get('title') or '').strip()
url = (l.get('url') or '').strip()
if not url:
continue
items.append({
"title": title or url,
"url": url,
"page": page_name,
"widget": widget_title,
"group": group_title,
})
# de-dupe by URL
seen = set()
out = []
for it in items:
if it["url"] in seen:
continue
seen.add(it["url"])
out.append(it)
os.makedirs('/app/assets', exist_ok=True)
with open('/app/assets/bookmarks.json', 'w', encoding='utf-8') as f:
json.dump(out, f, ensure_ascii=False, indent=2)
print(f"Wrote {len(out)} bookmarks -> /app/assets/bookmarks.json")
PY
echo "Bookmarks indexed: $(yq -r 'length' /app/assets/bookmarks.json)"
volumeMounts:
- name: config
mountPath: /config