diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3683e58 --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ +*.py[cod] + +# C extensions +*.so + +# Packages +*.egg +*.egg-info +dist +build +.eggs +eggs +parts +bin +var +sdist +develop-eggs +.installed.cfg +lib +lib64 + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +cover +.tox +nosetests.xml +.testrepository +.venv + +# Translations +*.mo + +# Mr Developer +.mr.developer.cfg +.project +.pydevproject + +# Complexity +output/*.html +output/*/index.html + +# Sphinx +doc/build + +# oslo-config-generator +etc/*.sample + +# pbr generates these +AUTHORS +ChangeLog + +# Editors +*~ +.*.swp +.*sw? + +# Vagrant +.vagrant +vagrant/Vagrantfile.custom +vagrant/vagrantkey* + +# generated openrc +openrc diff --git a/docker/base-tools/Dockerfile.j2 b/docker/base-tools/Dockerfile.j2 new file mode 100644 index 0000000..6b67b93 --- /dev/null +++ b/docker/base-tools/Dockerfile.j2 @@ -0,0 +1,8 @@ +FROM {{ namespace }}/base:{{ tag }} +MAINTAINER {{ maintainer }} + +# This will prevent questions from being asked during the install +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get install -y --no-install-recommends lvm2 open-iscsi tgt vim less patch \ + && apt-get clean diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 new file mode 100644 index 0000000..b9ac262 --- /dev/null +++ b/docker/base/Dockerfile.j2 @@ -0,0 +1,25 @@ +FROM {{ base_distro }}:{{ base_tag }} +MAINTAINER {{ maintainer }} + +# This will prevent questions from being asked during the install +ENV DEBIAN_FRONTEND noninteractive + +COPY sources.list.debian /etc/apt/sources.list +COPY apt_preferences.debian /etc/apt/preferences + +# Ceph and Mariadb keys +RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 08B73419AC32B4E966C1A330E84AC2C0460F3994 \ + && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get dist-upgrade -y \ + && apt-get install -y --no-install-recommends ca-certificates curl sudo openssl python python-jinja2 python-six \ + && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ + && python get-pip.py \ + && rm get-pip.py \ + && apt-get clean + +COPY sudoers /etc/sudoers +RUN chmod 440 /etc/sudoers \ + && groupadd microservices diff --git a/docker/base/apt_preferences.debian b/docker/base/apt_preferences.debian new file mode 100644 index 0000000..c084bc4 --- /dev/null +++ b/docker/base/apt_preferences.debian @@ -0,0 +1,7 @@ +Package: * +Pin: origin "download.ceph.com" +Pin-Priority: 500 + +Package: * +Pin: origin "lon1.mirrors.digitalocean.com" +Pin-Priority: 500 diff --git a/docker/base/sources.list.debian b/docker/base/sources.list.debian new file mode 100644 index 0000000..56bde2b --- /dev/null +++ b/docker/base/sources.list.debian @@ -0,0 +1,17 @@ +# Default repos +deb http://httpredir.debian.org/debian jessie main + +# jessie-backports +deb http://httpredir.debian.org/debian jessie-backports main contrib + +# jessie-updates, previously known as 'volatile' +deb http://httpredir.debian.org/debian jessie-updates main + +# debian security updates +deb http://security.debian.org jessie/updates main + +# Ceph repo +deb http://download.ceph.com/debian-hammer/ jessie main + +# Maria DB repo +deb [arch=amd64,i386] http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main diff --git a/docker/base/sudoers b/docker/base/sudoers new file mode 100644 index 0000000..2314501 --- /dev/null +++ b/docker/base/sudoers @@ -0,0 +1,12 @@ +Defaults: %microservices setenv + +# root may run any commands via sudo as the network seervice user. This is +# neededfor database migrations of existing services which have not been +# converted to run as a non-root user, but instead do that via sudo -E glance +root ALL=(ALL) ALL + +# anyone in the kolla group may run /usr/local/bin/kolla_set_configs as the +# root user via sudo without password confirmation +%microservices ALL=(root) NOPASSWD: /usr/bin/install + +#includedir /etc/sudoers.d diff --git a/tools/run-check-docker-syntax.sh b/tools/run-check-docker-syntax.sh new file mode 100755 index 0000000..ce3985b --- /dev/null +++ b/tools/run-check-docker-syntax.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +### Temp docker syntax checker script. Doesnt really check something... +set -e +for file in $(find . -name 'Dockerfile.j2') +do + fgrep -q FROM $file || echo 'Miss/ wrong FROM section in file' $file + fgrep -q MAINTAINER $file || echo 'Miss/ wrong MAINTEINER section in file' $file +done diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..293a287 --- /dev/null +++ b/tox.ini @@ -0,0 +1,16 @@ +[tox] +minversion = 1.6 +envlist = py34,py27,pypy,pep8 +skipsdist = True + +[testenv:linters] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh + +[testenv:pep8] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh + +[testenv:bashate] +commands = + {toxinidir}/tools/run-check-docker-syntax.sh