diff --git a/tools/images/vbmc/Dockerfile b/tools/images/vbmc/Dockerfile new file mode 100644 index 000000000..0209e516d --- /dev/null +++ b/tools/images/vbmc/Dockerfile @@ -0,0 +1,43 @@ +FROM centos:7 +MAINTAINER pete.birley@att.com + +ARG PROJECT=nova +ARG UID=42424 +ARG GID=42424 + +RUN set -ex ;\ + yum -y upgrade ;\ + yum -y install \ + epel-release \ + centos-release-openstack-newton \ + centos-release-qemu-ev ;\ + yum -y install \ + ceph-common \ + git \ + libcgroup-tools \ + libguestfs \ + libvirt \ + libvirt-daemon \ + libvirt-daemon-config-nwfilter \ + libvirt-daemon-driver-lxc \ + libvirt-daemon-driver-nwfilter \ + libvirt-devel \ + openvswitch \ + python-devel \ + qemu-kvm ;\ + yum -y group install \ + "Development Tools" ;\ + yum clean all ;\ + rm -rf /var/cache/yum ;\ + curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py ;\ + python /tmp/get-pip.py ;\ + rm -f /tmp/get-pip.py ;\ + TMP_DIR=$(mktemp -d) ;\ + git clone https://github.com/openstack/virtualbmc ${TMP_DIR} ;\ + pip install -U ${TMP_DIR} ;\ + rm -rf ${TMP_DIR} ;\ + groupadd -g ${GID} ${PROJECT} ;\ + useradd -u ${UID} -g ${PROJECT} -M -d /var/lib/${PROJECT} -s /usr/sbin/nologin -c "${PROJECT} user" ${PROJECT} ;\ + mkdir -p /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ + chown ${PROJECT}:${PROJECT} /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} ;\ + usermod -a -G qemu ${PROJECT} diff --git a/tools/images/vbmc/Makefile b/tools/images/vbmc/Makefile new file mode 100644 index 000000000..89a6bc0b7 --- /dev/null +++ b/tools/images/vbmc/Makefile @@ -0,0 +1,36 @@ +# Copyright 2017 The Openstack-Helm Authors. +# +# 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. + +# It's necessary to set this because some environments don't link sh -> bash. +SHELL := /bin/bash + +DOCKER_REGISTRY ?= docker.io +IMAGE_NAME ?= vbmc +IMAGE_PREFIX ?= openstackhelm +IMAGE_TAG ?= centos-0.1 +LABEL ?= putlabelshere + +IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG} + +# Build vbmc Docker image for this project +.PHONY: images +images: build_$(IMAGE_NAME) + +# Make targets intended for use by the primary targets above. +.PHONY: build_$(IMAGE_NAME) +build_$(IMAGE_NAME): + docker build \ + --label $(LABEL) \ + -t $(IMAGE) \ + . diff --git a/tools/images/vbmc/README.rst b/tools/images/vbmc/README.rst new file mode 100644 index 000000000..ab01dff80 --- /dev/null +++ b/tools/images/vbmc/README.rst @@ -0,0 +1,38 @@ +VBMC Container +============== + +This container builds a small image with kubectl and some other utilities for +use in both the ironic checks and development. + +Instructions +------------ + +OS Specific Host setup: +~~~~~~~~~~~~~~~~~~~~~~~ + +Ubuntu: +^^^^^^^ + +From a freshly provisioned Ubuntu 16.04 LTS host run: + +.. code:: bash + + sudo apt-get update -y + sudo apt-get install -y \ + docker.io \ + git + +Build the VBMC Image environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A known good image is published to dockerhub on a fairly regular basis, but if +you wish to build your own image, from the root directory of the OpenStack-Helm +repo run: + +.. code:: bash + + sudo docker build \ + --network=host \ + -t docker.io/openstackhelm/vbmc:centos-0.1 \ + tools/images/vbmc + sudo docker push docker.io/openstackhelm/vbmc:centos-0.1