From 2847e052aef84d97b674aee3a655c55091844925 Mon Sep 17 00:00:00 2001 From: Emma Foley Date: Wed, 11 Nov 2020 19:05:11 +0000 Subject: [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 --- docker/barometer-collectd/Dockerfile | 17 +++---- src/Makefile | 14 +++--- src/package-list.mk | 7 +-- systems/centos/7/build_base_machine.sh | 16 +++++-- systems/centos/8/build_base_machine.sh | 87 ++++++++++++++++++++++++++++++++++ 5 files changed, 114 insertions(+), 27 deletions(-) create mode 100755 systems/centos/8/build_base_machine.sh diff --git a/docker/barometer-collectd/Dockerfile b/docker/barometer-collectd/Dockerfile index 8de66c69..ad4a1579 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 49ce2980..b5494265 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 27ca3de3..ec64df14 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 62473fa3..41595d7e 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 00000000..45112f7a --- /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 ^#) -- cgit 1.2.3-korg