Так что я изо всех сил пытаюсь прочитать файл xml из kubernetes. Я использую сервер с открытой свободой и упакованное военное приложение maven. что мне нужно изменить из моего Java кода, чтобы я мог читать файл из kubernetes.
Проблема здесь в том, что код читает pdp. xml из папки ресурсов внутри файла war, а не извне в томе kubernetes.
Моя карта конфигурации выглядит следующим образом
kind: ConfigMap
apiVersion: v1
metadata:
name: testing-config
data:
pdp.xml: |
<pdp xmlns="http://authzforce.github.io/core/xmlns/pdp/7"
xmlns:att="za.co.some.data"
xmlns:xacml="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
version="7.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</pdp>
Вот файл yaml с томами
apiVersion: apps/v1
kind: Deployment
metadata:
name: testing-app
labels:
app: testing-app
spec:
replicas: 1
selector:
matchLabels:
app: testing-app
template:
metadata:
labels:
app: testing-app
spec:
containers:
- name: testing-app
image: testing-app:1.0.24-SNAPSHOT
imagePullPolicy: Always
volumeMounts:
- name: testing-app-volume
mountPath: /config/pdp.xml
subPath: pdp.xml
readOnly: true
volumes:
- name: testing-app-volume
configMap:
name: testing-app-config
restartPolicy: Always
Я не очень хорошо знаю Java, но вот как я читаю файл.
Resource resource = new ClassPathResource("pdp.xml");
InputStream cfgFile = null;
byte[] buffer = null;
try {
cfgFile = resource.getInputStream();
buffer = new byte[cfgFile.available()];
} catch (IOException e) {
log.error(ERROR_MESSAGE);
throw new IllegalStateException(ERROR_MESSAGE);
}
это структура папок внутри контейнера
![enter image description here](https://i.stack.imgur.com/Bu5LA.png)