Приложение Spring Boot на Kubernetes Как использовать внешний файл message.properties для поддержки i18n и l10n? - PullRequest
0 голосов
/ 26 октября 2018

У нас есть приложение весенней загрузки, которое развернуто в Kubernetes. Мы добавляем возможности i18n в это приложение и хотим разместить файл messages.properties вне приложения jar / war. Я смог сделать это весной загрузки. Как это будет работать, когда я разверну его в Kubernetes? Нужно ли использовать конфигурационные карты? Ниже приведен фрагмент кода

@Configuration
public class AppConfig {
@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    //Path to the messages.properties files
    messageSource.setBasenames("file:/messages/messages", "classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setCacheSeconds(60);
    return messageSource;
}
}

1 Ответ

0 голосов
/ 26 октября 2018

Да, вы можете сделать это с помощью configmap.Это почти то же самое, что и доступ к внешнему файлу application.properties.Сначала вы можете создать ConfigMap непосредственно из файла или создать ConfigMap, представляющий файл :

apiVersion: v1
kind: ConfigMap
metadata:
  name: treasurehunt-config
  namespace: default
data:
  application.properties: |
    treasurehunt.max.attempts=5

Затем в своем развертывании в kubernetes вы создаете Том для ConfigMap и монтируйте его в Pod под каталогом, который вы используете для внешней конфигурации :

          volumeMounts:
          - name: application-config
            mountPath: "/config"
            readOnly: true
      volumes:
      - name: application-config
        configMap:
          name: treasurehunt-config
          items:
          - key: application.properties
            path: application.properties

Эти фрагменты взяты из примера монтированияТом из ConfigMap для файла application.properties, поэтому они используют пружинный загрузочный путь к файлу внешних свойств по умолчанию из /config.Вы можете установить это в yaml для монтирования , чтобы вы могли смонтировать файл, чтобы использовать тот же относительный путь, который вы уже использовали при запуске вне kubernetes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...