Как правильно перенести env из кода в k8s?

#mongodb #go #kubernetes

#mongodb #Вперед #kubernetes

Вопрос:

В приложении на Golang есть несколько строк:

 type configuration struct {
    ListenPort    string `env:"listen" default:":8080"`
    MongoHost     string `env:"mongo_host" default:"mongo-srv:27017"`
    MongoUser     string `env:"mongo_user" default:"user"`
    MongoPass     string `env:"mongo_pass" default:"password"`
    MongoDBname   string `env:"mongo_db_name" default:"MyDB"`
}
  

Как я могу перенести значения из evnironment для развертывания этого приложения в k8s?
Я пытался это сделать. Но это не работает.

 kind: Deployment
metadata:
  name: MyApp
  namespace: App
...
    spec:
      containers:
...
        env:
          - name: listen
            value: "8080"
          - name: mongo_host
            value: "mongo-srv:27017"
...
  

Комментарии:

1. Как вы можете сказать, что это не работает? Если вы запускаете код Go вне Kubernetes, соблюдаются ли те же настройки переменных среды?

2. Когда я запускаю pod с приложением, он не может подключиться к БД. Возможно, я неправильно использую переменные окружения. Стоит ли удалять эти параметры из кода, но дополнительно записывать их в docker compose?

3. вы пытаетесь извлечь значения структуры из кода go в модуль / контейнер?

4. @shubham_asati Да.

5. можете ли вы объяснить немного больше о том, чего вы пытаетесь достичь.. добавьте еще немного информации о сценарии