Skip to content

Commit f86a47b

Browse files
authored
Merge pull request #18 from CDOT-CV/monitoring-stack
Monitoring Stack & Default Values in Docker Compose
2 parents 003c337 + 3bb60f4 commit f86a47b

16 files changed

+27009
-82
lines changed

README.md

+57
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ The JPO ITS utilities repository serves as a central location for deploying open
2222
- [Configuration](#configuration)
2323
- [Configure Kafka Connector Creation](#configure-kafka-connector-creation)
2424
- [Quick Run](#quick-run-2)
25+
- [5. Monitoring Stack](#5-monitoring-stack)
26+
- [Configuration](#configuration-1)
27+
- [Quick Run](#quick-run-3)
28+
- [Scrape Configurations](#scrape-configurations)
2529
- [Security Notice](#security-notice)
2630

2731

@@ -202,6 +206,59 @@ The following environment variables can be used to configure Kafka Connectors:
202206

203207
[Back to top](#toc)
204208

209+
## 5. Monitoring Stack
210+
211+
The monitoring stack consists of Prometheus for metrics collection and Grafana for visualization, along with several exporters that collect metrics from different services. The configuration is defined in [docker-compose-monitoring.yml](docker-compose-monitoring.yml).
212+
213+
Set the `COMPOSE_PROFILES` environmental variable as follows:
214+
215+
- `monitoring_full` - deploys all resources in the [docker-compose-monitoring.yml](docker-compose-monitoring.yml) file
216+
- `prometheus` - deploys only the Prometheus service
217+
- `grafana` - deploys only the Grafana service
218+
- `node_exporter` - deploys only the Node Exporter service for system metrics
219+
- `kafka_exporter` - deploys only the Kafka Lag Exporter service
220+
- `mongodb_exporter` - deploys only the MongoDB Exporter service
221+
222+
### Configuration
223+
224+
The following environment variables can be used to configure the monitoring stack:
225+
226+
| Environment Variable | Description |
227+
|---|---|
228+
| `PROMETHEUS_RETENTION` | Data retention period for Prometheus (default: 15d) |
229+
| `GRAFANA_ADMIN_USER` | Grafana admin username (default: admin) |
230+
| `GRAFANA_ADMIN_PASSWORD` | Grafana admin password (default: grafana) |
231+
| `KAFKA_LAG_EXPORTER_ROOT_LOG_LEVEL` | Root log level for kafka lag exporter (default: WARN) |
232+
| `KAFKA_LAG_EXPORTER_LOG_LEVEL` | Kafka lag exporter log level (default: INFO) |
233+
| `KAFKA_LAG_EXPORTER_KAFKA_LOG_LEVEL` | Kafka log level for kafka lag exporter (default: ERROR) |
234+
235+
### Quick Run
236+
237+
1. Create a copy of `sample.env` and rename it to `.env`.
238+
2. Set the `COMPOSE_PROFILES` variable to: `monitoring_full`
239+
3. Update any passwords in the `.env` file for security
240+
4. Run the following command: `docker compose up -d`
241+
5. Access the monitoring interfaces:
242+
- Grafana: `http://localhost:3000` (default credentials: admin/grafana)
243+
- Prometheus: `http://localhost:9090`
244+
6. The following metrics endpoints will be available:
245+
- Node Exporter: `http://localhost:9100/metrics`
246+
- Kafka Lag Exporter: `http://localhost:8000/metrics`
247+
- MongoDB Exporter: `http://localhost:9216/metrics`
248+
249+
### Scrape Configurations
250+
251+
The scrape configurations for the monitoring stack are defined in the [prometheus.yml](monitoring/prometheus/prometheus.yml) file. If you would like to add a new scrape configuration, you can do so by adding a new job to the `scrape_configs` section. Please note that this file doesn't support environment variables, so you will need to manually edit the file.
252+
253+
The following scrape configurations are available:
254+
255+
- `prometheus` - scrapes the Prometheus metrics
256+
- `node_exporter` - scrapes the Node Exporter metrics
257+
- `kafka_exporter` - scrapes the Kafka Lag Exporter metrics
258+
- `mongodb_exporter` - scrapes the MongoDB Exporter metrics
259+
260+
[Back to top](#toc)
261+
205262
## Security Notice
206263

207264
While default passwords are provided for development convenience, it is **strongly recommended** to:

docker-compose-connect.yml

+18-19
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ services:
88
build:
99
context: kafka-connect
1010
dockerfile: Dockerfile
11-
restart: ${RESTART_POLICY}
11+
restart: ${RESTART_POLICY:-on-failure:3}
1212
deploy:
1313
resources:
1414
limits:
@@ -29,14 +29,14 @@ services:
2929
condition: service_healthy
3030
required: false
3131
environment:
32-
CONNECT_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS}
32+
CONNECT_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS:-kafka:9092}
3333
CONNECT_REST_ADVERTISED_HOST_NAME: connect
3434
CONNECT_REST_PORT: 8083
3535
CONNECT_GROUP_ID: kafka-connect-group
3636
# Topics are created with jikkou in the kafka-setup service
3737
CONNECT_CONFIG_STORAGE_TOPIC: topic.KafkaConnectConfigs
3838
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: -1
39-
CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000
39+
CONNECT_OFFSET_FLUSH_INTERVAL_MS: ${CONNECT_FLUSH_INTERVAL:-1000}
4040
CONNECT_OFFSET_STORAGE_TOPIC: topic.KafkaConnectOffsets
4141
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: -1
4242
CONNECT_OFFSET_STORAGE_CLEANUP_POLICY: compact
@@ -47,8 +47,8 @@ services:
4747
CONNECT_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
4848
CONNECT_INTERNAL_KEY_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
4949
CONNECT_INTERNAL_VALUE_CONVERTER: "org.apache.kafka.connect.json.JsonConverter"
50-
CONNECT_LOG4J_ROOT_LOGLEVEL: ${CONNECT_LOG_LEVEL}
51-
CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=${CONNECT_LOG_LEVEL},org.reflections=${CONNECT_LOG_LEVEL},com.mongodb.kafka=${CONNECT_LOG_LEVEL}"
50+
CONNECT_LOG4J_ROOT_LOGLEVEL: ${CONNECT_LOG_LEVEL:-ERROR}
51+
CONNECT_LOG4J_LOGGERS: "org.apache.kafka.connect.runtime.rest=${CONNECT_LOG_LEVEL:-ERROR},org.reflections=${CONNECT_LOG_LEVEL:-ERROR},com.mongodb.kafka=${CONNECT_LOG_LEVEL:-ERROR}"
5252
CONNECT_PLUGIN_PATH: /usr/share/confluent-hub-components
5353

5454
kafka-connect-setup:
@@ -73,18 +73,17 @@ services:
7373
condition: service_healthy
7474
required: false
7575
environment:
76-
CONNECT_URL: ${CONNECT_URL}
77-
CONNECT_TASKS_MAX: ${CONNECT_TASKS_MAX}
78-
CONNECT_CREATE_ODE: ${CONNECT_CREATE_ODE}
79-
CONNECT_CREATE_GEOJSONCONVERTER: ${CONNECT_CREATE_GEOJSONCONVERTER}
80-
CONNECT_CREATE_CONFLICTMONITOR: ${CONNECT_CREATE_CONFLICTMONITOR}
81-
CONNECT_CREATE_DEDUPLICATOR: ${CONNECT_CREATE_DEDUPLICATOR}
82-
CONNECT_CREATE_MECDEPOSIT: ${CONNECT_CREATE_MECDEPOSIT}
83-
CONNECT_CREATE_OTHER: ${CONNECT_CREATE_OTHER}
84-
85-
MONGO_CONNECTOR_USERNAME: ${MONGO_ADMIN_DB_USER}
86-
MONGO_CONNECTOR_PASSWORD: ${MONGO_ADMIN_DB_PASS:?}
87-
MONGO_DB_IP: ${MONGO_IP}
88-
MONGO_DB_NAME: ${MONGO_DB_NAME}
76+
CONNECT_URL: ${CONNECT_URL:-http://connect:8083}
77+
CONNECT_TASKS_MAX: ${CONNECT_TASKS_MAX:-10}
78+
CONNECT_CREATE_ODE: ${CONNECT_CREATE_ODE:-true}
79+
CONNECT_CREATE_GEOJSONCONVERTER: ${CONNECT_CREATE_GEOJSONCONVERTER:-true}
80+
CONNECT_CREATE_CONFLICTMONITOR: ${CONNECT_CREATE_CONFLICTMONITOR:-true}
81+
CONNECT_CREATE_DEDUPLICATOR: ${CONNECT_CREATE_DEDUPLICATOR:-false}
82+
CONNECT_CREATE_MECDEPOSIT: ${CONNECT_CREATE_MECDEPOSIT:-false}
83+
MONGO_CONNECTOR_USERNAME: ${MONGO_ADMIN_DB_USER:-admin}
84+
MONGO_CONNECTOR_PASSWORD: ${MONGO_ADMIN_DB_PASS:-replace_me}
85+
86+
MONGO_DB_IP: ${MONGO_IP:-mongo}
87+
MONGO_DB_NAME: ${MONGO_DB_NAME:-CV}
8988
volumes:
90-
- ${CONNECT_KAFKA_CONNECTORS_VALUES_FILE:-./jikkou/kafka-connectors-values.yaml}:/kafka-connectors-values.yaml
89+
- ${CONNECT_KAFKA_CONNECTORS_VALUES_FILE:-./jikkou/kafka-connectors-values.yaml}:/kafka-connectors-values.yaml

docker-compose-kafka.yml

+27-21
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services:
77
- kafka
88
image: bitnami/kafka:3.8.0
99
hostname: kafka
10-
restart: ${RESTART_POLICY}
10+
restart: ${RESTART_POLICY:-on-failure:3}
1111
healthcheck:
1212
test: /opt/bitnami/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server kafka:9092 --version || exit 1
1313
interval: 30s
@@ -29,14 +29,14 @@ services:
2929
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
3030
KAFKA_CFG_LISTENERS: "PLAINTEXT://:9094,CONTROLLER://:9093,EXTERNAL://:9092"
3131
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT"
32-
KAFKA_CFG_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9094,EXTERNAL://${KAFKA_BOOTSTRAP_SERVERS}"
32+
KAFKA_CFG_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9094,EXTERNAL://${KAFKA_BOOTSTRAP_SERVERS:-kafka:9092}"
3333
KAFKA_BROKER_ID: "1"
3434
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
3535
ALLOW_PLAINTEXT_LISTENER: "yes"
3636
KAFKA_CFG_NODE_ID: "1"
3737
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
38-
KAFKA_CFG_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS}
39-
KAFKA_CFG_LOG_RETENTION_BYTES: ${KAFKA_LOG_RETENTION_BYTES}
38+
KAFKA_CFG_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS:-3}
39+
KAFKA_CFG_LOG_RETENTION_BYTES: ${KAFKA_LOG_RETENTION_BYTES:-10737418240}
4040
KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: "false"
4141
logging:
4242
options:
@@ -64,19 +64,25 @@ services:
6464
condition: service_healthy
6565
required: false
6666
environment:
67-
KAFKA_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS}
68-
KAFKA_TOPIC_PARTITIONS: ${KAFKA_TOPIC_PARTITIONS}
69-
KAFKA_TOPIC_REPLICAS: ${KAFKA_TOPIC_REPLICAS}
70-
KAFKA_TOPIC_MIN_INSYNC_REPLICAS: ${KAFKA_TOPIC_MIN_INSYNC_REPLICAS}
71-
KAFKA_TOPIC_RETENTION_MS: ${KAFKA_TOPIC_RETENTION_MS}
72-
KAFKA_TOPIC_DELETE_RETENTION_MS: ${KAFKA_TOPIC_DELETE_RETENTION_MS}
67+
KAFKA_TOPIC_CREATE_ODE: ${KAFKA_TOPIC_CREATE_ODE:-true}
68+
KAFKA_TOPIC_CREATE_GEOJSONCONVERTER: ${KAFKA_TOPIC_CREATE_GEOJSONCONVERTER:-true}
69+
KAFKA_TOPIC_CREATE_CONFLICTMONITOR: ${KAFKA_TOPIC_CREATE_CONFLICTMONITOR:-true}
70+
KAFKA_TOPIC_CREATE_DEDUPLICATOR: ${KAFKA_TOPIC_CREATE_DEDUPLICATOR:-false}
71+
KAFKA_TOPIC_CREATE_MECDEPOSIT: ${KAFKA_TOPIC_CREATE_MECDEPOSIT:-false}
7372

74-
KAFKA_TOPIC_CREATE_ODE: ${KAFKA_TOPIC_CREATE_ODE}
75-
KAFKA_TOPIC_CREATE_GEOJSONCONVERTER: ${KAFKA_TOPIC_CREATE_GEOJSONCONVERTER}
76-
KAFKA_TOPIC_CREATE_CONFLICTMONITOR: ${KAFKA_TOPIC_CREATE_CONFLICTMONITOR}
77-
KAFKA_TOPIC_CREATE_DEDUPLICATOR: ${KAFKA_TOPIC_CREATE_DEDUPLICATOR}
78-
KAFKA_TOPIC_CREATE_MECDEPOSIT: ${KAFKA_TOPIC_CREATE_MECDEPOSIT}
79-
KAFKA_TOPIC_CREATE_OTHER: ${KAFKA_TOPIC_CREATE_OTHER}
73+
KAFKA_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS:-kafka:9092}
74+
KAFKA_TOPIC_PARTITIONS: ${KAFKA_TOPIC_PARTITIONS:-1}
75+
KAFKA_TOPIC_REPLICAS: ${KAFKA_TOPIC_REPLICAS:-1}
76+
KAFKA_TOPIC_MIN_INSYNC_REPLICAS: ${KAFKA_TOPIC_MIN_INSYNC_REPLICAS:-1}
77+
KAFKA_TOPIC_RETENTION_MS: ${KAFKA_TOPIC_RETENTION_MS:-300000}
78+
KAFKA_TOPIC_DELETE_RETENTION_MS: ${KAFKA_TOPIC_DELETE_RETENTION_MS:-3600000}
79+
80+
KAFKA_TOPIC_CREATE_ODE: ${KAFKA_TOPIC_CREATE_ODE:-true}
81+
KAFKA_TOPIC_CREATE_GEOJSONCONVERTER: ${KAFKA_TOPIC_CREATE_GEOJSONCONVERTER:-true}
82+
KAFKA_TOPIC_CREATE_CONFLICTMONITOR: ${KAFKA_TOPIC_CREATE_CONFLICTMONITOR:-true}
83+
KAFKA_TOPIC_CREATE_DEDUPLICATOR: ${KAFKA_TOPIC_CREATE_DEDUPLICATOR:-false}
84+
KAFKA_TOPIC_CREATE_MECDEPOSIT: ${KAFKA_TOPIC_CREATE_MECDEPOSIT:-false}
85+
KAFKA_TOPIC_CREATE_OTHER: ${KAFKA_TOPIC_CREATE_OTHER:-false}
8086

8187
KAFKA_SECURITY_PROTOCOL: ${KAFKA_SECURITY_PROTOCOL:-PLAINTEXT}
8288
KAFKA_SASL_MECHANISM: ${KAFKA_SASL_MECHANISM}
@@ -95,7 +101,7 @@ services:
95101
- kafka_schema_registry
96102
image: confluentinc/cp-schema-registry:7.7.0
97103
hostname: schema-registry
98-
restart: ${RESTART_POLICY}
104+
restart: ${RESTART_POLICY:-on-failure:3}
99105
deploy:
100106
resources:
101107
limits:
@@ -109,7 +115,7 @@ services:
109115
- "8081:8081"
110116
environment:
111117
SCHEMA_REGISTRY_HOST_NAME: schema-registry
112-
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS}
118+
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: ${KAFKA_BOOTSTRAP_SERVERS:-kafka:9092}
113119
SCHEMA_REGISTRY_CONFLUENT_SUPPORT_METRICS_ENABLE: "false"
114120
SCHEMA_REGISTRY_AVRO_COMPATIBILITY_LEVEL: "NONE"
115121
healthcheck:
@@ -129,7 +135,7 @@ services:
129135
- kafka_ui
130136
hostname: kafka-ui
131137
image: ghcr.io/kafbat/kafka-ui:v1.1.0
132-
restart: ${RESTART_POLICY}
138+
restart: ${RESTART_POLICY:-on-failure:3}
133139
deploy:
134140
resources:
135141
limits:
@@ -144,9 +150,9 @@ services:
144150
environment:
145151
DYNAMIC_CONFIG_ENABLED: "true"
146152
KAFKA_CLUSTERS_0_NAME: local
147-
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${KAFKA_BOOTSTRAP_SERVERS}
153+
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: ${KAFKA_BOOTSTRAP_SERVERS:-kafka:9092}
148154
KAFKA_CLUSTERS_0_KAFKACONNECT_0_NAME: kafka-connect
149-
KAFKA_CLUSTERS_0_KAFKACONNECT_0_ADDRESS: ${CONNECT_URL}
155+
KAFKA_CLUSTERS_0_KAFKACONNECT_0_ADDRESS: ${CONNECT_URL:-http://connect:8083}
150156
logging:
151157
options:
152158
max-size: "10m"

docker-compose-mongo.yml

+41-39
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ services:
77
- mongo
88
image: mongo:8
99
hostname: mongo
10-
restart: ${RESTART_POLICY}
10+
restart: ${RESTART_POLICY:-on-failure:3}
1111
deploy:
1212
resources:
1313
limits:
@@ -16,19 +16,19 @@ services:
1616
ports:
1717
- "27017:27017"
1818
environment:
19-
MONGO_INITDB_ROOT_USERNAME: ${MONGO_ADMIN_DB_USER}
20-
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ADMIN_DB_PASS:?}
19+
MONGO_INITDB_ROOT_USERNAME: ${MONGO_ADMIN_DB_USER:-admin}
20+
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ADMIN_DB_PASS:-replace_me}
2121
MONGO_INITDB_DATABASE: admin
22-
MONGO_DATABASE_STORAGE_COLLECTION_NAME: ${MONGO_DATABASE_STORAGE_COLLECTION_NAME}
23-
MONGO_DATABASE_SIZE_GB: ${MONGO_DATABASE_SIZE_GB}
24-
MONGO_DATABASE_SIZE_TARGET_PERCENT: ${MONGO_DATABASE_SIZE_TARGET_PERCENT}
25-
MONGO_DATABASE_DELETE_THRESHOLD_PERCENT: ${MONGO_DATABASE_DELETE_THRESHOLD_PERCENT}
26-
MONGO_DATABASE_MAX_TTL_RETENTION_SECONDS: ${MONGO_DATABASE_MAX_TTL_RETENTION_SECONDS}
27-
MONGO_DATABASE_MIN_TTL_RETENTION_SECONDS: ${MONGO_DATABASE_MIN_TTL_RETENTION_SECONDS}
28-
MONGO_ENABLE_STORAGE_RECORD: ${MONGO_ENABLE_STORAGE_RECORD}
29-
MONGO_ENABLE_DYNAMIC_TTL: ${MONGO_ENABLE_DYNAMIC_TTL}
30-
MONGO_DB_NAME: ${MONGO_DB_NAME}
31-
MONGO_DB_KEYFILE_STRING: ${MONGO_DB_KEYFILE_STRING:?}
22+
MONGO_DATABASE_STORAGE_COLLECTION_NAME: ${MONGO_DATABASE_STORAGE_COLLECTION_NAME:-storage}
23+
MONGO_DATABASE_SIZE_GB: ${MONGO_DATABASE_SIZE_GB:-10}
24+
MONGO_DATABASE_SIZE_TARGET_PERCENT: ${MONGO_DATABASE_SIZE_TARGET_PERCENT:-0.8}
25+
MONGO_DATABASE_DELETE_THRESHOLD_PERCENT: ${MONGO_DATABASE_DELETE_THRESHOLD_PERCENT:-0.9}
26+
MONGO_DATABASE_MAX_TTL_RETENTION_SECONDS: ${MONGO_DATABASE_MAX_TTL_RETENTION_SECONDS:-5184000}
27+
MONGO_DATABASE_MIN_TTL_RETENTION_SECONDS: ${MONGO_DATABASE_MIN_TTL_RETENTION_SECONDS:-604800}
28+
MONGO_ENABLE_STORAGE_RECORD: ${MONGO_ENABLE_STORAGE_RECORD:-true}
29+
MONGO_ENABLE_DYNAMIC_TTL: ${MONGO_ENABLE_DYNAMIC_TTL:-true}
30+
MONGO_DB_NAME: ${MONGO_DB_NAME:-CV}
31+
MONGO_DB_KEYFILE_STRING: ${MONGO_DB_KEYFILE_STRING:-replacethisstring}
3232
entrypoint:
3333
- bash
3434
- -c
@@ -41,7 +41,7 @@ services:
4141
dos2unix /etc/cron.d/manage-volume-cron
4242
chmod 644 /etc/cron.d/manage-volume-cron
4343
systemctl restart cron
44-
echo "$MONGO_DB_KEYFILE_STRING" > /data/keyfile.txt
44+
echo "${MONGO_DB_KEYFILE_STRING:-replacethisstring}" > /data/keyfile.txt
4545
chmod 400 /data/keyfile.txt
4646
chown 999:999 /data/keyfile.txt
4747
@@ -53,7 +53,7 @@ services:
5353
- ./mongo/manage_volume.js:/data/manage_volume.js
5454
healthcheck:
5555
# Removal of replica set status check as the mongo-setup container is what actually configures the replica set
56-
test: mongosh --quiet --username ${MONGO_ADMIN_DB_USER} --password ${MONGO_ADMIN_DB_PASS} --authenticationDatabase admin --eval "db.adminCommand('ping').ok"
56+
test: mongosh --quiet --username ${MONGO_ADMIN_DB_USER:-admin} --password ${MONGO_ADMIN_DB_PASS:-replace_me} --authenticationDatabase admin --eval "db.adminCommand('ping').ok"
5757
interval: 10s
5858
timeout: 10s
5959
retries: 10
@@ -77,26 +77,28 @@ services:
7777
cpus: '0.5'
7878
memory: 1G
7979
environment:
80-
MONGO_ADMIN_DB_USER: ${MONGO_ADMIN_DB_USER}
81-
MONGO_ADMIN_DB_PASS: ${MONGO_ADMIN_DB_PASS:?}
82-
MONGO_DB_NAME: ${MONGO_DB_NAME}
83-
MONGO_READ_WRITE_USER: ${MONGO_READ_WRITE_USER}
84-
MONGO_READ_WRITE_PASS: ${MONGO_READ_WRITE_PASS:?}
85-
MONGO_READ_USER: ${MONGO_READ_USER}
86-
MONGO_READ_PASS: ${MONGO_READ_PASS:?}
87-
MONGO_EXPORTER_USERNAME: ${MONGO_EXPORTER_USERNAME}
88-
MONGO_EXPORTER_PASSWORD: ${MONGO_EXPORTER_PASSWORD:?}
89-
MONGO_DATA_RETENTION_SECONDS: ${MONGO_DATA_RETENTION_SECONDS}
90-
MONGO_ASN_RETENTION_SECONDS: ${MONGO_ASN_RETENTION_SECONDS}
91-
CONNECT_CREATE_GEOJSONCONVERTER: ${CONNECT_CREATE_GEOJSONCONVERTER}
92-
CONNECT_CREATE_CONFLICTMONITOR: ${CONNECT_CREATE_CONFLICTMONITOR}
93-
CONNECT_CREATE_DEDUPLICATOR: ${CONNECT_CREATE_DEDUPLICATOR}
94-
CONNECT_CREATE_MECDEPOSIT: ${CONNECT_CREATE_MECDEPOSIT}
80+
MONGO_ADMIN_DB_USER: ${MONGO_ADMIN_DB_USER:-admin}
81+
MONGO_ADMIN_DB_PASS: ${MONGO_ADMIN_DB_PASS:-replace_me}
82+
MONGO_DB_NAME: ${MONGO_DB_NAME:-CV}
83+
MONGO_READ_WRITE_USER: ${MONGO_READ_WRITE_USER:-ode}
84+
MONGO_READ_WRITE_PASS: ${MONGO_READ_WRITE_PASS:-replace_me}
85+
MONGO_READ_USER: ${MONGO_READ_USER:-read}
86+
MONGO_READ_PASS: ${MONGO_READ_PASS:-replace_me}
87+
MONGO_EXPORTER_USERNAME: ${MONGO_EXPORTER_USERNAME:-exporter}
88+
MONGO_EXPORTER_PASSWORD: ${MONGO_EXPORTER_PASSWORD:-replace_me}
89+
90+
MONGO_DATA_RETENTION_SECONDS: ${MONGO_DATA_RETENTION_SECONDS:-5184000}
91+
MONGO_ASN_RETENTION_SECONDS: ${MONGO_ASN_RETENTION_SECONDS:-86400}
92+
93+
MONGO_INDEX_CREATE_ODE: ${MONGO_INDEX_CREATE_ODE:-true}
94+
MONGO_INDEX_CREATE_GEOJSONCONVERTER: ${MONGO_INDEX_CREATE_GEOJSONCONVERTER:-true}
95+
MONGO_INDEX_CREATE_CONFLICTMONITOR: ${MONGO_INDEX_CREATE_CONFLICTMONITOR:-true}
96+
MONGO_INDEX_CREATE_DEDUPLICATOR: ${MONGO_INDEX_CREATE_DEDUPLICATOR:-false}
9597
entrypoint: ["/bin/bash", "setup_mongo.sh"]
9698
volumes:
97-
- ${MONGO_SETUP_SCRIPT_RELATIVE_PATH}:/setup_mongo.sh
98-
- ${MONGO_CREATE_INDEXES_SCRIPT_RELATIVE_PATH}:/create_indexes.js
99-
- ${MONGO_INIT_REPLICAS_SCRIPT_RELATIVE_PATH}:/init_replicas.js
99+
- ${MONGO_SETUP_SCRIPT_RELATIVE_PATH:-./mongo/setup_mongo.sh}:/setup_mongo.sh
100+
- ${MONGO_CREATE_INDEXES_SCRIPT_RELATIVE_PATH:-./mongo/create_indexes.js}:/create_indexes.js
101+
- ${MONGO_INIT_REPLICAS_SCRIPT_RELATIVE_PATH:-./mongo/init_replicas.js}:/init_replicas.js
100102

101103
mongo-express:
102104
profiles:
@@ -105,7 +107,7 @@ services:
105107
- mongo_express
106108
image: mongo-express:1.0.2-18
107109
hostname: mongo-express
108-
restart: ${RESTART_POLICY}
110+
restart: ${RESTART_POLICY:-on-failure:3}
109111
deploy:
110112
resources:
111113
limits:
@@ -119,11 +121,11 @@ services:
119121
required: false
120122
environment:
121123
ME_CONFIG_MONGODB_ENABLE_ADMIN: "true"
122-
ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_EXPRESS_USER}
123-
ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_EXPRESS_PASS:?}
124-
ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ADMIN_DB_USER}
125-
ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ADMIN_DB_PASS:?}
126-
ME_CONFIG_MONGODB_URL: mongodb://${MONGO_ADMIN_DB_USER}:${MONGO_ADMIN_DB_PASS}@${MONGO_IP}:27017/?authSource=admin&directConnection=true
124+
ME_CONFIG_BASICAUTH_USERNAME: ${MONGO_EXPRESS_USER:-admin}
125+
ME_CONFIG_BASICAUTH_PASSWORD: ${MONGO_EXPRESS_PASS:-replace_me}
126+
ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_ADMIN_DB_USER:-admin}
127+
ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_ADMIN_DB_PASS:-replace_me}
128+
ME_CONFIG_MONGODB_URL: mongodb://${MONGO_ADMIN_DB_USER:-admin}:${MONGO_ADMIN_DB_PASS:-replace_me}@${MONGO_IP:-mongo}:27017/?authSource=admin&directConnection=true
127129
healthcheck:
128130
test: ["CMD", "curl", "-f", "http://localhost:8081"]
129131
interval: 30s

0 commit comments

Comments
 (0)