aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmma Foley <efoley@redhat.com>2020-11-11 19:05:11 +0000
committerEmma Foley <efoley@redhat.com>2020-11-19 13:41:50 +0000
commit2847e052aef84d97b674aee3a655c55091844925 (patch)
tree8de8d58d518586b3da45a9ee3ae5f535471e7686
parent26a9cd755e8149c16a16ab9af5b54ca1893484fc (diff)
[container][collectd] Update barometer-collectd container for CentOS 8
Update collectd to 5.12 Add in CentOS as base for the barometer-collectd container Remove openstack plugins - they are not used anymore Use packaged DPDK (v18.11 in CentOS 7 amd v19.11 in CentOS 8) Install packages from package manager instead of building libpqos, pmu-tools and librdkafka Combine install commands into one for CentOS8 (systems/centos/8/build_base_machine.sh) These changes reduce the size of the container from 1.7GB to ~825MB. Change-Id: I7e474f9578cdbcc7cce8c4fbc5e297eab89fd371 Signed-off-by: Emma Foley <efoley@redhat.com>
-rw-r--r--docker/barometer-collectd/Dockerfile17
-rw-r--r--src/Makefile14
-rw-r--r--src/package-list.mk7
-rwxr-xr-xsystems/centos/7/build_base_machine.sh16
-rwxr-xr-xsystems/centos/8/build_base_machine.sh87
5 files changed, 114 insertions, 27 deletions
diff --git a/docker/barometer-collectd/Dockerfile b/docker/barometer-collectd/Dockerfile
index 8de66c6..ad4a157 100644
--- a/docker/barometer-collectd/Dockerfile
+++ b/docker/barometer-collectd/Dockerfile
@@ -13,30 +13,27 @@
# limitations under the License.
#
-FROM centos:7
-RUN yum update -y && \
- yum install -y which sudo git && \
- yum clean all && \
+FROM centos:8
+RUN dnf update -y && \
+ dnf install -y which sudo git && \
+ dnf clean all && \
git config --global http.sslVerify false
ENV DOCKER y
ENV WITH_DPDK y
ENV COLLECTD_FLAVOR stable
ENV repos_dir /src
-ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins
WORKDIR ${repos_dir}
RUN git clone https://gerrit.opnfv.org/gerrit/barometer
+
WORKDIR ${repos_dir}/barometer/systems
RUN sh ./build_base_machine.sh && \
+ dnf clean all && rm -rf /var/cache/dnf && \
+ cd ${repos_dir}/ && rm -rf barometer && \
useradd -ms /bin/bash collectd_exec && \
echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
-WORKDIR ${openstack_plugins}
-RUN make && \
- pip install --upgrade pip && \
- pip install -r ${openstack_plugins}/collectd-openstack-plugins/requirements.txt
-
COPY run_collectd.sh /run_collectd.sh
RUN chmod +x /run_collectd.sh
diff --git a/src/Makefile b/src/Makefile
index 49ce298..b549426 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -35,14 +35,14 @@ with-dpdk:
export WITH_DPDK
include mk/master.mk
+# TODO(elfoley) Later on, we can re-enable build from source as a user configured option
SUBDIRS =
-ifdef WITH_DPDK
-SUBDIRS += dpdk
-endif
-SUBDIRS += libpqos
-SUBDIRS += pmu-tools
-SUBDIRS += librdkafka
+#ifdef WITH_DPDK
+#SUBDIRS += dpdk
+#endif
+#SUBDIRS += libpqos
+#SUBDIRS += pmu-tools
+#SUBDIRS += librdkafka
SUBDIRS += collectd
-SUBDIRS += collectd-openstack-plugins
include mk/make-subsys.mk
diff --git a/src/package-list.mk b/src/package-list.mk
index 27ca3de..ec64df1 100644
--- a/src/package-list.mk
+++ b/src/package-list.mk
@@ -15,7 +15,7 @@ PMUTOOLS_URL ?= https://github.com/andikleen/pmu-tools
PMUTOOLS_TAG ?= master
KAFKA_URL ?= https://github.com/edenhill/librdkafka.git
-KAFKA_TAG ?= v0.9.5
+KAFKA_TAG ?= v1.5.2
# collectd section
COLLECTD_URL ?= https://github.com/collectd/collectd
@@ -27,7 +27,7 @@ COLLECTD_URL ?= https://github.com/collectd/collectd
# set pull requests with experimental features
ifeq ($(COLLECTD_FLAVOR), stable)
# using latest stable release
- COLLECTD_TAG ?= collectd-5.11
+ COLLECTD_TAG ?= collectd-5.12
SAMPLE_CONF_VARIANT_NAME = collectd_sample_configs
else
# 'master' and 'experimental' collectd flavors are both using
@@ -40,6 +40,3 @@ ifeq ($(COLLECTD_FLAVOR), experimental)
COLLECTD_USE_EXPERIMENTAL_PR ?= y
endif #end of experimental-branch handling
endif
-
-COLLECTD_OPENSTACK_URL ?= https://github.com/openstack/collectd-openstack-plugins
-COLLECTD_OPENSTACK_TAG ?= stable/pike
diff --git a/systems/centos/7/build_base_machine.sh b/systems/centos/7/build_base_machine.sh
index 62473fa..41595d7 100755
--- a/systems/centos/7/build_base_machine.sh
+++ b/systems/centos/7/build_base_machine.sh
@@ -32,8 +32,8 @@ yum-builddep -y collectd
# Install required packages
yum -y install $(echo "
-kernel-devel
-kernel-headers
+#kernel-devel
+#kernel-headers
make
gcc
gcc-c++
@@ -58,10 +58,16 @@ net-snmp-devel
hiredis-devel
libmicrohttpd-devel
jansson-devel
+libatasmart-devel
+librdkafka-devel
+yajl-devel
+protobuf-c-devel
+rrdtool-devel
+intel-cat-cmt
+dpdk-18.11
+qpid-proton-c-devel
-# install epel release required for git-review
-epel-release
libvirt-python
-python2-pip
+python3-pip
numactl-devel
" | grep -v ^#)
diff --git a/systems/centos/8/build_base_machine.sh b/systems/centos/8/build_base_machine.sh
new file mode 100755
index 0000000..45112f7
--- /dev/null
+++ b/systems/centos/8/build_base_machine.sh
@@ -0,0 +1,87 @@
+#!/bin/bash
+#
+# Build a base machine for CentOS distro
+#
+# Copyright 2017-2019 Intel Corporation and OPNFV. All rights reserved.
+#
+# 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.
+#
+#
+# Contributors:
+# Aihua Li, Huawei Technologies.
+# Martin Klozik, Intel Corporation.
+# Maryam Tahhan, Intel Corporation.
+# Synchronize package index files
+dnf -y update
+
+# For collectd
+dnf install -y yum-utils
+dnf install -y epel-release
+dnf install -y centos-release-opstools
+dnf builddep -y collectd
+
+# For CentOS 8, a lot of the dependencies are from PowerTools repo
+dnf install -y 'dnf-command(config-manager)' && dnf config-manager --set-enabled PowerTools
+
+# CentOS 8 doesn't have intel-cmt-cat-devel packaged, so use the version from CentOS7
+dnf install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/intel-cmt-cat-3.0.1-1.el7.x86_64.rpm \
+ http://mirror.centos.org/centos/7/os/x86_64/Packages/intel-cmt-cat-devel-3.0.1-1.el7.x86_64.rpm
+
+# Install required packages
+dnf -y install $(echo "
+
+make
+gcc
+gcc-c++
+autoconf
+automake
+flex
+bison
+libtool
+pkg-config
+git-core
+rpm-build
+libcap-devel
+xfsprogs-devel
+iptables-devel
+libmemcached-devel
+gtk2-devel
+libvirt-devel
+libvirt-daemon
+mcelog
+wget
+net-snmp-devel
+hiredis-devel
+libmicrohttpd-devel
+jansson-devel
+libpcap-devel
+lua-devel
+OpenIPMI-devel
+libmnl-devel
+librabbitmq-devel
+iproute-static
+libatasmart-devel
+librdkafka-devel
+yajl-devel
+protobuf-c-devel
+rrdtool-devel
+dpdk-19.11
+qpid-proton-c-devel
+
+#install epel release required for git-review
+epel-release
+python3-libvirt
+python3-pip
+python36-devel
+numactl-devel
+" | grep -v ^#)