Fix bug 1704 - Adding non-root user to run LCM
Change-Id: I3738bbafdc238c56a51376c79454cb1ebbc384e5
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/docker/LCM/Dockerfile b/docker/LCM/Dockerfile
index 99c198f..03907d7 100644
--- a/docker/LCM/Dockerfile
+++ b/docker/LCM/Dockerfile
@@ -46,7 +46,6 @@
&& mv linux-amd64/helm /usr/local/bin/helm3 \
&& rm -r linux-amd64/
-
ARG PYTHON3_OSM_COMMON_URL
ARG PYTHON3_OSM_LCM_URL
ARG PYTHON3_N2VC_URL
@@ -96,15 +95,23 @@
COPY --from=INSTALL /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/
COPY --from=INSTALL /lib/x86_64-linux-gnu/ /lib/x86_64-linux-gnu/
-COPY scripts/ scripts/
+COPY scripts/ /app/osm_lcm/scripts/
+
+# Creating the user for the app
+RUN groupadd -g 1000 appuser && \
+ useradd -u 1000 -g 1000 -d /app appuser && \
+ mkdir -p /app/osm_lcm && \
+ mkdir -p /app/storage/kafka && \
+ mkdir /app/log && \
+ chown -R appuser:appuser /app
+
+WORKDIR /app/osm_lcm
+
+# Changing the security context
+USER appuser
########################################################################
-# Used for local storage
-VOLUME /app/storage
-# Used for logs
-VOLUME /app/log
-
# The following ENV can be added with "docker run -e xxx' to configure LCM
ENV OSMLCM_RO_HOST ro
ENV OSMLCM_RO_PORT 9090
@@ -151,7 +158,5 @@
HEALTHCHECK --start-period=120s --interval=30s --timeout=30s --retries=1 \
CMD python3 -m osm_lcm.lcm_hc || exit 1
-
# Run app.py when the container launches
CMD [ "/bin/bash", "scripts/start.sh" ]
-
diff --git a/installers/docker/osm_pods/lcm.yaml b/installers/docker/osm_pods/lcm.yaml
index 2628408..aea32f9 100644
--- a/installers/docker/osm_pods/lcm.yaml
+++ b/installers/docker/osm_pods/lcm.yaml
@@ -30,6 +30,10 @@
labels:
app: lcm
spec:
+ securityContext:
+ runAsUser: 1000
+ runAsGroup: 1000
+ fsGroup: 1000
initContainers:
- name: kafka-ro-mongo-test
image: alpine:latest
@@ -54,16 +58,12 @@
value: mongodb://mongodb-k8s:27017/?replicaSet=rs0
envFrom:
- secretRef:
- name: lcm-secret
+ name: lcm-secret
volumeMounts:
- - name: osm-packages
- mountPath: /app/storage
- name: prometheus-config
mountPath: /etc/prometheus
volumes:
- - name: osm-packages
- hostPath:
- path: /var/lib/osm/osm_osm_packages/_data
- name: prometheus-config
hostPath:
path: /var/lib/osm/prometheus
+