fix(hindsight): шаблон tenant_users без sprig keys (ESO отдаёт map[string]string) #63
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/63/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что произошло
После #62
ExternalSecret/ai/hindsightушёл вSecretSyncedError. Точная ошибка из лога ESO:Причина: sprig-функция
keysобъявлена какfunc keys(dicts ...map[string]interface{}), а ESO отдаёт шаблонуmap[string]string— падает на приведении типа ещё до подстановки. Секрет при этом не пострадал: ESO не переписываетhindsight-secretпри ошибке шаблона, поэтому API продолжал работать на старом значении (симптома в кластере не было, кроме статуса ES).Правка
Убрал
keysсовсем:rangeпо карте работает с любым типом map, а детерминированность даёт сортировка уже собранных пар (порядок обхода карты в Go случаен — без сортировки Secret менялся бы каждый refresh и reloader дёргал бы поды каждый час):sortAlphaприменяется к списку строк ($pairs— []interface{} из строк), поэтому приведения типов, как уkeys, тут не возникает. Обращения{{ .postgres_password }}/{{ .llm_api_key }}в том же шаблоне отработали, то есть контекст ключуется поsecretKey— это подтверждено ошибкой, упавшей только на составном ключе.Проверено
flate test all— 77 passed, exit 0.Проверка после мёржа
kubectl -n ai get externalsecret hindsight→Ready/SecretSynced(неSecretSyncedError).kubectl -n ai get secret hindsight-secret -o jsonpath='{.data.HINDSIGHT_API_TENANT_USERS}' | base64 -d | tr ',' '\n' | cut -d: -f1→ три имени (значения не печатаем).