В настоящее время я работаю над проектом, использующим Firebase Admin Go SDK для обработки аутентификации и использования базы данных в реальном времени. Проект работает правильно, когда я запускаю его локально (просто запустив go run main.go
). Когда я запускаю его в Minikube через образ докера (или GKE, я протестировал оба), я получаю эту ошибку всякий раз, когда пытаюсь сделать какие-либо вызовы Firestore:
transport: authentication handshake failed: x509: certificate signed by unknown authority
Вот код, который я использую на сервере для вызова БД:
// Initialize the app
opt := option.WithCredentialsFile("./serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), nil, opt)
// This is the first call I attempt to make, and where the error is thrown
// Create the client
client, err := app.Firestore(context.Background())
iter := client.Collection("remoteModels").Documents(context.Background())
snaps, err := iter.GetAll()
if err != nil {
logger.Log.Warn("Error getting all remoteModels")
fmt.Println(err)
return err
}
А вот мой Dockerfile, который добавляет служебный ключ учетной записи Firebase, предоставленный мне из консоли:
FROM scratch
ADD main /
ADD serviceAccountKey.json /
EXPOSE 9090
ENTRYPOINT ["/main", "-grpc-port=9090", "-http-port=9089", "-env=prod"]
Я не могу найти ничего в документации по бегу в Кубернетесе.
Что мне нужно сделать, чтобы иметь возможность подключиться к Firestore из Kubernetes?