I was trying something out on a minikube cluster the other day, and my python application could not connect to a mongo database that was deployed with helm. I had authentication enabled, the secret deployed in minikube and was greeted by the following error message:
SASLprep: failed prohibited character check
WTF? The password was definitely ascii printable characters. Could there be prohibited characters among the alphabet? I browsed through RFCs 4013 and 3454 but there was nothing I could immediately pinpoint there. However, this tweet by jpmens was circling my mind, and:
$ echo qwerty1234 | base64 cXdlcnR5MTIzNAo= $ printf qwerty1234 | base64 cXdlcnR5MTIzNA== $ echo -n qwerty1234 | base64 cXdlcnR5MTIzNA==
Yes, the kubernetes secret had a \n
attached to it. Because two things are hard in CS:
– naming things
– cache invalidation
– off by one errors