diff --git a/charts/nebulous-resource-manager/templates/deployment.yaml b/charts/nebulous-resource-manager/templates/deployment.yaml index e1b7f3d..fe9d60b 100644 --- a/charts/nebulous-resource-manager/templates/deployment.yaml +++ b/charts/nebulous-resource-manager/templates/deployment.yaml @@ -33,6 +33,11 @@ spec: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + {{- range .Values.env }} + - name: {{ .name }} + value: {{ .value | quote }} + {{- end }} ports: - name: http containerPort: 8080 @@ -47,6 +52,22 @@ spec: port: http resources: {{- toYaml .Values.resources | nindent 12 }} + - name: {{ .Chart.Name }}-mongodb + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "docker.io/library/mongo:7.0.2" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + {{- range .Values.env }} + - name: {{ .name }} + value: {{ .value | quote }} + {{- end }} + ports: + - name: mongo-port + containerPort: 27017 + protocol: TCP + resources: + {{- toYaml .Values.resources | nindent 12 }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} diff --git a/charts/nebulous-resource-manager/values.yaml b/charts/nebulous-resource-manager/values.yaml index b701012..78273c2 100644 --- a/charts/nebulous-resource-manager/values.yaml +++ b/charts/nebulous-resource-manager/values.yaml @@ -80,3 +80,19 @@ nodeSelector: {} tolerations: [] affinity: {} + +env: + # ===== MongoDB configuration ===== + - name: MONGO_INITDB_ROOT_USERNAME + value: 'root' + - name: MONGO_INITDB_ROOT_PASSWORD + value: 'example' + # ===== Resource Manager configuration ===== + - name: SPRING_DATA_MONGODB_URI + value: 'mongodb://root:example@localhost:27017/admin' + - name: DISCOVERY_BROKER_USERNAME + value: 'aaa' + - name: DISCOVERY_BROKER_PASSWORD + value: '111' + - name: DISCOVERY_BROKERURL + value: 'tcp://nebulous-monitoring:61616?daemon=true&trace=false&useInactivityMonitor=false&connectionTimeout=0&keepAlive=true' diff --git a/resource-discovery/Dockerfile b/resource-discovery/Dockerfile index 4f1e381..2e95898 100644 --- a/resource-discovery/Dockerfile +++ b/resource-discovery/Dockerfile @@ -5,7 +5,6 @@ ENV BASEDIR /app WORKDIR ${BASEDIR} COPY src ${BASEDIR}/src COPY pom.xml ${BASEDIR}/ -COPY run.sh ${BASEDIR}/ RUN mvn -f ${BASEDIR}/pom.xml -DskipTests clean install && \ java -Djarmode=layertools -jar ${BASEDIR}/target/resource-discovery-*.jar extract @@ -22,11 +21,21 @@ RUN wget --progress=dot:giga -O /usr/local/bin/dumb-init \ chmod +x /usr/local/bin/dumb-init # Add RD user -ARG RD_USER=rd -RUN mkdir ${RD_HOME} && \ - addgroup ${RD_USER} && \ - adduser --home ${RD_HOME} --no-create-home --ingroup ${RD_USER} --disabled-password ${RD_USER} && \ - chown ${RD_USER}:${RD_USER} ${RD_HOME} +ARG RD_USER=root +#ARG RD_USER=rd +#RUN mkdir ${RD_HOME} && \ +# addgroup ${RD_USER} && \ +# adduser --home ${RD_HOME} --no-create-home --ingroup ${RD_USER} --disabled-password ${RD_USER} && \ +# chown ${RD_USER}:${RD_USER} ${RD_HOME} + +RUN apt-get update \ + && apt-get install --no-install-recommends -y \ + netcat=1.218-4ubuntu1 \ + iputils-ping=3:20211215-1 \ + telnet=0.17-44build1 \ + vim=2:8.2.3995-1ubuntu2.16 \ + net-tools=1.60+git20181103.0eebece-1ubuntu5 \ + && rm -rf /var/lib/apt/lists/* # Set User and Workdir USER ${RD_USER} @@ -37,8 +46,11 @@ COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/dependencies COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/spring-boot-loader ${BASEDIR} COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/snapshot-dependencies ${BASEDIR} COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/application ${BASEDIR} -COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/run.sh ${BASEDIR} -RUN chmod +x run.sh +#COPY --chown=${RD_USER}:${RD_USER} --from=rd-builder /app/run.sh ${BASEDIR} + +COPY --chown=${RD_USER}:${RD_USER} run.sh ${BASEDIR} +COPY --chown=${RD_USER}:${RD_USER} wait_for_mongodb.sh ${BASEDIR} +RUN chmod +x run.sh wait_for_mongodb.sh EXPOSE 8080 diff --git a/resource-discovery/run.sh b/resource-discovery/run.sh index 54cd70f..8e74d5f 100644 --- a/resource-discovery/run.sh +++ b/resource-discovery/run.sh @@ -5,6 +5,9 @@ PREVWORKDIR=`pwd` BASEDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) cd ${BASEDIR} +# Wait for MongoDB to start +./wait_for_mongodb.sh + # Read JASYPT password (decrypts encrypted configuration settings) #if [[ -z "$JASYPT_PASSWORD" ]]; then # printf "Configuration Password: " diff --git a/resource-discovery/wait_for_mongodb.sh b/resource-discovery/wait_for_mongodb.sh new file mode 100644 index 0000000..400ef54 --- /dev/null +++ b/resource-discovery/wait_for_mongodb.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Define MongoDB connection details +MONGODB_HOST="localhost" +MONGODB_PORT="27017" + +# Function to check if MongoDB is ready +wait_for_mongodb() { + echo "Waiting for MongoDB to be ready..." + until nc -z $MONGODB_HOST $MONGODB_PORT + do + sleep 1 + done + echo "MongoDB is up and running!" +} + +# Call the function to wait for MongoDB +wait_for_mongodb \ No newline at end of file