| |
| # Copyright 2017-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| |
| # Dockerfile.ceilo-agent-notification: docker file for building srikanthvavila/ceilometer-agent-notification container |
| # It is built on top of srikanthvavila/ceilometer-base container |
| |
| FROM srikanthvavila/ceilometer-base |
| LABEL maintainer "Open Networking Lab" |
| |
| ADD start-ceilo-agent-notification.sh /usr/bin/start-ceilo-agent-notification.sh |
| RUN chmod +x /usr/bin/start-ceilo-agent-notification.sh |
| #ADD ceilo-agent-notification.conf /etc/supervisor/conf.d/ |
| |
| #CORD Monitoring service specific changes |
| #Clone cord monitoring repository |
| RUN git clone https://github.com/opencord/monitoring.git /opt/cord/monitoring/ |
| #Copy CORD specific ceilometer plugins to this container. |
| RUN cp -r /opt/cord/monitoring/xos/synchronizer/ceilometer/ceilometer-plugins/network/ext_services /usr/local/lib/python2.7/dist-packages/ceilometer/network/ |
| #Copy the script that updates ceilometer entry_points.txt to load the above CORD specific plugins |
| ADD load-ceilo-plugins.sh /usr/bin/load-ceilo-plugins.sh |
| #Copy CORD specific pipeline.yaml file to this container. |
| ADD pipeline.yaml /etc/ceilometer/pipeline.yaml |
| #Copy the script that updates pipeline with other publishers (like kafka...etc) at run time based on the user inputs |
| ADD update-pipeline.sh /usr/bin/update-pipeline.sh |
| #Install kafka-python |
| RUN pip install kafka-python |
| #Add ceilometer kafka broker patch. |
| #There is a bug in ceilometer/publisher/kafka_broker.py that causes inconsistent kafka publishing behavior |
| #The patch is pulled from ceilometer master branch: https://review.openstack.org/#/c/392637/5/ceilometer/publisher/kafka_broker.py |
| #On top of that patch, a minor change is done in _send() method to make it work with mitaka code base |
| COPY ceilometer_kafka_patch/kafka_broker.py /usr/local/lib/python2.7/dist-packages/ceilometer/publisher/ |
| |
| RUN echo "#!/bin/bash" > /usr/bin/create-mongo-user-db.sh |
| RUN echo "if [ ! -z \"\$USE_MONGODB\" ]; then mongo --host mongodb --eval 'db = db.getSiblingDB(\"ceilometer\"); db.createUser({user: \"ceilometer\", pwd: \"password\", roles: [ \"readWrite\", \"dbAdmin\" ]})'; fi" >> /usr/bin/create-mongo-user-db.sh |
| RUN chmod +x /usr/bin/create-mongo-user-db.sh |
| |
| RUN echo "#!/bin/bash" > /usr/bin/config-ceilometer-mongo.sh |
| RUN echo "if [ ! -z \"\$USE_MONGODB\" ]; then sed -r -i \"s,[#]*(metering_connection) = (.*),metering_connection = mongodb://ceilometer:password@mongodb:27017/ceilometer,g\" /etc/ceilometer/ceilometer.conf; fi" >> /usr/bin/config-ceilometer-mongo.sh |
| RUN echo "if [ ! -z \"\$USE_MONGODB\" ]; then sed -r -i \"s,[#]*(event_connection) = (.*),event_connection = mongodb://ceilometer:password@mongodb:27017/ceilometer,g\" /etc/ceilometer/ceilometer.conf; fi" >> /usr/bin/config-ceilometer-mongo.sh |
| RUN chmod +x /usr/bin/config-ceilometer-mongo.sh |
| |
| #Create a script that runs all the needed shell scripts when the container is started |
| RUN echo "#!/bin/bash" > /usr/bin/deploy-ceilo-agent-notification |
| RUN echo "bash /usr/bin/create-mongo-user-db.sh" >> /usr/bin/deploy-ceilo-agent-notification |
| RUN echo "bash /usr/bin/load-ceilo-plugins.sh" >> /usr/bin/deploy-ceilo-agent-notification |
| RUN echo "bash /usr/bin/update-pipeline.sh" >> /usr/bin/deploy-ceilo-agent-notification |
| RUN echo "bash /usr/bin/config-ceilometer-mongo.sh" >> /usr/bin/deploy-ceilo-agent-notification |
| RUN echo "/usr/bin/start-ceilo-agent-notification.sh" >> /usr/bin/deploy-ceilo-agent-notification |
| RUN chmod +x /usr/bin/deploy-ceilo-agent-notification |
| |
| CMD ["/usr/bin/deploy-ceilo-agent-notification"] |