Krish cc66d5aaa5 Single node setup (#1418)
* Add more tools to the toolbox container

* Add mongodb monitoring agent
* Add a bigchaindb/mongodb-monitoring-agent container that includes the
monitoring agent.
* It makes use of an api key provided by MongoDB Cloud Manager. This is
included in the configuration/config-map.yaml file.

* Changes to mongodb StatefulSet configuration
Changes to bump up mongodb version to v3.4.3.
Add configuration settings for mongodb instance name in ConfigMap.
Split the mongodb service to a new configuration file.

* Modify bigchaindb deployment config
* Bugfix to remove keyring field for the first node.
* Split the mongodb service to a new configuration file.

* Add mongodb backup agent
* Add a bigchaindb/mongodb-backup-agent container that includes the
backup agent.
* It makes use of an api key provided by MongoDB Cloud Manager. This is
included in the configuration/config-map.yaml file.

* Changes to nginx deployment config
* Allow 'all' by default for now. This is included in the
configuration/config-map.yaml file.
* Dynamically resolve DNS addresses of our backend services; cache DNS
resolution for 20s.
* Configure DNS based on user provided resolver. This helps in user
deciding to provide 8.8.8.8 or a custom DNS for name resolution. For k8s
deployments, we use the hardcoded k8s DNS IP of 10.0.0.10.

* Changes to nginx-3scale deployment config
* Use the common ConfigMap in configuration/config-map.yaml file.

* Removing prefix `v` from the docker tag for mongodb-monitoring-agent and mongodb containers

* Bumping up version for nginx-3scale container

* Add small helper scripts for docker build and push of mongodb monitoring
and backup agents

* Documentation for setting up the first node with monitoring and backup
agents
2017-04-21 14:41:12 +02:00

55 lines
2.1 KiB
Docker

# Dockerfile for MongoDB Monitoring Agent
# Use it to create bigchaindb/mongodb-monitoring-agent
# on Docker Hub.
# "Never install the Monitoring Agent on the same server as a data bearing mongod instance."
# More help:
# https://docs.cloudmanager.mongodb.com/tutorial/install-monitoring-agent-with-deb-package/
FROM ubuntu:xenial
LABEL maintainer "dev@bigchaindb.com"
# Using ARG, one can set DEBIAN_FRONTEND=noninteractive and others
# just for the duration of the build:
ARG DEBIAN_FRONTEND=noninteractive
ARG DEB_FILE=mongodb-mms-monitoring-agent_latest_amd64.ubuntu1604.deb
ARG FILE_URL="https://cloud.mongodb.com/download/agent/monitoring/"$DEB_FILE
# Download the Monitoring Agent as a .deb package and install it
WORKDIR /
RUN apt update \
&& apt -y upgrade \
&& apt -y install --no-install-recommends curl ca-certificates logrotate \
libsasl2-2 \
&& curl -OL $FILE_URL \
&& dpkg -i $DEB_FILE \
&& rm -f $DEB_FILE \
&& apt -y purge curl \
&& apt -y autoremove \
&& apt clean
# The above installation puts a default config file in
# /etc/mongodb-mms/monitoring-agent.config
# It should contain a line like: "mmsApiKey="
# i.e. with no value specified.
# We need to set that value to the "agent API key" value from Cloud Manager,
# but of course that value varies from user to user,
# so we can't hard-code it into the Docker image.
# Kubernetes can set an MMS_API_KEY environment variable
# in the container
# (including from Secrets or ConfigMaps)
# An entrypoint bash script can then use the value of MMS_API_KEY
# to write the mmsApiKey value in the config file
# /etc/mongodb-mms/monitoring-agent.config
# before running the MongoDB Monitoring Agent.
# The MongoDB Monitoring Agent has other
# config settings besides mmsApiKey,
# but it's the only one that *must* be set. See:
# https://docs.cloudmanager.mongodb.com/reference/monitoring-agent/
COPY mongodb_mon_agent_entrypoint.bash /
RUN chown -R mongodb-mms-agent:mongodb-mms-agent /etc/mongodb-mms/
#USER mongodb-mms-agent - BUG(Krish) Uncomment after tests are complete
ENTRYPOINT ["/mongodb_mon_agent_entrypoint.bash"]