The problem was that the config cannot be updated via REST if the file is controlled by a configmap.
The configmap for PMS application can only be used for initial configuration after this change.
The file is moved from
/opt/app/policy-agent/data/application_configuration.json -> /var/policy-management-service/application_configuration.json
/var/policy-management-service/ is mapped to a persistent volume claim.
Config map which now is only initial (installation) data is mapped to:
/etc/app/policy-management-service/initialdata
An init container copies the initial configuration file /etc/app/policy-management-service/initialdata/application_configuration.json to /var/policy-management-service/
unless it is already there.
Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
Issue-ID: NONRTRIC-689
Change-Id: I79be05bbc4d18ad1914efc3cbcdf932ede71718d
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: pms-storage
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: pms-storage
+ hostPath: /var/nonrtric/pms-storage
volume2:
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: ics-storage
volume2:
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: ics-storage
+ hostPath: /var/nonrtric/ics-storage
volume3:
size: 1Gi
storageClassName: helmmanager-storage
volume3:
size: 1Gi
storageClassName: helmmanager-storage
common:
releasePrefix: r3-dev-nonrtric
# Do not change the namespace
common:
releasePrefix: r3-dev-nonrtric
# Do not change the namespace
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/nonrtric/volume1
+ path: {{ .Values.nonrtric.volume1.hostPath }}
storageClassName: {{ .Values.nonrtric.volume1.storageClassName }}
{{- end }}
storageClassName: {{ .Values.nonrtric.volume1.storageClassName }}
{{- end }}
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
hostPath:
- path: /dockerdata-nfs/nonrtric/volume2
+ path: {{ .Values.nonrtric.volume2.hostPath }}
storageClassName: {{ .Values.nonrtric.volume2.storageClassName }}
{{- end }}
storageClassName: {{ .Values.nonrtric.volume2.storageClassName }}
{{- end }}
volume1:
size: 1Gi
storageClassName: volume1
volume1:
size: 1Gi
storageClassName: volume1
+ hostPath: /dockerdata-nfs/nonrtric/volume1
volume2:
size: 1Gi
storageClassName: volume2
volume2:
size: 1Gi
storageClassName: volume2
+ hostPath: /dockerdata-nfs/nonrtric/volume2
volume3:
size: 1Gi
storageClassName: volume3
\ No newline at end of file
volume3:
size: 1Gi
storageClassName: volume3
\ No newline at end of file
app:
# Location of the component configuration file. The file will only be used if the Consul database is not used;
# configuration from the Consul will override the file.
app:
# Location of the component configuration file. The file will only be used if the Consul database is not used;
# configuration from the Consul will override the file.
- filepath: /opt/app/policy-agent/data/application_configuration.json
+ filepath: /var/policy-management-service/application_configuration.json
webclient:
# Configuration of the trust store used for the HTTP client (outgoing requests)
# The file location and the password for the truststore is only relevant if trust-store-used == true
webclient:
# Configuration of the trust store used for the HTTP client (outgoing requests)
# The file location and the password for the truststore is only relevant if trust-store-used == true
release: {{ .Release.Name }}
spec:
hostname: {{ include "common.name.policymanagementservice" . }}
release: {{ .Release.Name }}
spec:
hostname: {{ include "common.name.policymanagementservice" . }}
+ initContainers:
+ - name: copy
+ image: busybox:1.28
+ command:
+ - /bin/sh
+ - -c
+ - FILE=/var/policy-management-service/application_configuration.json;
+ if [ ! -f $FILE ]; then
+ cp /etc/app/policy-management-service/initialdata/application_configuration.json $FILE;
+ fi
+ volumeMounts:
+ - name: {{ include "common.name.policymanagementservice" . }}-vardata
+ mountPath: "/var/policy-management-service"
+ - name: {{ include "common.name.policymanagementservice" . }}-policy-data
+ mountPath: /etc/app/policy-management-service/initialdata
containers:
- name: {{ include "common.container.policymanagementservice" . }}
image: {{ .Values.policymanagementservice.image.registry }}/{{ .Values.policymanagementservice.image.name }}:{{ .Values.policymanagementservice.image.tag }}
containers:
- name: {{ include "common.container.policymanagementservice" . }}
image: {{ .Values.policymanagementservice.image.registry }}/{{ .Values.policymanagementservice.image.name }}:{{ .Values.policymanagementservice.image.tag }}
- name: {{ include "common.name.policymanagementservice" . }}-policy-config
mountPath: /opt/app/policy-agent/config
- name: {{ include "common.name.policymanagementservice" . }}-policy-data
- name: {{ include "common.name.policymanagementservice" . }}-policy-config
mountPath: /opt/app/policy-agent/config
- name: {{ include "common.name.policymanagementservice" . }}-policy-data
- mountPath: /opt/app/policy-agent/data
+ mountPath: /etc/app/policy-management-service/initialdata
volumes:
- name: {{ include "common.name.policymanagementservice" . }}-policy-config
configMap:
volumes:
- name: {{ include "common.name.policymanagementservice" . }}-policy-config
configMap: