Динамически загружайте изменения конфигурации в код в Micronaut без перезапуска модуля.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Динамически загружайте изменения конфигурации в код в Micronaut без перезапуска модуля.

Сообщение Anonymous »

Я хочу загрузить изменения конфигурации в модуль и начать использовать его без перезапуска модуля в Micronaut. Я создал образец приложения, чтобы опробовать это. Использовал Minikube для проверки изменений.
Создал 2 простых класса вместе с Application.java
DummyConfiguration.java

Код: Выделить всё

@Refreshable
@ConfigurationProperties("dummy-configuration")
public class DummyConfiguration {
private String color;

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}
}
ConfigResource.java

Код: Выделить всё

@Controller("/config")
public class ConfigResource{

private final DummyConfiguration dummyConfiguration;

public ConfigResource(DummyConfiguration dummyConfiguration) {
this.dummyConfiguration = dummyConfiguration;
}

@Get("/color")
public String getColor() {
return "The color is: " + dummyConfiguration.getColor();
}
}
Application.java

Код: Выделить всё

import io.micronaut.runtime.Micronaut;

public class Application {

public static void main(String[] args) {
Micronaut.run(Application.class, args);
}
}
Dockerfile

Код: Выделить всё

FROM openjdk:18-alpine

EXPOSE 8080

COPY target/k8s-0.1.jar /etc/configdemo.jar
COPY target/classes/application.yml /etc/configuration/

WORKDIR /etc

ENTRYPOINT ["java", "-Dmicronaut.config.files=file:/etc/configuration/application.yml", "-jar", "configdemo.jar"]
configmap.yml

Код: Выделить всё

apiVersion: v1
kind: ConfigMap
metadata:
name: k8s-config
data:
bootstrap.yaml: |
kubernetes:
client:
config-maps:
watch: true
config:
enabled: true
namespace: default

config.yaml: |
micronaut:
application:
name: k8s
config-client:
enabled: true

dummy-configuration:
color: white
И смонтировали файл configmap.yml в файл Deployment.yml
Deployment.yml

Код: Выделить всё

apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s
spec:
replicas: 1
selector:
matchLabels:
app: k8s
template:
metadata:
labels:
app: k8s
spec:
containers:
- name: k8s
image: k8s:1
imagePullPolicy: Never
env:
- name: MICRONAUT_CONFIG_FILES
value: "/etc/configuration/bootstrap.yml,/etc/configuration/application.yml"
ports:
- containerPort: 8080
volumeMounts:
- name: config-volume
mountPath: /etc/configuration
volumes:
- name: config-volume
configMap:
name: k8s-config
По мнению микронаута, в идеале код также должен начать заполнять новые значения, чего не происходит (https://micronaut-projects.github.io/mi ... shot/guide /). Я изменил цвет в карте конфигурации, а затем применил его, что не отражается при вызове API.
Я новичок в Micronaut. Не уверен, что я упускаю. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/791 ... out-pod-re
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»