- fix(ingress): use root context ($) for fullname inside range
- fix(statefulset): use updateStrategy instead of strategy for mysql/infinity/elasticsearch/opensearch
- feat(mysql): add external mode via mysql.enabled=false with env MYSQL_HOST/PORT and MYSQL_USER (default root)
- feat(minio/redis): add external mode via *.enabled=false with env *_HOST/PORT
- feat(global): add global.repo for image registry prefix and global.imagePullSecrets for all pods
- feat: helper template ragflow.imageRepo to render image with global repo
- chore(env): allow optional MINIO_HOST, MINIO_PASSWORD, REDIS_PASSWORD (remove required); keep MYSQL_PASSWORD required
- docs(helm): add helm/README.md and update usage
- refactor(images): apply global repo to all components and init containers
- test: align test busybox image with global repo helper