summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>2016-03-03 07:51:46 +0100
committerJeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>2016-03-09 09:04:14 +0100
commit5d387349195dc0f82cc73815749e246793c8a194 (patch)
tree55c927e059081bc7639118b9d5dbd47836aa9dd9
parent0c26aa4e999e6146c11972a54fbb993d0ad56741 (diff)
downloaddocker-5d387349195dc0f82cc73815749e246793c8a194.tar.gz
Purge unrelated contents
-rw-r--r--01-base-asav/Dockerfile22
-rw-r--r--01-base-asav/README.md1
-rwxr-xr-x01-base-asav/entrypoint.sh48
-rw-r--r--01-base-imap/Dockerfile14
-rw-r--r--01-base-ldap/Dockerfile23
-rw-r--r--01-base-ldap/template.ldif142
-rw-r--r--01-base-mx/Dockerfile8
-rw-r--r--01-base-nodejs/Dockerfile49
-rw-r--r--01-base-web/Dockerfile16
-rw-r--r--02-base-web-rc/Dockerfile11
-rw-r--r--03-asav-in/Dockerfile3
-rw-r--r--03-asav-out/Dockerfile3
-rw-r--r--03-chwala/Dockerfile8
-rwxr-xr-x03-chwala/entrypoint.sh3
-rw-r--r--03-ext-mx-in/Dockerfile9
-rw-r--r--03-ext-mx-in/README.md2
-rwxr-xr-x03-ext-mx-in/entrypoint.sh47
-rw-r--r--03-ext-mx-out/Dockerfile9
-rw-r--r--03-ext-mx-out/README.md1
-rwxr-xr-x03-ext-mx-out/entrypoint.sh36
-rw-r--r--03-freebusy/Dockerfile8
-rwxr-xr-x03-freebusy/entrypoint.sh3
-rw-r--r--03-guam/Dockerfile49
-rw-r--r--03-guam/README.md10
-rwxr-xr-x03-guam/entrypoint.sh21
-rw-r--r--03-guam/sys.config84
-rw-r--r--03-http-prx/Dockerfile1
-rw-r--r--03-imap-mupdate/Dockerfile7
-rw-r--r--03-imap-mupdate/cyrus.conf.tpl16
-rwxr-xr-x03-imap-mupdate/entrypoint.sh44
-rw-r--r--03-imap-mupdate/imapd.conf.tpl57
-rw-r--r--03-imapb/Dockerfile7
-rwxr-xr-x03-imapb/entrypoint.sh6
-rw-r--r--03-imapf-ext/Dockerfile7
-rw-r--r--03-imapf-ext/cyrus.conf.tpl22
-rwxr-xr-x03-imapf-ext/entrypoint.sh44
-rw-r--r--03-imapf-ext/imapd.conf.tpl57
-rw-r--r--03-imapf-int/Dockerfile7
-rw-r--r--03-imapf-int/cyrus.conf.tpl22
-rwxr-xr-x03-imapf-int/entrypoint.sh44
-rw-r--r--03-imapf-int/imapd.conf.tpl57
-rw-r--r--03-int-mx/Dockerfile8
-rw-r--r--03-int-mx/README.md2
-rwxr-xr-x03-int-mx/entrypoint.sh41
-rw-r--r--03-irony/Dockerfile8
-rwxr-xr-x03-irony/entrypoint.sh3
-rw-r--r--03-jmap-proxy/Dockerfile121
-rw-r--r--03-jmap-proxy/Makefile5
-rw-r--r--03-jmap-proxy/bashrc13
-rw-r--r--03-jmap-proxy/entrypoint.sh8
-rw-r--r--03-jmap-proxy/nginx.conf140
-rw-r--r--03-ldap-master/Dockerfile16
-rwxr-xr-x03-ldap-master/entrypoint.sh74
-rw-r--r--03-ldap-slave/Dockerfile4
-rwxr-xr-x03-ldap-slave/entrypoint.sh5
-rw-r--r--03-manticore/Dockerfile49
-rw-r--r--03-manticore/entrypoint.sh19
-rw-r--r--03-riak/Dockerfile19
-rw-r--r--03-riak/entrypoint.sh8
-rw-r--r--03-roundcube-next/Dockerfile46
-rw-r--r--03-roundcube-next/entrypoint.sh11
-rw-r--r--03-roundcubemail/Dockerfile10
-rw-r--r--03-roundcubemail/entrypoint.sh53
-rw-r--r--03-submission/Dockerfile7
-rw-r--r--03-syncroton/Dockerfile8
-rwxr-xr-x03-syncroton/entrypoint.sh3
-rw-r--r--03-wallace/Dockerfile16
-rw-r--r--03-wallace/entrypoint.sh26
-rw-r--r--03-webadmin/Dockerfile11
-rw-r--r--03-webadmin/entrypoint.sh54
-rw-r--r--04-chwala-database/Dockerfile9
-rw-r--r--04-freebusy-database/Dockerfile9
-rw-r--r--04-irony-database/Dockerfile9
-rw-r--r--04-roundcubemail-database/Dockerfile9
-rw-r--r--04-syncroton-database/Dockerfile9
-rw-r--r--04-webadmin-database/Dockerfile9
-rw-r--r--05-asav-in-atomicapp/Dockerfile9
-rw-r--r--05-asav-in-atomicapp/Nulecule42
-rw-r--r--05-asav-in-atomicapp/artifacts/docker/run-pod7
-rw-r--r--05-asav-in-atomicapp/artifacts/kubernetes/pod.json30
-rw-r--r--05-asav-in-atomicapp/artifacts/kubernetes/service.json21
-rw-r--r--05-asav-out-atomicapp/Dockerfile9
-rw-r--r--05-asav-out-atomicapp/Nulecule42
-rw-r--r--05-asav-out-atomicapp/artifacts/docker/run-pod4
-rw-r--r--05-asav-out-atomicapp/artifacts/kubernetes/pod.json30
-rw-r--r--05-asav-out-atomicapp/artifacts/kubernetes/service.json21
-rw-r--r--05-chwala-atomicapp/Dockerfile9
-rw-r--r--05-chwala-atomicapp/Nulecule45
-rw-r--r--05-chwala-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-chwala-atomicapp/artifacts/kubernetes/pod.json48
-rw-r--r--05-chwala-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-ext-mx-in-atomicapp/Dockerfile9
-rw-r--r--05-ext-mx-in-atomicapp/Nulecule52
-rw-r--r--05-ext-mx-in-atomicapp/README.md2
-rw-r--r--05-ext-mx-in-atomicapp/artifacts/docker/run-pod7
-rw-r--r--05-ext-mx-in-atomicapp/artifacts/kubernetes/controller.json38
-rw-r--r--05-ext-mx-in-atomicapp/artifacts/kubernetes/pod.json37
-rw-r--r--05-ext-mx-in-atomicapp/artifacts/kubernetes/service.json23
-rw-r--r--05-ext-mx-out-atomicapp/Dockerfile9
-rw-r--r--05-ext-mx-out-atomicapp/Nulecule50
-rw-r--r--05-ext-mx-out-atomicapp/README.md1
-rw-r--r--05-ext-mx-out-atomicapp/artifacts/docker/run-pod4
-rw-r--r--05-ext-mx-out-atomicapp/artifacts/kubernetes/pod.json37
-rw-r--r--05-ext-mx-out-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-freebusy-atomicapp/Dockerfile9
-rw-r--r--05-freebusy-atomicapp/Nulecule65
-rw-r--r--05-freebusy-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-freebusy-atomicapp/artifacts/kubernetes/pod.json45
-rw-r--r--05-freebusy-atomicapp/artifacts/kubernetes/service.json28
-rwxr-xr-x05-freebusy-atomicapp/entrypoint.sh3
-rw-r--r--05-guam-atomicapp/Dockerfile9
-rw-r--r--05-guam-atomicapp/Nulecule38
-rw-r--r--05-guam-atomicapp/README.md10
-rw-r--r--05-guam-atomicapp/artifacts/docker/run-pod9
-rw-r--r--05-guam-atomicapp/artifacts/kubernetes/controller.json41
-rw-r--r--05-guam-atomicapp/artifacts/kubernetes/pod.json27
-rw-r--r--05-guam-atomicapp/artifacts/kubernetes/service.json28
-rwxr-xr-x05-guam-atomicapp/entrypoint.sh5
-rw-r--r--05-imap-mupdate-atomicapp/Dockerfile9
-rw-r--r--05-imap-mupdate-atomicapp/Nulecule50
-rw-r--r--05-imap-mupdate-atomicapp/artifacts/docker/run-pod1
-rw-r--r--05-imap-mupdate-atomicapp/artifacts/kubernetes/pod.json38
-rw-r--r--05-imap-mupdate-atomicapp/artifacts/kubernetes/service.json23
-rwxr-xr-x05-imap-mupdate-atomicapp/entrypoint.sh4
-rw-r--r--05-imapb-atomicapp/Dockerfile9
-rw-r--r--05-imapb-atomicapp/Nulecule47
-rw-r--r--05-imapb-atomicapp/artifacts/docker/run-pod9
-rw-r--r--05-imapb-atomicapp/artifacts/kubernetes/service.json43
-rw-r--r--05-imapb-atomicapp/artifacts/kubernetes/storage.json17
-rwxr-xr-x05-imapb-atomicapp/entrypoint.sh6
-rw-r--r--05-imapf-ext-atomicapp/Dockerfile9
-rw-r--r--05-imapf-ext-atomicapp/Nulecule50
-rw-r--r--05-imapf-ext-atomicapp/artifacts/docker/run-pod9
-rw-r--r--05-imapf-ext-atomicapp/artifacts/kubernetes/pod.json55
-rw-r--r--05-imapf-ext-atomicapp/artifacts/kubernetes/service.json43
-rwxr-xr-x05-imapf-ext-atomicapp/entrypoint.sh6
-rw-r--r--05-imapf-int-atomicapp/Dockerfile9
-rw-r--r--05-imapf-int-atomicapp/Nulecule50
-rw-r--r--05-imapf-int-atomicapp/artifacts/docker/run-pod9
-rw-r--r--05-imapf-int-atomicapp/artifacts/kubernetes/pod.json55
-rw-r--r--05-imapf-int-atomicapp/artifacts/kubernetes/service.json43
-rwxr-xr-x05-imapf-int-atomicapp/entrypoint.sh6
-rw-r--r--05-int-mx-atomicapp/Dockerfile9
-rw-r--r--05-int-mx-atomicapp/Nulecule54
-rw-r--r--05-int-mx-atomicapp/README.md2
-rw-r--r--05-int-mx-atomicapp/artifacts/docker/run-pod4
-rw-r--r--05-int-mx-atomicapp/artifacts/kubernetes/pod.json38
-rw-r--r--05-int-mx-atomicapp/artifacts/kubernetes/service.json28
-rwxr-xr-x05-int-mx-atomicapp/entrypoint.sh13
-rw-r--r--05-irony-atomicapp/Dockerfile9
-rw-r--r--05-irony-atomicapp/Nulecule45
-rw-r--r--05-irony-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-irony-atomicapp/artifacts/kubernetes/pod.json48
-rw-r--r--05-irony-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-jmap-proxy-atomicapp/Dockerfile9
-rw-r--r--05-jmap-proxy-atomicapp/Nulecule37
-rw-r--r--05-jmap-proxy-atomicapp/artifacts/docker/run-pod4
-rw-r--r--05-jmap-proxy-atomicapp/artifacts/kubernetes/pod.json23
-rw-r--r--05-jmap-proxy-atomicapp/artifacts/kubernetes/service.json23
-rw-r--r--05-ldap-master-atomicapp/Dockerfile9
-rw-r--r--05-ldap-master-atomicapp/Nulecule62
-rw-r--r--05-ldap-master-atomicapp/artifacts/docker/run-pod8
-rw-r--r--05-ldap-master-atomicapp/artifacts/kubernetes/pod.json49
-rw-r--r--05-ldap-master-atomicapp/artifacts/kubernetes/service.json28
-rwxr-xr-x05-ldap-master-atomicapp/entrypoint.sh8
-rw-r--r--05-ldap-slave-atomicapp/Dockerfile9
-rw-r--r--05-ldap-slave-atomicapp/Nulecule47
-rw-r--r--05-ldap-slave-atomicapp/artifacts/docker/run-pod9
-rw-r--r--05-ldap-slave-atomicapp/artifacts/kubernetes/service.json33
-rwxr-xr-x05-ldap-slave-atomicapp/entrypoint.sh5
-rw-r--r--05-manticore-atomicapp/Dockerfile9
-rw-r--r--05-manticore-atomicapp/Nulecule67
-rw-r--r--05-manticore-atomicapp/artifacts/docker/run-pod11
-rw-r--r--05-manticore-atomicapp/artifacts/kubernetes/pod.json50
-rw-r--r--05-manticore-atomicapp/artifacts/kubernetes/service.json24
-rw-r--r--05-roundcube-next-atomicapp/Dockerfile9
-rw-r--r--05-roundcube-next-atomicapp/Nulecule41
-rw-r--r--05-roundcube-next-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-roundcube-next-atomicapp/artifacts/kubernetes/pod.json48
-rw-r--r--05-roundcube-next-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-roundcubemail-atomicapp/Dockerfile9
-rw-r--r--05-roundcubemail-atomicapp/Nulecule64
-rw-r--r--05-roundcubemail-atomicapp/artifacts/docker/run-pod10
-rw-r--r--05-roundcubemail-atomicapp/artifacts/kubernetes/pod.json48
-rw-r--r--05-roundcubemail-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-submission-atomicapp/Dockerfile9
-rw-r--r--05-submission-atomicapp/Nulecule42
-rw-r--r--05-submission-atomicapp/artifacts/docker/run-pod4
-rw-r--r--05-submission-atomicapp/artifacts/kubernetes/controller.json37
-rw-r--r--05-submission-atomicapp/artifacts/kubernetes/service.json23
-rw-r--r--05-syncroton-atomicapp/Dockerfile9
-rw-r--r--05-syncroton-atomicapp/Nulecule59
-rw-r--r--05-syncroton-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-syncroton-atomicapp/artifacts/kubernetes/pod.json48
-rw-r--r--05-syncroton-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--05-wallace-atomicapp/Dockerfile9
-rw-r--r--05-wallace-atomicapp/Nulecule52
-rw-r--r--05-wallace-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-wallace-atomicapp/artifacts/kubernetes/pod.json38
-rw-r--r--05-wallace-atomicapp/artifacts/kubernetes/service.json23
-rw-r--r--05-webadmin-atomicapp/Dockerfile9
-rw-r--r--05-webadmin-atomicapp/Nulecule71
-rw-r--r--05-webadmin-atomicapp/artifacts/docker/run-pod5
-rw-r--r--05-webadmin-atomicapp/artifacts/kubernetes/pod.json53
-rw-r--r--05-webadmin-atomicapp/artifacts/kubernetes/service.json28
-rw-r--r--99-ci-jessie/Dockerfile23
-rwxr-xr-x99-ci-jessie/entrypoint.sh148
-rw-r--r--99-ci-jessie/functions.sh65
-rw-r--r--99-ci-jessie/kolab.list2
-rw-r--r--99-ci-maipo/Dockerfile121
-rw-r--r--99-ci-maipo/dbus.service16
-rwxr-xr-x99-ci-maipo/entrypoint.sh148
-rw-r--r--99-ci-maipo/functions.sh65
-rw-r--r--99-ci-maipo/httpd.service4
-rw-r--r--99-ci-maipo/sudoers.drydock-worker1
-rw-r--r--99-ci-maipo/systemctl680
-rw-r--r--99-ci-maipo/systemctl-socket-daemon67
-rw-r--r--99-ci-maipo/vimrc9
-rw-r--r--99-ci-trusty/Dockerfile23
-rwxr-xr-x99-ci-trusty/entrypoint.sh148
-rw-r--r--99-ci-trusty/functions.sh65
-rw-r--r--99-ci-trusty/kolab.list2
-rw-r--r--99-ci-twentythree/Dockerfile107
-rw-r--r--99-ci-twentythree/dbus.service16
-rwxr-xr-x99-ci-twentythree/entrypoint.sh148
-rw-r--r--99-ci-twentythree/functions.sh65
-rw-r--r--99-ci-twentythree/httpd.service4
-rw-r--r--99-ci-twentythree/sudoers.drydock-worker1
-rw-r--r--99-ci-twentythree/systemctl680
-rw-r--r--99-ci-twentythree/systemctl-socket-daemon67
-rw-r--r--99-ci-twentythree/vimrc9
-rw-r--r--99-ci-twentytwo/Dockerfile107
-rw-r--r--99-ci-twentytwo/dbus.service16
-rwxr-xr-x99-ci-twentytwo/entrypoint.sh148
-rw-r--r--99-ci-twentytwo/functions.sh65
-rw-r--r--99-ci-twentytwo/httpd.service4
-rw-r--r--99-ci-twentytwo/sudoers.drydock-worker1
-rw-r--r--99-ci-twentytwo/systemctl680
-rw-r--r--99-ci-twentytwo/systemctl-socket-daemon67
-rw-r--r--99-ci-twentytwo/vimrc9
-rw-r--r--99-ci-xenial/Dockerfile23
-rwxr-xr-x99-ci-xenial/entrypoint.sh148
-rw-r--r--99-ci-xenial/functions.sh65
-rw-r--r--99-ci-xenial/kolab.list2
-rw-r--r--atomicapp/Dockerfile9
-rw-r--r--atomicapp/Nulecule79
-rw-r--r--atomicapp/artifacts/kubernetes/pod.json33
-rw-r--r--atomicapp/artifacts/kubernetes/service.json31
-rw-r--r--docs/Makefile177
-rw-r--r--docs/conf.py261
-rw-r--r--docs/images/base-asav.rst12
-rw-r--r--docs/index.rst707
252 files changed, 0 insertions, 10421 deletions
diff --git a/01-base-asav/Dockerfile b/01-base-asav/Dockerfile
deleted file mode 100644
index 496b595..0000000
--- a/01-base-asav/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- amavisd-new \
- clamav && \
- yum clean all
-
-VOLUME [ "/data" ]
-
-EXPOSE 10024
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ \
- "/usr/sbin/amavisd", \
- "-u", "amavis", \
- "-g", "amavis", \
- "-c", "/etc/amavisd/amavisd.conf", \
- "foreground" \
- ]
-
diff --git a/01-base-asav/README.md b/01-base-asav/README.md
deleted file mode 100644
index 2844edd..0000000
--- a/01-base-asav/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## Anti-Spam and Anti-Virus
diff --git a/01-base-asav/entrypoint.sh b/01-base-asav/entrypoint.sh
deleted file mode 100755
index a8bf5fe..0000000
--- a/01-base-asav/entrypoint.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_var KOLAB_EXT_MX_IN_SERVICE_HOST || check_var KOLAB_EXT_MX_OUT_SERVICE_HOST || exit 1
-
-check_vars \
- DOMAIN \
- KOLAB_ROLE \
- || exit 1
-
-persist \
- /var/spool/amavisd/
-
-su -s /bin/bash - amavis -c 'nohup /usr/sbin/clamd -c /etc/clamd.d/amavisd.conf --pid /var/run/amavisd/clamd.pid &'
-
-if [ -z "${DOMAIN}" -o "${DOMAIN}" == "" ]; then
- DOMAIN="docker.container"
-fi
-
-if [ -z "$(hostname | awk -F'.' '{print $3}')" -a ! -z "${DOMAIN}" ]; then
- sed -r -i \
- -e "s/^\\\$mydomain = .*$/\$mydomain = '${DOMAIN}';/g" \
- -e "s/^# \\\$myhostname.*$/\$myhostname = '$(hostname).${DOMAIN}';/g" \
- /etc/amavisd/amavisd.conf
-fi
-
-if [ "${KOLAB_ROLE}" == "ASAV_IN" ]; then
- FORWARD_METHOD="smtp:[${KOLAB_EXT_MX_IN_SERVICE_HOST}]:10025"
-elif [ "${KOLAB_ROLE}" == "ASAV_OUT" ]; then
- FORWARD_METHOD="smtp:[${KOLAB_EXT_MX_OUT_SERVICE_HOST}]:10025"
-fi
-
-if [ ! -z "${FORWARD_METHOD}" ]; then
- sed -r -i \
- -e "s/^# \\\$forward_method.*$/\$forward_method = '${FORWARD_METHOD}';/g" \
- /etc/amavisd/amavisd.conf
-fi
-
-if [ $# -lt 1 ]; then
- exec /usr/sbin/amavisd \
- -u amavis \
- -g amavis \
- -c /etc/amavisd/amavisd.conf \
- foreground
-else
- exec "$@"
-fi
diff --git a/01-base-imap/Dockerfile b/01-base-imap/Dockerfile
deleted file mode 100644
index 0959ceb..0000000
--- a/01-base-imap/Dockerfile
+++ /dev/null
@@ -1,14 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- cyrus-imapd \
- kolab-saslauthd && \
- yum clean all
-
-EXPOSE 110 143 993 995 4190
-
-CMD [ \
- "/usr/lib/cyrus-imapd/cyrus-master", \
- "-L", \
- "/dev/null" \
- ]
diff --git a/01-base-ldap/Dockerfile b/01-base-ldap/Dockerfile
deleted file mode 100644
index 0e612ca..0000000
--- a/01-base-ldap/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y --setopt tsflags= install \
- kolab-schema && \
- yum -y install \
- kolab-ldap \
- net-tools && \
- yum clean all
-
-RUN cp /usr/share/doc/kolab-schema-*/*.ldif \
- /etc/dirsrv/schema/99kolab3.ldif && \
- chown root:root /etc/dirsrv/schema/99kolab3.ldif && \
- chmod 644 /etc/dirsrv/schema/99kolab3.ldif
-
-ADD /template.ldif /usr/share/dirsrv/data/template.ldif
-
-RUN mkdir -p /run/lock
-RUN ln -sf /bin/true /sbin/semanage
-RUN ln -sf /bin/true /bin/systemctl
-
-VOLUME [ "/data" ]
-
-EXPOSE 389 636
diff --git a/01-base-ldap/template.ldif b/01-base-ldap/template.ldif
deleted file mode 100644
index a9b6a49..0000000
--- a/01-base-ldap/template.ldif
+++ /dev/null
@@ -1,142 +0,0 @@
-#
-# BEGIN COPYRIGHT BLOCK
-# This Program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; version 2 of the License.
-#
-# This Program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
-# Place, Suite 330, Boston, MA 02111-1307 USA.
-#
-# In addition, as a special exception, Red Hat, Inc. gives You the additional
-# right to link the code of this Program with code not covered under the GNU
-# General Public License ("Non-GPL Code") and to distribute linked combinations
-# including the two, subject to the limitations in this paragraph. Non-GPL Code
-# permitted under this exception must only link to the code of this Program
-# through those well defined interfaces identified in the file named EXCEPTION
-# found in the source code files (the "Approved Interfaces"). The files of
-# Non-GPL Code may instantiate templates or use macros or inline functions from
-# the Approved Interfaces without causing the resulting work to be covered by
-# the GNU General Public License. Only Red Hat, Inc. may make changes or
-# additions to the list of Approved Interfaces. You must obey the GNU General
-# Public License in all respects for all of the Program code and other code used
-# in conjunction with the Program except the Non-GPL Code covered by this
-# exception. If you modify this file, you may extend this exception to your
-# version of the file, but you are not obligated to do so. If you do not wish to
-# provide this exception without modification, you must delete this exception
-# statement from your version and license this file solely under the GPL without
-# exception.
-#
-#
-# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
-# Copyright (C) 2005 Red Hat, Inc.
-# All rights reserved.
-# END COPYRIGHT BLOCK
-#
-#
-# Note: %rootdn% (Directory Manager) has all rights on every entry by nature.
-# Thus, it is not needed to give any acis. This template has several
-# groupOfUniqueNames objects which MUST have uniqueMember. At this moment,
-# there is no entry which could be a uniqueMember. Just to satisfy the
-# objectclass, set %rootdn% to uniqueMember of the objectclass.
-#
-dn: %ds_suffix%
-changetype: modify
-replace: aci
-aci: (targetattr = "carLicense || description || displayName || facsimileTelephoneNumber || homePhone || homePostalAddress || initials || jpegPhoto || l || labeledURI || mobile || o || pager || photo || postOfficeBox || postalAddress || postalCode || preferredDeliveryMethod || preferredLanguage || registeredAddress || roomNumber || secretary || seeAlso || st || street || telephoneNumber || telexNumber || title || userCertificate || userPassword || userSMIMECertificate || x500UniqueIdentifier || kolabDelegate || kolabInvitationPolicy || kolabAllowSMTPSender") (version 3.0; acl "Enable self write for common attributes"; allow (read,compare,search,write)(userdn = "ldap:///self");)
-aci: (targetattr = "*")(version 3.0; acl "Directory Administrators Group"; allow (all) (groupdn = "ldap:///cn=Directory Administrators,%(rootdn)s" or roledn = "ldap:///cn=kolab-admin,%ds_suffix%");)
-aci: (targetattr = "*")(version 3.0; acl "Configuration Administrators Group"; allow (all) groupdn="ldap:///cn=Configuration Administrators,ou=Groups,ou=TopologyManagement,o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "Configuration Administrator"; allow (all) userdn="ldap:///uid=admin,ou=Administrators,ou=TopologyManagement,o=NetscapeRoot";)
-aci: (targetattr = "*")(version 3.0; acl "SIE Group"; allow (all) groupdn = "ldap:///cn=slapd-%hostname%,cn=389 Directory Server,cn=Server Group,cn=%hostname%.%domain%,ou=%domain%,o=NetscapeRoot";)
-aci: (targetattr != "userPassword")(version 3.0; acl "Search Access";allow (read,compare,search)(userdn = "ldap:///all");)
-
-dn: cn=kolab-admin,%ds_suffix%
-objectclass: top
-objectclass: ldapsubentry
-objectclass: nsroledefinition
-objectclass: nssimpleroledefinition
-objectclass: nsmanagedroledefinition
-cn: kolab-admin
-
-dn: cn=Directory Administrators, %ds_suffix%
-objectClass: top
-objectClass: groupofuniquenames
-cn: Directory Administrators
-uniqueMember: %rootdn%
-
-dn: ou=Domains, %ds_suffix%
-objectclass: top
-objectclass: organizationalunit
-ou: Domains
-
-dn: associateddomain=%domain%,ou=Domains,%ds_suffix%
-objectclass: top
-objectclass: domainrelatedobject
-associateddomain: %domain%
-
-dn: ou=Groups, %ds_suffix%
-objectclass: top
-objectclass: organizationalunit
-ou: Groups
-
-dn: ou=Resources, %ds_suffix%
-objectclass: top
-objectclass: organizationalunit
-ou: Resources
-
-dn: ou=Shared Folders, %ds_suffix%
-objectclass: top
-objectclass: organizationalunit
-ou: Shared Folders
-
-dn: ou=People, %ds_suffix%
-objectclass: top
-objectclass: organizationalunit
-ou: People
-
-dn: ou=Special Users,%ds_suffix%
-objectclass: top
-objectclass: organizationalUnit
-ou: Special Users
-description: Special Administrative Accounts
-
-dn: uid=cyrus-admin,ou=Special Users,%ds_suffix%
-objectclass: top
-objectclass: inetorgperson
-objectclass: organizationalperson
-objectclass: person
-uid: cyrus-admin
-givenname: Cyrus
-surname: Administrator
-cn: Cyrus Administrator
-userpassword: %cyrus_admin_password%
-
-dn: uid=kolab-service,ou=Special Users,%ds_suffix%
-objectclass: top
-objectclass: inetorgperson
-objectclass: organizationalperson
-objectclass: person
-uid: kolab-service
-givenname: Kolab
-surname: Service
-cn: Kolab Service
-userpassword: %kolab_service_password%
-nslookthroughlimit: -1
-nssizelimit: -1
-nstimelimit: -1
-nsidletimeout: -1
-
-dn: cn=config
-changetype: modify
-replace: nsslapd-allow-anonymous-access
-nsslapd-allow-anonymous-access: off
--
-replace: nsslapd-accesslog-logging-enabled
-nsslapd-accesslog-logging-enabled: off
--
-replace: nsslapd-auditlog-logging-enabled
-nsslapd-auditlog-logging-enabled: on
diff --git a/01-base-mx/Dockerfile b/01-base-mx/Dockerfile
deleted file mode 100644
index 4547399..0000000
--- a/01-base-mx/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- postfix \
- postfix-kolab && \
- yum clean all
-
-VOLUME [ "/data" ]
diff --git a/01-base-nodejs/Dockerfile b/01-base-nodejs/Dockerfile
deleted file mode 100644
index 33c52bd..0000000
--- a/01-base-nodejs/Dockerfile
+++ /dev/null
@@ -1,49 +0,0 @@
-FROM kolab/base:latest
-
-ENV NODE_VERSION=0.12.8
-
-#RUN yum -y install \
-# bzip2 \
-# gcc-c++ \
-# git \
-# libjpeg-turbo-utils \
-# libpng-devel \
-# make \
-# tar \
-# wget && \
-# yum clean all
-#
-#RUN cd /tmp && \
-# wget http://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz && \
-# tar zxvf node-v${NODE_VERSION}.tar.gz && \
-# rm -f node-v${NODE_VERSION}.tar.gz && \
-# cd node-v${NODE_VERSION}/ && \
-# ./configure --prefix=/usr && \
-# CXX="g++ -Wno-unused-local-typedefs" make && \
-# CXX="g++ -Wno-unused-local-typedefs" make install && \
-# cd /tmp && \
-# rm -rf /tmp/node-v* && \
-# npm config set registry http://registry.npmjs.org/ && \
-# npm install --verbose -g bower ember-cli npm && \
-# rm -rf /root/.npm/ && \
-# printf '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc
-
-RUN yum -y install \
- bzip2 \
- gcc-c++ \
- libjpeg-turbo-utils \
- libpng-devel \
- make \
- nodejs \
- npm \
- tar && \
- yum clean all
-
-RUN npm config set registry http://registry.npmjs.org/
-
-RUN npm update --verbose -g \
- node-gyp \
- npm && \
- npm install --verbose -g \
- bower && \
- rm -rf /root/.npm/
diff --git a/01-base-web/Dockerfile b/01-base-web/Dockerfile
deleted file mode 100644
index d8d9408..0000000
--- a/01-base-web/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- httpd \
- php \
- mod_ssl && \
- yum clean all
-
-RUN sed -r -i \
- -e 's|^(\s*)CustomLog .* common$|\1CustomLog /proc/self/fd/1 common|g' \
- -e 's|^(\s*)ErrorLog .*$|\1ErrorLog /proc/self/fd/2|g' \
- /etc/httpd/conf/httpd.conf
-
-EXPOSE 80 443
-
-CMD [ "/usr/sbin/httpd" , "-DFOREGROUND" ]
diff --git a/02-base-web-rc/Dockerfile b/02-base-web-rc/Dockerfile
deleted file mode 100644
index 9f704ec..0000000
--- a/02-base-web-rc/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM kolab/base-web:latest
-
-RUN yum -y install \
- libcalendaring \
- libkolab \
- libkolabxml \
- php-kolab \
- php-kolabformat && \
- yum -y --setopt tsflags= install \
- roundcubemail && \
- yum clean all
diff --git a/03-asav-in/Dockerfile b/03-asav-in/Dockerfile
deleted file mode 100644
index 34e3d3d..0000000
--- a/03-asav-in/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM kolab/base-asav:latest
-
-ENV KOLAB_ROLE ASAV_IN
diff --git a/03-asav-out/Dockerfile b/03-asav-out/Dockerfile
deleted file mode 100644
index 93a50c6..0000000
--- a/03-asav-out/Dockerfile
+++ /dev/null
@@ -1,3 +0,0 @@
-FROM kolab/base-asav:latest
-
-ENV KOLAB_ROLE ASAV_OUT
diff --git a/03-chwala/Dockerfile b/03-chwala/Dockerfile
deleted file mode 100644
index 1805c49..0000000
--- a/03-chwala/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y install \
- chwala && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-chwala/entrypoint.sh b/03-chwala/entrypoint.sh
deleted file mode 100755
index 5fc4448..0000000
--- a/03-chwala/entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec "$@"
diff --git a/03-ext-mx-in/Dockerfile b/03-ext-mx-in/Dockerfile
deleted file mode 100644
index f160a71..0000000
--- a/03-ext-mx-in/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM kolab/base-mx:latest
-
-EXPOSE 25 10025
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ "/usr/libexec/postfix/master", "-D" ]
-
diff --git a/03-ext-mx-in/README.md b/03-ext-mx-in/README.md
deleted file mode 100644
index fe3b928..0000000
--- a/03-ext-mx-in/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## External Mail Exchanger (Inbound)
-
diff --git a/03-ext-mx-in/entrypoint.sh b/03-ext-mx-in/entrypoint.sh
deleted file mode 100755
index 0280814..0000000
--- a/03-ext-mx-in/entrypoint.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_ASAV_IN_SERVICE_HOST \
- KOLAB_ASAV_IN_SERVICE_PORT \
- KOLAB_INT_MX_SERVICE_HOST \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_SERVICE_PASSWORD \
- || exit 1
-
-if [ ! -d "/etc/postfix/ldap/" ]; then
- cp /etc/kolab/kolab.conf /root/kolab.conf
-
- # Subst. some config settings here.
-
- setup-kolab --config /root/kolab.conf mta
- systemctl stop postfix
-
- sed -i -r \
- -e "s/^server_host = .*$/server_host = ${KOLAB_LDAP_MASTER_SERVICE_HOST}/g" \
- -e "s/^search_base = .*$/search_base = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/postfix/ldap/*.cf
-fi
-
-rm -rf /etc/postfix/ldap/local_recipient_maps.cf
-rm -rf /etc/postfix/ldap/virtual_alias_maps*.cf
-mv /etc/postfix/ldap/mydestination.cf /etc/postfix/ldap/relay_domains.cf
-
-persist \
- /var/spool/postfix/
-
-systemctl stop kolab-saslauthd
-
-postconf -e "relay_host=smtp:[${KOLAB_INT_MX_SERVICE_HOST}]:25"
-postconf -e "local_recipient_maps="
-postconf -e "mydestination="
-postconf -e "relay_domains=ldap:/etc/postfix/ldap/relay_domains.cf"
-postconf -e "relay_recipient_maps="
-postconf -e "virtual_alias_maps="
-postconf -e "content_filter=smtp:[${KOLAB_ASAV_IN_SERVICE_HOST}]:${KOLAB_ASAV_IN_SERVICE_PORT}"
-
-exec "$@"
diff --git a/03-ext-mx-out/Dockerfile b/03-ext-mx-out/Dockerfile
deleted file mode 100644
index f160a71..0000000
--- a/03-ext-mx-out/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM kolab/base-mx:latest
-
-EXPOSE 25 10025
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ "/usr/libexec/postfix/master", "-D" ]
-
diff --git a/03-ext-mx-out/README.md b/03-ext-mx-out/README.md
deleted file mode 100644
index cb0f6e0..0000000
--- a/03-ext-mx-out/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## External Mail Exchanger (Outbound)
diff --git a/03-ext-mx-out/entrypoint.sh b/03-ext-mx-out/entrypoint.sh
deleted file mode 100755
index 440f816..0000000
--- a/03-ext-mx-out/entrypoint.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_ASAV_OUT_SERVICE_HOST \
- KOLAB_ASAV_OUT_SERVICE_PORT \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_SERVICE_PASSWORD \
- || exit 1
-
-if [ ! -d "/etc/postfix/ldap/" ]; then
- cp /etc/kolab/kolab.conf /root/kolab.conf
-
- # Subst. some config settings here.
-
- setup-kolab --config /root/kolab.conf mta
- systemctl stop postfix
-
- sed -i -r \
- -e "s/^server_host = .*$/server_host = ${KOLAB_LDAP_MASTER_SERVICE_HOST}/g" \
- -e "s/^search_base = .*$/search_base = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/postfix/ldap/*.cf
-fi
-
-persist \
- /var/spool/postfix/
-
-systemctl stop kolab-saslauthd
-
-postconf -e "content_filter=smtp:[${KOLAB_ASAV_OUT_SERVICE_HOST}]:${KOLAB_ASAV_OUT_SERVICE_PORT}"
-
-exec "$@"
diff --git a/03-freebusy/Dockerfile b/03-freebusy/Dockerfile
deleted file mode 100644
index 9df168e..0000000
--- a/03-freebusy/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y install \
- kolab-freebusy && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-freebusy/entrypoint.sh b/03-freebusy/entrypoint.sh
deleted file mode 100755
index 5fc4448..0000000
--- a/03-freebusy/entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec "$@"
diff --git a/03-guam/Dockerfile b/03-guam/Dockerfile
deleted file mode 100644
index cde91c7..0000000
--- a/03-guam/Dockerfile
+++ /dev/null
@@ -1,49 +0,0 @@
-FROM kolab/base:latest
-
-ENV GUAM_BRANCH master
-
-RUN yum -y install \
- erlang-eimap \
- erlang-erts \
- erlang-goldrush \
- erlang-lager \
- erlang-rebar \
- make && \
- yum clean all
-
-RUN git clone \
- -b ${GUAM_BRANCH} \
- https://git.kolab.org/diffusion/G/guam.git \
- /root/guam.git
-
-WORKDIR /root/guam.git/
-
-RUN timeout 60s rebar get-deps
-RUN timeout 60s rebar compile
-RUN timeout 60s rebar eunit
-RUN mkdir -p deps
-
-WORKDIR /root/guam.git/rel/
-
-RUN timeout 60s rebar generate
-
-WORKDIR /root/guam.git/
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-RUN mkdir -p \
- /etc/guam/ && \
- mv -v \
- $(ls -1d /root/guam.git/rel/kolab_guam/releases/*/)/sys.config \
- /etc/guam/sys.config && \
- ln -s \
- /etc/guam/sys.config \
- $(ls -1d /root/guam.git/rel/kolab_guam/releases/*/)/.
-
-EXPOSE 143 993
-
-CMD [ \
- "rel/kolab_guam/bin/kolab_guam", \
- "foreground" \
- ]
diff --git a/03-guam/README.md b/03-guam/README.md
deleted file mode 100644
index 77acf09..0000000
--- a/03-guam/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## The IMAP Reverse Proxy
-
-This is an IMAP Reverse Proxy for Kolab Groupware.
-
-It prevents clients that do not understand how to represent the
-contents of those IMAP folders that contain groupware data from reading
-and/or obtaining those very folders.
-
-It also bridges the gap between SPECIAL-USE clients and Kolab clients,
-whom may otherwise have to consider data in desync.
diff --git a/03-guam/entrypoint.sh b/03-guam/entrypoint.sh
deleted file mode 100755
index ca740db..0000000
--- a/03-guam/entrypoint.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_var \
- KOLAB_IMAPF_EXT_SERVICE_HOST \
- || exit 1
-
-if [ ! -f "/etc/pki/tls/private/localhost.pem" ]; then
- pushd /etc/pki/tls/certs/
- ./make-dummy-cert ../private/localhost.pem
- popd
-fi
-
-sed -r -i \
- -e "s/host, \"127\.0\.0\.1\"/host, \"${KOLAB_IMAPF_EXT_SERVICE_HOST}\"/g" \
- -e "s/port, 9143/port, 143/g" \
- -e "s/port, 9993/port, 993/g" \
- /etc/guam/sys.config
-
-$@
diff --git a/03-guam/sys.config b/03-guam/sys.config
deleted file mode 100644
index def33e7..0000000
--- a/03-guam/sys.config
+++ /dev/null
@@ -1,84 +0,0 @@
-[
- {
- kolab_guam, [
- {
- imap_servers, [
- {
- imap, [
- { host, "192.168.56.101" },
- { port, 143 },
- { tls, starttls }
- ]
- },
- {
- imaps, [
- { host, "192.168.56.101" },
- { port, 993 },
- { tls, true }
- ]
- }
- ]
- },
- {
- listeners, [
- {
- imap, [
- { port, 143 },
- { imap_server, imap },
- {
- rules, [
- { filter_groupware, [] }
- ]
- },
- {
- tls_config, [
- { certfile, "/etc/ssl/sample.pem" }
- ]
- }
- ]
- },
- {
- imaps, [
- { port, 993 },
- { implicit_tls, true },
- { imap_server, imaps },
- {
- rules, [
- { filter_groupware, [] }
- ]
- },
- {
- tls_config, [
- { certfile, "/etc/ssl/sample.pem" }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
-
- {
- lager, [
- {
- handlers, [
- { lager_console_backend, debug },
- { lager_file_backend, [ { file, "log/error.log"}, { level, error } ] },
- { lager_file_backend, [ { file, "log/console.log"}, { level, info } ] }
- ]
- }
- ]
- },
-
- %% SASL config
- {
- sasl, [
- { sasl_error_logger, { file, "log/sasl-error.log" } },
- { errlog_type, error },
- { error_logger_mf_dir, "log/sasl" }, % Log directory
- { error_logger_mf_maxbytes, 10485760 }, % 10 MB max file size
- { error_logger_mf_maxfiles, 5 } % 5 files max
- ]
- }
-].
diff --git a/03-http-prx/Dockerfile b/03-http-prx/Dockerfile
deleted file mode 100644
index cef9647..0000000
--- a/03-http-prx/Dockerfile
+++ /dev/null
@@ -1 +0,0 @@
-FROM microwebapps/haproxy-frontend-atomicapp:latest
diff --git a/03-imap-mupdate/Dockerfile b/03-imap-mupdate/Dockerfile
deleted file mode 100644
index 5b8c052..0000000
--- a/03-imap-mupdate/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kolab/base-imap:latest
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ADD /cyrus.conf.tpl /etc/kolab/templates/cyrus.conf.tpl
-ADD /imapd.conf.tpl /etc/kolab/templates/imapd.conf.tpl
diff --git a/03-imap-mupdate/cyrus.conf.tpl b/03-imap-mupdate/cyrus.conf.tpl
deleted file mode 100644
index 1354d83..0000000
--- a/03-imap-mupdate/cyrus.conf.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-START {
- # do not delete this entry!
- recover cmd="ctl_cyrusdb -r"
-}
-
-SERVICES {
- mupdate cmd="mupdate -m" listen=3905 prefork=1 babysit=1
- ptloader cmd="ptloader" listen="/data/var/lib/imap/ptclient/ptsock" prefork=1
-}
-
-EVENTS {
- # this is required
- checkpoint cmd="ctl_cyrusdb -c" period=30
-
- tlsprune cmd="tls_prune" at=0400
-}
diff --git a/03-imap-mupdate/entrypoint.sh b/03-imap-mupdate/entrypoint.sh
deleted file mode 100755
index d4de514..0000000
--- a/03-imap-mupdate/entrypoint.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- CYRUS_ADMIN_PASSWORD \
- DOMAIN \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_LDAP_MASTER_SERVICE_PORT \
- KOLAB_SERVICE_PASSWORD \
- || exit 1
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^admin_password = .*$/admin_password = ${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/kolab.conf
-
-sed -i -r \
- -e "s/%CYRUS_ADMIN_PASSWORD%/${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_HOST%/127.0.0.1/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_PORT%/3905/g" \
- -e "s/%KOLAB_SERVICE_PASSWORD%/${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/templates/imapd.conf.tpl
-
-cp /etc/kolab/kolab.conf /root/kolab.conf
-
-setup-kolab --config /root/kolab.conf imap
-
-persist \
- /etc/cyrus.conf \
- /etc/imapd.conf \
- /etc/imapd.annotations.conf \
- /var/lib/imap/ \
- /var/spool/imap/
-
-exec "$@"
-
diff --git a/03-imap-mupdate/imapd.conf.tpl b/03-imap-mupdate/imapd.conf.tpl
deleted file mode 100644
index 5119ee1..0000000
--- a/03-imap-mupdate/imapd.conf.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-configdirectory: /var/lib/imap
-partition-default: /var/spool/imap
-admins: $admins
-sievedir: /var/lib/imap/sieve
-sendmail: /usr/sbin/sendmail
-sasl_pwcheck_method: saslauthd
-sasl_mech_list: PLAIN LOGIN
-allowplaintext: no
-tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-# uncomment this if you're operating in a DSCP environment (RFC-4594)
-# qosmarking: af13
-auth_mech: pts
-pts_module: ldap
-ldap_servers: $ldap_servers
-ldap_sasl: 0
-ldap_base: $ldap_base
-ldap_bind_dn: $ldap_bind_dn
-ldap_password: $ldap_password
-ldap_filter: $ldap_filter
-ldap_user_attribute: $ldap_user_attribute
-ldap_group_base: $ldap_group_base
-ldap_group_filter: $ldap_group_filter
-ldap_group_scope: $ldap_group_scope
-ldap_member_base: $ldap_member_base
-ldap_member_method: $ldap_member_method
-ldap_member_attribute: $ldap_member_attribute
-ldap_restart: 1
-ldap_timeout: 10
-ldap_time_limit: 10
-unixhierarchysep: 1
-virtdomains: userid
-annotation_definitions: /etc/imapd.annotations.conf
-sieve_extensions: fileinto reject envelope body vacation imapflags notify include regex subaddress relational copy date index
-allowallsubscribe: 0
-allowusermoves: 1
-altnamespace: 1
-hashimapspool: 1
-anysievefolder: 1
-fulldirhash: 0
-sieveusehomedir: 0
-sieve_allowreferrals: 0
-lmtp_downcase_rcpt: 1
-lmtp_fuzzy_mailbox_match: 1
-username_tolower: 1
-deletedprefix: DELETED
-delete_mode: delayed
-expunge_mode: delayed
-postuser: shared
-
-mupdate_config: standard
-mupdate_server: %KOLAB_IMAP_MUPDATE_SERVICE_HOST%
-mupdate_port: %KOLAB_IMAP_MUPDATE_SERVICE_PORT%
-mupdate_authname: cyrus-admin
-mupdate_username: cyrus-admin
-mupdate_password: %CYRUS_ADMIN_PASSWORD%
-
diff --git a/03-imapb/Dockerfile b/03-imapb/Dockerfile
deleted file mode 100644
index 566140f..0000000
--- a/03-imapb/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kolab/base-imap:latest
-
-VOLUME [ "/data" ]
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
diff --git a/03-imapb/entrypoint.sh b/03-imapb/entrypoint.sh
deleted file mode 100755
index d606f56..0000000
--- a/03-imapb/entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# Apply some configuration
-exec "$@"
-
-exec top
diff --git a/03-imapf-ext/Dockerfile b/03-imapf-ext/Dockerfile
deleted file mode 100644
index 5b8c052..0000000
--- a/03-imapf-ext/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kolab/base-imap:latest
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ADD /cyrus.conf.tpl /etc/kolab/templates/cyrus.conf.tpl
-ADD /imapd.conf.tpl /etc/kolab/templates/imapd.conf.tpl
diff --git a/03-imapf-ext/cyrus.conf.tpl b/03-imapf-ext/cyrus.conf.tpl
deleted file mode 100644
index 46193a5..0000000
--- a/03-imapf-ext/cyrus.conf.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-START {
- # do not delete this entry!
- recover cmd="ctl_cyrusdb -r"
-}
-
-SERVICES {
- mupdate cmd="mupdate" listen=3905 prefork=1 babysit=1
-
- imap cmd="proxyd" listen="imap" prefork=1
- imaps cmd="proxyd -s" listen="imaps" prefork=1
-
- sieve cmd="timsieved" listen="managesieve" prefork=1
-
- ptloader cmd="ptloader" listen="/data/var/lib/imap/ptclient/ptsock" prefork=1
-}
-
-EVENTS {
- # this is required
- checkpoint cmd="ctl_cyrusdb -c" period=30
-
- tlsprune cmd="tls_prune" at=0400
-}
diff --git a/03-imapf-ext/entrypoint.sh b/03-imapf-ext/entrypoint.sh
deleted file mode 100755
index cfc3b66..0000000
--- a/03-imapf-ext/entrypoint.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_IMAP_MUPDATE_SERVICE_HOST \
- KOLAB_IMAP_MUPDATE_SERVICE_PORT \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_SERVICE_PASSWORD \
- CYRUS_ADMIN_PASSWORD \
- || exit 1
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^admin_password = .*$/admin_password = ${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/kolab.conf
-
-sed -i -r \
- -e "s/%CYRUS_ADMIN_PASSWORD%/${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_HOST%/${KOLAB_IMAP_MUPDATE_SERVICE_HOST}/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_PORT%/${KOLAB_IMAP_MUPDATE_SERVICE_PORT}/g" \
- -e "s/%KOLAB_SERVICE_PASSWORD%/${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/templates/imapd.conf.tpl
-
-cp /etc/kolab/kolab.conf /root/kolab.conf
-
-setup-kolab --config /root/kolab.conf imap
-
-persist \
- /etc/cyrus.conf \
- /etc/imapd.conf \
- /etc/imapd.annotations.conf \
- /var/lib/imap/ \
- /var/spool/imap/
-
-exec "$@"
diff --git a/03-imapf-ext/imapd.conf.tpl b/03-imapf-ext/imapd.conf.tpl
deleted file mode 100644
index 5119ee1..0000000
--- a/03-imapf-ext/imapd.conf.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-configdirectory: /var/lib/imap
-partition-default: /var/spool/imap
-admins: $admins
-sievedir: /var/lib/imap/sieve
-sendmail: /usr/sbin/sendmail
-sasl_pwcheck_method: saslauthd
-sasl_mech_list: PLAIN LOGIN
-allowplaintext: no
-tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-# uncomment this if you're operating in a DSCP environment (RFC-4594)
-# qosmarking: af13
-auth_mech: pts
-pts_module: ldap
-ldap_servers: $ldap_servers
-ldap_sasl: 0
-ldap_base: $ldap_base
-ldap_bind_dn: $ldap_bind_dn
-ldap_password: $ldap_password
-ldap_filter: $ldap_filter
-ldap_user_attribute: $ldap_user_attribute
-ldap_group_base: $ldap_group_base
-ldap_group_filter: $ldap_group_filter
-ldap_group_scope: $ldap_group_scope
-ldap_member_base: $ldap_member_base
-ldap_member_method: $ldap_member_method
-ldap_member_attribute: $ldap_member_attribute
-ldap_restart: 1
-ldap_timeout: 10
-ldap_time_limit: 10
-unixhierarchysep: 1
-virtdomains: userid
-annotation_definitions: /etc/imapd.annotations.conf
-sieve_extensions: fileinto reject envelope body vacation imapflags notify include regex subaddress relational copy date index
-allowallsubscribe: 0
-allowusermoves: 1
-altnamespace: 1
-hashimapspool: 1
-anysievefolder: 1
-fulldirhash: 0
-sieveusehomedir: 0
-sieve_allowreferrals: 0
-lmtp_downcase_rcpt: 1
-lmtp_fuzzy_mailbox_match: 1
-username_tolower: 1
-deletedprefix: DELETED
-delete_mode: delayed
-expunge_mode: delayed
-postuser: shared
-
-mupdate_config: standard
-mupdate_server: %KOLAB_IMAP_MUPDATE_SERVICE_HOST%
-mupdate_port: %KOLAB_IMAP_MUPDATE_SERVICE_PORT%
-mupdate_authname: cyrus-admin
-mupdate_username: cyrus-admin
-mupdate_password: %CYRUS_ADMIN_PASSWORD%
-
diff --git a/03-imapf-int/Dockerfile b/03-imapf-int/Dockerfile
deleted file mode 100644
index 5b8c052..0000000
--- a/03-imapf-int/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kolab/base-imap:latest
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ADD /cyrus.conf.tpl /etc/kolab/templates/cyrus.conf.tpl
-ADD /imapd.conf.tpl /etc/kolab/templates/imapd.conf.tpl
diff --git a/03-imapf-int/cyrus.conf.tpl b/03-imapf-int/cyrus.conf.tpl
deleted file mode 100644
index 46193a5..0000000
--- a/03-imapf-int/cyrus.conf.tpl
+++ /dev/null
@@ -1,22 +0,0 @@
-START {
- # do not delete this entry!
- recover cmd="ctl_cyrusdb -r"
-}
-
-SERVICES {
- mupdate cmd="mupdate" listen=3905 prefork=1 babysit=1
-
- imap cmd="proxyd" listen="imap" prefork=1
- imaps cmd="proxyd -s" listen="imaps" prefork=1
-
- sieve cmd="timsieved" listen="managesieve" prefork=1
-
- ptloader cmd="ptloader" listen="/data/var/lib/imap/ptclient/ptsock" prefork=1
-}
-
-EVENTS {
- # this is required
- checkpoint cmd="ctl_cyrusdb -c" period=30
-
- tlsprune cmd="tls_prune" at=0400
-}
diff --git a/03-imapf-int/entrypoint.sh b/03-imapf-int/entrypoint.sh
deleted file mode 100755
index cfc3b66..0000000
--- a/03-imapf-int/entrypoint.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_IMAP_MUPDATE_SERVICE_HOST \
- KOLAB_IMAP_MUPDATE_SERVICE_PORT \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_SERVICE_PASSWORD \
- CYRUS_ADMIN_PASSWORD \
- || exit 1
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^admin_password = .*$/admin_password = ${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/kolab.conf
-
-sed -i -r \
- -e "s/%CYRUS_ADMIN_PASSWORD%/${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_HOST%/${KOLAB_IMAP_MUPDATE_SERVICE_HOST}/g" \
- -e "s/%KOLAB_IMAP_MUPDATE_SERVICE_PORT%/${KOLAB_IMAP_MUPDATE_SERVICE_PORT}/g" \
- -e "s/%KOLAB_SERVICE_PASSWORD%/${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/templates/imapd.conf.tpl
-
-cp /etc/kolab/kolab.conf /root/kolab.conf
-
-setup-kolab --config /root/kolab.conf imap
-
-persist \
- /etc/cyrus.conf \
- /etc/imapd.conf \
- /etc/imapd.annotations.conf \
- /var/lib/imap/ \
- /var/spool/imap/
-
-exec "$@"
diff --git a/03-imapf-int/imapd.conf.tpl b/03-imapf-int/imapd.conf.tpl
deleted file mode 100644
index 5119ee1..0000000
--- a/03-imapf-int/imapd.conf.tpl
+++ /dev/null
@@ -1,57 +0,0 @@
-configdirectory: /var/lib/imap
-partition-default: /var/spool/imap
-admins: $admins
-sievedir: /var/lib/imap/sieve
-sendmail: /usr/sbin/sendmail
-sasl_pwcheck_method: saslauthd
-sasl_mech_list: PLAIN LOGIN
-allowplaintext: no
-tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd.pem
-# uncomment this if you're operating in a DSCP environment (RFC-4594)
-# qosmarking: af13
-auth_mech: pts
-pts_module: ldap
-ldap_servers: $ldap_servers
-ldap_sasl: 0
-ldap_base: $ldap_base
-ldap_bind_dn: $ldap_bind_dn
-ldap_password: $ldap_password
-ldap_filter: $ldap_filter
-ldap_user_attribute: $ldap_user_attribute
-ldap_group_base: $ldap_group_base
-ldap_group_filter: $ldap_group_filter
-ldap_group_scope: $ldap_group_scope
-ldap_member_base: $ldap_member_base
-ldap_member_method: $ldap_member_method
-ldap_member_attribute: $ldap_member_attribute
-ldap_restart: 1
-ldap_timeout: 10
-ldap_time_limit: 10
-unixhierarchysep: 1
-virtdomains: userid
-annotation_definitions: /etc/imapd.annotations.conf
-sieve_extensions: fileinto reject envelope body vacation imapflags notify include regex subaddress relational copy date index
-allowallsubscribe: 0
-allowusermoves: 1
-altnamespace: 1
-hashimapspool: 1
-anysievefolder: 1
-fulldirhash: 0
-sieveusehomedir: 0
-sieve_allowreferrals: 0
-lmtp_downcase_rcpt: 1
-lmtp_fuzzy_mailbox_match: 1
-username_tolower: 1
-deletedprefix: DELETED
-delete_mode: delayed
-expunge_mode: delayed
-postuser: shared
-
-mupdate_config: standard
-mupdate_server: %KOLAB_IMAP_MUPDATE_SERVICE_HOST%
-mupdate_port: %KOLAB_IMAP_MUPDATE_SERVICE_PORT%
-mupdate_authname: cyrus-admin
-mupdate_username: cyrus-admin
-mupdate_password: %CYRUS_ADMIN_PASSWORD%
-
diff --git a/03-int-mx/Dockerfile b/03-int-mx/Dockerfile
deleted file mode 100644
index 29b557a..0000000
--- a/03-int-mx/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base-mx:latest
-
-EXPOSE 25 587
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ "/usr/libexec/postfix/master", "-D" ]
diff --git a/03-int-mx/README.md b/03-int-mx/README.md
deleted file mode 100644
index fe3b928..0000000
--- a/03-int-mx/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## External Mail Exchanger (Inbound)
-
diff --git a/03-int-mx/entrypoint.sh b/03-int-mx/entrypoint.sh
deleted file mode 100755
index 71f9905..0000000
--- a/03-int-mx/entrypoint.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_SERVICE_PASSWORD \
- KOLAB_WALLACE_SERVICE_HOST \
- KOLAB_WALLACE_SERVICE_PORT \
- || exit 1
-
-if [ -z "${KOLAB_LDAP_MASTER_SERVICE_HOST}" ]; then
- sleep 10
- exit 1
-fi
-
-if [ ! -d "/etc/postfix/ldap/" ]; then
- cp /etc/kolab/kolab.conf /root/kolab.conf
-
- # Subst. some config settings here.
-
- setup-kolab --config /root/kolab.conf mta
- systemctl stop postfix
-
- sed -i -r \
- -e "s/^server_host = .*$/server_host = ${KOLAB_LDAP_MASTER_SERVICE_HOST}/g" \
- -e "s/^search_base = .*$/search_base = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/postfix/ldap/*.cf
-fi
-
-persist \
- /var/spool/postfix/
-
-systemctl stop kolab-saslauthd
-
-postconf -e "content_filter=smtp:[${KOLAB_WALLACE_SERVICE_HOST}]:${KOLAB_WALLACE_SERVICE_PORT}"
-
-exec "$@"
diff --git a/03-irony/Dockerfile b/03-irony/Dockerfile
deleted file mode 100644
index 365e52d..0000000
--- a/03-irony/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y install \
- iRony && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-irony/entrypoint.sh b/03-irony/entrypoint.sh
deleted file mode 100755
index 5fc4448..0000000
--- a/03-irony/entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec "$@"
diff --git a/03-jmap-proxy/Dockerfile b/03-jmap-proxy/Dockerfile
deleted file mode 100644
index 1575196..0000000
--- a/03-jmap-proxy/Dockerfile
+++ /dev/null
@@ -1,121 +0,0 @@
-FROM docker.io/library/centos:centos7
-MAINTAINER Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
-
-# This should really be a part of the base image.
-RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
-
-# To speed things up, disable fastestmirror.
-RUN sed -r -i \
- -e 's/^enabled.*$/enabled = 0/g' \
- /etc/yum/pluginconf.d/fastestmirror.conf
-
-# Avoid using a mirrorlist (use a transparent proxy and cache everything instead).
-RUN sed -r -i \
- -e 's/^mirrorlist/#mirrorlist/g' \
- -e 's/^#baseurl/baseurl/g' \
- /etc/yum.repos.d/*.repo
-
-# Add EPEL.
-RUN yum -y install epel-release && \
- yum clean all
-
-# Add the EPEL key.
-RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
-
-RUN yum -y install \
- @fedora-packager \
- gcc \
- libuuid-devel \
- net-tools \
- nginx \
- perl-AnyEvent-HTTP \
- perl-Archive-Tar \
- perl-CPAN \
- perl-CPAN-Meta \
- perl-CPAN-Meta-Requirements \
- perl-CPAN-Meta-YAML \
- perl-Data-UUID \
- perl-DateTime \
- perl-DBD-SQLite \
- perl-DBI \
- perl-Email-Address \
- perl-Email-MIME \
- perl-ExtUtils-CBuilder \
- perl-ExtUtils-MakeMaker \
- perl-HTML-Parser \
- perl-HTML-Strip \
- perl-HTTP-Tiny \
- perl-Image-Size \
- perl-IO-Socket-SSL \
- perl-JSON \
- perl-JSON-PP \
- perl-JSON-XS \
- perl-Locale-Maketext-Gettext \
- perl-Object-Event \
- perl-Parse-CPAN-Meta \
- perl-Switch \
- screen \
- vim-enhanced
-
-RUN ( sleep 1; \
- echo "yes"; \
- ) | perl -MCPAN -e shell || :
-
-ADD bashrc /root/.bashrc
-
-WORKDIR /srv/
-RUN git clone https://github.com/jmapio/jmap-perl.git jmap-perl.git
-WORKDIR /srv/jmap-perl.git
-RUN echo notest install $(grep -r "^use " bin/ Email/ JMAP/ Mail/ AnyEvent/ | awk '{print $2}' | sed -re 's/;$//g' | sort -u | grep -vE "(base|constant|lib|strict|warnings)") | perl -MCPAN -e shell || :
-
-RUN ( echo "notest install CPAN" ) | perl -MCPAN -e shell
-RUN ( echo "notest install List::Pairwise" ) | perl -MCPAN -e shell
-
-WORKDIR /srv/
-RUN git clone https://github.com/CindyLinz/Perl-AnyEvent-HTTPD-SendMultiHeaderPatch.git Perl-AnyEvent-HTTPD-SendMultiHeaderPatch.git
-WORKDIR /srv/Perl-AnyEvent-HTTPD-SendMultiHeaderPatch.git
-RUN perl Makefile.PL && \
- make && \
- make install
-
-WORKDIR /srv/
-RUN git clone https://github.com/fastmail/Net-CardDAVTalk.git Net-CardDAVTalk.git
-WORKDIR /srv/Net-CardDAVTalk.git
-RUN perl Makefile.PL && \
- make && \
- make install
-
-WORKDIR /srv/jmap-perl.git
-RUN echo notest install $(grep -r "^use " bin/ Email/ JMAP/ Mail/ AnyEvent/ | awk '{print $2}' | sed -re 's/;$//g' | sort -u | grep -vE "(base|constant|lib|strict|warnings)") | perl -MCPAN -e shell || :
-
-ADD nginx.conf /etc/nginx/nginx.conf
-
-ADD http://cgit.kolab.org/docker/plain/ci/files.d/dbus.service /etc/systemd/system/dbus.service
-RUN ln -sf dbus.service /etc/systemd/system/messagebus.service
-
-ADD http://cgit.kolab.org/docker/plain/ci/files.d/httpd.service /etc/systemd/system/httpd.service
-
-ADD http://cgit.kolab.org/docker/plain/ci/files.d/systemctl /usr/bin/systemctl
-ADD http://cgit.kolab.org/docker/plain/ci/files.d/systemctl-socket-daemon /usr/bin/systemctl-socket-daemon
-
-RUN chmod -v a+rx \
- /usr/bin/systemctl \
- /usr/bin/systemctl-socket-daemon
-
-WORKDIR /root/
-RUN mkdir -p /home/jmap/data/ && ln -s /srv/jmap-perl.git/ /home/jmap/jmap-perl
-
-RUN sed -i -e 's/https:/http:/g' /srv/jmap-perl.git/bin/server.pl
-
-RUN rm -rf \
- /srv/Perl-AnyEvent-HTTPD-SendMultiHeaderPatch.git \
- /srv/Net-CardDAVTalk.git \
- /root/.cpan
-
-EXPOSE 80
-
-ENV jmaphost 172.17.42.1
-
-ADD entrypoint.sh /root/entrypoint.sh
-RUN chmod 755 /root/entrypoint.sh
-ENTRYPOINT /root/entrypoint.sh
diff --git a/03-jmap-proxy/Makefile b/03-jmap-proxy/Makefile
deleted file mode 100644
index 38877d6..0000000
--- a/03-jmap-proxy/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-all:
- docker build -t kolab/jmap-proxy .
-
-run:
- docker run -d -p 80:80 kolab/jmap-proxy
diff --git a/03-jmap-proxy/bashrc b/03-jmap-proxy/bashrc
deleted file mode 100644
index 2d375b7..0000000
--- a/03-jmap-proxy/bashrc
+++ /dev/null
@@ -1,13 +0,0 @@
-# .bashrc
-
-# Source global definitions
-if [ -f /etc/bashrc ]; then
- . /etc/bashrc
-fi
-
-export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/root/perl5";
-export PERL_MB_OPT="--install_base /root/perl5";
-export PERL_MM_OPT="INSTALL_BASE=/root/perl5";
-export PERL5LIB="/root/perl5/lib/perl5:$PERL5LIB";
-export PATH="/root/perl5/bin:$PATH";
-
diff --git a/03-jmap-proxy/entrypoint.sh b/03-jmap-proxy/entrypoint.sh
deleted file mode 100644
index e539117..0000000
--- a/03-jmap-proxy/entrypoint.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-cd /srv/jmap-perl.git
-
-screen -Amd -S api bin/apiendpoint.pl
-systemctl start nginx
-
-bin/server.pl
diff --git a/03-jmap-proxy/nginx.conf b/03-jmap-proxy/nginx.conf
deleted file mode 100644
index 2de222e..0000000
--- a/03-jmap-proxy/nginx.conf
+++ /dev/null
@@ -1,140 +0,0 @@
-user nginx;
-worker_processes auto;
-error_log /var/log/nginx/error.log;
-pid /run/nginx.pid;
-
-events {
- worker_connections 1024;
-}
-
-http {
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- access_log /var/log/nginx/access.log main;
-
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 2048;
-
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- server {
- listen 80;
- server_name _;
-
- root /srv/jmap-perl.git/htdocs/;
- index index.html index.htm;
-
- location / {
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- try_files $uri $uri/ /index.html;
- }
-
- location = / {
- if ( $request_method = 'OPTIONS' ) {
- add_header 'Access-Control-Allow-Origin' '*';
- # -D GAPING_SECURITY_HOLE
- add_header 'Access-Control-Allow-Headers' $http_access_control_request_headers;
- add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS';
- add_header 'Access-Control-Max-Age' 600;
- add_header 'Content-Type' 'text/plain; charset=UTF-8';
- add_header 'Content-Length' 0;
-
- return 204;
- }
-
- # First attempt to serve request as file, then
- # as directory, then fall back to displaying a 404.
- proxy_pass http://127.0.0.1:9000/home;
- }
-
- location /events/ {
- if ( $request_method = 'OPTIONS' ) {
- add_header 'Access-Control-Allow-Origin' '*';
- # -D GAPING_SECURITY_HOLE
- add_header 'Access-Control-Allow-Headers' $http_access_control_request_headers;
- add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS';
- add_header 'Access-Control-Max-Age' 600;
- add_header 'Content-Type' 'text/plain; charset=UTF-8';
- add_header 'Content-Length' 0;
-
- return 204;
- }
-
- # Immediately send backend responses back to client
- proxy_buffering off;
-
- # Disable keepalive to browser
- keepalive_timeout 0;
-
- # It's a long lived backend connection with potentially a long time between
- # push events, make sure proxy doesn't timeout
- proxy_read_timeout 7200;
-
- proxy_pass http://127.0.0.1:9001/events/;
- }
-
- location /files/ {
- proxy_pass http://127.0.0.1:9000/files/;
- }
-
- location /jmap/ {
- if ( $request_method = 'OPTIONS' ) {
- add_header 'Access-Control-Allow-Origin' '*';
- # -D GAPING_SECURITY_HOLE
- add_header 'Access-Control-Allow-Headers' $http_access_control_request_headers;
- add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS';
- add_header 'Access-Control-Max-Age' 600;
- add_header 'Content-Type' 'text/plain; charset=UTF-8';
- add_header 'Content-Length' 0;
-
- return 204;
- }
-
- proxy_pass http://127.0.0.1:9000/jmap/;
- }
-
- location /upload/ {
- proxy_pass http://127.0.0.1:9000/upload/;
- }
-
- location /raw/ {
- proxy_pass http://127.0.0.1:9000/raw/;
- }
-
- location /A {
- proxy_pass http://127.0.0.1:9000/A;
- }
-
- location /J {
- proxy_pass http://127.0.0.1:9000/J;
- }
-
- location /U {
- proxy_pass http://127.0.0.1:9000/U;
- }
-
- location /register {
- proxy_pass http://127.0.0.1:9000/register;
- }
-
- location /signup {
- proxy_pass http://127.0.0.1:9000/signup;
- }
-
- location /delete {
- proxy_pass http://127.0.0.1:9000/delete;
- }
-
- location /cb {
- proxy_pass http://127.0.0.1:9000/cb;
- }
- }
-}
-
diff --git a/03-ldap-master/Dockerfile b/03-ldap-master/Dockerfile
deleted file mode 100644
index 609b818..0000000
--- a/03-ldap-master/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM kolab/base-ldap:latest
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ \
- "/usr/sbin/ns-slapd", \
- "-D", \
- "/data/etc/dirsrv/slapd-ldap", \
- "-i", \
- "/var/run/dirsrv/slapd-ldap.pid", \
- "-w", \
- "/var/run/dirsrv/slapd-ldap.startpid", \
- "-d", \
- "0" \
- ]
diff --git a/03-ldap-master/entrypoint.sh b/03-ldap-master/entrypoint.sh
deleted file mode 100755
index e362147..0000000
--- a/03-ldap-master/entrypoint.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- HOSTNAME \
- CYRUS_ADMIN_PASSWORD \
- KOLAB_SERVICE_PASSWORD \
- ADMIN_PASSWORD \
- DIRECTORY_MANAGER_PASSWORD \
- || exit 1
-
-if [ -z "${KOLAB_LDAP_MASTER_SERVICE_HOST}" ]; then
- export KOLAB_LDAP_MASTER_SERVICE_HOST=$(ip a sh dev $(route -n | grep ^0.0.0.0 | awk '{print $8}') | grep " inet " | awk '{print $2}' | awk -F'/' '{print $1}')
-fi
-
-cp -vf /etc/hosts /etc/hosts.docker
-if echo "# test access" >> /etc/hosts || umount /etc/hosts 2>/dev/null ; then
- echo "${KOLAB_LDAP_MASTER_SERVICE_HOST} ${HOSTNAME}.${DOMAIN} ${HOSTNAME}" > /etc/hosts
-fi
-
-sed -i \
- -e "s/%hostname%/${HOSTNAME}/g" \
- -e "s/%domain%/${DOMAIN}/g" \
- -e "s/%cyrus_admin_password%/${CYRUS_ADMIN_PASSWORD}/g" \
- -e "s/%kolab_service_password%/${KOLAB_SERVICE_PASSWORD}/g" \
- /usr/share/dirsrv/data/template.ldif
-
-cat >/tmp/setup-ds.inf <<EOF
-[General]
-FullMachineName = ${HOSTNAME}.${DOMAIN}
-SuiteSpotUserID = nobody
-SuiteSpotGroup = nobody
-AdminDomain = ${DOMAIN}
-ConfigDirectoryLdapURL = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:389/o=NetscapeRoot
-ConfigDirectoryAdminID = admin
-ConfigDirectoryAdminPwd = ${ADMIN_PASSWORD}
-
-[slapd]
-SlapdConfigForMC = Yes
-UseExistingMC = 0
-ServerPort = 389
-ServerIdentifier = ldap
-Suffix = $(domain_to_root_dn ${DOMAIN})
-RootDN = cn=Directory Manager
-RootDNPwd = ${DIRECTORY_MANAGER_PASSWORD}
-ds_bename = $(echo ${DOMAIN} | sed -e 's/\./_/g')
-AddSampleEntries = No
-EOF
-
-if [ ! -d "/etc/dirsrv/slapd-ldap/" ]; then
- timeout 40s setup-ds.pl --debug --silent --file=/tmp/setup-ds.inf || :
- kill -15 ns-slapd
-
- if [ -f /var/run/dirsrv/slapd-ldap.pid ]; then
-
- tries=1
- while [ ! -z "$(cat /var/run/dirsrv/slapd-ldap.pid) 2>/dev/null)" -a ${tries} -le 20 ]; do
- echo "Waiting for process $(cat /var/run/dirsrv/slapd-ldap.pid) to terminate..."
- sleep 1
- let tries++
- done
-
- kill -9 $(cat /var/run/dirsrv/slapd-ldap.pid) 2>/dev/null || :
- fi
-fi
-
-persist \
- /etc/dirsrv/ \
- /etc/kolab/ \
- /var/lib/dirsrv/
-
-exec "$@"
diff --git a/03-ldap-slave/Dockerfile b/03-ldap-slave/Dockerfile
deleted file mode 100644
index b0651a4..0000000
--- a/03-ldap-slave/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM kolab/base-ldap:latest
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-ldap-slave/entrypoint.sh b/03-ldap-slave/entrypoint.sh
deleted file mode 100755
index 3999ac7..0000000
--- a/03-ldap-slave/entrypoint.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-exec "$@"
-
-exec top
diff --git a/03-manticore/Dockerfile b/03-manticore/Dockerfile
deleted file mode 100644
index 6a20513..0000000
--- a/03-manticore/Dockerfile
+++ /dev/null
@@ -1,49 +0,0 @@
-FROM kolab/base-nodejs:latest
-
-MAINTAINER Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
-
-RUN npm --verbose install -g \
- grunt-cli \
- phantomjs && \
- rm -rf /root/.npm/
-
-WORKDIR /var/www/
-RUN git clone https://git.kolab.org/diffusion/M/manticore.git /var/www/manticore.git/
-
-WORKDIR /var/www/manticore.git/
-RUN npm --verbose install && \
- npm --verbose dedupe && \
- rm -rf /root/.npm/
-
-RUN bower install --allow-root
-RUN grunt build
-
-RUN mv server/config/local.env.sample.js server/config/local.env.js
-RUN sed -r -i \
- -e "s|DOMAIN:.*,$|DOMAIN: 'http://localhost:8080',|g" \
- -e "s|STORAGE:.*$|STORAGE: 'local'|g" \
- -e "/WEBDAV_/d" \
- -e "/LDAP_/d" \
- -e "/LOCODOC_/d" \
- server/config/local.env.js
-
-RUN sed -r -i \
- -e 's|^(\s+)root:.*,$|\1root: "/var/www/manticore.git",|g' \
- server/config/environment/index.js
-
-RUN chown nobody:nobody \
- /var/www/manticore.git/server/config/seed.js \
- /var/www/manticore.git/server/config/
-
-RUN ln -s dist/public/ public
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-ENTRYPOINT [ "/entrypoint.sh" ]
-
-USER nobody
-
-ENV NODE_PATH /usr/lib/node_modules:/var/www/manticore.git/node_modules
-ENV NODE_ENV production
-
-CMD [ "/bin/node", "/var/www/manticore.git/server/app.js" ]
diff --git a/03-manticore/entrypoint.sh b/03-manticore/entrypoint.sh
deleted file mode 100644
index b583756..0000000
--- a/03-manticore/entrypoint.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- MONGODB_DATABASE \
- MONGODB_PASSWORD \
- MONGODB_SERVICE_HOST \
- MONGODB_USERNAME \
- || exit 1
-
-sed -i \
- -e "s/email: 'admin@admin.com',/email: '${MONGODB_ADMIN_EMAIL:-admin@admin.com}',/g" \
- -e "s/password: 'admin',/password: '${MONGODB_ADMIN_PASSWORD:-password}'/g" \
- /var/www/manticore.git/server/config/seed.js
-
-export MONGOLAB_URI="mongodb://${MONGODB_USERNAME}:${MONGODB_PASSWORD}@${MONGODB_SERVICE_HOST}/${MONGODB_DATABASE}"
-
-exec "$@"
diff --git a/03-riak/Dockerfile b/03-riak/Dockerfile
deleted file mode 100644
index ad61a8a..0000000
--- a/03-riak/Dockerfile
+++ /dev/null
@@ -1,19 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- riak && \
- yum clean all
-
-ENV ERTS_PATH /usr/bin
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-EXPOSE 8088
-
-CMD [ \
- "env", \
- "ERTS_PATH=/usr/bin", \
- "/usr/bin/riak", \
- "start" \
- ]
diff --git a/03-riak/entrypoint.sh b/03-riak/entrypoint.sh
deleted file mode 100644
index ea9a9bd..0000000
--- a/03-riak/entrypoint.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-if [ $# -lt 1 ]; then
- exec /bin/bash
-else
- exec "$@"
-fi
-
diff --git a/03-roundcube-next/Dockerfile b/03-roundcube-next/Dockerfile
deleted file mode 100644
index 9c5614c..0000000
--- a/03-roundcube-next/Dockerfile
+++ /dev/null
@@ -1,46 +0,0 @@
-FROM kolab/base-nodejs:latest
-
-MAINTAINER Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
-
-#ENV GITHUB_ACCOUNT=kanarip
-#ENV GIT_BRANCH=dev/ember-build-fails
-
-RUN yum -y install \
- ruby-devel \
- rubygem-bundler && \
- yum clean all
-
-RUN npm install --verbose -g \
- ember-cli && \
- rm -rf /root/.npm/
-
-RUN git clone \
- -b ${GIT_BRANCH:-master} \
- https://github.com/${GITHUB_ACCOUNT:-roundcube-next}/roundcube-shell.git \
- /var/www/roundcube-shell.git/ && \
- rm -rf /var/www/roundcube-shell.git/.git/
-
-WORKDIR /var/www/roundcube-shell.git/
-
-RUN npm install --verbose && \
- npm dedupe --verbose && \
- rm -rf /root/.npm/
-
-RUN bower --allow-root install
-
-# These fail, see https://git.kolab.org/T858
-RUN sed -i \
- -e '/ES6 only/,+19d' \
- node_modules/jscs/lib/config/configuration.js
-
-# This fails without setting JMAP_HOST environment variable
-#RUN ember build --environment production
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-CMD [ \
- "ember", \
- "server", \
- "--live-reload=false" \
- ]
diff --git a/03-roundcube-next/entrypoint.sh b/03-roundcube-next/entrypoint.sh
deleted file mode 100644
index 4196f23..0000000
--- a/03-roundcube-next/entrypoint.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_var KOLAB_JMAP_PROXY_SERVICE_HOST || check_var JMAP_HOST || exit 1
-
-if [ ! -z "${KOLAB_JMAP_PROXY_SERVICE_HOST}" ]; then
- export JMAP_HOST="http://${KOLAB_JMAP_PROXY_SERVICE_HOST}:${KOLAB_JMAP_PROXY_SERVICE_PORT:-80}"
-fi
-
-exec "$@"
diff --git a/03-roundcubemail/Dockerfile b/03-roundcubemail/Dockerfile
deleted file mode 100644
index eb27e58..0000000
--- a/03-roundcubemail/Dockerfile
+++ /dev/null
@@ -1,10 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y install \
- roundcubemail \
- roundcubemail-plugin-contextmenu \
- roundcubemail-plugins-kolab && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-roundcubemail/entrypoint.sh b/03-roundcubemail/entrypoint.sh
deleted file mode 100644
index 11a8840..0000000
--- a/03-roundcubemail/entrypoint.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_var MARIADB_SERVICE_HOST || check_var ROUNDCUBEMAIL_DATABASE_SERVICE_HOST || exit 1
-
-check_vars \
- DOMAIN \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_LDAP_MASTER_SERVICE_PORT \
- KOLAB_SERVICE_PASSWORD \
- KOLAB_ROUNDCUBEMAIL_DATABASE_USERNAME \
- KOLAB_ROUNDCUBEMAIL_DATABASE_PASSWORD \
- KOLAB_ROUNDCUBEMAIL_DATABASE_NAME \
- || exit 1
-
-if [ ! -z "${MARIADB_SERVICE_HOST}" ]; then
- db_host=${MARIADB_SERVICE_HOST}
-else
- db_host=${ROUNDCUBEMAIL_DATABASE_SERVICE_HOST}
-fi
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/kolab.conf
-
-export TERM=xterm
-tables=$(mysql \
- -h ${db_host} \
- -u ${KOLAB_ROUNDCUBEMAIL_DATABASE_USERNAME} \
- --password=${KOLAB_ROUNDCUBEMAIL_DATABASE_PASSWORD} \
- ${KOLAB_ROUNDCUBEMAIL_DATABASE_NAME} \
- -e 'show tables;' \
- 2>/dev/null
- )
-
-if [ -z "${tables}" ]; then
- mysql \
- -h ${db_host} \
- -u ${KOLAB_ROUNDCUBEMAIL_DATABASE_USERNAME} \
- --password=${KOLAB_ROUNDCUBEMAIL_DATABASE_PASSWORD} \
- ${KOLAB_ROUNDCUBEMAIL_DATABASE_NAME} \
- < /usr/share/doc/roundcubemail-*/SQL/mysql.initial.sql
-fi
-
-exec "$@"
diff --git a/03-submission/Dockerfile b/03-submission/Dockerfile
deleted file mode 100644
index a56f427..0000000
--- a/03-submission/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM kolab/base-mx:latest
-
-RUN yum -y install \
- kolab-saslauthd && \
- yum clean all
-
-EXPOSE 587
diff --git a/03-syncroton/Dockerfile b/03-syncroton/Dockerfile
deleted file mode 100644
index 0a8df1f..0000000
--- a/03-syncroton/Dockerfile
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y install \
- kolab-syncroton && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-syncroton/entrypoint.sh b/03-syncroton/entrypoint.sh
deleted file mode 100755
index 5fc4448..0000000
--- a/03-syncroton/entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec "$@"
diff --git a/03-wallace/Dockerfile b/03-wallace/Dockerfile
deleted file mode 100644
index 38aa7f5..0000000
--- a/03-wallace/Dockerfile
+++ /dev/null
@@ -1,16 +0,0 @@
-FROM kolab/base:latest
-
-RUN yum -y install \
- wallace && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-VOLUME [ "/var/spool/pykolab/wallace" ]
-
-EXPOSE 10026
-
-CMD [ \
- "wallaced" \
- ]
diff --git a/03-wallace/entrypoint.sh b/03-wallace/entrypoint.sh
deleted file mode 100644
index 5c1ebd7..0000000
--- a/03-wallace/entrypoint.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_vars \
- DOMAIN \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_LDAP_MASTER_SERVICE_PORT \
- KOLAB_SERVICE_PASSWORD \
- || exit 1
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- /etc/kolab/kolab.conf
-
-persist \
- /var/spool/pykolab/wallace/
-
-exec "$@"
diff --git a/03-webadmin/Dockerfile b/03-webadmin/Dockerfile
deleted file mode 100644
index 65c12d1..0000000
--- a/03-webadmin/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM kolab/base-web-rc:latest
-
-RUN yum -y --setopt tsflags= install \
- kolab-webadmin && \
- yum -y install \
- mariadb \
- pykolab && \
- yum clean all
-
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
diff --git a/03-webadmin/entrypoint.sh b/03-webadmin/entrypoint.sh
deleted file mode 100644
index c1facb7..0000000
--- a/03-webadmin/entrypoint.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/bash
-
-. /functions.sh
-
-check_var MARIADB_SERVICE_HOST || check_var WEBADMIN_DATABASE_SERVICE_HOST || exit 1
-
-check_vars \
- DOMAIN \
- KOLAB_LDAP_MASTER_SERVICE_HOST \
- KOLAB_LDAP_MASTER_SERVICE_PORT \
- KOLAB_SERVICE_PASSWORD \
- KOLAB_WEBADMIN_DATABASE_USERNAME \
- KOLAB_WEBADMIN_DATABASE_PASSWORD \
- KOLAB_WEBADMIN_DATABASE_NAME \
- || exit 1
-
-if [ ! -z "${MARIADB_SERVICE_HOST}" ]; then
- db_host=${MARIADB_SERVICE_HOST}
-else
- db_host=${WEBADMIN_DATABASE_SERVICE_HOST}
-fi
-
-sed -i -r \
- -e "s/^primary_domain = .*$/primary_domain = ${DOMAIN}/g" \
- -e "s|^ldap_uri = .*$|ldap_uri = ldap://${KOLAB_LDAP_MASTER_SERVICE_HOST}:${KOLAB_LDAP_MASTER_SERVICE_PORT}|g" \
- -e "s/^base_dn = .*$/base_dn = $(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^domain_base_dn = .*$/domain_base_dn = ou=Domains,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_dn = .*$/bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^bind_pw = .*$/bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s/^service_bind_dn = .*$/service_bind_dn = uid=kolab-service,ou=Special Users,$(domain_to_root_dn ${DOMAIN})/g" \
- -e "s/^service_bind_pw = .*$/service_bind_pw = ${KOLAB_SERVICE_PASSWORD}/g" \
- -e "s|^sql_uri = .*$|sql_uri = mysql://${KOLAB_WEBADMIN_DATABASE_USERNAME}:${KOLAB_WEBADMIN_DATABASE_PASSWORD}@${db_host}/${KOLAB_WEBADMIN_DATABASE_NAME}|g" \
- /etc/kolab/kolab.conf
-
-export TERM=xterm
-tables=$(mysql \
- -h ${db_host} \
- -u ${KOLAB_WEBADMIN_DATABASE_USERNAME} \
- --password=${KOLAB_WEBADMIN_DATABASE_PASSWORD} \
- ${KOLAB_WEBADMIN_DATABASE_NAME} \
- -e 'show tables;' \
- 2>/dev/null
- )
-
-if [ -z "${tables}" ]; then
- mysql \
- -h ${db_host} \
- -u ${KOLAB_WEBADMIN_DATABASE_USERNAME} \
- --password=${KOLAB_WEBADMIN_DATABASE_PASSWORD} \
- ${KOLAB_WEBADMIN_DATABASE_NAME} \
- < /usr/share/doc/kolab-webadmin-*/kolab_wap.sql
-fi
-
-exec "$@"
diff --git a/04-chwala-database/Dockerfile b/04-chwala-database/Dockerfile
deleted file mode 100644
index fae1fbc..0000000
--- a/04-chwala-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: chwala-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: chwala-database-/g' \
- /application-entity/Nulecule
diff --git a/04-freebusy-database/Dockerfile b/04-freebusy-database/Dockerfile
deleted file mode 100644
index e9ec8f6..0000000
--- a/04-freebusy-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: freebusy-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: freebusy-database-/g' \
- /application-entity/Nulecule
diff --git a/04-irony-database/Dockerfile b/04-irony-database/Dockerfile
deleted file mode 100644
index 9f281d0..0000000
--- a/04-irony-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: irony-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: irony-database-/g' \
- /application-entity/Nulecule
diff --git a/04-roundcubemail-database/Dockerfile b/04-roundcubemail-database/Dockerfile
deleted file mode 100644
index 69f11f3..0000000
--- a/04-roundcubemail-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: roundcubemail-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: roundcubemail-database-/g' \
- /application-entity/Nulecule
diff --git a/04-syncroton-database/Dockerfile b/04-syncroton-database/Dockerfile
deleted file mode 100644
index 41f3904..0000000
--- a/04-syncroton-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: syncroton-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: syncroton-database-/g' \
- /application-entity/Nulecule
diff --git a/04-webadmin-database/Dockerfile b/04-webadmin-database/Dockerfile
deleted file mode 100644
index c6572a7..0000000
--- a/04-webadmin-database/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/mariadb-centos7-atomicapp
-
-RUN sed -i -r \
- -e 's/name: mariadb/name: webadmin-database/g' \
- /application-entity/artifacts/kubernetes/*.yaml
-
-RUN sed -i -r \
- -e 's/(id|name): mariadb-/\1: webadmin-database-/g' \
- /application-entity/Nulecule
diff --git a/05-asav-in-atomicapp/Dockerfile b/05-asav-in-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-asav-in-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-asav-in-atomicapp/Nulecule b/05-asav-in-atomicapp/Nulecule
deleted file mode 100644
index 89c3148..0000000
--- a/05-asav-in-atomicapp/Nulecule
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-asav-in",
- "metadata": {
- "name": "Kolab Inbound Anti-Spam and Anti-Virus",
- "appversion": "development",
- "description": "Kolab Inbound Anti-Spam and Anti-Virus"
- },
- "graph": [
- {
- "name": "kolab-asav-in",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/asav-in"
- },
- {
- "name": "domain",
- "description": "Domain",
- "default": "docker.container"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-asav-in-atomicapp/artifacts/docker/run-pod b/05-asav-in-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index fcc9800..0000000
--- a/05-asav-in-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,7 +0,0 @@
-docker run -d \
- --name kolab-asav-in-atomicapp-app \
- --link kolab-ext-mx-in-atomicapp-app:10025 \
- -p 10024:10024 \
- -e DOMAIN=${domain} \
- -e FORWARD_METHOD=${forward_method} \
- $image
diff --git a/05-asav-in-atomicapp/artifacts/kubernetes/pod.json b/05-asav-in-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index d617064..0000000
--- a/05-asav-in-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-asav-in",
- "metadata": {
- "name": "kolab-asav-in",
- "labels": {
- "name": "kolab-asav-in"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-asav-in",
- "image": "$image",
- "ports": [
- {
- "containerPort": 10024
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-asav-in-atomicapp/artifacts/kubernetes/service.json b/05-asav-in-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 91f9217..0000000
--- a/05-asav-in-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-asav-in",
- "labels": {
- "name": "kolab-asav-in"
- }
- },
- "spec": {
- "ports": [
- {
- "port": 10024,
- "targetPort": 10024
- }
- ],
- "selector": {
- "name": "kolab-asav-in"
- }
- }
-}
diff --git a/05-asav-out-atomicapp/Dockerfile b/05-asav-out-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-asav-out-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-asav-out-atomicapp/Nulecule b/05-asav-out-atomicapp/Nulecule
deleted file mode 100644
index 009cbd5..0000000
--- a/05-asav-out-atomicapp/Nulecule
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-asav-out",
- "metadata": {
- "name": "Kolab Inbound Anti-Spam and Anti-Virus",
- "appversion": "development",
- "description": "Kolab Inbound Anti-Spam and Anti-Virus"
- },
- "graph": [
- {
- "name": "kolab-asav-out",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/asav-out"
- },
- {
- "name": "domain",
- "description": "Domain",
- "default": "docker.container"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-asav-out-atomicapp/artifacts/docker/run-pod b/05-asav-out-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index d06bd31..0000000
--- a/05-asav-out-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,4 +0,0 @@
-docker run -d \
- -p 10024:10024 \
- -e DOMAIN=${domain} \
- $image
diff --git a/05-asav-out-atomicapp/artifacts/kubernetes/pod.json b/05-asav-out-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 5e7bd45..0000000
--- a/05-asav-out-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-asav-out",
- "metadata": {
- "name": "kolab-asav-out",
- "labels": {
- "name": "kolab-asav-out"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-asav-out",
- "image": "$image",
- "ports": [
- {
- "containerPort": 10024
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-asav-out-atomicapp/artifacts/kubernetes/service.json b/05-asav-out-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 805d50b..0000000
--- a/05-asav-out-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-asav-out",
- "labels": {
- "name": "kolab-asav-out"
- }
- },
- "spec": {
- "ports": [
- {
- "port": 10024,
- "targetPort": 10024
- }
- ],
- "selector": {
- "name": "kolab-asav-out"
- }
- }
-}
diff --git a/05-chwala-atomicapp/Dockerfile b/05-chwala-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-chwala-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-chwala-atomicapp/Nulecule b/05-chwala-atomicapp/Nulecule
deleted file mode 100644
index 4d1bae9..0000000
--- a/05-chwala-atomicapp/Nulecule
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-chwala",
- "metadata": {
- "name": "Kolab File Cloud Interface",
- "appversion": "development",
- "description": "File Cloud Interface"
- },
- "graph": [
- {
- "name": "kolab-chwala",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/chwala"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-chwala-database",
- "source": "docker://kolab/chwala-database"
- }
- ]
-}
diff --git a/05-chwala-atomicapp/artifacts/docker/run-pod b/05-chwala-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 8d0b129..0000000
--- a/05-chwala-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 80:80 \
- -p 443:443 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-chwala-atomicapp/artifacts/kubernetes/pod.json b/05-chwala-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index bd69ac8..0000000
--- a/05-chwala-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-chwala",
- "labels": {
- "name": "kolab-chwala"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-chwala",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_CHWALA_DATABASE_NAME",
- "value": "$kolab_chwala_database_name"
- },
- {
- "name": "KOLAB_CHWALA_DATABASE_PASSWORD",
- "value": "$kolab_chwala_database_password"
- },
- {
- "name": "KOLAB_CHWALA_DATABASE_USERNAME",
- "value": "$kolab_chwala_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-chwala-atomicapp/artifacts/kubernetes/service.json b/05-chwala-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 0972140..0000000
--- a/05-chwala-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-chwala",
- "labels": {
- "name": "kolab-chwala"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-chwala"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-ext-mx-in-atomicapp/Dockerfile b/05-ext-mx-in-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-ext-mx-in-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-ext-mx-in-atomicapp/Nulecule b/05-ext-mx-in-atomicapp/Nulecule
deleted file mode 100644
index c0b5bcc..0000000
--- a/05-ext-mx-in-atomicapp/Nulecule
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-ext-mx-in",
- "metadata": {
- "name": "Kolab External Mail Exchanger for Inbound Traffic",
- "appversion": "1.0.0",
- "description": "Atomic Application for Inbound Message Traffic"
- },
- "graph": [
- {
- "name": "kolab-asav-in",
- "source": "docker://kolab/asav-in-atomicapp"
- },
- {
- "name": "kolab-ext-mx-in",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/ext-mx-in"
- },
- {
- "name": "domain",
- "description": "Domain name space",
- "default": "docker.container"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password",
- "default": "welcome123"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/controller.json",
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-ext-mx-in-atomicapp/README.md b/05-ext-mx-in-atomicapp/README.md
deleted file mode 100644
index fe3b928..0000000
--- a/05-ext-mx-in-atomicapp/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## External Mail Exchanger (Inbound)
-
diff --git a/05-ext-mx-in-atomicapp/artifacts/docker/run-pod b/05-ext-mx-in-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 7685819..0000000
--- a/05-ext-mx-in-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,7 +0,0 @@
-docker run -d \
- --name kolab-ext-mx-in-atomicapp-app \
- --link kolab-asav-in-atomicapp-app:amavis \
- -p 25:25 \
- -p 10025:10025 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-ext-mx-in-atomicapp/artifacts/kubernetes/controller.json b/05-ext-mx-in-atomicapp/artifacts/kubernetes/controller.json
deleted file mode 100644
index 7b1ea51..0000000
--- a/05-ext-mx-in-atomicapp/artifacts/kubernetes/controller.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "kind": "ReplicationController",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-ext-mx-in",
- "labels": {
- "name": "kolab-ext-mx-in"
- }
- },
- "spec": {
- "replicas": 1,
- "selector": {
- "name": "kolab-ext-mx-in"
- },
- "template": {
- "metadata": {
- "labels": {
- "name": "kolab-ext-mx-in"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-ext-mx-in",
- "image": "$image",
- "ports": [
- {
- "name": "smtp",
- "containerPort": 25,
- "nodePort": 25
- }
- ]
- }
- ]
- }
- }
- }
-}
diff --git a/05-ext-mx-in-atomicapp/artifacts/kubernetes/pod.json b/05-ext-mx-in-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 3c28a81..0000000
--- a/05-ext-mx-in-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-ext-mx-in",
- "metadata": {
- "name": "kolab-ext-mx-in",
- "labels": {
- "name": "kolab-ext-mx-in"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-ext-mx-in",
- "image": "$image",
- "ports": [
- {
- "containerPort": 25
- },
- {
- "containerPort": 10025
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-ext-mx-in-atomicapp/artifacts/kubernetes/service.json b/05-ext-mx-in-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 6e27cb1..0000000
--- a/05-ext-mx-in-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-ext-mx-in",
- "labels": {
- "name": "kolab-ext-mx-in"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "smtp",
- "port": 25,
- "targetPort": 25
- }
- ],
- "selector": {
- "name": "kolab-ext-mx-in"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-ext-mx-out-atomicapp/Dockerfile b/05-ext-mx-out-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-ext-mx-out-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-ext-mx-out-atomicapp/Nulecule b/05-ext-mx-out-atomicapp/Nulecule
deleted file mode 100644
index b2f90a7..0000000
--- a/05-ext-mx-out-atomicapp/Nulecule
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-ext-mx-out",
- "metadata": {
- "name": "kolab-ext-mx-out",
- "appversion": "development",
- "description": "External Mail Exchanger (Outbound)"
- },
- "graph": [
- {
- "name": "kolab-asav-out",
- "source": "docker://kolab/asav-out-atomicapp"
- },
- {
- "name": "kolab-ext-mx-out",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/ext-mx-out"
- },
- {
- "name": "domain",
- "description": "Domain name space",
- "default": "docker.container"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Account Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-ext-mx-out-atomicapp/README.md b/05-ext-mx-out-atomicapp/README.md
deleted file mode 100644
index cb0f6e0..0000000
--- a/05-ext-mx-out-atomicapp/README.md
+++ /dev/null
@@ -1 +0,0 @@
-## External Mail Exchanger (Outbound)
diff --git a/05-ext-mx-out-atomicapp/artifacts/docker/run-pod b/05-ext-mx-out-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index b3c2855..0000000
--- a/05-ext-mx-out-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,4 +0,0 @@
-docker run -d \
- -p 25:25 \
- -p 10025:10025 \
- $image
diff --git a/05-ext-mx-out-atomicapp/artifacts/kubernetes/pod.json b/05-ext-mx-out-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 54573cc..0000000
--- a/05-ext-mx-out-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-ext-mx-out",
- "metadata": {
- "name": "kolab-ext-mx-out",
- "labels": {
- "name": "kolab-ext-mx-out"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-ext-mx-out",
- "image": "$image",
- "ports": [
- {
- "containerPort": 25
- },
- {
- "containerPort": 10025
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-ext-mx-out-atomicapp/artifacts/kubernetes/service.json b/05-ext-mx-out-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 76ef520..0000000
--- a/05-ext-mx-out-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-ext-mx-out",
- "labels": {
- "name": "kolab-ext-mx-out"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "smtp",
- "port": 25,
- "targetPort": 25
- },
- {
- "name": "submission",
- "port": 10025,
- "targetPort": 10025
- }
- ],
- "selector": {
- "name": "kolab-ext-mx-out"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-freebusy-atomicapp/Dockerfile b/05-freebusy-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-freebusy-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-freebusy-atomicapp/Nulecule b/05-freebusy-atomicapp/Nulecule
deleted file mode 100644
index 9622edd..0000000
--- a/05-freebusy-atomicapp/Nulecule
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-freebusy",
- "metadata": {
- "name": "Kolab Free/Busy Interface",
- "appversion": "14.0",
- "description": "Free/Busy Interface"
- },
- "graph": [
- {
- "name": "kolab-freebusy",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/freebusy"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "kolab_freebusy_database_name",
- "description": "Database name",
- "default": "freebusy"
- },
- {
- "name": "kolab_freebusy_database_password",
- "description": "Database password",
- "default": "welcome123"
- },
- {
- "name": "kolab_freebusy_database_username",
- "description": "Database user",
- "default": "kolab"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-freebusy-database",
- "source": "docker://kolab/freebusy-database"
- }
- ]
-}
diff --git a/05-freebusy-atomicapp/artifacts/docker/run-pod b/05-freebusy-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 8d0b129..0000000
--- a/05-freebusy-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 80:80 \
- -p 443:443 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-freebusy-atomicapp/artifacts/kubernetes/pod.json b/05-freebusy-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 6615730..0000000
--- a/05-freebusy-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-freebusy",
- "labels": {
- "name": "kolab-freebusy"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-freebusy",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_FREEBUSY_DATABASE_NAME",
- "value": "$kolab_freebusy_database_name"
- },
- {
- "name": "KOLAB_FREEBUSY_DATABASE_PASSWORD",
- "value": "$kolab_freebusy_database_password"
- },
- {
- "name": "KOLAB_FREEBUSY_DATABASE_USERNAME",
- "value": "$kolab_freebusy_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-freebusy-atomicapp/artifacts/kubernetes/service.json b/05-freebusy-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index d3def10..0000000
--- a/05-freebusy-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-freebusy",
- "labels": {
- "name": "kolab-freebusy"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-freebusy"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-freebusy-atomicapp/entrypoint.sh b/05-freebusy-atomicapp/entrypoint.sh
deleted file mode 100755
index 6792eeb..0000000
--- a/05-freebusy-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec top
diff --git a/05-guam-atomicapp/Dockerfile b/05-guam-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-guam-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-guam-atomicapp/Nulecule b/05-guam-atomicapp/Nulecule
deleted file mode 100644
index 6548f54..0000000
--- a/05-guam-atomicapp/Nulecule
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-guam",
- "metadata": {
- "name": "Kolab IMAP Backend",
- "appversion": "2.5.6",
- "description": "Cyrus IMAP Backend Container"
- },
- "graph": [
- {
- "name": "kolab-guam",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/guam"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/controller.json",
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-guam-atomicapp/README.md b/05-guam-atomicapp/README.md
deleted file mode 100644
index 77acf09..0000000
--- a/05-guam-atomicapp/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-## The IMAP Reverse Proxy
-
-This is an IMAP Reverse Proxy for Kolab Groupware.
-
-It prevents clients that do not understand how to represent the
-contents of those IMAP folders that contain groupware data from reading
-and/or obtaining those very folders.
-
-It also bridges the gap between SPECIAL-USE clients and Kolab clients,
-whom may otherwise have to consider data in desync.
diff --git a/05-guam-atomicapp/artifacts/docker/run-pod b/05-guam-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 0948d3c..0000000
--- a/05-guam-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,9 +0,0 @@
-docker run -d \
- -p 110:110 \
- -p 143:143 \
- -p 993:993 \
- -p 995:995 \
- -p 4190:4190 \
- -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-guam-atomicapp/artifacts/kubernetes/controller.json b/05-guam-atomicapp/artifacts/kubernetes/controller.json
deleted file mode 100644
index 3f9b26f..0000000
--- a/05-guam-atomicapp/artifacts/kubernetes/controller.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "kind": "ReplicationController",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-guam",
- "labels": {
- "name": "kolab-guam"
- }
- },
- "spec": {
- "replicas": 1,
- "selector": {
- "name": "kolab-guam"
- },
- "template": {
- "metadata": {
- "labels": {
- "name": "kolab-guam"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-guam",
- "image": "$image",
- "ports": [
- {
- "name": "imap",
- "containerPort": 143
- },
- {
- "name": "imaps",
- "containerPort": 993
- }
- ]
- }
- ]
- }
- }
- }
-}
diff --git a/05-guam-atomicapp/artifacts/kubernetes/pod.json b/05-guam-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index ca04aee..0000000
--- a/05-guam-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-guam",
- "metadata": {
- "name": "kolab-guam",
- "labels": {
- "name": "kolab-guam"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-guam",
- "image": "$image",
- "ports": [
- {
- "containerPort": 143
- },
- {
- "containerPort": 993
- }
- ]
- }
- ]
- }
-}
diff --git a/05-guam-atomicapp/artifacts/kubernetes/service.json b/05-guam-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 50e386d..0000000
--- a/05-guam-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-guam",
- "labels": {
- "name": "kolab-guam"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "imap",
- "port": 143,
- "targetPort": 143
- },
- {
- "name": "imaps",
- "port": 993,
- "targetPort": 993
- }
- ],
- "selector": {
- "name": "kolab-guam"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-guam-atomicapp/entrypoint.sh b/05-guam-atomicapp/entrypoint.sh
deleted file mode 100755
index 3999ac7..0000000
--- a/05-guam-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-exec "$@"
-
-exec top
diff --git a/05-imap-mupdate-atomicapp/Dockerfile b/05-imap-mupdate-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-imap-mupdate-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-imap-mupdate-atomicapp/Nulecule b/05-imap-mupdate-atomicapp/Nulecule
deleted file mode 100644
index cf20d72..0000000
--- a/05-imap-mupdate-atomicapp/Nulecule
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-imap-mupdate",
- "metadata": {
- "name": "Kolab Cyrus IMAP Mupdate server",
- "appversion": "2.5.6",
- "description": "Maintains mailbox information across the Cyrus IMAP Murder."
- },
- "graph": [
- {
- "name": "kolab-imap-mupdate",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/imap-mupdate"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-imap-mupdate-atomicapp/artifacts/docker/run-pod b/05-imap-mupdate-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index bb18029..0000000
--- a/05-imap-mupdate-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1 +0,0 @@
-docker run -d -p 3905:3905 -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password -e KOLAB_SERVICE_PASSWORD=$kolab_service_password kolab/imap-mupdate
diff --git a/05-imap-mupdate-atomicapp/artifacts/kubernetes/pod.json b/05-imap-mupdate-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 7e7bfd2..0000000
--- a/05-imap-mupdate-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-imap-mupdate",
- "metadata": {
- "name": "kolab-imap-mupdate",
- "labels": {
- "name": "kolab-imap-mupdate"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-imap-mupdate",
- "image": "$image",
- "ports": [
- {
- "containerPort": 3905
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-imap-mupdate-atomicapp/artifacts/kubernetes/service.json b/05-imap-mupdate-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 3a8c31e..0000000
--- a/05-imap-mupdate-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-imap-mupdate",
- "labels": {
- "name": "kolab-imap-mupdate"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "mupdate",
- "port": 3905,
- "targetPort": 3905
- }
- ],
- "selector": {
- "name": "kolab-imap-mupdate"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-imap-mupdate-atomicapp/entrypoint.sh b/05-imap-mupdate-atomicapp/entrypoint.sh
deleted file mode 100755
index c8d10e7..0000000
--- a/05-imap-mupdate-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-# Apply some configuration
-exec "$@"
diff --git a/05-imapb-atomicapp/Dockerfile b/05-imapb-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-imapb-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-imapb-atomicapp/Nulecule b/05-imapb-atomicapp/Nulecule
deleted file mode 100644
index b675800..0000000
--- a/05-imapb-atomicapp/Nulecule
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-imapb",
- "metadata": {
- "name": "Kolab IMAP Backend",
- "appversion": "development",
- "description": "Cyrus IMAP Backend Container"
- },
- "graph": [
- {
- "name": "kolab-imapb",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/imapb"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password",
- "default": "$cyrus_admin_password"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password",
- "default": "$kolab_service_password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-imapb-atomicapp/artifacts/docker/run-pod b/05-imapb-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 0948d3c..0000000
--- a/05-imapb-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,9 +0,0 @@
-docker run -d \
- -p 110:110 \
- -p 143:143 \
- -p 993:993 \
- -p 995:995 \
- -p 4190:4190 \
- -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-imapb-atomicapp/artifacts/kubernetes/service.json b/05-imapb-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index e67ac95..0000000
--- a/05-imapb-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-imapb",
- "labels": {
- "name": "kolab-imapb"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "pop",
- "port": 110,
- "targetPort": 110
- },
- {
- "name": "imap",
- "port": 143,
- "targetPort": 143
- },
- {
- "name": "imaps",
- "port": 993,
- "targetPort": 993
- },
- {
- "name": "pops",
- "port": 995,
- "targetPort": 995
- },
- {
- "name": "managesieve",
- "port": 4190,
- "targetPort": 4190
- }
- ],
- "selector": {
- "name": "kolab-imapb"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-imapb-atomicapp/artifacts/kubernetes/storage.json b/05-imapb-atomicapp/artifacts/kubernetes/storage.json
deleted file mode 100644
index 851fc0c..0000000
--- a/05-imapb-atomicapp/artifacts/kubernetes/storage.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "kind": "PersistentVolumeClaim",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-imapb"
- },
- "spec": {
- "accessModes": [
- "ReadWriteOnce"
- ],
- "resources": {
- "requests": {
- "storage": 3
- }
- }
- }
-}
diff --git a/05-imapb-atomicapp/entrypoint.sh b/05-imapb-atomicapp/entrypoint.sh
deleted file mode 100755
index d606f56..0000000
--- a/05-imapb-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# Apply some configuration
-exec "$@"
-
-exec top
diff --git a/05-imapf-ext-atomicapp/Dockerfile b/05-imapf-ext-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-imapf-ext-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-imapf-ext-atomicapp/Nulecule b/05-imapf-ext-atomicapp/Nulecule
deleted file mode 100644
index 668b23f..0000000
--- a/05-imapf-ext-atomicapp/Nulecule
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-imapf-ext",
- "metadata": {
- "name": "Kolab External IMAP Frontend",
- "appversion": "development",
- "description": "Used for external IMAP connections"
- },
- "graph": [
- {
- "name": "kolab-imapf-ext",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/imapf-ext"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-imapf-ext-atomicapp/artifacts/docker/run-pod b/05-imapf-ext-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 0948d3c..0000000
--- a/05-imapf-ext-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,9 +0,0 @@
-docker run -d \
- -p 110:110 \
- -p 143:143 \
- -p 993:993 \
- -p 995:995 \
- -p 4190:4190 \
- -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-imapf-ext-atomicapp/artifacts/kubernetes/pod.json b/05-imapf-ext-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 67ac15b..0000000
--- a/05-imapf-ext-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-imapf-ext",
- "metadata": {
- "name": "kolab-imapf-ext",
- "labels": {
- "name": "kolab-imapf-ext"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-imapf-ext",
- "image": "$image",
- "ports": [
- {
- "name": "pop",
- "containerPort": 110
- },
- {
- "name": "imap",
- "containerPort": 143
- },
- {
- "name": "imaps",
- "containerPort": 993
- },
- {
- "name": "pops",
- "containerPort": 995
- },
- {
- "name": "managesieve",
- "containerPort": 4190
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-imapf-ext-atomicapp/artifacts/kubernetes/service.json b/05-imapf-ext-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 73efb4c..0000000
--- a/05-imapf-ext-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-imapf-ext",
- "labels": {
- "name": "kolab-imapf-ext"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "pop",
- "port": 110,
- "targetPort": 110
- },
- {
- "name": "imap",
- "port": 143,
- "targetPort": 143
- },
- {
- "name": "imaps",
- "port": 993,
- "targetPort": 993
- },
- {
- "name": "pops",
- "port": 995,
- "targetPort": 995
- },
- {
- "name": "managesieve",
- "port": 4190,
- "targetPort": 4190
- }
- ],
- "selector": {
- "name": "kolab-imapf-ext"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-imapf-ext-atomicapp/entrypoint.sh b/05-imapf-ext-atomicapp/entrypoint.sh
deleted file mode 100755
index d606f56..0000000
--- a/05-imapf-ext-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# Apply some configuration
-exec "$@"
-
-exec top
diff --git a/05-imapf-int-atomicapp/Dockerfile b/05-imapf-int-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-imapf-int-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-imapf-int-atomicapp/Nulecule b/05-imapf-int-atomicapp/Nulecule
deleted file mode 100644
index e561269..0000000
--- a/05-imapf-int-atomicapp/Nulecule
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-imapf-int",
- "metadata": {
- "name": "Kolab Internal IMAP Frontend",
- "appversion": "2.5.6",
- "description": "Used for internal IMAP connections"
- },
- "graph": [
- {
- "name": "kolab-imapf-int",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/imapf-int"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-imapf-int-atomicapp/artifacts/docker/run-pod b/05-imapf-int-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 0948d3c..0000000
--- a/05-imapf-int-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,9 +0,0 @@
-docker run -d \
- -p 110:110 \
- -p 143:143 \
- -p 993:993 \
- -p 995:995 \
- -p 4190:4190 \
- -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-imapf-int-atomicapp/artifacts/kubernetes/pod.json b/05-imapf-int-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 0f60ba8..0000000
--- a/05-imapf-int-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-imapf-int",
- "metadata": {
- "name": "kolab-imapf-int",
- "labels": {
- "name": "kolab-imapf-int"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-imapf-int",
- "image": "$image",
- "ports": [
- {
- "name": "pop",
- "containerPort": 110
- },
- {
- "name": "imap",
- "containerPort": 143
- },
- {
- "name": "imaps",
- "containerPort": 993
- },
- {
- "name": "pops",
- "containerPort": 995
- },
- {
- "name": "managesieve",
- "containerPort": 4190
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-imapf-int-atomicapp/artifacts/kubernetes/service.json b/05-imapf-int-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 7a7130e..0000000
--- a/05-imapf-int-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-imapf-int",
- "labels": {
- "name": "kolab-imapf-int"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "pop",
- "port": 110,
- "targetPort": 110
- },
- {
- "name": "imap",
- "port": 143,
- "targetPort": 143
- },
- {
- "name": "imaps",
- "port": 993,
- "targetPort": 993
- },
- {
- "name": "pops",
- "port": 995,
- "targetPort": 995
- },
- {
- "name": "managesieve",
- "port": 4190,
- "targetPort": 4190
- }
- ],
- "selector": {
- "name": "kolab-imapf-int"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-imapf-int-atomicapp/entrypoint.sh b/05-imapf-int-atomicapp/entrypoint.sh
deleted file mode 100755
index d606f56..0000000
--- a/05-imapf-int-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# Apply some configuration
-exec "$@"
-
-exec top
diff --git a/05-int-mx-atomicapp/Dockerfile b/05-int-mx-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-int-mx-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-int-mx-atomicapp/Nulecule b/05-int-mx-atomicapp/Nulecule
deleted file mode 100644
index 0b58fea..0000000
--- a/05-int-mx-atomicapp/Nulecule
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-int-mx",
- "metadata": {
- "name": "Kolab Internal Mail Exchanger",
- "appversion": "development",
- "description": "Kolab Internal Mail Exchanger"
- },
- "graph": [
- {
- "name": "kolab-wallace",
- "source": "docker://kolab/wallace-atomicapp"
- },
- {
- "name": "kolab-int-mx",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/int-mx"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-int-mx-atomicapp/README.md b/05-int-mx-atomicapp/README.md
deleted file mode 100644
index fe3b928..0000000
--- a/05-int-mx-atomicapp/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## External Mail Exchanger (Inbound)
-
diff --git a/05-int-mx-atomicapp/artifacts/docker/run-pod b/05-int-mx-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 94b989b..0000000
--- a/05-int-mx-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,4 +0,0 @@
-docker run -d \
- -p 25:25 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-int-mx-atomicapp/artifacts/kubernetes/pod.json b/05-int-mx-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 1f02ee9..0000000
--- a/05-int-mx-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-int-mx",
- "metadata": {
- "name": "kolab-int-mx",
- "labels": {
- "name": "kolab-int-mx"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-int-mx",
- "image": "$image",
- "ports": [
- {
- "containerPort": 25
- }
- ],
- "env": [
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-int-mx-atomicapp/artifacts/kubernetes/service.json b/05-int-mx-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index b33759a..0000000
--- a/05-int-mx-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-int-mx",
- "labels": {
- "name": "kolab-int-mx"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "smtp",
- "port": 25,
- "targetPort": 25
- },
- {
- "name": "submission",
- "port": 587,
- "targetPort": 587
- }
- ],
- "selector": {
- "name": "kolab-int-mx"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-int-mx-atomicapp/entrypoint.sh b/05-int-mx-atomicapp/entrypoint.sh
deleted file mode 100755
index 296f405..0000000
--- a/05-int-mx-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/etc/postfix/ldap/" ]; then
- setup-kolab --default mta
- systemctl stop postfix
-fi
-
-systemctl start kolab-saslauthd
-
-# Apply some configuration
-exec "$@"
-
-exec top
diff --git a/05-irony-atomicapp/Dockerfile b/05-irony-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-irony-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-irony-atomicapp/Nulecule b/05-irony-atomicapp/Nulecule
deleted file mode 100644
index 3286c54..0000000
--- a/05-irony-atomicapp/Nulecule
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-irony",
- "metadata": {
- "name": "Kolab CalDAV, CardDAV and WebDAV Interface",
- "appversion": "14.0",
- "description": "CalDAV, CardDAV and WebDAV Interface"
- },
- "graph": [
- {
- "name": "kolab-irony",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/irony"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-irony-database",
- "source": "docker://kolab/irony-database"
- }
- ]
-}
diff --git a/05-irony-atomicapp/artifacts/docker/run-pod b/05-irony-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 8d0b129..0000000
--- a/05-irony-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 80:80 \
- -p 443:443 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-irony-atomicapp/artifacts/kubernetes/pod.json b/05-irony-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index a26a015..0000000
--- a/05-irony-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-irony",
- "labels": {
- "name": "kolab-irony"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-irony",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_IRONY_DATABASE_NAME",
- "value": "$kolab_irony_database_name"
- },
- {
- "name": "KOLAB_IRONY_DATABASE_PASSWORD",
- "value": "$kolab_irony_database_password"
- },
- {
- "name": "KOLAB_IRONY_DATABASE_USERNAME",
- "value": "$kolab_irony_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-irony-atomicapp/artifacts/kubernetes/service.json b/05-irony-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index d091ec1..0000000
--- a/05-irony-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-irony",
- "labels": {
- "name": "kolab-irony"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-irony"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-jmap-proxy-atomicapp/Dockerfile b/05-jmap-proxy-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-jmap-proxy-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-jmap-proxy-atomicapp/Nulecule b/05-jmap-proxy-atomicapp/Nulecule
deleted file mode 100644
index c6737d2..0000000
--- a/05-jmap-proxy-atomicapp/Nulecule
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-jmap-proxy",
- "metadata": {
- "name": "JMAP Proxy",
- "appversion": "development",
- "description": "JMAP Proxy"
- },
- "graph": [
- {
- "name": "kolab-jmap-proxy",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/jmap-proxy"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-jmap-proxy-atomicapp/artifacts/docker/run-pod b/05-jmap-proxy-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 766484e..0000000
--- a/05-jmap-proxy-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,4 +0,0 @@
-docker run -d \
- --name kolab-jmap-proxy \
- -p 80:80 \
- $image
diff --git a/05-jmap-proxy-atomicapp/artifacts/kubernetes/pod.json b/05-jmap-proxy-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index ce62005..0000000
--- a/05-jmap-proxy-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-jmap-proxy",
- "labels": {
- "name": "kolab-jmap-proxy"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-jmap-proxy",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- }
- ]
- }
- ]
- }
-}
diff --git a/05-jmap-proxy-atomicapp/artifacts/kubernetes/service.json b/05-jmap-proxy-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index a99c78f..0000000
--- a/05-jmap-proxy-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-jmap-proxy",
- "labels": {
- "name": "kolab-jmap-proxy"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- }
- ],
- "selector": {
- "name": "kolab-jmap-proxy"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-ldap-master-atomicapp/Dockerfile b/05-ldap-master-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-ldap-master-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-ldap-master-atomicapp/Nulecule b/05-ldap-master-atomicapp/Nulecule
deleted file mode 100644
index 8e7b2ed..0000000
--- a/05-ldap-master-atomicapp/Nulecule
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-ldap-master",
- "metadata": {
- "name": "Kolab LDAP Master",
- "appversion": "development",
- "description": "Kolab LDAP Master"
- },
- "graph": [
- {
- "name": "kolab-ldap-master",
- "params": [
- {
- "name": "image",
- "description": "Image to use to fulfill the LDAP master role",
- "default": "kolab/ldap-master"
- },
- {
- "name": "domain",
- "description": "Domain",
- "default": "docker.container"
- },
- {
- "name": "admin_password",
- "description": "Administrator Password",
- "default": "welcome123"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password",
- "default": "welcome123"
- },
- {
- "name": "directory_manager_password",
- "description": "Directory Manager Password",
- "default": "welcome123"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Account Password",
- "default": "welcome123"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-ldap-master-atomicapp/artifacts/docker/run-pod b/05-ldap-master-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 50c570e..0000000
--- a/05-ldap-master-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,8 +0,0 @@
-docker run -d \
- -p 389:389 \
- -p 636:636 \
- -h ldap-master.$admin_domain \
- -e ADMIN_PASSWORD=$admin_password \
- -e DIRECTORY_MANAGER_PASSWORD=$directory_manager_password \
- -e DOMAIN=$domain \
- $image
diff --git a/05-ldap-master-atomicapp/artifacts/kubernetes/pod.json b/05-ldap-master-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index ee89609..0000000
--- a/05-ldap-master-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-ldap-master",
- "metadata": {
- "name": "kolab-ldap-master",
- "labels": {
- "name": "kolab-ldap-master"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-ldap-master",
- "image": "$image",
- "ports": [
- {
- "containerPort": 389
- },
- {
- "containerPort": 636
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "ADMIN_PASSWORD",
- "value": "$admin_password"
- },
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "DIRECTORY_MANAGER_PASSWORD",
- "value": "$directory_manager_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-ldap-master-atomicapp/artifacts/kubernetes/service.json b/05-ldap-master-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index f62d002..0000000
--- a/05-ldap-master-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-ldap-master",
- "labels": {
- "name": "kolab-ldap-master"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "ldap",
- "port": 389,
- "targetPort": 389
- },
- {
- "name": "ldaps",
- "port": 636,
- "targetPort": 636
- }
- ],
- "selector": {
- "name": "kolab-ldap-master"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-ldap-master-atomicapp/entrypoint.sh b/05-ldap-master-atomicapp/entrypoint.sh
deleted file mode 100755
index 37abed4..0000000
--- a/05-ldap-master-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# Environment variables:
-# ADMIN_PASSWORD
-# DIRECTORY_MANAGER_PASSWORD
-# DOMAIN
-
-exec top
diff --git a/05-ldap-slave-atomicapp/Dockerfile b/05-ldap-slave-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-ldap-slave-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-ldap-slave-atomicapp/Nulecule b/05-ldap-slave-atomicapp/Nulecule
deleted file mode 100644
index 9f089cf..0000000
--- a/05-ldap-slave-atomicapp/Nulecule
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-ldap-slave",
- "metadata": {
- "name": "Kolab LDAP",
- "appversion": "1.2.11.15",
- "description": "Kolab LDAP"
- },
- "graph": [
- {
- "name": "kolab-ldap",
- "params": [
- {
- "name": "domain",
- "description": "Domain",
- "default": "docker.container"
- },
- {
- "name": "admin_password",
- "description": "Administrator Password",
- "default": "welcome123"
- },
- {
- "name": "directory_manager_password",
- "description": "Directory Manager Password",
- "default": "welcome123"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-ldap-slave-atomicapp/artifacts/docker/run-pod b/05-ldap-slave-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 66e71d4..0000000
--- a/05-ldap-slave-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,9 +0,0 @@
-docker run -d \
- -p 389:389 \
- -p 636:636 \
- -p 9830:9830 \
- -h $hostname \
- -e ADMIN_PASSWORD=$admin_password \
- -e DIRECTORY_MANAGER_PASSWORD=$directory_manager_password \
- -e ROOT_DN=$root_dn \
- $image
diff --git a/05-ldap-slave-atomicapp/artifacts/kubernetes/service.json b/05-ldap-slave-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 31478bd..0000000
--- a/05-ldap-slave-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-ldap-slave",
- "labels": {
- "name": "kolab-ldap-slave"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "ldap",
- "port": 389,
- "targetPort": 389
- },
- {
- "name": "ldaps",
- "port": 636,
- "targetPort": 636
- },
- {
- "name": "389-admin",
- "port": 9830,
- "targetPort": 9830
- }
- ],
- "selector": {
- "name": "kolab-ldap-slave"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-ldap-slave-atomicapp/entrypoint.sh b/05-ldap-slave-atomicapp/entrypoint.sh
deleted file mode 100755
index 3999ac7..0000000
--- a/05-ldap-slave-atomicapp/entrypoint.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-exec "$@"
-
-exec top
diff --git a/05-manticore-atomicapp/Dockerfile b/05-manticore-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-manticore-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-manticore-atomicapp/Nulecule b/05-manticore-atomicapp/Nulecule
deleted file mode 100644
index 095fa47..0000000
--- a/05-manticore-atomicapp/Nulecule
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "manticore",
- "metadata": {
- "name": "Manticore Server",
- "appversion": "1.0.0",
- "description": "Manticore Collaborative Editing Server"
- },
- "graph": [
- {
- "name": "manticore-mongodb",
- "source": "docker://kolab/mongodb-centos7-atomicapp"
- },
- {
- "name": "manticore",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/manticore"
- },
- {
- "name": "manticore_admin_email",
- "description": "Administrator email address",
- "default": "admin@cluster.local"
- },
- {
- "name": "manticore_admin_password",
- "description": "Administrator password"
- },
- {
- "name": "mongodb_database",
- "description": "MongoDB Database Name"
- },
- {
- "name": "mongodb_hostname",
- "description": "MongoDB Server Hostname",
- "default": "mongodb:27017"
- },
- {
- "name": "mongodb_password",
- "description": "MongoDB User Password"
- },
- {
- "name": "mongodb_username",
- "description": "MongoDB Username"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-manticore-atomicapp/artifacts/docker/run-pod b/05-manticore-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 98ceed8..0000000
--- a/05-manticore-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,11 +0,0 @@
-docker run -d \
- --name manticore-atomicapp-app \
- --link mongodb-atomicapp-app:manticore \
- -e MANTICORE_ADMIN_EMAIL=$manticore_admin_email \
- -e MANTICORE_ADMIN_PASSWORD=$manticore_admin_password \
- -e MONGODB_DATABASE=$mongodb_database \
- -e MONGODB_HOSTNAME=$mongodb_hostname \
- -e MONGODB_PASSWORD=$mongodb_password \
- -e MONGODB_USERNAME=$mongodb_username \
- -p 8080:8080 \
- $image
diff --git a/05-manticore-atomicapp/artifacts/kubernetes/pod.json b/05-manticore-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index caaee5a..0000000
--- a/05-manticore-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "manticore",
- "metadata": {
- "name": "manticore",
- "labels": {
- "name": "manticore"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "manticore",
- "image": "$image",
- "ports": [
- {
- "containerPort": 8080
- }
- ],
- "env": [
- {
- "name": "MANTICORE_ADMIN_EMAIL",
- "value": "$manticore_admin_email"
- },
- {
- "name": "MANTICORE_ADMIN_PASSWORD",
- "value": "$manticore_admin_password"
- },
- {
- "name": "MONGODB_DATABASE",
- "value": "$mongodb_database"
- },
- {
- "name": "MONGODB_HOSTNAME",
- "value": "$mongodb_hostname"
- },
- {
- "name": "MONGODB_PASSWORD",
- "value": "$mongodb_password"
- },
- {
- "name": "MONGODB_USERNAME",
- "value": "$mongodb_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-manticore-atomicapp/artifacts/kubernetes/service.json b/05-manticore-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index aecd131..0000000
--- a/05-manticore-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "manticore",
- "labels": {
- "name": "manticore"
- },
- "annotations": {
- "description": "Exposes and load balances the application pods"
- }
- },
- "spec": {
- "ports": [
- {
- "port": 8080,
- "targetPort": 8080
- }
- ],
- "selector": {
- "name": "manticore"
- }
- }
-}
diff --git a/05-roundcube-next-atomicapp/Dockerfile b/05-roundcube-next-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-roundcube-next-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-roundcube-next-atomicapp/Nulecule b/05-roundcube-next-atomicapp/Nulecule
deleted file mode 100644
index 3975f81..0000000
--- a/05-roundcube-next-atomicapp/Nulecule
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-roundcube-next",
- "metadata": {
- "name": "Kolab Web Client Interface",
- "appversion": "14.0",
- "description": "Web Client Interface"
- },
- "graph": [
- {
- "name": "kolab-roundcube-next",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/roundcube-next"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "roundcube-next-jmap-proxy",
- "source": "docker://kolab/jmap-proxy-atomicapp"
- }
- ]
-}
diff --git a/05-roundcube-next-atomicapp/artifacts/docker/run-pod b/05-roundcube-next-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 80ea1d7..0000000
--- a/05-roundcube-next-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- --name kolab-roundcube-next \
- -p 80:80 \
- -p 443:443 \
- $image
diff --git a/05-roundcube-next-atomicapp/artifacts/kubernetes/pod.json b/05-roundcube-next-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 0c2594b..0000000
--- a/05-roundcube-next-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-roundcube-next",
- "labels": {
- "name": "kolab-roundcube-next"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-roundcube-next",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_ROUNDCUBE-NEXT_DATABASE_NAME",
- "value": "$kolab_roundcube-next_database_name"
- },
- {
- "name": "KOLAB_ROUNDCUBE-NEXT_DATABASE_PASSWORD",
- "value": "$kolab_roundcube-next_database_password"
- },
- {
- "name": "KOLAB_ROUNDCUBE-NEXT_DATABASE_USERNAME",
- "value": "$kolab_roundcube-next_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-roundcube-next-atomicapp/artifacts/kubernetes/service.json b/05-roundcube-next-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index ec2f01c..0000000
--- a/05-roundcube-next-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-roundcube-next",
- "labels": {
- "name": "kolab-roundcube-next"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-roundcube-next"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-roundcubemail-atomicapp/Dockerfile b/05-roundcubemail-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-roundcubemail-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-roundcubemail-atomicapp/Nulecule b/05-roundcubemail-atomicapp/Nulecule
deleted file mode 100644
index b3664c8..0000000
--- a/05-roundcubemail-atomicapp/Nulecule
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-roundcubemail",
- "metadata": {
- "name": "Kolab Web Client Interface",
- "appversion": "14.0",
- "description": "Web Client Interface"
- },
- "graph": [
- {
- "name": "kolab-roundcubemail",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/roundcubemail"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "kolab_roundcubemail_database_name",
- "description": "Database name",
- "default": "roundcubemail"
- },
- {
- "name": "kolab_roundcubemail_database_password",
- "description": "Database password"
- },
- {
- "name": "kolab_roundcubemail_database_username",
- "description": "Database user",
- "default": "kolab"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-roundcubemail-database",
- "source": "docker://kolab/roundcubemail-database"
- }
- ]
-}
diff --git a/05-roundcubemail-atomicapp/artifacts/docker/run-pod b/05-roundcubemail-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 4bf50b8..0000000
--- a/05-roundcubemail-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,10 +0,0 @@
-docker run -d \
- --name kolab-roundcubemail \
- -p 80:80 \
- -p 443:443 \
- --link mariadb-atomicapp-app:mysql \
- -e KOLAB_ROUNDCUBEMAIL_DB_NAME=$db_name \
- -e KOLAB_ROUNDCUBEMAIL_DB_PASS=$db_pass \
- -e KOLAB_ROUNDCUBEMAIL_DB_USER=$db_user \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-roundcubemail-atomicapp/artifacts/kubernetes/pod.json b/05-roundcubemail-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 84956f1..0000000
--- a/05-roundcubemail-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-roundcubemail",
- "labels": {
- "name": "kolab-roundcubemail"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-roundcubemail",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_ROUNDCUBEMAIL_DATABASE_NAME",
- "value": "$kolab_roundcubemail_database_name"
- },
- {
- "name": "KOLAB_ROUNDCUBEMAIL_DATABASE_PASSWORD",
- "value": "$kolab_roundcubemail_database_password"
- },
- {
- "name": "KOLAB_ROUNDCUBEMAIL_DATABASE_USERNAME",
- "value": "$kolab_roundcubemail_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-roundcubemail-atomicapp/artifacts/kubernetes/service.json b/05-roundcubemail-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 0d08a97..0000000
--- a/05-roundcubemail-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-roundcubemail",
- "labels": {
- "name": "kolab-roundcubemail"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-roundcubemail"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-submission-atomicapp/Dockerfile b/05-submission-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-submission-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-submission-atomicapp/Nulecule b/05-submission-atomicapp/Nulecule
deleted file mode 100644
index a50e92c..0000000
--- a/05-submission-atomicapp/Nulecule
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-submission",
- "metadata": {
- "name": "Kolab Message Submission Agent",
- "appversion": "development",
- "description": "Kolab Message Submission Agent"
- },
- "graph": [
- {
- "name": "kolab-submission",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/submission"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password",
- "default": "$kolab_service_password"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-submission-atomicapp/artifacts/docker/run-pod b/05-submission-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index a6eb7d1..0000000
--- a/05-submission-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,4 +0,0 @@
-docker run -d \
- -p 587:587 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-submission-atomicapp/artifacts/kubernetes/controller.json b/05-submission-atomicapp/artifacts/kubernetes/controller.json
deleted file mode 100644
index d66ca39..0000000
--- a/05-submission-atomicapp/artifacts/kubernetes/controller.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "kind": "ReplicationController",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-submission",
- "labels": {
- "name": "kolab-submission"
- }
- },
- "spec": {
- "replicas": 1,
- "selector": {
- "name": "kolab-submission"
- },
- "template": {
- "metadata": {
- "labels": {
- "name": "kolab-submission"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-submission",
- "image": "kolab/mta",
- "ports": [
- {
- "name": "submission",
- "containerPort": 587
- }
- ]
- }
- ]
- }
- }
- }
-}
diff --git a/05-submission-atomicapp/artifacts/kubernetes/service.json b/05-submission-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 53fcbf4..0000000
--- a/05-submission-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-submission",
- "labels": {
- "name": "kolab-submission"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "submission",
- "port": 587,
- "targetPort": 587
- }
- ],
- "selector": {
- "name": "kolab-submission"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-syncroton-atomicapp/Dockerfile b/05-syncroton-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-syncroton-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-syncroton-atomicapp/Nulecule b/05-syncroton-atomicapp/Nulecule
deleted file mode 100644
index 8a7c881..0000000
--- a/05-syncroton-atomicapp/Nulecule
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-syncroton",
- "metadata": {
- "name": "Kolab ActiveSync Interface",
- "appversion": "development",
- "description": "ActiveSync Interface"
- },
- "graph": [
- {
- "name": "kolab-syncroton",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/syncroton"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password"
- },
- {
- "name": "kolab_syncroton_database_name",
- "description": "Database name",
- "default": "syncroton"
- },
- {
- "name": "kolab_syncroton_database_password",
- "description": "Database password"
- },
- {
- "name": "kolab_syncroton_database_username",
- "description": "Database user",
- "default": "syncroton"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-syncroton-database",
- "source": "docker://kolab/syncroton-database"
- }
- ]
-}
diff --git a/05-syncroton-atomicapp/artifacts/docker/run-pod b/05-syncroton-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 8d0b129..0000000
--- a/05-syncroton-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 80:80 \
- -p 443:443 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-syncroton-atomicapp/artifacts/kubernetes/pod.json b/05-syncroton-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index 2a87490..0000000
--- a/05-syncroton-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-syncroton",
- "labels": {
- "name": "kolab-syncroton"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-syncroton",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_SYNCROTON_DATABASE_NAME",
- "value": "$kolab_syncroton_database_name"
- },
- {
- "name": "KOLAB_SYNCROTON_DATABASE_PASSWORD",
- "value": "$kolab_syncroton_database_password"
- },
- {
- "name": "KOLAB_SYNCROTON_DATABASE_USERNAME",
- "value": "$kolab_syncroton_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-syncroton-atomicapp/artifacts/kubernetes/service.json b/05-syncroton-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 5b77eff..0000000
--- a/05-syncroton-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-syncroton",
- "labels": {
- "name": "kolab-syncroton"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-syncroton"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-wallace-atomicapp/Dockerfile b/05-wallace-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-wallace-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-wallace-atomicapp/Nulecule b/05-wallace-atomicapp/Nulecule
deleted file mode 100644
index 0a00990..0000000
--- a/05-wallace-atomicapp/Nulecule
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-wallace",
- "metadata": {
- "name": "Kolab Content-Filter",
- "appversion": "development",
- "description": "Kolab Content-Filter"
- },
- "graph": [
- {
- "name": "kolab-wallace",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/wallace"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "cyrus_admin_password",
- "description": "Cyrus Administrator Password",
- "default": "welcome123"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password",
- "default": "welcome123"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- }
- ]
-}
diff --git a/05-wallace-atomicapp/artifacts/docker/run-pod b/05-wallace-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index e4f0ae3..0000000
--- a/05-wallace-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 10026:10026 \
- -e CYRUS_ADMIN_PASSWORD=$cyrus_admin_password \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-wallace-atomicapp/artifacts/kubernetes/pod.json b/05-wallace-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index b3db7f9..0000000
--- a/05-wallace-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-wallace",
- "metadata": {
- "name": "kolab-wallace",
- "labels": {
- "name": "kolab-wallace"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-wallace",
- "image": "$image",
- "ports": [
- {
- "containerPort": 10026
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "CYRUS_ADMIN_PASSWORD",
- "value": "$cyrus_admin_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-wallace-atomicapp/artifacts/kubernetes/service.json b/05-wallace-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 6b26a81..0000000
--- a/05-wallace-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-wallace",
- "labels": {
- "name": "kolab-wallace"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "wallace",
- "port": 10026,
- "targetPort": 10026
- }
- ],
- "selector": {
- "name": "kolab-wallace"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/05-webadmin-atomicapp/Dockerfile b/05-webadmin-atomicapp/Dockerfile
deleted file mode 100644
index ffa5b00..0000000
--- a/05-webadmin-atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.specversion="0.0.2" \
- io.projectatomic.nulecule.providers="docker,kubernetes,openshift"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/05-webadmin-atomicapp/Nulecule b/05-webadmin-atomicapp/Nulecule
deleted file mode 100644
index fe4c8c0..0000000
--- a/05-webadmin-atomicapp/Nulecule
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab-webadmin",
- "metadata": {
- "name": "Kolab Web Administration Interface",
- "appversion": "development",
- "description": "Kolab Web Administration Interface"
- },
- "graph": [
- {
- "name": "kolab-webadmin",
- "params": [
- {
- "name": "image",
- "description": "Image to use",
- "default": "kolab/webadmin"
- },
- {
- "name": "domain",
- "description": "Domain Name Space",
- "default": "docker.container"
- },
- {
- "name": "kolab_webadmin_database_name",
- "description": "Database name",
- "default": "kolab"
- },
- {
- "name": "kolab_webadmin_database_password",
- "description": "Database password",
- "default": "welcome123"
- },
- {
- "name": "kolab_webadmin_database_username",
- "description": "Database user",
- "default": "kolab"
- },
- {
- "name": "directory_manager_password",
- "description": "Directory Manager Password",
- "default": "welcome123"
- },
- {
- "name": "kolab_service_password",
- "description": "Kolab Service Password",
- "default": "welcome123"
- }
- ],
- "artifacts": {
- "docker": [
- "file://artifacts/docker/run-pod"
- ],
- "kubernetes": [
- "file://artifacts/kubernetes/pod.json",
- "file://artifacts/kubernetes/service.json"
- ],
- "openshift": [
- {
- "inherit": [
- "kubernetes"
- ]
- }
- ]
- }
- },
- {
- "name": "kolab-webadmin-database",
- "source": "docker://kolab/webadmin-database"
- }
- ]
-}
diff --git a/05-webadmin-atomicapp/artifacts/docker/run-pod b/05-webadmin-atomicapp/artifacts/docker/run-pod
deleted file mode 100644
index 8d0b129..0000000
--- a/05-webadmin-atomicapp/artifacts/docker/run-pod
+++ /dev/null
@@ -1,5 +0,0 @@
-docker run -d \
- -p 80:80 \
- -p 443:443 \
- -e KOLAB_SERVICE_PASSWORD=$kolab_service_password \
- $image
diff --git a/05-webadmin-atomicapp/artifacts/kubernetes/pod.json b/05-webadmin-atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index d7747f3..0000000
--- a/05-webadmin-atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab-webadmin",
- "metadata": {
- "name": "kolab-webadmin",
- "labels": {
- "name": "kolab-webadmin"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "kolab-webadmin",
- "image": "$image",
- "ports": [
- {
- "containerPort": 80
- },
- {
- "containerPort": 443
- }
- ],
- "env": [
- {
- "name": "DOMAIN",
- "value": "$domain"
- },
- {
- "name": "DIRECTORY_MANAGER_PASSWORD",
- "value": "$directory_manager_password"
- },
- {
- "name": "KOLAB_SERVICE_PASSWORD",
- "value": "$kolab_service_password"
- },
- {
- "name": "KOLAB_WEBADMIN_DATABASE_NAME",
- "value": "$kolab_webadmin_database_name"
- },
- {
- "name": "KOLAB_WEBADMIN_DATABASE_PASSWORD",
- "value": "$kolab_webadmin_database_password"
- },
- {
- "name": "KOLAB_WEBADMIN_DATABASE_USERNAME",
- "value": "$kolab_webadmin_database_username"
- }
- ]
- }
- ]
- }
-}
diff --git a/05-webadmin-atomicapp/artifacts/kubernetes/service.json b/05-webadmin-atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 21fe4a7..0000000
--- a/05-webadmin-atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab-webadmin",
- "labels": {
- "name": "kolab-webadmin"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "http",
- "port": 80,
- "targetPort": 80
- },
- {
- "name": "https",
- "port": 443,
- "targetPort": 443
- }
- ],
- "selector": {
- "name": "kolab-webadmin"
- },
- "type": "LoadBalancer"
- }
-}
diff --git a/99-ci-jessie/Dockerfile b/99-ci-jessie/Dockerfile
deleted file mode 100644
index b397d34..0000000
--- a/99-ci-jessie/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM docker.io/debian:jessie
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get update && \
- apt-get -y install \
- aptitude \
- git \
- vim \
- wget && \
- apt-get clean
-
-ADD /kolab.list /etc/apt/sources.list.d/kolab.list
-
-RUN wget -q -O- http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Debian_8.0/Release.key | apt-key add -
-
-ADD /functions.sh /functions.sh
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-jessie/entrypoint.sh b/99-ci-jessie/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-jessie/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-jessie/functions.sh b/99-ci-jessie/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-jessie/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-jessie/kolab.list b/99-ci-jessie/kolab.list
deleted file mode 100644
index fd3bdef..0000000
--- a/99-ci-jessie/kolab.list
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Debian_8.0/ ./
-deb-src http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Debian_8.0/ ./
diff --git a/99-ci-maipo/Dockerfile b/99-ci-maipo/Dockerfile
deleted file mode 100644
index c890828..0000000
--- a/99-ci-maipo/Dockerfile
+++ /dev/null
@@ -1,121 +0,0 @@
-FROM centos:centos7
-MAINTAINER Kolab Systems <vanmeeuwen@kolabsys.com>
-
-RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
-
-RUN sed -r -i \
- -e 's/^mirrorlist/#mirrorlist/g' \
- -e 's/^#baseurl/baseurl/g' \
- /etc/yum.repos.d/*.repo && \
- sed -i \
- -e '/tsflags=nodocs/d' \
- -e '/override_install_langs/d' \
- /etc/yum.conf && \
- sed -r -i \
- -e 's/enabled\s*=\s*1/enabled=0/g' \
- /etc/yum/pluginconf.d/fastestmirror.conf
-
-RUN yum -y install wget && \
- yum clean all
-
-RUN wget -O/etc/yum.repos.d/Kolab:Winterfell.repo \
- http://obs.kolabsys.com/repositories/Kolab:/Winterfell/CentOS_7/Kolab:Winterfell.repo
-
-RUN wget -O/etc/yum.repos.d/Kolab:16.repo \
- http://obs.kolabsys.com/repositories/Kolab:/16/CentOS_7/Kolab:16.repo
-
-RUN wget -O/etc/yum.repos.d/Kolab:3.4.repo \
- http://obs.kolabsys.com/repositories/Kolab:/3.4/CentOS_7/Kolab:3.4.repo
-
-RUN wget -O/etc/yum.repos.d/Kolab:3.4:Updates.repo \
- http://obs.kolabsys.com/repositories/Kolab:/3.4:/Updates/CentOS_7/Kolab:3.4:Updates.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:Winterfell.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:16.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:3.4.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:3.4:Updates.repo
-
-RUN rpm --import https://ssl.kolabsys.com/community.asc
-
-RUN wget -O/etc/yum.repos.d/openSUSE:Tools.repo \
- http://download.opensuse.org/repositories/openSUSE:Tools/CentOS_7/openSUSE:Tools.repo
-
-RUN rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/CentOS_7/repodata/repomd.xml.key
-
-ENV IMAGE maipo
-
-ADD /dbus.service /etc/systemd/system/dbus.service
-RUN ln -sf dbus.service /etc/systemd/system/messagebus.service
-
-ADD /httpd.service /etc/systemd/system/httpd.service
-
-ADD /vimrc /root/.vimrc
-
-RUN yum clean all && \
- yum -y install epel-release && \
- rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && \
- sed -i \
- -e 's/#baseurl/baseurl/g' \
- -e '/^mirrorlist/d' \
- /etc/yum.repos.d/epel*.repo && \
- yum -y install yum-plugin-priorities && \
- yum -y update && \
- yum -y install \
- @buildsys-build \
- ant \
- bind-utils \
- build \
- git \
- lsof \
- net-tools \
- nmap-ncat \
- openldap-clients \
- osc \
- perl-Data-Dumper \
- perl-Digest-MD5 \
- perl-TimeDate \
- php-phpunit-PHPUnit-Selenium \
- policycoreutils \
- policycoreutils-python \
- psmisc \
- rpmdevtools \
- screen \
- strace \
- sudo \
- telnet \
- traceroute \
- vim-enhanced \
- wget \
- yum-utils && \
- yum clean all
-
-ADD /systemctl /usr/bin/systemctl
-ADD /systemctl-socket-daemon /usr/bin/systemctl-socket-daemon
-
-RUN chmod -v a+rx \
- /usr/bin/systemctl \
- /usr/bin/systemctl-socket-daemon
-
-RUN mkdir -p /run/lock
-RUN ln -sf /bin/true /sbin/semanage
-
-RUN sed -i -e '/requiretty/d' /etc/sudoers
-
-WORKDIR /srv
-RUN git clone https://github.com/google/closure-compiler.git closure-compiler.git
-WORKDIR /srv/closure-compiler.git
-RUN ant jar
-
-RUN wget \
- -O/usr/local/lib/selenium-server-standalone.jar \
- http://mirror.kolabenterprise.com/pub/releases/selenium-server-standalone.jar
-
-ADD /functions.sh /functions.sh
-ADD /entrypoint.sh /entrypoint.sh
-
-RUN chmod a+x /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-maipo/dbus.service b/99-ci-maipo/dbus.service
deleted file mode 100644
index 0be95c4..0000000
--- a/99-ci-maipo/dbus.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=D-Bus System Message Bus
-Requires=dbus.socket
-After=syslog.target
-
-[Service]
-PIDFile=/var/run/messagebus.pid
-ExecStartPre=/bin/mkdir -p /var/run/dbus
-ExecStartPre=/bin/chmod g+w /var/run/ /var/run/dbus/
-ExecStart=/bin/dbus-daemon --system --fork
-ExecReload=/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
-ExecStopPost=/bin/rm -f /var/run/messagebus.pid
-OOMScoreAdjust=-900
-User=dbus
-Group=root
-PermissionsStartOnly=true
diff --git a/99-ci-maipo/entrypoint.sh b/99-ci-maipo/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-maipo/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-maipo/functions.sh b/99-ci-maipo/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-maipo/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-maipo/httpd.service b/99-ci-maipo/httpd.service
deleted file mode 100644
index ba7ec71..0000000
--- a/99-ci-maipo/httpd.service
+++ /dev/null
@@ -1,4 +0,0 @@
-.include /lib/systemd/system/httpd.service
-[Service]
-PIDFile=/var/run/httpd/httpd.pid
-
diff --git a/99-ci-maipo/sudoers.drydock-worker b/99-ci-maipo/sudoers.drydock-worker
deleted file mode 100644
index 489b82b..0000000
--- a/99-ci-maipo/sudoers.drydock-worker
+++ /dev/null
@@ -1 +0,0 @@
-drydock-worker ALL=(ALL) NOPASSWD: ALL
diff --git a/99-ci-maipo/systemctl b/99-ci-maipo/systemctl
deleted file mode 100644
index 6a15c0b..0000000
--- a/99-ci-maipo/systemctl
+++ /dev/null
@@ -1,680 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::File ();
-use IO::Dir ();
-use IO::Socket::UNIX ();
-use Socket ();
-use Data::Dumper ();
-use POSIX ();
-use Time::HiRes qw(sleep time);
-
-sub log_command {
- local * LOG;
- open(LOG, '>>', '/var/log/systemctl.log');
- print LOG @_;
- close LOG;
-}
-log_command("[@ARGV]\n");
-shift if @ARGV and $ARGV[0] eq '-q';
-
-for (my $i = 0; $i < @ARGV; $i++) {
- if ($ARGV[$i] eq '--ignore-dependencies') {
- splice @ARGV, $i, 1;
- last;
- }
-}
-if (@ARGV == 1 and $ARGV[0] eq 'daemon-reload') {
- exit 0;
-}
-if (@ARGV == 2 and $ARGV[0] eq '--system' and $ARGV[1] eq 'daemon-reload') {
- exit 0;
-}
-
-for (keys %ENV) {
- delete $ENV{$_} unless $_ eq '_SYSTEMCTL_LITE_STARTING';
-}
-
-my $RUNNING_DIR = '/run/systemctl-lite-running';
-if (not -d $RUNNING_DIR) {
- mkdir $RUNNING_DIR;
-}
-my $ENABLED_DIR = '/etc/systemctl-lite-enabled';
-if (@ARGV == 1) {
- if ($ARGV[0] eq 'start-enabled' and -d $ENABLED_DIR) {
- local * ENABLED;
- opendir ENABLED, $ENABLED_DIR;
- my %services;
- while (defined(my $f = readdir ENABLED)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$ENABLED_DIR/$f")[9];
- if (defined $modified) {
- $services{$f} = $modified;
- }
- }
- close ENABLED;
- for my $s (sort { $services{$a} <=> $services{$b} or $a cmp $b } keys %services) {
- print "Starting [$s]\n";
- system $0, 'start', $s;
- exit ($? >> 8) if ($? >> 8);
- }
- }
- if ($ARGV[0] eq 'stop-running' and -d $RUNNING_DIR) {
- local * RUNNING;
- opendir RUNNING, $RUNNING_DIR;
- my %services;
- while (defined(my $f = readdir RUNNING)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$RUNNING_DIR/$f")[9];
- if (defined $modified) {
- my $trimmed = $f;
- $trimmed =~ s/\..+$//;
- $services{$trimmed} = $modified;
- }
- }
- close RUNNING;
- for my $s (sort { $services{$b} <=> $services{$a} or $a cmp $b } keys %services) {
- system $0, 'stop', $s;
- }
- }
- exit;
-}
-
-if (@ARGV != 2) {
- die "Usage: $0 (start|stop|status|...) (service|target|socket thing)\n";
-}
-
-my ($COMMAND, $SERVICE) = @ARGV;
-my $TYPE = 'service';
-if ($SERVICE =~ /\.(target|socket)$/) {
- $TYPE = $1;
-} elsif (not $SERVICE =~ /\.service$/) {
- $SERVICE .= '.service';
-}
-
-my @PATHS = (
- '/etc/systemd/system',
- '/run/systemd/system',
- '/usr/lib/systemd/system',
-);
-
-my $FULL_SERVICE = $SERVICE;
-my $INSTANCE = undef;
-
-my $file = undef;
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
-}
-for my $p (@PATHS) {
- if (-e "$p/$SERVICE") {
- if (-l "$p/$SERVICE") {
- my $new_service = readlink("$p/$SERVICE");
- log_command("Service [$p/$SERVICE] is a symlink to [$new_service]\n");
- $new_service =~ s!^.*/!!;
- $SERVICE = $new_service;
- }
- $file = "$p/$SERVICE";
- last;
- }
-}
-
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
- for my $p (@PATHS) {
- if (-f "$p/$SERVICE") {
- $file = "$p/$SERVICE";
- last;
- }
- }
-}
-
-if (not defined $file) {
- if ($COMMAND eq 'is-enabled') {
- exit 1;
- }
- if ($COMMAND eq 'is-active') {
- exit 3;
- }
- warn "No service definition found for [$FULL_SERVICE].\n";
- exit 2;
-}
-
-sub parse_file {
- my ($file, $data) = @_;
- if (-d $file) {
- my $op;
- if ($file =~ /\.requires$/) {
- $op = 'Unit.Requires';
- } elsif ($file =~ /\.wants$/) {
- $op = 'Unit.Wants';
- } else {
- die "Unknown directory [$file].\n";
- }
- my $dh = new IO::Dir($file);
- while (defined(my $de = $dh->read)) {
- next if $de eq '.' or $de eq '..';
- push @{$data->{$op}}, $de unless $de =~ /\.target$/;
- }
- $dh->close;
- return;
- }
- my $fh = new IO::File($file);
- my $section = 'undefined';
- while (my $line = <$fh>) {
- chomp $line;
- if ($line =~ /^\[(.+)\]\s*$/) {
- $section = $1;
- next;
- }
- next if $line =~ /^\s*(#|$)/;
- if ($line =~ /^\.include\s(.+)/) {
- parse_file($1, $data);
- next;
- }
- my ($key, $value) = split /=/, $line, 2;
- if (defined $INSTANCE) {
- $value =~ s/\%i/$INSTANCE/g;
- }
- if ($key eq 'EnvironmentFile') {
- if ($value eq '') {
- delete $data->{"$section.$key"};
- } else {
- push @{ $data->{"$section.$key"} }, $value;
- }
- } elsif ($key =~ /^(Wants|Requires)$/) {
- push @{ $data->{"$section.$key"} }, $value unless $value =~ /\.target$/;
- } elsif ($key =~ /^(ExecStart(Pre|Post)|ExecReload|ExecStop(Pre|Post)?)$/) {
- push @{ $data->{"$section.$key"} }, $value;
- } else {
- $data->{"$section.$key"} = $value;
- }
- }
- $fh->close;
- if (defined $data->{'Service.ExecStart'} and not defined $data->{'Service.PIDFile'}) {
- my ($pidfile) = grep /^\/.+\.pid$/, split /\s+/, $data->{'Service.ExecStart'};
- if (defined $pidfile) {
- $data->{'Service.PIDFile'} = $pidfile;
- log_command("Guessing pid file [$data->{'Service.PIDFile'}] from ExecStart [$data->{'Service.ExecStart'}]\n");
- }
- }
-}
-
-my $data = {};
-parse_file($file, $data);
-for my $p (@PATHS) {
- if (-d "$p/$SERVICE.wants") {
- $file = "$p/$SERVICE.wants";
- parse_file("$p/$SERVICE.wants", $data);
- last;
- }
-}
-
-if ($COMMAND eq 'show') {
- print Data::Dumper::Dumper $data;
- exit;
-}
-
-sub pidof {
- my $command = shift;
- my $pids = `/usr/sbin/pidof $command`;
- chomp $pids;
- if ($pids ne '') {
- return split /\s+/, $pids;
- }
- return;
-}
-
-sub get_exec_start {
- my $data = shift;
- my $d = $data->{'Service.ExecStart'};
- if (not defined $d) {
- warn "No ExecStart value found for [$SERVICE].\n";
- exit 3;
- }
- return split /\s+/, $d;
-}
-
-sub get_pid {
- my $file = shift;
- if (not $file =~ m!^/!) {
- $file = "$RUNNING_DIR/$file";
- }
- if (-f $file) {
- local * PIDFILE;
- open PIDFILE, '<', $file;
- my $pid = <PIDFILE>;
- close PIDFILE;
- if (defined $pid) {
- chomp $pid;
- return $pid;
- }
- }
-}
-
-sub is_running {
- my $data = shift;
- my $ret;
- if (-f "$RUNNING_DIR/$FULL_SERVICE.oneshot") {
- return 1;
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (pidof($path)) {
- $ret = 1;
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- }
- }
- return $ret;
-}
-if ($COMMAND eq 'is-active' or $COMMAND eq 'status') {
- if (is_running($data)) {
- print "active\n";
- exit;
- }
- print "inactive\n";
- exit 3;
-}
-
-sub exec_stop_pre {
- my ($data) = @_;
- if (defined $data->{'Socket.ExecStopPre'}) {
- for my $x (@{ $data->{'Socket.ExecStopPre'} }) {
- log_command("Running stop pre [$x]\n");
- system $x;
- }
- }
-}
-sub exec_stop_post {
- my ($data) = @_;
- if (defined $data->{'Service.ExecStopPost'}) {
- for my $x (@{ $data->{'Service.ExecStopPost'} }) {
- log_command("Running stop post [$x]\n");
- system $x;
- }
- }
-}
-
-if ($TYPE eq 'target' and not defined $data->{'Unit.Wants'} and not defined $data->{'Unit.Requires'}) {
- warn "No Unit.Wants/.wants/Unit.Requires/.requires list for target [$SERVICE]\n";
- exit 8;
-}
-
-if ($COMMAND eq 'restart') {
- if ($TYPE ne 'service' or is_running($data)) {
- system $0, 'stop', $FULL_SERVICE;
- }
- system $0, 'start', $FULL_SERVICE;
- exit;
-}
-
-sub pids_went_away_timeout {
- my $timeout = shift;
- my $start = time;
- while (kill 0, @_) {
- if (time - $start > $timeout) {
- log_command(sprintf(" ** pid(s) [%s] not killed within %d s\n", join(', ', @_), $timeout));
- return 0;
- }
- sleep 0.1;
- }
- log_command(sprintf(" ** pid(s) [%s] got killed after %.2f s\n", join(', ', @_), time - $start));
- return 1;
-}
-
-sub stop_pids {
- my @pids = @_;
- kill 15, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- kill 9, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- log_command("Failed to kill [@pids] even with 9\n");
- warn "Failed to kill [@pids].\n";
- return 1;
- }
- log_command("Killed [@pids] with 9\n");
- } else {
- log_command("Killed [@pids] with 15\n");
- }
- return 0;
-}
-
-if ($COMMAND eq 'stop') {
- my $mainpid;
- if (defined $data->{'Service.PIDFile'}) {
- $mainpid = get_pid($data->{'Service.PIDFile'});
- } else {
- $mainpid = get_pid("$FULL_SERVICE.pid");
- }
- if (defined $data->{'Service.ExecStop'}) {
- for my $x (@{ $data->{'Service.ExecStop'} }) {
- my $runit = 1;
- if (defined $mainpid) {
- $x =~ s!\$MAINPID\b|\$\{MAINPID\}!$mainpid!g;
- } elsif ($x =~ /\$MAINPID\b|\$\{MAINPID\}/) {
- $runit = 0;
- log_command("Service [$FULL_SERVICE] would like to stop via ExecStop [$x] but we have no pid file, skipping.\n");
- }
- if ($runit) {
- log_command("Running stop [$x]\n");
- system $x;
- sleep 1;
- }
- }
- }
- my $ret = undef;
- if ($TYPE eq 'target') {
- # noop
- } elsif (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- # noop
- } elsif ($TYPE eq 'socket') {
- my $pids = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $pids) {
- chomp $pids;
- $pids =~ s/^\s+//;
- my @pids = split /\s+/, $pids;
- if (@pids) {
- exec_stop_pre($data);
- log_command("Will kill [@pids] as fuser [$data->{'Socket.ListenStream'}] of [$FULL_SERVICE]\n");
- $ret = stop_pids(@pids);
- }
- }
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- log_command("Will kill [$pid] found in Service.PIDFile of [$FULL_SERVICE]\n");
- $ret = stop_pids($pid);
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (my @pids = pidof($path)) {
- log_command("Will kill [@pids] as pidof [$path] found in [$FULL_SERVICE.name]\n");
- $ret = stop_pids(@pids);
- } else {
- warn "No pidof for [$path] found in [$FULL_SERVICE.name].\n";
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- log_command("Will kill [$pid] found in [$FULL_SERVICE.pid]\n");
- $ret = stop_pids($pid);
- } else {
- warn "No pid and no name for [$FULL_SERVICE].\n";
- }
- }
- }
- exec_stop_post($data);
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid", "$RUNNING_DIR/$FULL_SERVICE.name", "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- system $0, 'stop', $x;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- system $0, 'stop', $x;
- }
- }
- exit ( defined $ret ? $ret : 0 );
-}
-
-sub add_runuser {
- my ($data, $cmd) = @_;
- if (defined $data->{'Service.User'}) {
- unshift @$cmd, '-u', $data->{'Service.User'}, '--';
- if (defined $data->{'Service.Group'}) {
- unshift @$cmd, '-g', $data->{'Service.Group'};
- }
- unshift @$cmd, '/usr/sbin/runuser';
- }
-}
-
-if ($COMMAND eq 'start') {
- my (@starting_stack, %starting_stack);
- if (defined $ENV{_SYSTEMCTL_LITE_STARTING}) {
- @starting_stack = split /:/, $ENV{_SYSTEMCTL_LITE_STARTING};
- @starting_stack{@starting_stack} = ();
- $ENV{_SYSTEMCTL_LITE_STARTING} .= ":$FULL_SERVICE";
- } else {
- $ENV{_SYSTEMCTL_LITE_STARTING} = $FULL_SERVICE;
- }
-
- if ($TYPE eq 'service' and is_running($data)) {
- log_command("Service [$FULL_SERVICE] already found running, not starting again.\n");
- exit;
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], unlinking it before start\n");
- unlink $data->{'Service.PIDFile'};
- }
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Wants of [$FULL_SERVICE]\n");
- system @cmd;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Requires of [$FULL_SERVICE]\n");
- if (system @cmd) {
- log_command("Failed to start [$x], aborting start\n");
- exit 1;
- }
- }
- }
- if (defined $data->{'Service.PIDFile'} and is_running($data)) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}] and it seems to have already started, not starting again.\n");
- exit;
- }
-
- if ($TYPE eq 'target') {
- exit;
- }
- if ($TYPE eq 'socket' and -S $data->{'Socket.ListenStream'}) {
- my $out = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $out and $out ne '') {
- log_command("Service [$FULL_SERVICE] already found active on socket [$data->{'Socket.ListenStream'}], not starting again.\n");
- exit;
- }
- }
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'dbus') {
- my @cmd = ($0, 'start', 'dbus.socket');
- log_command("Running [@cmd] for Service.Type dbus\n");
- system @cmd;
- }
- if (defined $data->{'Service.ExecStartPre'}) {
- for my $x (@{ $data->{'Service.ExecStartPre'} }) {
- my $can_fail = 0;
- if ($x =~ s/^-//) {
- $can_fail = 1;
- }
- my @cmd = split /\s+/, $x;
- if (not $data->{'Service.PermissionsStartOnly'} or $data->{'Service.PermissionsStartOnly'} =~ /^(false|0)$/i) {
- add_runuser($data, \@cmd);
- }
- no warnings 'uninitialized';
- log_command("Running start pre [@cmd]\n");
- if (system @cmd and not $can_fail) {
- exit 1;
- }
- }
- }
- my @paths;
- if ($TYPE eq 'socket') {
- my $service = $SERVICE;
- if (defined $data->{'Socket.Accept'} and $data->{'Socket.Accept'} eq 'true') {
- $service =~ s/\.socket$/\@.service/;
- @paths = ( '/bin/systemctl-socket-daemon', $data->{'Socket.ListenStream'}, $data->{'Socket.SocketMode'} // '0666', $service );
- } else {
- $service =~ s/\.socket$/\.service/;
- my $ret = system "$0 is-active $service > /dev/null";
- if (($ret >> 8) == 0) {
- log_command("Service [$service] is already running for [$SERVICE]\n");
- exit;
- }
- @paths = ( $0, 'start', $service );
- }
- } else {
- @paths = get_exec_start($data);
- }
- my $first_path = $paths[0];
-
- my $ENV = '';
- if (exists $data->{'Service.EnvironmentFile'}) {
- for my $e (@{ $data->{'Service.EnvironmentFile'} }) {
- my $error_fail = 1;
- if ($e =~ s/^-//) {
- $error_fail = 0;
- }
- my $fh = new IO::File($e);
- if (not defined $fh) {
- if ($error_fail) {
- warn "Error reading EnvironmentFile [$e]: $!\n";
- exit 5;
- }
- } else {
- while (my $line = <$fh>) {
- chomp $line;
- next if $line =~ /^\s*(#|$)/;
- $ENV .= "export $line; ";
- }
- $fh->close();
- }
- }
- }
- if (defined $data->{'Service.Environment'}) {
- my $x = $data->{'Service.Environment'};
- $x =~ s/^"(.*)"$/$1/;
- $ENV .= "export $x; ";
- }
- add_runuser($data, \@paths);
- log_command("Running [$ENV@paths]\n");
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- system "$ENV@paths";
- if (defined $data->{'Service.RemainAfterExit'} and $data->{'Service.RemainAfterExit'} eq 'yes') {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- close PIDFILE;
- }
- exit;
- }
- my $pid = fork();
- die "Failed to fork for [@_]\n" if not defined $pid;
- if ($pid == 0) {
- open(STDOUT, '>>', '/var/log/systemctl.log');
- open(STDERR, '>>', '/var/log/systemctl.log');
- open(STDIN, '<', '/dev/null');
- POSIX::setsid();
- exec "$ENV@paths";
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], not marking pid\n");
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid";
- my $i = 0;
- while (not -f $data->{'Service.PIDFile'}) {
- sleep 0.2;
- $i++;
- if ($i > 250) {
- log_command("Starting [$FULL_SERVICE] did not create PIDFile [$data->{'Service.PIDFile'}]\n");
- exit 10;
- }
- }
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (not defined $pid or not kill 0, $pid) {
- log_command("Starting [$FULL_SERVICE] created PIDFile [$data->{'Service.PIDFile'}] but the process is not running\n");
- exit 11;
- }
- } else {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.pid";
- print PIDFILE "$pid\n";
- close PIDFILE;
- log_command("Marked pid [$pid] for [$FULL_SERVICE]\n");
- sleep 1;
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} ne 'simple' and $data->{'Service.Type'} ne 'notify' and pidof($first_path)) {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.name";
- print PIDFILE "$first_path\n";
- close PIDFILE;
- log_command("Marked process name [$first_path] for [$FULL_SERVICE]\n");
- }
- }
- if (defined $data->{'Service.Type'}
- and $data->{'Service.Type'} eq 'dbus'
- and defined $data->{'Service.BusName'}) {
- my $busname = $data->{'Service.BusName'};
- my $objectpath = $busname;
- $objectpath =~ s!^|\.!/!g;
- for (0 .. 10) {
- system "/usr/bin/dbus-send --system --type=method_call --print-reply --dest=$busname $objectpath org.freedesktop.DBus.Introspectable.Introspect > /dev/null";
- exit if ($? >> 8) == 0;
- sleep 1;
- }
- exit 9;
- }
- exit;
-}
-
-if ($COMMAND eq 'is-enabled') {
- if (-e "$ENABLED_DIR/$FULL_SERVICE") {
- print "enabled\n";
- exit 0;
- }
- print "disabled\n";
- exit 1;
-}
-
-if ($COMMAND eq 'enable') {
- if (not -d $ENABLED_DIR) {
- mkdir $ENABLED_DIR;
- }
- local * FILE;
- open FILE, '>', "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-if ($COMMAND eq 'disable') {
- unlink "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-die "Unknown command [$COMMAND].\n";
-
-1;
-
diff --git a/99-ci-maipo/systemctl-socket-daemon b/99-ci-maipo/systemctl-socket-daemon
deleted file mode 100644
index 5250cad..0000000
--- a/99-ci-maipo/systemctl-socket-daemon
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Socket::UNIX ();
-use Socket ();
-use POSIX ();
-
-sub daemonize {
- open(STDERR, '>>', '/var/log/systemctl-socket-daemon.log') || die "can't write log: $!";
- open(STDOUT, '>&STDERR') || die "can't write stdout to log: $!";
- chdir("/") || die "can't chdir to /: $!";
- open(STDIN, '<', '/dev/null') || die "can't read /dev/null: $!";
- defined(my $pid = fork()) || die "can't fork: $!";
- exit if $pid; # non-zero now means I am the parent
- (POSIX::setsid() != -1) || die "Can't start a new session: $!";
-}
-
-my ($socket_path, $socket_mode, $service) = @ARGV;
-if (not defined $socket_path or not defined $service) {
- die "Usage: $0 /path/to/unix/socket service-to-run\n";
-}
-if (-e $socket_path) {
- warn "Path [$socket_path] already exists, removing\n";
- unlink $socket_path;
-}
-
-my $service_data = `/bin/systemctl show $service 2>&1`;
-if ($?) {
- die "Failed to find service [$service]:\n$service_data";
-}
-
-my $socket = new IO::Socket::UNIX(
- Type => Socket::SOCK_STREAM,
- Local => $socket_path,
- Listen => Socket::SOMAXCONN
-) or die "socket: $!\n";
-chmod oct($socket_mode), $socket_path;
-
-daemonize();
-
-while (1) {
- next unless my $connection = $socket->accept;
- my $pid = fork();
- if ($pid == 0) {
- *STDIN = $connection;
- *STDOUT = $connection;
- exec '/bin/systemctl', 'start', $service;
- die "exec should have never reached here\n";
- }
-}
-
diff --git a/99-ci-maipo/vimrc b/99-ci-maipo/vimrc
deleted file mode 100644
index 30fa2ed..0000000
--- a/99-ci-maipo/vimrc
+++ /dev/null
@@ -1,9 +0,0 @@
-set shiftwidth=4
-set tabstop=4
-set expandtab
-set enc=utf-8
-
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/*/*.{c,h} set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/cunit/cunit.pl set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/configure.ac set tabstop=8 shiftwidth=8 noexpandtab
-
diff --git a/99-ci-trusty/Dockerfile b/99-ci-trusty/Dockerfile
deleted file mode 100644
index 00cf0b6..0000000
--- a/99-ci-trusty/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM docker.io/ubuntu:trusty
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get update && \
- apt-get -y install \
- aptitude \
- git \
- vim \
- wget && \
- apt-get clean
-
-ADD /kolab.list /etc/apt/sources.list.d/kolab.list
-
-RUN wget -q -O- http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_14.04/Release.key | apt-key add -
-
-ADD /functions.sh /functions.sh
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-trusty/entrypoint.sh b/99-ci-trusty/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-trusty/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-trusty/functions.sh b/99-ci-trusty/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-trusty/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-trusty/kolab.list b/99-ci-trusty/kolab.list
deleted file mode 100644
index da705a9..0000000
--- a/99-ci-trusty/kolab.list
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_14.04/ ./
-deb-src http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_14.04/ ./
diff --git a/99-ci-twentythree/Dockerfile b/99-ci-twentythree/Dockerfile
deleted file mode 100644
index d7a58ac..0000000
--- a/99-ci-twentythree/Dockerfile
+++ /dev/null
@@ -1,107 +0,0 @@
-FROM fedora:23
-MAINTAINER Kolab Systems <vanmeeuwen@kolabsys.com>
-
-ADD http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Fedora_23/Kolab:Winterfell.repo \
- /etc/yum.repos.d/Kolab:Winterfell.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:Winterfell.repo
-
-RUN rpm --import https://ssl.kolabsys.com/community.asc
-
-ADD http://download.opensuse.org/repositories/openSUSE:Tools/Fedora_23/openSUSE:Tools.repo \
- /etc/yum.repos.d/openSUSE:Tools.repo
-
-RUN rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/Fedora_23/repodata/repomd.xml.key
-
-RUN sed -i \
- -e '/tsflags=nodocs/d' \
- -e '/override_install_langs/d' \
- /etc/dnf/dnf.conf && \
- sed -i \
- -e 's/^#baseurl/baseurl/g' \
- -e 's/^metalink/#metalink/g' \
- /etc/yum.repos.d/*.repo && \
- rm -rf /bin/applydeltarpm
-
-#RUN dnf -y reinstall \* && \
-# dnf clean all
-
-ENV IMAGE twentythree
-
-ADD /dbus.service /etc/systemd/system/dbus.service
-RUN ln -sf dbus.service /etc/systemd/system/messagebus.service
-
-ADD /httpd.service /etc/systemd/system/httpd.service
-
-ADD /systemctl /usr/bin/systemctl
-ADD /systemctl-socket-daemon /usr/bin/systemctl-socket-daemon
-
-RUN chmod -v a+rx \
- /usr/bin/systemctl \
- /usr/bin/systemctl-socket-daemon
-
-ADD /vimrc /root/.vimrc
-
-RUN dnf clean all && \
- dnf -y install yum-plugin-priorities && \
- dnf -y install \
- @buildsys-build \
- ant \
- bind-utils \
- build \
- git \
- lsof \
- net-tools \
- nmap-ncat \
- openldap-clients \
- osc \
- perl-Data-Dumper \
- perl-Digest-MD5 \
- perl-TimeDate \
- php-phpunit-PHPUnit-Selenium \
- psmisc \
- rpmdevtools \
- screen \
- strace \
- sudo \
- telnet \
- traceroute \
- vim-enhanced \
- wget \
- yum-utils && \
- dnf clean all
-
-RUN sed -i -e '/requiretty/d' /etc/sudoers
-
-WORKDIR /srv
-RUN git clone https://github.com/google/closure-compiler.git closure-compiler.git
-WORKDIR /srv/closure-compiler.git
-RUN ant jar
-
-RUN wget \
- -O/usr/local/lib/selenium-server-standalone.jar \
- http://mirror.kolabsys.com/pub/releases/selenium-server-standalone.jar
-
-#WORKDIR /srv
-#RUN git clone https://github.com/SeleniumHQ/selenium.git selenium.git
-#WORKDIR /srv/selenium.git
-#RUN ./go --trace --verbose build
-#RUN ./go selenium-server-standalone
-
-WORKDIR /srv
-RUN wget http://mirror.kolabsys.com/pub/releases/phantomjs-1.9.7-linux-x86_64.tar.bz2 && \
- tar jxvf phantomjs-1.9.7-linux-x86_64.tar.bz2 && \
- cp phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/ && \
- rm -rf phantomjs-1.9.7-linux-x86_64*
-
-#WORKDIR /srv/
-#RUN git clone https://github.com/ariya/phantomjs.git phantomjs.git
-#WORKDIR /srv/phantomjs.git
-#RUN ./build.sh --confirm
-
-ADD /functions.sh /
-ADD entrypoint.sh /
-
-RUN chmod 755 /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-twentythree/dbus.service b/99-ci-twentythree/dbus.service
deleted file mode 100644
index 0be95c4..0000000
--- a/99-ci-twentythree/dbus.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=D-Bus System Message Bus
-Requires=dbus.socket
-After=syslog.target
-
-[Service]
-PIDFile=/var/run/messagebus.pid
-ExecStartPre=/bin/mkdir -p /var/run/dbus
-ExecStartPre=/bin/chmod g+w /var/run/ /var/run/dbus/
-ExecStart=/bin/dbus-daemon --system --fork
-ExecReload=/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
-ExecStopPost=/bin/rm -f /var/run/messagebus.pid
-OOMScoreAdjust=-900
-User=dbus
-Group=root
-PermissionsStartOnly=true
diff --git a/99-ci-twentythree/entrypoint.sh b/99-ci-twentythree/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-twentythree/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-twentythree/functions.sh b/99-ci-twentythree/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-twentythree/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-twentythree/httpd.service b/99-ci-twentythree/httpd.service
deleted file mode 100644
index ba7ec71..0000000
--- a/99-ci-twentythree/httpd.service
+++ /dev/null
@@ -1,4 +0,0 @@
-.include /lib/systemd/system/httpd.service
-[Service]
-PIDFile=/var/run/httpd/httpd.pid
-
diff --git a/99-ci-twentythree/sudoers.drydock-worker b/99-ci-twentythree/sudoers.drydock-worker
deleted file mode 100644
index 489b82b..0000000
--- a/99-ci-twentythree/sudoers.drydock-worker
+++ /dev/null
@@ -1 +0,0 @@
-drydock-worker ALL=(ALL) NOPASSWD: ALL
diff --git a/99-ci-twentythree/systemctl b/99-ci-twentythree/systemctl
deleted file mode 100644
index 6a15c0b..0000000
--- a/99-ci-twentythree/systemctl
+++ /dev/null
@@ -1,680 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::File ();
-use IO::Dir ();
-use IO::Socket::UNIX ();
-use Socket ();
-use Data::Dumper ();
-use POSIX ();
-use Time::HiRes qw(sleep time);
-
-sub log_command {
- local * LOG;
- open(LOG, '>>', '/var/log/systemctl.log');
- print LOG @_;
- close LOG;
-}
-log_command("[@ARGV]\n");
-shift if @ARGV and $ARGV[0] eq '-q';
-
-for (my $i = 0; $i < @ARGV; $i++) {
- if ($ARGV[$i] eq '--ignore-dependencies') {
- splice @ARGV, $i, 1;
- last;
- }
-}
-if (@ARGV == 1 and $ARGV[0] eq 'daemon-reload') {
- exit 0;
-}
-if (@ARGV == 2 and $ARGV[0] eq '--system' and $ARGV[1] eq 'daemon-reload') {
- exit 0;
-}
-
-for (keys %ENV) {
- delete $ENV{$_} unless $_ eq '_SYSTEMCTL_LITE_STARTING';
-}
-
-my $RUNNING_DIR = '/run/systemctl-lite-running';
-if (not -d $RUNNING_DIR) {
- mkdir $RUNNING_DIR;
-}
-my $ENABLED_DIR = '/etc/systemctl-lite-enabled';
-if (@ARGV == 1) {
- if ($ARGV[0] eq 'start-enabled' and -d $ENABLED_DIR) {
- local * ENABLED;
- opendir ENABLED, $ENABLED_DIR;
- my %services;
- while (defined(my $f = readdir ENABLED)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$ENABLED_DIR/$f")[9];
- if (defined $modified) {
- $services{$f} = $modified;
- }
- }
- close ENABLED;
- for my $s (sort { $services{$a} <=> $services{$b} or $a cmp $b } keys %services) {
- print "Starting [$s]\n";
- system $0, 'start', $s;
- exit ($? >> 8) if ($? >> 8);
- }
- }
- if ($ARGV[0] eq 'stop-running' and -d $RUNNING_DIR) {
- local * RUNNING;
- opendir RUNNING, $RUNNING_DIR;
- my %services;
- while (defined(my $f = readdir RUNNING)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$RUNNING_DIR/$f")[9];
- if (defined $modified) {
- my $trimmed = $f;
- $trimmed =~ s/\..+$//;
- $services{$trimmed} = $modified;
- }
- }
- close RUNNING;
- for my $s (sort { $services{$b} <=> $services{$a} or $a cmp $b } keys %services) {
- system $0, 'stop', $s;
- }
- }
- exit;
-}
-
-if (@ARGV != 2) {
- die "Usage: $0 (start|stop|status|...) (service|target|socket thing)\n";
-}
-
-my ($COMMAND, $SERVICE) = @ARGV;
-my $TYPE = 'service';
-if ($SERVICE =~ /\.(target|socket)$/) {
- $TYPE = $1;
-} elsif (not $SERVICE =~ /\.service$/) {
- $SERVICE .= '.service';
-}
-
-my @PATHS = (
- '/etc/systemd/system',
- '/run/systemd/system',
- '/usr/lib/systemd/system',
-);
-
-my $FULL_SERVICE = $SERVICE;
-my $INSTANCE = undef;
-
-my $file = undef;
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
-}
-for my $p (@PATHS) {
- if (-e "$p/$SERVICE") {
- if (-l "$p/$SERVICE") {
- my $new_service = readlink("$p/$SERVICE");
- log_command("Service [$p/$SERVICE] is a symlink to [$new_service]\n");
- $new_service =~ s!^.*/!!;
- $SERVICE = $new_service;
- }
- $file = "$p/$SERVICE";
- last;
- }
-}
-
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
- for my $p (@PATHS) {
- if (-f "$p/$SERVICE") {
- $file = "$p/$SERVICE";
- last;
- }
- }
-}
-
-if (not defined $file) {
- if ($COMMAND eq 'is-enabled') {
- exit 1;
- }
- if ($COMMAND eq 'is-active') {
- exit 3;
- }
- warn "No service definition found for [$FULL_SERVICE].\n";
- exit 2;
-}
-
-sub parse_file {
- my ($file, $data) = @_;
- if (-d $file) {
- my $op;
- if ($file =~ /\.requires$/) {
- $op = 'Unit.Requires';
- } elsif ($file =~ /\.wants$/) {
- $op = 'Unit.Wants';
- } else {
- die "Unknown directory [$file].\n";
- }
- my $dh = new IO::Dir($file);
- while (defined(my $de = $dh->read)) {
- next if $de eq '.' or $de eq '..';
- push @{$data->{$op}}, $de unless $de =~ /\.target$/;
- }
- $dh->close;
- return;
- }
- my $fh = new IO::File($file);
- my $section = 'undefined';
- while (my $line = <$fh>) {
- chomp $line;
- if ($line =~ /^\[(.+)\]\s*$/) {
- $section = $1;
- next;
- }
- next if $line =~ /^\s*(#|$)/;
- if ($line =~ /^\.include\s(.+)/) {
- parse_file($1, $data);
- next;
- }
- my ($key, $value) = split /=/, $line, 2;
- if (defined $INSTANCE) {
- $value =~ s/\%i/$INSTANCE/g;
- }
- if ($key eq 'EnvironmentFile') {
- if ($value eq '') {
- delete $data->{"$section.$key"};
- } else {
- push @{ $data->{"$section.$key"} }, $value;
- }
- } elsif ($key =~ /^(Wants|Requires)$/) {
- push @{ $data->{"$section.$key"} }, $value unless $value =~ /\.target$/;
- } elsif ($key =~ /^(ExecStart(Pre|Post)|ExecReload|ExecStop(Pre|Post)?)$/) {
- push @{ $data->{"$section.$key"} }, $value;
- } else {
- $data->{"$section.$key"} = $value;
- }
- }
- $fh->close;
- if (defined $data->{'Service.ExecStart'} and not defined $data->{'Service.PIDFile'}) {
- my ($pidfile) = grep /^\/.+\.pid$/, split /\s+/, $data->{'Service.ExecStart'};
- if (defined $pidfile) {
- $data->{'Service.PIDFile'} = $pidfile;
- log_command("Guessing pid file [$data->{'Service.PIDFile'}] from ExecStart [$data->{'Service.ExecStart'}]\n");
- }
- }
-}
-
-my $data = {};
-parse_file($file, $data);
-for my $p (@PATHS) {
- if (-d "$p/$SERVICE.wants") {
- $file = "$p/$SERVICE.wants";
- parse_file("$p/$SERVICE.wants", $data);
- last;
- }
-}
-
-if ($COMMAND eq 'show') {
- print Data::Dumper::Dumper $data;
- exit;
-}
-
-sub pidof {
- my $command = shift;
- my $pids = `/usr/sbin/pidof $command`;
- chomp $pids;
- if ($pids ne '') {
- return split /\s+/, $pids;
- }
- return;
-}
-
-sub get_exec_start {
- my $data = shift;
- my $d = $data->{'Service.ExecStart'};
- if (not defined $d) {
- warn "No ExecStart value found for [$SERVICE].\n";
- exit 3;
- }
- return split /\s+/, $d;
-}
-
-sub get_pid {
- my $file = shift;
- if (not $file =~ m!^/!) {
- $file = "$RUNNING_DIR/$file";
- }
- if (-f $file) {
- local * PIDFILE;
- open PIDFILE, '<', $file;
- my $pid = <PIDFILE>;
- close PIDFILE;
- if (defined $pid) {
- chomp $pid;
- return $pid;
- }
- }
-}
-
-sub is_running {
- my $data = shift;
- my $ret;
- if (-f "$RUNNING_DIR/$FULL_SERVICE.oneshot") {
- return 1;
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (pidof($path)) {
- $ret = 1;
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- }
- }
- return $ret;
-}
-if ($COMMAND eq 'is-active' or $COMMAND eq 'status') {
- if (is_running($data)) {
- print "active\n";
- exit;
- }
- print "inactive\n";
- exit 3;
-}
-
-sub exec_stop_pre {
- my ($data) = @_;
- if (defined $data->{'Socket.ExecStopPre'}) {
- for my $x (@{ $data->{'Socket.ExecStopPre'} }) {
- log_command("Running stop pre [$x]\n");
- system $x;
- }
- }
-}
-sub exec_stop_post {
- my ($data) = @_;
- if (defined $data->{'Service.ExecStopPost'}) {
- for my $x (@{ $data->{'Service.ExecStopPost'} }) {
- log_command("Running stop post [$x]\n");
- system $x;
- }
- }
-}
-
-if ($TYPE eq 'target' and not defined $data->{'Unit.Wants'} and not defined $data->{'Unit.Requires'}) {
- warn "No Unit.Wants/.wants/Unit.Requires/.requires list for target [$SERVICE]\n";
- exit 8;
-}
-
-if ($COMMAND eq 'restart') {
- if ($TYPE ne 'service' or is_running($data)) {
- system $0, 'stop', $FULL_SERVICE;
- }
- system $0, 'start', $FULL_SERVICE;
- exit;
-}
-
-sub pids_went_away_timeout {
- my $timeout = shift;
- my $start = time;
- while (kill 0, @_) {
- if (time - $start > $timeout) {
- log_command(sprintf(" ** pid(s) [%s] not killed within %d s\n", join(', ', @_), $timeout));
- return 0;
- }
- sleep 0.1;
- }
- log_command(sprintf(" ** pid(s) [%s] got killed after %.2f s\n", join(', ', @_), time - $start));
- return 1;
-}
-
-sub stop_pids {
- my @pids = @_;
- kill 15, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- kill 9, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- log_command("Failed to kill [@pids] even with 9\n");
- warn "Failed to kill [@pids].\n";
- return 1;
- }
- log_command("Killed [@pids] with 9\n");
- } else {
- log_command("Killed [@pids] with 15\n");
- }
- return 0;
-}
-
-if ($COMMAND eq 'stop') {
- my $mainpid;
- if (defined $data->{'Service.PIDFile'}) {
- $mainpid = get_pid($data->{'Service.PIDFile'});
- } else {
- $mainpid = get_pid("$FULL_SERVICE.pid");
- }
- if (defined $data->{'Service.ExecStop'}) {
- for my $x (@{ $data->{'Service.ExecStop'} }) {
- my $runit = 1;
- if (defined $mainpid) {
- $x =~ s!\$MAINPID\b|\$\{MAINPID\}!$mainpid!g;
- } elsif ($x =~ /\$MAINPID\b|\$\{MAINPID\}/) {
- $runit = 0;
- log_command("Service [$FULL_SERVICE] would like to stop via ExecStop [$x] but we have no pid file, skipping.\n");
- }
- if ($runit) {
- log_command("Running stop [$x]\n");
- system $x;
- sleep 1;
- }
- }
- }
- my $ret = undef;
- if ($TYPE eq 'target') {
- # noop
- } elsif (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- # noop
- } elsif ($TYPE eq 'socket') {
- my $pids = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $pids) {
- chomp $pids;
- $pids =~ s/^\s+//;
- my @pids = split /\s+/, $pids;
- if (@pids) {
- exec_stop_pre($data);
- log_command("Will kill [@pids] as fuser [$data->{'Socket.ListenStream'}] of [$FULL_SERVICE]\n");
- $ret = stop_pids(@pids);
- }
- }
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- log_command("Will kill [$pid] found in Service.PIDFile of [$FULL_SERVICE]\n");
- $ret = stop_pids($pid);
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (my @pids = pidof($path)) {
- log_command("Will kill [@pids] as pidof [$path] found in [$FULL_SERVICE.name]\n");
- $ret = stop_pids(@pids);
- } else {
- warn "No pidof for [$path] found in [$FULL_SERVICE.name].\n";
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- log_command("Will kill [$pid] found in [$FULL_SERVICE.pid]\n");
- $ret = stop_pids($pid);
- } else {
- warn "No pid and no name for [$FULL_SERVICE].\n";
- }
- }
- }
- exec_stop_post($data);
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid", "$RUNNING_DIR/$FULL_SERVICE.name", "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- system $0, 'stop', $x;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- system $0, 'stop', $x;
- }
- }
- exit ( defined $ret ? $ret : 0 );
-}
-
-sub add_runuser {
- my ($data, $cmd) = @_;
- if (defined $data->{'Service.User'}) {
- unshift @$cmd, '-u', $data->{'Service.User'}, '--';
- if (defined $data->{'Service.Group'}) {
- unshift @$cmd, '-g', $data->{'Service.Group'};
- }
- unshift @$cmd, '/usr/sbin/runuser';
- }
-}
-
-if ($COMMAND eq 'start') {
- my (@starting_stack, %starting_stack);
- if (defined $ENV{_SYSTEMCTL_LITE_STARTING}) {
- @starting_stack = split /:/, $ENV{_SYSTEMCTL_LITE_STARTING};
- @starting_stack{@starting_stack} = ();
- $ENV{_SYSTEMCTL_LITE_STARTING} .= ":$FULL_SERVICE";
- } else {
- $ENV{_SYSTEMCTL_LITE_STARTING} = $FULL_SERVICE;
- }
-
- if ($TYPE eq 'service' and is_running($data)) {
- log_command("Service [$FULL_SERVICE] already found running, not starting again.\n");
- exit;
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], unlinking it before start\n");
- unlink $data->{'Service.PIDFile'};
- }
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Wants of [$FULL_SERVICE]\n");
- system @cmd;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Requires of [$FULL_SERVICE]\n");
- if (system @cmd) {
- log_command("Failed to start [$x], aborting start\n");
- exit 1;
- }
- }
- }
- if (defined $data->{'Service.PIDFile'} and is_running($data)) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}] and it seems to have already started, not starting again.\n");
- exit;
- }
-
- if ($TYPE eq 'target') {
- exit;
- }
- if ($TYPE eq 'socket' and -S $data->{'Socket.ListenStream'}) {
- my $out = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $out and $out ne '') {
- log_command("Service [$FULL_SERVICE] already found active on socket [$data->{'Socket.ListenStream'}], not starting again.\n");
- exit;
- }
- }
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'dbus') {
- my @cmd = ($0, 'start', 'dbus.socket');
- log_command("Running [@cmd] for Service.Type dbus\n");
- system @cmd;
- }
- if (defined $data->{'Service.ExecStartPre'}) {
- for my $x (@{ $data->{'Service.ExecStartPre'} }) {
- my $can_fail = 0;
- if ($x =~ s/^-//) {
- $can_fail = 1;
- }
- my @cmd = split /\s+/, $x;
- if (not $data->{'Service.PermissionsStartOnly'} or $data->{'Service.PermissionsStartOnly'} =~ /^(false|0)$/i) {
- add_runuser($data, \@cmd);
- }
- no warnings 'uninitialized';
- log_command("Running start pre [@cmd]\n");
- if (system @cmd and not $can_fail) {
- exit 1;
- }
- }
- }
- my @paths;
- if ($TYPE eq 'socket') {
- my $service = $SERVICE;
- if (defined $data->{'Socket.Accept'} and $data->{'Socket.Accept'} eq 'true') {
- $service =~ s/\.socket$/\@.service/;
- @paths = ( '/bin/systemctl-socket-daemon', $data->{'Socket.ListenStream'}, $data->{'Socket.SocketMode'} // '0666', $service );
- } else {
- $service =~ s/\.socket$/\.service/;
- my $ret = system "$0 is-active $service > /dev/null";
- if (($ret >> 8) == 0) {
- log_command("Service [$service] is already running for [$SERVICE]\n");
- exit;
- }
- @paths = ( $0, 'start', $service );
- }
- } else {
- @paths = get_exec_start($data);
- }
- my $first_path = $paths[0];
-
- my $ENV = '';
- if (exists $data->{'Service.EnvironmentFile'}) {
- for my $e (@{ $data->{'Service.EnvironmentFile'} }) {
- my $error_fail = 1;
- if ($e =~ s/^-//) {
- $error_fail = 0;
- }
- my $fh = new IO::File($e);
- if (not defined $fh) {
- if ($error_fail) {
- warn "Error reading EnvironmentFile [$e]: $!\n";
- exit 5;
- }
- } else {
- while (my $line = <$fh>) {
- chomp $line;
- next if $line =~ /^\s*(#|$)/;
- $ENV .= "export $line; ";
- }
- $fh->close();
- }
- }
- }
- if (defined $data->{'Service.Environment'}) {
- my $x = $data->{'Service.Environment'};
- $x =~ s/^"(.*)"$/$1/;
- $ENV .= "export $x; ";
- }
- add_runuser($data, \@paths);
- log_command("Running [$ENV@paths]\n");
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- system "$ENV@paths";
- if (defined $data->{'Service.RemainAfterExit'} and $data->{'Service.RemainAfterExit'} eq 'yes') {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- close PIDFILE;
- }
- exit;
- }
- my $pid = fork();
- die "Failed to fork for [@_]\n" if not defined $pid;
- if ($pid == 0) {
- open(STDOUT, '>>', '/var/log/systemctl.log');
- open(STDERR, '>>', '/var/log/systemctl.log');
- open(STDIN, '<', '/dev/null');
- POSIX::setsid();
- exec "$ENV@paths";
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], not marking pid\n");
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid";
- my $i = 0;
- while (not -f $data->{'Service.PIDFile'}) {
- sleep 0.2;
- $i++;
- if ($i > 250) {
- log_command("Starting [$FULL_SERVICE] did not create PIDFile [$data->{'Service.PIDFile'}]\n");
- exit 10;
- }
- }
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (not defined $pid or not kill 0, $pid) {
- log_command("Starting [$FULL_SERVICE] created PIDFile [$data->{'Service.PIDFile'}] but the process is not running\n");
- exit 11;
- }
- } else {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.pid";
- print PIDFILE "$pid\n";
- close PIDFILE;
- log_command("Marked pid [$pid] for [$FULL_SERVICE]\n");
- sleep 1;
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} ne 'simple' and $data->{'Service.Type'} ne 'notify' and pidof($first_path)) {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.name";
- print PIDFILE "$first_path\n";
- close PIDFILE;
- log_command("Marked process name [$first_path] for [$FULL_SERVICE]\n");
- }
- }
- if (defined $data->{'Service.Type'}
- and $data->{'Service.Type'} eq 'dbus'
- and defined $data->{'Service.BusName'}) {
- my $busname = $data->{'Service.BusName'};
- my $objectpath = $busname;
- $objectpath =~ s!^|\.!/!g;
- for (0 .. 10) {
- system "/usr/bin/dbus-send --system --type=method_call --print-reply --dest=$busname $objectpath org.freedesktop.DBus.Introspectable.Introspect > /dev/null";
- exit if ($? >> 8) == 0;
- sleep 1;
- }
- exit 9;
- }
- exit;
-}
-
-if ($COMMAND eq 'is-enabled') {
- if (-e "$ENABLED_DIR/$FULL_SERVICE") {
- print "enabled\n";
- exit 0;
- }
- print "disabled\n";
- exit 1;
-}
-
-if ($COMMAND eq 'enable') {
- if (not -d $ENABLED_DIR) {
- mkdir $ENABLED_DIR;
- }
- local * FILE;
- open FILE, '>', "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-if ($COMMAND eq 'disable') {
- unlink "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-die "Unknown command [$COMMAND].\n";
-
-1;
-
diff --git a/99-ci-twentythree/systemctl-socket-daemon b/99-ci-twentythree/systemctl-socket-daemon
deleted file mode 100644
index 5250cad..0000000
--- a/99-ci-twentythree/systemctl-socket-daemon
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Socket::UNIX ();
-use Socket ();
-use POSIX ();
-
-sub daemonize {
- open(STDERR, '>>', '/var/log/systemctl-socket-daemon.log') || die "can't write log: $!";
- open(STDOUT, '>&STDERR') || die "can't write stdout to log: $!";
- chdir("/") || die "can't chdir to /: $!";
- open(STDIN, '<', '/dev/null') || die "can't read /dev/null: $!";
- defined(my $pid = fork()) || die "can't fork: $!";
- exit if $pid; # non-zero now means I am the parent
- (POSIX::setsid() != -1) || die "Can't start a new session: $!";
-}
-
-my ($socket_path, $socket_mode, $service) = @ARGV;
-if (not defined $socket_path or not defined $service) {
- die "Usage: $0 /path/to/unix/socket service-to-run\n";
-}
-if (-e $socket_path) {
- warn "Path [$socket_path] already exists, removing\n";
- unlink $socket_path;
-}
-
-my $service_data = `/bin/systemctl show $service 2>&1`;
-if ($?) {
- die "Failed to find service [$service]:\n$service_data";
-}
-
-my $socket = new IO::Socket::UNIX(
- Type => Socket::SOCK_STREAM,
- Local => $socket_path,
- Listen => Socket::SOMAXCONN
-) or die "socket: $!\n";
-chmod oct($socket_mode), $socket_path;
-
-daemonize();
-
-while (1) {
- next unless my $connection = $socket->accept;
- my $pid = fork();
- if ($pid == 0) {
- *STDIN = $connection;
- *STDOUT = $connection;
- exec '/bin/systemctl', 'start', $service;
- die "exec should have never reached here\n";
- }
-}
-
diff --git a/99-ci-twentythree/vimrc b/99-ci-twentythree/vimrc
deleted file mode 100644
index 30fa2ed..0000000
--- a/99-ci-twentythree/vimrc
+++ /dev/null
@@ -1,9 +0,0 @@
-set shiftwidth=4
-set tabstop=4
-set expandtab
-set enc=utf-8
-
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/*/*.{c,h} set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/cunit/cunit.pl set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/configure.ac set tabstop=8 shiftwidth=8 noexpandtab
-
diff --git a/99-ci-twentytwo/Dockerfile b/99-ci-twentytwo/Dockerfile
deleted file mode 100644
index 1945272..0000000
--- a/99-ci-twentytwo/Dockerfile
+++ /dev/null
@@ -1,107 +0,0 @@
-FROM fedora:22
-MAINTAINER Kolab Systems <vanmeeuwen@kolabsys.com>
-
-ADD http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Fedora_22/Kolab:Winterfell.repo \
- /etc/yum.repos.d/Kolab:Winterfell.repo
-
-RUN echo "priority=60" >> /etc/yum.repos.d/Kolab:Winterfell.repo
-
-RUN rpm --import https://ssl.kolabsys.com/community.asc
-
-ADD http://download.opensuse.org/repositories/openSUSE:Tools/Fedora_22/openSUSE:Tools.repo \
- /etc/yum.repos.d/openSUSE:Tools.repo
-
-RUN rpm --import http://download.opensuse.org/repositories/openSUSE:/Tools/Fedora_22/repodata/repomd.xml.key
-
-RUN sed -i \
- -e '/tsflags=nodocs/d' \
- -e '/override_install_langs/d' \
- /etc/dnf/dnf.conf && \
- sed -i \
- -e 's/^#baseurl/baseurl/g' \
- -e 's/^metalink/#metalink/g' \
- /etc/yum.repos.d/*.repo && \
- rm -rf /bin/applydeltarpm
-
-#RUN dnf -y reinstall \* && \
-# dnf clean all
-
-ENV IMAGE twentytwo
-
-ADD /dbus.service /etc/systemd/system/dbus.service
-RUN ln -sf dbus.service /etc/systemd/system/messagebus.service
-
-ADD /httpd.service /etc/systemd/system/httpd.service
-
-ADD /systemctl /usr/bin/systemctl
-ADD /systemctl-socket-daemon /usr/bin/systemctl-socket-daemon
-
-RUN chmod -v a+rx \
- /usr/bin/systemctl \
- /usr/bin/systemctl-socket-daemon
-
-ADD /vimrc /root/.vimrc
-
-RUN dnf clean all && \
- dnf -y install yum-plugin-priorities && \
- dnf -y install \
- @buildsys-build \
- ant \
- bind-utils \
- build \
- git \
- lsof \
- net-tools \
- nmap-ncat \
- openldap-clients \
- osc \
- perl-Data-Dumper \
- perl-Digest-MD5 \
- perl-TimeDate \
- php-phpunit-PHPUnit-Selenium \
- psmisc \
- rpmdevtools \
- screen \
- strace \
- sudo \
- telnet \
- traceroute \
- vim-enhanced \
- wget \
- yum-utils && \
- dnf clean all
-
-RUN sed -i -e '/requiretty/d' /etc/sudoers
-
-WORKDIR /srv
-RUN git clone https://github.com/google/closure-compiler.git closure-compiler.git
-WORKDIR /srv/closure-compiler.git
-RUN ant jar
-
-RUN wget \
- -O/usr/local/lib/selenium-server-standalone.jar \
- http://mirror.kolabsys.com/pub/releases/selenium-server-standalone.jar
-
-#WORKDIR /srv
-#RUN git clone https://github.com/SeleniumHQ/selenium.git selenium.git
-#WORKDIR /srv/selenium.git
-#RUN ./go --trace --verbose build
-#RUN ./go selenium-server-standalone
-
-WORKDIR /srv
-RUN wget http://mirror.kolabsys.com/pub/releases/phantomjs-1.9.7-linux-x86_64.tar.bz2 && \
- tar jxvf phantomjs-1.9.7-linux-x86_64.tar.bz2 && \
- cp phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/ && \
- rm -rf phantomjs-1.9.7-linux-x86_64*
-
-#WORKDIR /srv/
-#RUN git clone https://github.com/ariya/phantomjs.git phantomjs.git
-#WORKDIR /srv/phantomjs.git
-#RUN ./build.sh --confirm
-
-ADD /functions.sh /
-ADD entrypoint.sh /
-
-RUN chmod 755 /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-twentytwo/dbus.service b/99-ci-twentytwo/dbus.service
deleted file mode 100644
index 0be95c4..0000000
--- a/99-ci-twentytwo/dbus.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=D-Bus System Message Bus
-Requires=dbus.socket
-After=syslog.target
-
-[Service]
-PIDFile=/var/run/messagebus.pid
-ExecStartPre=/bin/mkdir -p /var/run/dbus
-ExecStartPre=/bin/chmod g+w /var/run/ /var/run/dbus/
-ExecStart=/bin/dbus-daemon --system --fork
-ExecReload=/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
-ExecStopPost=/bin/rm -f /var/run/messagebus.pid
-OOMScoreAdjust=-900
-User=dbus
-Group=root
-PermissionsStartOnly=true
diff --git a/99-ci-twentytwo/entrypoint.sh b/99-ci-twentytwo/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-twentytwo/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-twentytwo/functions.sh b/99-ci-twentytwo/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-twentytwo/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-twentytwo/httpd.service b/99-ci-twentytwo/httpd.service
deleted file mode 100644
index ba7ec71..0000000
--- a/99-ci-twentytwo/httpd.service
+++ /dev/null
@@ -1,4 +0,0 @@
-.include /lib/systemd/system/httpd.service
-[Service]
-PIDFile=/var/run/httpd/httpd.pid
-
diff --git a/99-ci-twentytwo/sudoers.drydock-worker b/99-ci-twentytwo/sudoers.drydock-worker
deleted file mode 100644
index 489b82b..0000000
--- a/99-ci-twentytwo/sudoers.drydock-worker
+++ /dev/null
@@ -1 +0,0 @@
-drydock-worker ALL=(ALL) NOPASSWD: ALL
diff --git a/99-ci-twentytwo/systemctl b/99-ci-twentytwo/systemctl
deleted file mode 100644
index 6a15c0b..0000000
--- a/99-ci-twentytwo/systemctl
+++ /dev/null
@@ -1,680 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::File ();
-use IO::Dir ();
-use IO::Socket::UNIX ();
-use Socket ();
-use Data::Dumper ();
-use POSIX ();
-use Time::HiRes qw(sleep time);
-
-sub log_command {
- local * LOG;
- open(LOG, '>>', '/var/log/systemctl.log');
- print LOG @_;
- close LOG;
-}
-log_command("[@ARGV]\n");
-shift if @ARGV and $ARGV[0] eq '-q';
-
-for (my $i = 0; $i < @ARGV; $i++) {
- if ($ARGV[$i] eq '--ignore-dependencies') {
- splice @ARGV, $i, 1;
- last;
- }
-}
-if (@ARGV == 1 and $ARGV[0] eq 'daemon-reload') {
- exit 0;
-}
-if (@ARGV == 2 and $ARGV[0] eq '--system' and $ARGV[1] eq 'daemon-reload') {
- exit 0;
-}
-
-for (keys %ENV) {
- delete $ENV{$_} unless $_ eq '_SYSTEMCTL_LITE_STARTING';
-}
-
-my $RUNNING_DIR = '/run/systemctl-lite-running';
-if (not -d $RUNNING_DIR) {
- mkdir $RUNNING_DIR;
-}
-my $ENABLED_DIR = '/etc/systemctl-lite-enabled';
-if (@ARGV == 1) {
- if ($ARGV[0] eq 'start-enabled' and -d $ENABLED_DIR) {
- local * ENABLED;
- opendir ENABLED, $ENABLED_DIR;
- my %services;
- while (defined(my $f = readdir ENABLED)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$ENABLED_DIR/$f")[9];
- if (defined $modified) {
- $services{$f} = $modified;
- }
- }
- close ENABLED;
- for my $s (sort { $services{$a} <=> $services{$b} or $a cmp $b } keys %services) {
- print "Starting [$s]\n";
- system $0, 'start', $s;
- exit ($? >> 8) if ($? >> 8);
- }
- }
- if ($ARGV[0] eq 'stop-running' and -d $RUNNING_DIR) {
- local * RUNNING;
- opendir RUNNING, $RUNNING_DIR;
- my %services;
- while (defined(my $f = readdir RUNNING)) {
- next if $f eq '.' or $f eq '..';
- my $modified = (stat "$RUNNING_DIR/$f")[9];
- if (defined $modified) {
- my $trimmed = $f;
- $trimmed =~ s/\..+$//;
- $services{$trimmed} = $modified;
- }
- }
- close RUNNING;
- for my $s (sort { $services{$b} <=> $services{$a} or $a cmp $b } keys %services) {
- system $0, 'stop', $s;
- }
- }
- exit;
-}
-
-if (@ARGV != 2) {
- die "Usage: $0 (start|stop|status|...) (service|target|socket thing)\n";
-}
-
-my ($COMMAND, $SERVICE) = @ARGV;
-my $TYPE = 'service';
-if ($SERVICE =~ /\.(target|socket)$/) {
- $TYPE = $1;
-} elsif (not $SERVICE =~ /\.service$/) {
- $SERVICE .= '.service';
-}
-
-my @PATHS = (
- '/etc/systemd/system',
- '/run/systemd/system',
- '/usr/lib/systemd/system',
-);
-
-my $FULL_SERVICE = $SERVICE;
-my $INSTANCE = undef;
-
-my $file = undef;
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
-}
-for my $p (@PATHS) {
- if (-e "$p/$SERVICE") {
- if (-l "$p/$SERVICE") {
- my $new_service = readlink("$p/$SERVICE");
- log_command("Service [$p/$SERVICE] is a symlink to [$new_service]\n");
- $new_service =~ s!^.*/!!;
- $SERVICE = $new_service;
- }
- $file = "$p/$SERVICE";
- last;
- }
-}
-
-if ($SERVICE =~ s/\@(.+)\.service$/\@.service/) {
- $INSTANCE = $1;
- for my $p (@PATHS) {
- if (-f "$p/$SERVICE") {
- $file = "$p/$SERVICE";
- last;
- }
- }
-}
-
-if (not defined $file) {
- if ($COMMAND eq 'is-enabled') {
- exit 1;
- }
- if ($COMMAND eq 'is-active') {
- exit 3;
- }
- warn "No service definition found for [$FULL_SERVICE].\n";
- exit 2;
-}
-
-sub parse_file {
- my ($file, $data) = @_;
- if (-d $file) {
- my $op;
- if ($file =~ /\.requires$/) {
- $op = 'Unit.Requires';
- } elsif ($file =~ /\.wants$/) {
- $op = 'Unit.Wants';
- } else {
- die "Unknown directory [$file].\n";
- }
- my $dh = new IO::Dir($file);
- while (defined(my $de = $dh->read)) {
- next if $de eq '.' or $de eq '..';
- push @{$data->{$op}}, $de unless $de =~ /\.target$/;
- }
- $dh->close;
- return;
- }
- my $fh = new IO::File($file);
- my $section = 'undefined';
- while (my $line = <$fh>) {
- chomp $line;
- if ($line =~ /^\[(.+)\]\s*$/) {
- $section = $1;
- next;
- }
- next if $line =~ /^\s*(#|$)/;
- if ($line =~ /^\.include\s(.+)/) {
- parse_file($1, $data);
- next;
- }
- my ($key, $value) = split /=/, $line, 2;
- if (defined $INSTANCE) {
- $value =~ s/\%i/$INSTANCE/g;
- }
- if ($key eq 'EnvironmentFile') {
- if ($value eq '') {
- delete $data->{"$section.$key"};
- } else {
- push @{ $data->{"$section.$key"} }, $value;
- }
- } elsif ($key =~ /^(Wants|Requires)$/) {
- push @{ $data->{"$section.$key"} }, $value unless $value =~ /\.target$/;
- } elsif ($key =~ /^(ExecStart(Pre|Post)|ExecReload|ExecStop(Pre|Post)?)$/) {
- push @{ $data->{"$section.$key"} }, $value;
- } else {
- $data->{"$section.$key"} = $value;
- }
- }
- $fh->close;
- if (defined $data->{'Service.ExecStart'} and not defined $data->{'Service.PIDFile'}) {
- my ($pidfile) = grep /^\/.+\.pid$/, split /\s+/, $data->{'Service.ExecStart'};
- if (defined $pidfile) {
- $data->{'Service.PIDFile'} = $pidfile;
- log_command("Guessing pid file [$data->{'Service.PIDFile'}] from ExecStart [$data->{'Service.ExecStart'}]\n");
- }
- }
-}
-
-my $data = {};
-parse_file($file, $data);
-for my $p (@PATHS) {
- if (-d "$p/$SERVICE.wants") {
- $file = "$p/$SERVICE.wants";
- parse_file("$p/$SERVICE.wants", $data);
- last;
- }
-}
-
-if ($COMMAND eq 'show') {
- print Data::Dumper::Dumper $data;
- exit;
-}
-
-sub pidof {
- my $command = shift;
- my $pids = `/usr/sbin/pidof $command`;
- chomp $pids;
- if ($pids ne '') {
- return split /\s+/, $pids;
- }
- return;
-}
-
-sub get_exec_start {
- my $data = shift;
- my $d = $data->{'Service.ExecStart'};
- if (not defined $d) {
- warn "No ExecStart value found for [$SERVICE].\n";
- exit 3;
- }
- return split /\s+/, $d;
-}
-
-sub get_pid {
- my $file = shift;
- if (not $file =~ m!^/!) {
- $file = "$RUNNING_DIR/$file";
- }
- if (-f $file) {
- local * PIDFILE;
- open PIDFILE, '<', $file;
- my $pid = <PIDFILE>;
- close PIDFILE;
- if (defined $pid) {
- chomp $pid;
- return $pid;
- }
- }
-}
-
-sub is_running {
- my $data = shift;
- my $ret;
- if (-f "$RUNNING_DIR/$FULL_SERVICE.oneshot") {
- return 1;
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (pidof($path)) {
- $ret = 1;
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- $ret = kill 0, $pid;
- }
- }
- }
- return $ret;
-}
-if ($COMMAND eq 'is-active' or $COMMAND eq 'status') {
- if (is_running($data)) {
- print "active\n";
- exit;
- }
- print "inactive\n";
- exit 3;
-}
-
-sub exec_stop_pre {
- my ($data) = @_;
- if (defined $data->{'Socket.ExecStopPre'}) {
- for my $x (@{ $data->{'Socket.ExecStopPre'} }) {
- log_command("Running stop pre [$x]\n");
- system $x;
- }
- }
-}
-sub exec_stop_post {
- my ($data) = @_;
- if (defined $data->{'Service.ExecStopPost'}) {
- for my $x (@{ $data->{'Service.ExecStopPost'} }) {
- log_command("Running stop post [$x]\n");
- system $x;
- }
- }
-}
-
-if ($TYPE eq 'target' and not defined $data->{'Unit.Wants'} and not defined $data->{'Unit.Requires'}) {
- warn "No Unit.Wants/.wants/Unit.Requires/.requires list for target [$SERVICE]\n";
- exit 8;
-}
-
-if ($COMMAND eq 'restart') {
- if ($TYPE ne 'service' or is_running($data)) {
- system $0, 'stop', $FULL_SERVICE;
- }
- system $0, 'start', $FULL_SERVICE;
- exit;
-}
-
-sub pids_went_away_timeout {
- my $timeout = shift;
- my $start = time;
- while (kill 0, @_) {
- if (time - $start > $timeout) {
- log_command(sprintf(" ** pid(s) [%s] not killed within %d s\n", join(', ', @_), $timeout));
- return 0;
- }
- sleep 0.1;
- }
- log_command(sprintf(" ** pid(s) [%s] got killed after %.2f s\n", join(', ', @_), time - $start));
- return 1;
-}
-
-sub stop_pids {
- my @pids = @_;
- kill 15, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- kill 9, @pids;
- if (not pids_went_away_timeout(5, @pids)) {
- log_command("Failed to kill [@pids] even with 9\n");
- warn "Failed to kill [@pids].\n";
- return 1;
- }
- log_command("Killed [@pids] with 9\n");
- } else {
- log_command("Killed [@pids] with 15\n");
- }
- return 0;
-}
-
-if ($COMMAND eq 'stop') {
- my $mainpid;
- if (defined $data->{'Service.PIDFile'}) {
- $mainpid = get_pid($data->{'Service.PIDFile'});
- } else {
- $mainpid = get_pid("$FULL_SERVICE.pid");
- }
- if (defined $data->{'Service.ExecStop'}) {
- for my $x (@{ $data->{'Service.ExecStop'} }) {
- my $runit = 1;
- if (defined $mainpid) {
- $x =~ s!\$MAINPID\b|\$\{MAINPID\}!$mainpid!g;
- } elsif ($x =~ /\$MAINPID\b|\$\{MAINPID\}/) {
- $runit = 0;
- log_command("Service [$FULL_SERVICE] would like to stop via ExecStop [$x] but we have no pid file, skipping.\n");
- }
- if ($runit) {
- log_command("Running stop [$x]\n");
- system $x;
- sleep 1;
- }
- }
- }
- my $ret = undef;
- if ($TYPE eq 'target') {
- # noop
- } elsif (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- # noop
- } elsif ($TYPE eq 'socket') {
- my $pids = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $pids) {
- chomp $pids;
- $pids =~ s/^\s+//;
- my @pids = split /\s+/, $pids;
- if (@pids) {
- exec_stop_pre($data);
- log_command("Will kill [@pids] as fuser [$data->{'Socket.ListenStream'}] of [$FULL_SERVICE]\n");
- $ret = stop_pids(@pids);
- }
- }
- } elsif (defined $data->{'Service.PIDFile'}) {
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (defined $pid) {
- log_command("Will kill [$pid] found in Service.PIDFile of [$FULL_SERVICE]\n");
- $ret = stop_pids($pid);
- }
- } else {
- my $path = get_pid("$FULL_SERVICE.name");
- if (defined $path) {
- if (my @pids = pidof($path)) {
- log_command("Will kill [@pids] as pidof [$path] found in [$FULL_SERVICE.name]\n");
- $ret = stop_pids(@pids);
- } else {
- warn "No pidof for [$path] found in [$FULL_SERVICE.name].\n";
- }
- } else {
- my $pid = get_pid("$FULL_SERVICE.pid");
- if (defined $pid) {
- log_command("Will kill [$pid] found in [$FULL_SERVICE.pid]\n");
- $ret = stop_pids($pid);
- } else {
- warn "No pid and no name for [$FULL_SERVICE].\n";
- }
- }
- }
- exec_stop_post($data);
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid", "$RUNNING_DIR/$FULL_SERVICE.name", "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- system $0, 'stop', $x;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- system $0, 'stop', $x;
- }
- }
- exit ( defined $ret ? $ret : 0 );
-}
-
-sub add_runuser {
- my ($data, $cmd) = @_;
- if (defined $data->{'Service.User'}) {
- unshift @$cmd, '-u', $data->{'Service.User'}, '--';
- if (defined $data->{'Service.Group'}) {
- unshift @$cmd, '-g', $data->{'Service.Group'};
- }
- unshift @$cmd, '/usr/sbin/runuser';
- }
-}
-
-if ($COMMAND eq 'start') {
- my (@starting_stack, %starting_stack);
- if (defined $ENV{_SYSTEMCTL_LITE_STARTING}) {
- @starting_stack = split /:/, $ENV{_SYSTEMCTL_LITE_STARTING};
- @starting_stack{@starting_stack} = ();
- $ENV{_SYSTEMCTL_LITE_STARTING} .= ":$FULL_SERVICE";
- } else {
- $ENV{_SYSTEMCTL_LITE_STARTING} = $FULL_SERVICE;
- }
-
- if ($TYPE eq 'service' and is_running($data)) {
- log_command("Service [$FULL_SERVICE] already found running, not starting again.\n");
- exit;
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], unlinking it before start\n");
- unlink $data->{'Service.PIDFile'};
- }
- if (defined $data->{'Unit.Wants'}) {
- for my $x (@{ $data->{'Unit.Wants'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Wants of [$FULL_SERVICE]\n");
- system @cmd;
- }
- }
- if (defined $data->{'Unit.Requires'}) {
- for my $x (@{ $data->{'Unit.Requires'} }) {
- if (exists $starting_stack{$x}) {
- log_command("Skipping start of [$x], we are already in the process of starting it.\n");
- next;
- }
- my @cmd = ($0, 'start', $x);
- log_command("Running [@cmd] for Unit.Requires of [$FULL_SERVICE]\n");
- if (system @cmd) {
- log_command("Failed to start [$x], aborting start\n");
- exit 1;
- }
- }
- }
- if (defined $data->{'Service.PIDFile'} and is_running($data)) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}] and it seems to have already started, not starting again.\n");
- exit;
- }
-
- if ($TYPE eq 'target') {
- exit;
- }
- if ($TYPE eq 'socket' and -S $data->{'Socket.ListenStream'}) {
- my $out = `/usr/sbin/fuser $data->{'Socket.ListenStream'} 2> /dev/null`;
- if (defined $out and $out ne '') {
- log_command("Service [$FULL_SERVICE] already found active on socket [$data->{'Socket.ListenStream'}], not starting again.\n");
- exit;
- }
- }
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'dbus') {
- my @cmd = ($0, 'start', 'dbus.socket');
- log_command("Running [@cmd] for Service.Type dbus\n");
- system @cmd;
- }
- if (defined $data->{'Service.ExecStartPre'}) {
- for my $x (@{ $data->{'Service.ExecStartPre'} }) {
- my $can_fail = 0;
- if ($x =~ s/^-//) {
- $can_fail = 1;
- }
- my @cmd = split /\s+/, $x;
- if (not $data->{'Service.PermissionsStartOnly'} or $data->{'Service.PermissionsStartOnly'} =~ /^(false|0)$/i) {
- add_runuser($data, \@cmd);
- }
- no warnings 'uninitialized';
- log_command("Running start pre [@cmd]\n");
- if (system @cmd and not $can_fail) {
- exit 1;
- }
- }
- }
- my @paths;
- if ($TYPE eq 'socket') {
- my $service = $SERVICE;
- if (defined $data->{'Socket.Accept'} and $data->{'Socket.Accept'} eq 'true') {
- $service =~ s/\.socket$/\@.service/;
- @paths = ( '/bin/systemctl-socket-daemon', $data->{'Socket.ListenStream'}, $data->{'Socket.SocketMode'} // '0666', $service );
- } else {
- $service =~ s/\.socket$/\.service/;
- my $ret = system "$0 is-active $service > /dev/null";
- if (($ret >> 8) == 0) {
- log_command("Service [$service] is already running for [$SERVICE]\n");
- exit;
- }
- @paths = ( $0, 'start', $service );
- }
- } else {
- @paths = get_exec_start($data);
- }
- my $first_path = $paths[0];
-
- my $ENV = '';
- if (exists $data->{'Service.EnvironmentFile'}) {
- for my $e (@{ $data->{'Service.EnvironmentFile'} }) {
- my $error_fail = 1;
- if ($e =~ s/^-//) {
- $error_fail = 0;
- }
- my $fh = new IO::File($e);
- if (not defined $fh) {
- if ($error_fail) {
- warn "Error reading EnvironmentFile [$e]: $!\n";
- exit 5;
- }
- } else {
- while (my $line = <$fh>) {
- chomp $line;
- next if $line =~ /^\s*(#|$)/;
- $ENV .= "export $line; ";
- }
- $fh->close();
- }
- }
- }
- if (defined $data->{'Service.Environment'}) {
- my $x = $data->{'Service.Environment'};
- $x =~ s/^"(.*)"$/$1/;
- $ENV .= "export $x; ";
- }
- add_runuser($data, \@paths);
- log_command("Running [$ENV@paths]\n");
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} eq 'oneshot') {
- system "$ENV@paths";
- if (defined $data->{'Service.RemainAfterExit'} and $data->{'Service.RemainAfterExit'} eq 'yes') {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.oneshot";
- close PIDFILE;
- }
- exit;
- }
- my $pid = fork();
- die "Failed to fork for [@_]\n" if not defined $pid;
- if ($pid == 0) {
- open(STDOUT, '>>', '/var/log/systemctl.log');
- open(STDERR, '>>', '/var/log/systemctl.log');
- open(STDIN, '<', '/dev/null');
- POSIX::setsid();
- exec "$ENV@paths";
- }
- if (defined $data->{'Service.PIDFile'}) {
- log_command("Service [$FULL_SERVICE] defines PIDFile [$data->{'Service.PIDFile'}], not marking pid\n");
- unlink "$RUNNING_DIR/$FULL_SERVICE.pid";
- my $i = 0;
- while (not -f $data->{'Service.PIDFile'}) {
- sleep 0.2;
- $i++;
- if ($i > 250) {
- log_command("Starting [$FULL_SERVICE] did not create PIDFile [$data->{'Service.PIDFile'}]\n");
- exit 10;
- }
- }
- my $pid = get_pid($data->{'Service.PIDFile'});
- if (not defined $pid or not kill 0, $pid) {
- log_command("Starting [$FULL_SERVICE] created PIDFile [$data->{'Service.PIDFile'}] but the process is not running\n");
- exit 11;
- }
- } else {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.pid";
- print PIDFILE "$pid\n";
- close PIDFILE;
- log_command("Marked pid [$pid] for [$FULL_SERVICE]\n");
- sleep 1;
- if (defined $data->{'Service.Type'} and $data->{'Service.Type'} ne 'simple' and $data->{'Service.Type'} ne 'notify' and pidof($first_path)) {
- local * PIDFILE;
- open PIDFILE, '>', "$RUNNING_DIR/$FULL_SERVICE.name";
- print PIDFILE "$first_path\n";
- close PIDFILE;
- log_command("Marked process name [$first_path] for [$FULL_SERVICE]\n");
- }
- }
- if (defined $data->{'Service.Type'}
- and $data->{'Service.Type'} eq 'dbus'
- and defined $data->{'Service.BusName'}) {
- my $busname = $data->{'Service.BusName'};
- my $objectpath = $busname;
- $objectpath =~ s!^|\.!/!g;
- for (0 .. 10) {
- system "/usr/bin/dbus-send --system --type=method_call --print-reply --dest=$busname $objectpath org.freedesktop.DBus.Introspectable.Introspect > /dev/null";
- exit if ($? >> 8) == 0;
- sleep 1;
- }
- exit 9;
- }
- exit;
-}
-
-if ($COMMAND eq 'is-enabled') {
- if (-e "$ENABLED_DIR/$FULL_SERVICE") {
- print "enabled\n";
- exit 0;
- }
- print "disabled\n";
- exit 1;
-}
-
-if ($COMMAND eq 'enable') {
- if (not -d $ENABLED_DIR) {
- mkdir $ENABLED_DIR;
- }
- local * FILE;
- open FILE, '>', "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-if ($COMMAND eq 'disable') {
- unlink "$ENABLED_DIR/$FULL_SERVICE";
- exit;
-}
-
-die "Unknown command [$COMMAND].\n";
-
-1;
-
diff --git a/99-ci-twentytwo/systemctl-socket-daemon b/99-ci-twentytwo/systemctl-socket-daemon
deleted file mode 100644
index 5250cad..0000000
--- a/99-ci-twentytwo/systemctl-socket-daemon
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright 2014 Jan Pazdziora
-#
-# 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.
-
-use strict;
-use warnings FATAL => 'all';
-
-use IO::Socket::UNIX ();
-use Socket ();
-use POSIX ();
-
-sub daemonize {
- open(STDERR, '>>', '/var/log/systemctl-socket-daemon.log') || die "can't write log: $!";
- open(STDOUT, '>&STDERR') || die "can't write stdout to log: $!";
- chdir("/") || die "can't chdir to /: $!";
- open(STDIN, '<', '/dev/null') || die "can't read /dev/null: $!";
- defined(my $pid = fork()) || die "can't fork: $!";
- exit if $pid; # non-zero now means I am the parent
- (POSIX::setsid() != -1) || die "Can't start a new session: $!";
-}
-
-my ($socket_path, $socket_mode, $service) = @ARGV;
-if (not defined $socket_path or not defined $service) {
- die "Usage: $0 /path/to/unix/socket service-to-run\n";
-}
-if (-e $socket_path) {
- warn "Path [$socket_path] already exists, removing\n";
- unlink $socket_path;
-}
-
-my $service_data = `/bin/systemctl show $service 2>&1`;
-if ($?) {
- die "Failed to find service [$service]:\n$service_data";
-}
-
-my $socket = new IO::Socket::UNIX(
- Type => Socket::SOCK_STREAM,
- Local => $socket_path,
- Listen => Socket::SOMAXCONN
-) or die "socket: $!\n";
-chmod oct($socket_mode), $socket_path;
-
-daemonize();
-
-while (1) {
- next unless my $connection = $socket->accept;
- my $pid = fork();
- if ($pid == 0) {
- *STDIN = $connection;
- *STDOUT = $connection;
- exec '/bin/systemctl', 'start', $service;
- die "exec should have never reached here\n";
- }
-}
-
diff --git a/99-ci-twentytwo/vimrc b/99-ci-twentytwo/vimrc
deleted file mode 100644
index 30fa2ed..0000000
--- a/99-ci-twentytwo/vimrc
+++ /dev/null
@@ -1,9 +0,0 @@
-set shiftwidth=4
-set tabstop=4
-set expandtab
-set enc=utf-8
-
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/*/*.{c,h} set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/cunit/cunit.pl set tabstop=8 softtabstop=4 shiftwidth=4 list listchars=tab:>. noexpandtab
-autocmd BufNewFile,BufRead /srv/cyrus-imapd.git/configure.ac set tabstop=8 shiftwidth=8 noexpandtab
-
diff --git a/99-ci-xenial/Dockerfile b/99-ci-xenial/Dockerfile
deleted file mode 100644
index d9f6eba..0000000
--- a/99-ci-xenial/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-FROM docker.io/ubuntu:xenial
-
-MAINTAINER Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt-get update && \
- apt-get -y install \
- aptitude \
- git \
- vim \
- wget && \
- apt-get clean
-
-ADD /kolab.list /etc/apt/sources.list.d/kolab.list
-
-RUN wget -q -O- http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_16.04/Release.key | apt-key add -
-
-ADD /functions.sh /functions.sh
-ADD /entrypoint.sh /entrypoint.sh
-RUN chmod a+x /entrypoint.sh
-
-ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/99-ci-xenial/entrypoint.sh b/99-ci-xenial/entrypoint.sh
deleted file mode 100755
index a099eca..0000000
--- a/99-ci-xenial/entrypoint.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-if [ ! -d "/srv/stick.git" ]; then
- git clone https://git.kolab.org/diffusion/QA/stick.git /srv/stick.git
-elif [ -z "${PS1}" ]; then
- pushd /srv/stick.git
- git remote set-url origin https://git.kolab.org/diffusion/QA/stick.git
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
- popd
-fi
-
-source /functions.sh
-
-export TEST_BUILD=${TEST_BUILD:-0}
-export TEST_FUNCTIONAL=${TEST_FUNCTIONAL:-0}
-export TEST_INTEGRATION=${TEST_INTEGRATION:-0}
-export TEST_PERFORMANCE=${TEST_PERFORMANCE:-0}
-export TEST_UNIT=${TEST_UNIT:-0}
-export TEST_OBS=${TEST_OBS:-0}
-
-# If PS1 is set, we're interactive
-if [ ! -z "${PS1}" ]; then
- # Set a sensible prompt
- PS1='[\u@${IMAGE} \W]\$ '
-
- export GIT_PS1_SHOWDIRTYSTATE=1
- export GIT_PS1_SHOWUNTRACKEDFILES=1
- export GIT_PS1_SHOWUPSTREAM="auto verbose"
-
- if [ ! -f "/etc/bash_completion" ]; then
- if [ -f "/etc/bash_completion.d/git" ]; then
- . /etc/bash_completion.d/git
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
- else
- PS1='[\u@${IMAGE} \W$(__git_ps1 " (%s)")]\$ '
- fi
-
- export PS1
-
- PROMPT_COMMAND="echo -ne '\033]0;${IMAGE} (in ${HOSTNAME})\007'"
-
- if [ -f "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then
- source /usr/share/git-core/contrib/completion/git-prompt.sh
- fi
-fi
-
-if [ ! -d "/srv/${PACKAGE}.git" ]; then
- git clone ${RO_URI} /srv/${PACKAGE}.git
-
- pushd /srv/${PACKAGE}.git
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-else
- pushd /srv/${PACKAGE}.git
-
- git remote set-url origin ${RO_URI}
- git fetch origin
- git reset --hard origin/master
- git clean -d -f -x
-
- for branch in $(git branch -la | sed -e 's/^* //g' -e '/\(detached from/d' -e 's/ //g' -e '/remotes\/origin\/HEAD/d' -e 's|remotes/origin/||g' | sort -u); do
- git checkout $branch
- done
-
- popd
-fi
-
-retval=0
-
-if [ -x "$(which yum 2>/dev/null)" ]; then
- yum clean metadata; retval=$(( ${retval} + $? ))
- yum -y update; retval=$(( ${retval} + $? ))
- rpmdev-setuptree; retval=$(( ${retval} + $? ))
-elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get update; retval=$(( ${retval} + $? ))
-fi
-
-pushd /srv/${PACKAGE}.git
-
-if [ ! -z "${COMMIT}" ]; then
- git checkout ${COMMIT}; retval=$(( ${retval} + $? ))
-fi
-
-# TODO: A differential has a base commit.
-
-if [ ${retval} -ne 0 ]; then
- _report
- exit 1
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_build.sh" -a ${TEST_BUILD} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_build.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_unit.sh" -a ${TEST_UNIT} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_unit.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_functional.sh" -a ${TEST_FUNCTIONAL} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_functional.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_integration.sh" -a ${TEST_INTEGRATION} -eq 1 ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_integration.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-if [ -x "../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh" ]; then
- retval=$(_shell ../stick.git/drydocker/${PACKAGE}/test_obs_checkin.sh)
- if [ ${retval} -ne 0 ]; then
- _report
- exit 1
- fi
-fi
-
-popd
-
-_report
diff --git a/99-ci-xenial/functions.sh b/99-ci-xenial/functions.sh
deleted file mode 100644
index 27a9d32..0000000
--- a/99-ci-xenial/functions.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-
-# Create 3 as an alias for 1, so the _shell function
-# can output data without the caller getting the input.
-exec 3>&1
-
-function _report {
- echo $(printf '%0.1s' "="{1..72})
- cat ${TMPDIR:-/tmp}/report.log
- rm -rf ${TMPDIR:-/tmp}/report.log
- echo $(printf '%0.1s' "="{1..72})
-}
-
-export -f _report
-
-function _report_msg {
- printf "%*s" $(( ( ${BASH_SUBSHELL} - 1 ) * 4 )) " " >> ${TMPDIR:-/tmp}/report.log
- echo "$@" >> ${TMPDIR:-/tmp}/report.log
-}
-
-export -f _report_msg
-
-function _shell {
- revision=$(git rev-parse HEAD 2>/dev/null)
- if [ -z "${revision}" ]; then
- pushd /srv/${PACKAGE}.git >/dev/null 2>&1 3>&1
- revision=$(git rev-parse HEAD 2>/dev/null)
- popd >/dev/null 2>&1 3>&1
- fi
-
- if [ -z "${revision}" ]; then
- revision=unknown
- fi
-
- echo "Running $@ ..." >&3
- $@ >&3 2>&3 ; retval=$?
-
- if [ ${retval} -eq 0 ]; then
- _report_msg "Running '$@' OK (at ${revision})"
- echo "Running $@ OK (at ${revision})" >&3
- else
- _report_msg "Running '$@' FAILED (at ${revision})"
- echo "Running $@ FAILED (at ${revision})" >&3
- fi
-
- echo ${retval}
-}
-
-export -f _shell
-
-function _install_package {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum -y install $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y install $@
- fi
-}
-
-function _install_package_builddep {
- if [ -x "$(which yum 2>/dev/null)" ]; then
- yum-builddep -y --disablerepo=openSUSE_Tools $@
- elif [ -x "$(which apt-get 2>/dev/null)" ]; then
- apt-get -y build-dep $@
- fi
-}
diff --git a/99-ci-xenial/kolab.list b/99-ci-xenial/kolab.list
deleted file mode 100644
index 4b945b7..0000000
--- a/99-ci-xenial/kolab.list
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_16.04/ ./
-deb-src http://obs.kolabsys.com/repositories/Kolab:/Winterfell/Ubuntu_16.04/ ./
diff --git a/atomicapp/Dockerfile b/atomicapp/Dockerfile
deleted file mode 100644
index 5496ab9..0000000
--- a/atomicapp/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-FROM projectatomic/atomicapp:0.3.0
-
-MAINTAINER Kolab Systems <contact@kolabsys.com>
-
-LABEL io.projectatomic.nulecule.providers="kubernetes" \
- io.projectatomic.nulecule.specversion="0.0.2"
-
-ADD /Nulecule /Dockerfile /application-entity/
-ADD /artifacts /application-entity/artifacts/
diff --git a/atomicapp/Nulecule b/atomicapp/Nulecule
deleted file mode 100644
index 1cadd73..0000000
--- a/atomicapp/Nulecule
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "specversion": "0.0.2",
- "id": "kolab",
- "metadata": {
- "name": "Kolab Groupware",
- "appversion": "1.0.0",
- "description": "Kolab Groupware"
- },
- "graph": [
- {
- "name": "kolab-chwala",
- "source": "docker://kolab/chwala-atomicapp"
- },
- {
- "name": "kolab-ext-mx-in",
- "source": "docker://kolab/ext-mx-in-atomicapp"
- },
- {
- "name": "kolab-ext-mx-out",
- "source": "docker://kolab/ext-mx-out-atomicapp"
- },
- {
- "name": "kolab-freebusy",
- "source": "docker://kolab/freebusy-atomicapp"
- },
- {
- "name": "kolab-guam",
- "source": "docker://kolab/guam-atomicapp"
- },
- {
- "name": "kolab-irony",
- "source": "docker://kolab/irony-atomicapp"
- },
- {
- "name": "kolab-imapb",
- "source": "docker://kolab/imapb-atomicapp"
- },
- {
- "name": "kolab-imapf-ext",
- "source": "docker://kolab/imapf-ext-atomicapp"
- },
- {
- "name": "kolab-imapf-int",
- "source": "docker://kolab/imapf-int-atomicapp"
- },
- {
- "name": "kolab-imap-mupdate",
- "source": "docker://kolab/imap-mupdate-atomicapp"
- },
- {
- "name": "kolab-int-mx",
- "source": "docker://kolab/int-mx-atomicapp"
- },
- {
- "name": "kolab-ldap-master",
- "source": "docker://kolab/ldap-master-atomicapp"
- },
- {
- "name": "kolab-manticore",
- "source": "docker://kolab/manticore-atomicapp"
- },
- {
- "name": "kolab-roundcubemail",
- "source": "docker://kolab/roundcubemail-atomicapp"
- },
- {
- "name": "kolab-roundcube-next",
- "source": "docker://kolab/roundcube-next-atomicapp"
- },
- {
- "name": "kolab-syncroton",
- "source": "docker://kolab/syncroton-atomicapp"
- },
- {
- "name": "kolab-webadmin",
- "source": "docker://kolab/webadmin-atomicapp"
- }
- ]
-}
diff --git a/atomicapp/artifacts/kubernetes/pod.json b/atomicapp/artifacts/kubernetes/pod.json
deleted file mode 100644
index f3d9109..0000000
--- a/atomicapp/artifacts/kubernetes/pod.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "kind": "Pod",
- "apiVersion": "v1",
- "id": "kolab",
- "metadata": {
- "name": "kolab",
- "labels": {
- "name": "kolab"
- }
- },
- "spec": {
- "containers": [
- {
- "name": "manticore",
- "image": "kolab/manticore",
- "ports": [
- {
- "containerPort": 8080
- }
- ]
- },
- {
- "name": "mongodb",
- "image": "centos/mongodb-26-centos7",
- "ports": [
- {
- "containerPort": 27017
- }
- ]
- }
- ]
- }
-}
diff --git a/atomicapp/artifacts/kubernetes/service.json b/atomicapp/artifacts/kubernetes/service.json
deleted file mode 100644
index 06a82e1..0000000
--- a/atomicapp/artifacts/kubernetes/service.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "kind": "Service",
- "apiVersion": "v1",
- "metadata": {
- "name": "kolab",
- "labels": {
- "name": "kolab"
- }
- },
- "spec": {
- "ports": [
- {
- "name": "manticore",
- "protocol": "TCP",
- "port": 8080,
- "targetPort": 8080,
- "nodePort": 0
- },
- {
- "name": "mongodb",
- "protocol": "TCP",
- "port": 27017,
- "targetPort": 27017,
- "nodePort": 0
- }
- ],
- "selector": {
- "name": "kolab"
- }
- }
-}
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index 07b1f5b..0000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,177 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = _build
-
-# User-friendly check for sphinx-build
-ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
-$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
-endif
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-# the i18n builder cannot share the environment and doctrees with the others
-I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " texinfo to make Texinfo files"
- @echo " info to make Texinfo files and run them through makeinfo"
- @echo " gettext to make PO message catalogs"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " xml to make Docutils-native XML files"
- @echo " pseudoxml to make pseudoxml-XML files for display purposes"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
-
-clean:
- rm -rf $(BUILDDIR)/*
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/KolabAtomicApplication.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/KolabAtomicApplication.qhc"
-
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/KolabAtomicApplication"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/KolabAtomicApplication"
- @echo "# devhelp"
-
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-latexpdfja:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through platex and dvipdfmx..."
- $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-texinfo:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
- @echo "Run \`make' in that directory to run these through makeinfo" \
- "(use \`make info' here to do that automatically)."
-
-info:
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
- @echo "Running Texinfo files through makeinfo..."
- make -C $(BUILDDIR)/texinfo info
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
-
-gettext:
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
- @echo
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
-
-xml:
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
- @echo
- @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
-
-pseudoxml:
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
- @echo
- @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/conf.py b/docs/conf.py
deleted file mode 100644
index beb01db..0000000
--- a/docs/conf.py
+++ /dev/null
@@ -1,261 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Kolab Atomic Application documentation build configuration file, created by
-# sphinx-quickstart on Thu Nov 5 09:58:18 2015.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys
-import os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-# -- General configuration ------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
-extensions = [
- 'sphinx.ext.graphviz',
- 'sphinx.ext.todo',
-]
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = u'Kolab Atomic Application'
-copyright = u'2015, Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '2015-11'
-# The full version, including alpha/beta/rc tags.
-release = '2015-11-05'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = ['_build']
-
-# The reST default role (used for this markup: `text`) to use for all
-# documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-# If true, keep warnings as "system message" paragraphs in the built documents.
-#keep_warnings = False
-
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'sphinxdoc'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# Add any extra paths that contain custom files (such as robots.txt or
-# .htaccess) here, relative to this directory. These files are copied
-# directly to the root of the documentation.
-#html_extra_path = []
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'KolabAtomicApplicationdoc'
-
-
-# -- Options for LaTeX output ---------------------------------------------
-
-latex_elements = {
-# The paper size ('letterpaper' or 'a4paper').
-#'papersize': 'letterpaper',
-
-# The font size ('10pt', '11pt' or '12pt').
-#'pointsize': '10pt',
-
-# Additional stuff for the LaTeX preamble.
-#'preamble': '',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-# author, documentclass [howto, manual, or own class]).
-latex_documents = [
- ('index', 'KolabAtomicApplication.tex', u'Kolab Atomic Application Documentation',
- u'Jeroen van Meeuwen (Kolab Systems) \\textless{}vanmeeuwen@kolabsys.com\\textgreater{}', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output ---------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'kolabatomicapplication', u'Kolab Atomic Application Documentation',
- [u'Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>'], 1)
-]
-
-# If true, show URL addresses after external links.
-#man_show_urls = False
-
-
-# -- Options for Texinfo output -------------------------------------------
-
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-# dir menu entry, description, category)
-texinfo_documents = [
- ('index', 'KolabAtomicApplication', u'Kolab Atomic Application Documentation',
- u'Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>', 'KolabAtomicApplication', 'One line description of project.',
- 'Miscellaneous'),
-]
-
-# Documents to append as an appendix to all manuals.
-#texinfo_appendices = []
-
-# If false, no module index is generated.
-#texinfo_domain_indices = True
-
-# How to display URL addresses: 'footnote', 'no', or 'inline'.
-#texinfo_show_urls = 'footnote'
-
-# If true, do not generate a @detailmenu in the "Top" node's menu.
-#texinfo_no_detailmenu = False
diff --git a/docs/images/base-asav.rst b/docs/images/base-asav.rst
deleted file mode 100644
index cf5516f..0000000
--- a/docs/images/base-asav.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-===================
-``kolab/base-asav``
-===================
-
-``/entrypoint.sh``
-==================
-
-Setup Required
---------------
-
-* Amavis requires a Fully Qualified Domain Name to be available or
- configured as ``$myhostname``.
diff --git a/docs/index.rst b/docs/index.rst
deleted file mode 100644
index db5a575..0000000
--- a/docs/index.rst
+++ /dev/null
@@ -1,707 +0,0 @@
-========================
-Kolab Atomic Application
-========================
-
-The Kolab Atomic application is a suite of Nulecule applications built
-for the most elastic type of environments.
-
-Every application itself, as well as every role such application may
-take in the overall environment, is separated out in to separate
-containers.
-
-For example, Inbound Mail Exchangers are designed to offer the highest
-grade of protection against spammers and other abusers. This means the
-mail exchanger applies :command:`postscreen`, grey-listing, anti-spam
-and anti-virus (running in another container), but only recipient
-domain validation, and no recipient validation.
-
-Image Inheritance
-=================
-
-Inherit images to allow a rebuild of an image to be fast, and for the
-sake of de-duplication when deploying.
-
-.. graphviz::
-
- digraph docker {
- splines = true;
- overlab = prism;
-
- edge [color=gray50, fontname=Calibri, fontsize=11];
- node [shape=record, fontname=Calibri, fontsize=11];
-
- "centos/centos7";
- "projectatomic/atomicapp";
- "rhel7";
-
- "kolab/base";
- "kolab/base-asav";
- "kolab/base-imap";
- "kolab/base-ldap";
- "kolab/base-mx";
- "kolab/base-web";
- "kolab/base-web-rc";
-
- "kolab/mongodb";
-
- subgraph cluster_asav {
- color = white;
-
- "kolab/asav-in";
- "kolab/asav-out";
- }
-
- subgraph cluster_imap {
- color = white;
-
- "kolab/guam";
- "kolab/imapf-ext";
- "kolab/imapf-int";
- "kolab/imap-mupdate";
- "kolab/imapb";
- }
-
- subgraph cluster_ldap {
- color = "white";
-
- "kolab/ldap-master";
- "kolab/ldap-slave";
- }
-
- subgraph cluster_mx {
- color = white;
-
- "kolab/asav-in";
- "kolab/asav-out";
- "kolab/ext-mx-in";
- "kolab/ext-mx-out";
- "kolab/int-mx";
- "kolab/submission";
- "kolab/wallace";
- }
-
- subgraph cluster_web {
- color = white;
-
- "kolab/chwala";
- "kolab/freebusy";
- "kolab/http-prx";
- "kolab/irony";
- "kolab/manticore";
- "kolab/roundcubemail";
- "kolab/syncroton";
- "kolab/webadmin";
- }
-
- "centos/centos7" -> "kolab/mongodb" [dir=back];
- "rhel7" -> "projectatomic/atomicapp" [dir=back];
- "projectatomic/atomicapp" -> "kolab/base" [dir=back];
-
- "kolab/base" -> "kolab/base-asav" [dir=back];
- "kolab/base" -> "kolab/base-imap" [dir=back];
- "kolab/base" -> "kolab/base-ldap" [dir=back];
- "kolab/base" -> "kolab/base-mx" [dir=back];
- "kolab/base" -> "kolab/base-web" [dir=back];
- "kolab/base" -> "kolab/kolabd" [dir=back];
- "kolab/base" -> "kolab/manticore" [dir=back];
-
- "kolab/base-asav" ->
- "kolab/asav-in",
- "kolab/asav-out" [dir=back];
-
- "kolab/base-imap" ->
- "kolab/guam",
- "kolab/imapf-int",
- "kolab/imapf-ext",
- "kolab/imap-mupdate",
- "kolab/imapb" [dir=back];
-
- "kolab/base-ldap" ->
- "kolab/ldap-master",
- "kolab/ldap-slave" [dir=back];
-
- "kolab/base-mx" ->
- "kolab/ext-mx-in",
- "kolab/ext-mx-out",
- "kolab/int-mx",
- "kolab/submission",
- "kolab/wallace" [dir=back];
-
- "kolab/base-web" ->
- "kolab/http-prx",
- "kolab/webadmin",
- "kolab/base-web-rc" [dir=back];
-
- "kolab/base-web-rc" ->
- "kolab/chwala",
- "kolab/freebusy",
- "kolab/irony",
- "kolab/roundcubemail",
- "kolab/syncroton" [dir=back];
- }
-
-Container Connection Model
-==========================
-
-.. graphviz::
-
- digraph {
- splines = true;
- overlab = prism;
-
- edge [color=gray50, fontname=Calibri, fontsize=11];
- node [style=filled, shape=record, fontname=Calibri, fontsize=11];
-
- "External SMTP Servers" [color="#FFEEEE"];
- "User / Client" [color="#FFEEEE"];
-
- subgraph cluster_db {
- color = "white";
-
- "kolab/mongdb-centos7-atomicapp";
- "projectatomic/mariadb-centos7-atomicapp";
- }
-
- "kolab/kolabd";
-
- subgraph cluster_asav {
- color = white;
-
- "kolab/asav-in";
- "kolab/asav-out";
- }
-
- subgraph cluster_imap {
- color = white;
-
- "kolab/guam";
- "kolab/imapf-ext";
- "kolab/imapf-int";
- "kolab/imap-mupdate";
- "kolab/imapb";
- }
-
- subgraph cluster_ldap {
- color = white;
-
- "kolab/ldap-master";
- "kolab/ldap-slave";
- }
-
- subgraph cluster_mx {
- color = white;
-
- "kolab/ext-mx-in";
- "kolab/ext-mx-out";
- "kolab/int-mx";
- "kolab/submission";
- "kolab/wallace";
- }
-
- subgraph cluster_web {
- color = white;
-
- "kolab/chwala";
- "kolab/freebusy";
- "kolab/http-prx";
- "kolab/irony";
- "kolab/manticore";
- "kolab/roundcubemail";
- "kolab/syncroton";
- "kolab/webadmin";
- }
-
- "kolab/asav-in" -> "kolab/ext-mx-in" [label="(1)"];
- "kolab/asav-out" -> "kolab/ext-mx-out" [label="(2)"];
-
- "kolab/chwala" -> "kolab/imapf-int" [label="(61)"];
- "kolab/chwala" -> "kolab/ldap-slave" [label="(62)"];
- "kolab/chwala" -> "projectatomic/mariadb-centos7-atomicapp" [label="(63)"];
-
- "kolab/ext-mx-in" -> "kolab/asav-in" [label="(3)"];
- "kolab/ext-mx-in" -> "kolab/int-mx" [label="(4)"];
- "kolab/ext-mx-in" -> "kolab/ldap-slave" [label="(5)"];
-
- "kolab/ext-mx-out" -> "kolab/asav-out" [label="(6)"];
- "kolab/ext-mx-out" -> "kolab/int-mx" [label="(7)"];
-
- "kolab/freebusy" -> "kolab/imapf-int" [label="(8)"];
- "kolab/freebusy" -> "kolab/ldap-slave" [label="(9)"];
- "kolab/freebusy" -> "projectatomic/mariadb-centos7-atomicapp" [label="(10)"];
-
- "kolab/http-prx" -> "kolab/chwala" [label="(60)"];
- "kolab/http-prx" -> "kolab/freebusy" [label="(48)"];
- "kolab/http-prx" -> "kolab/irony" [label="(49)"];
- "kolab/http-prx" -> "kolab/manticore" [label="(66)"];
- "kolab/http-prx" -> "kolab/roundcubemail" [label="(50)"];
- "kolab/http-prx" -> "kolab/syncroton" [label="(51)"];
- "kolab/http-prx" -> "kolab/webadmin" [label="(52)"];
-
- "kolab/imap-mupdate" -> "kolab/imapf-ext" [label="(11)"];
- "kolab/imap-mupdate" -> "kolab/imapf-int" [label="(12)"];
- "kolab/imap-mupdate" -> "kolab/ldap-slave" [label="(13)"];
-
- "kolab/imapb" -> "kolab/imap-mupdate" [label="(14)"];
- "kolab/imapb" -> "kolab/int-mx" [label="(15)"];
- "kolab/imapb" -> "kolab/ldap-slave" [label="(16)"];
-
- "kolab/imapf-ext" -> "kolab/imap-mupdate" [label="(17)"];
- "kolab/imapf-ext" -> "kolab/imapb" [label="(18)"];
- "kolab/imapf-ext" -> "kolab/ldap-slave" [label="(19)"];
-
- "kolab/imapf-int" -> "kolab/imap-mupdate" [label="(20)"];
- "kolab/imapf-int" -> "kolab/imapb" [label="(21)"];
- "kolab/imapf-int" -> "kolab/ldap-slave" [label="(22)"];
-
- "kolab/guam" -> "kolab/imapf-ext" [label="(26)"];
- "kolab/guam" -> "kolab/ldap-slave" [label="(27)"];
-
- "kolab/int-mx" -> "kolab/ext-mx-out" [label="(28)"];
- "kolab/int-mx" -> "kolab/imapb" [label="(29)"];
- "kolab/int-mx" -> "kolab/ldap-slave" [label="(30)"];
- "kolab/int-mx" -> "kolab/wallace" [label="(31)"];
-
- "kolab/irony" -> "kolab/imapf-int" [label="(32)"];
- "kolab/irony" -> "kolab/ldap-slave" [label="(33)"];
- "kolab/irony" -> "projectatomic/mariadb-centos7-atomicapp" [label="(34)"];
-
- "kolab/kolabd" -> "kolab/imapb" [label="(53)"];
- "kolab/kolabd" -> "kolab/imapf-int" [label="(54)"];
- "kolab/kolabd" -> "kolab/ldap-master" [label="(55)"];
-
- "kolab/ldap-master" -> "kolab/ldap-slave" [label="(35)"];
-
- "kolab/manticore" -> "centos/mongodb-26-centos7" [label="(64)"];
- "kolab/manticore" -> "kolab/chwala" [label="(65)"];
-
- "kolab/roundcubemail" -> "kolab/freebusy" [label="(36)"];
- "kolab/roundcubemail" -> "kolab/imapf-int" [label="(37)"];
- "kolab/roundcubemail" -> "projectatomic/mariadb-centos7-atomicapp" [label="(38)"];
-
- "kolab/submission" -> "kolab/int-mx" [label="(39)"];
- "kolab/submission" -> "kolab/ldap-slave" [label="(40)"];
-
- "kolab/syncroton" -> "kolab/imapf-int" [label="(41)"];
- "kolab/syncroton" -> "projectatomic/mariadb-centos7-atomicapp" [label="(42)"];
-
- "kolab/wallace" -> "kolab/imapf-int" [label="(43)"];
- "kolab/wallace" -> "kolab/int-mx" [label="(44)"];
- "kolab/wallace" -> "kolab/ldap-slave" [label="(45)"];
-
- "kolab/webadmin" -> "kolab/ldap-master" [label="(46)"];
- "kolab/webadmin" -> "projectatomic/mariadb-centos7-atomicapp" [label="(47)"];
-
- "External SMTP Servers" -> "kolab/ext-mx-in"[label="(56)"];
- "User / Client" -> "kolab/http-prx" [label="(57)"];
- "User / Client" -> "kolab/guam" [label="(58)"];
- "User / Client" -> "kolab/submission" [label="(59)"];
- }
-
-.. table:: Connection Diagram Table
-
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | # | Source Container | Target Pod | Target Port | Description |
- +====+=====================+=========================================+=============+=======================+
- | 1 | kolab/asav-in | kolab/ext-mx-in | 10024/tcp | Re-submission after |
- | | | | | Anti-Spam and Anti- |
- | | | | | Virus checks. [#]_ |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 2 | kolab/asav-out | kolab/ext-mx-out | 10024/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 3 | kolab/ext-mx-in | kolab/asav-in | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 4 | kolab/ext-mx-in | kolab/int-mx | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 5 | kolab/ext-mx-in | kolab/ldap-slave | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 6 | kolab/ext-mx-out | kolab/asav-out | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 7 | kolab/ext-mx-out | kolab/int-mx | ??/tcp | NDR and DSN messages. |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 8 | kolab/freebusy | kolab/imapf-int | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 9 | kolab/freebusy | kolab/ldap-slave | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 10 | kolab/freebusy | projectatomic/mariadb-centos7-atomicapp | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 11 | kolab/imap-mupdate | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 12 | kolab/imap-mupdate | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 13 | kolab/imap-mupdate | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 14 | kolab/imapb | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 15 | kolab/imapb | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 16 | kolab/imapb | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 17 | kolab/imapf-ext | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 18 | kolab/imapf-ext | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 19 | kolab/imapf-ext | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 20 | kolab/imapf-int | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 21 | kolab/imapf-int | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 22 | kolab/imapf-int | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 26 | kolab/guam | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 27 | kolab/guam | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 28 | kolab/int-mx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 29 | kolab/int-mx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 30 | kolab/int-mx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 31 | kolab/int-mx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 32 | kolab/irony | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 33 | kolab/irony | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 34 | kolab/irony | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 35 | kolab/ldap-master | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 36 | kolab/roundcubemail | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 37 | kolab/roundcubemail | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 38 | kolab/roundcubemail | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 39 | kolab/submission | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 40 | kolab/submission | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 41 | kolab/syncroton | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 42 | kolab/syncroton | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 43 | kolab/wallace | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 44 | kolab/wallace | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 45 | kolab/wallace | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 46 | kolab/webadmin | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 47 | kolab/webadmin | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 48 | kolab/http-prx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 49 | kolab/http-prx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 50 | kolab/http-prx | kolab/roundcubemail | 80,443/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 51 | kolab/http-prx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 52 | kolab/http-prx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 53 | kolab/kolabd | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 54 | kolab/kolabd | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 55 | kolab/kolabd | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 56 | Ext. SMTP Servers | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 57 | User / Client | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 58 | User / Client | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 59 | User / Client | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 60 | kolab/http-prx | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 61 | kolab/chwala | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 62 | kolab/chwala | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 63 | kolab/chwala | kolab/... | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 64 | kolab/manticore | centos/mongodb-26-centos7 | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 65 | kolab/manticore | kolab/chwala | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
- | 66 | kolab/http-prx | kolab/manticore | ??/tcp | |
- +----+---------------------+-----------------------------------------+-------------+-----------------------+
-
-
-Container Images
-================
-
-``base``
---------
-
-Based on ``centos:centos7``.
-
-Installs the ``Kolab:Winterfell/CentOS_7`` software repository, the
-**yum-plugin-priorities** package, and installs the GPG key.
-
-Adds common functionality used in other images' entry points in a file
-:file:`/functions.sh`.
-
-``base-asav``
--------------
-
-Installs the necessary Anti-Spam and Anti-Virus software. As it does not need to
-be customized further, also adds the :file:`/entrypoint.sh`. Consumer images
-should set an environment variable ``KOLAB_ROLE`` to either ``ASAV_IN`` or
-``ASAV_OUT``, so that the entrypoint can decide whether to re-inject messages
-to the server at ``KOLAB_EXT_MX_IN_SERVICE_HOST`` or
-``KOLAB_EXT_MX_OUT_SERVICE_HOST``, and what policy banks to apply.
-
-``base-imap``
--------------
-
-Installs the necessary software for IMAP functionality, such as **cyrus-imapd**
-and **kolab-saslauthd**.
-
-Configures the command to run upon executing the container's entrypoint, along
-the lines of :command:`/usr/lib/cyrus-imapd/cyrus-master -L /dev/null`.
-
-``base-ldap``
--------------
-
-Installs the necessary software for LDAP functionality, such as **389-ds**.
-
-Also installs the Kolab schema extensions, and replaces the default
-:file:`/usr/share/dirsrv/data/template.ldif` with a version that makes Kolab
-function.
-
-``base-mx``
------------
-
-Installs the necessary software for mail-exchanger functionality, such as
-**postfix** and **postfix-kolab**.
-
-Also sets the command to run upon executing a container's entry point to
-something along the lines of :command:`/usr/libexec/postfix/master -D`.
-
-``base-web``
-------------
-
-Installs the necessary software to run web services, such as **httpd**.
-
-Also sets the command to execute upon entry to
-:command:`/usr/sbin/httpd -DFOREGROUND`.
-
-``base-web-rc``
----------------
-
-In addition to the software installed on ``base-web``, installs
-**roundcubemail** and **roundcubemail-plugins-kolab**.
-
-Keeping this a separate image helps to re-use the base image for a variety of
-other micro-services.
-
-``asav-in``
------------
-
-Anti-Spam and Anti-Virus tailored to entertain inbound message traffic.
-
-``asav-out``
-------------
-
-Anti-Spam and Anti-Virus tailored to entertain outbound message traffic -- such
-as applying DKIM signatures.
-
-``chwala``
-----------
-
-File Cloud.
-
-``ext-mx-in``
--------------
-
-Inbound External Mail Exchanger. Must be able to take a degree of abuse.
-
-``ext-mx-out``
---------------
-
-Outbound External Mail Exchanger. Should aid to eliviate Internal Mail
-Exchanger's message queues should recipient mail exchangers not be available.
-
-``freebusy``
-------------
-
-Scheduling information.
-
-``guam``
---------
-
-Reverse proxy for IMAP with spicy sauce. Enables filtering IMAP folders that
-contain groupware data for those clients that do not understand how to interpret
-such -- i.e. all IMAP clients aside from Kontact and Roundcube with Kolab
-plugins.
-
-``http-prx``
-------------
-
-For all the micro-services that are web services, have one entrypoint.
-
-``imapb``
----------
-
-An IMAP backend. Contains payload (mailboxes).
-
-``imapf-ext``
--------------
-
-An external-facing IMAP frontend. Must be able to take a degree of abuse.
-
-``imapf-int``
--------------
-
-An internal-facing IMAP frontend, for use with internal micro-services such as
-many of the web-based micro-services.
-
-This functionality is separated from the ``imapf-ext`` functionality, because
-internal traffic has far lower security and audit requirements.
-
-``imap-mupdate``
-----------------
-
-The IMAP aggregator master service.
-
-``int-mx``
-----------
-
-Internal mail exchanger. For a domain ``example.org``, all inbound traffic is
-ultimately relayed to this service, all internal traffic is submitted here,
-aliases are translated here, distribution groups are expanded here.
-
-``irony``
----------
-
-*DAV protocol access layer to Kolab Groupware.
-
-``ldap-master``
----------------
-
-389 Directory Server services set up just right for Kolab. Scalability and
-redundancy requirements dictate that the read- and write- functionality is split
-between at least a master and one-or-more slaves.
-
-``ldap-slave``
---------------
-
-``manticore``
--------------
-
-Collaborative editing services for documents in the Open Document Format (ODF).
-
-``roundcubemail``
------------------
-
-The webmail client.
-
-``submission``
---------------
-
-Submission services for external clients.
-
-``syncroton``
--------------
-
-ActiveSync.
-
-``wallace``
------------
-
-Kolab content filter with resource scheduling, invitation policies and GPG
-encryption.
-
-``webadmin``
-------------
-
-The Web Administration Panel to LDAP.
-
-``chwala-database``
--------------------
-
-``freebusy-database``
----------------------
-
-``irony-database``
-------------------
-
-``roundcubemail-database``
---------------------------
-
-``syncroton-database``
-----------------------
-
-``webadmin-database``
----------------------
-
-``asav-in-atomicapp``
----------------------
-
-``asav-out-atomicapp``
-----------------------
-
-``chwala-atomicapp``
---------------------
-
-``ext-mx-in-atomicapp``
------------------------
-
-``ext-mx-out-atomicapp``
-------------------------
-
-``freebusy-atomicapp``
-----------------------
-
-``guam-atomicapp``
-------------------
-
-``imapb-atomicapp``
--------------------
-
-``imapf-ext-atomicapp``
------------------------
-
-``imapf-int-atomicapp``
------------------------
-
-``imap-mupdate-atomicapp``
---------------------------
-
-``int-mx-atomicapp``
---------------------
-
-``irony-atomicapp``
--------------------
-
-``ldap-master-atomicapp``
--------------------------
-
-``ldap-slave-atomicapp``
-------------------------
-
-``manticore-atomicapp``
------------------------
-
-``roundcubemail-atomicapp``
----------------------------
-
-``submission-atomicapp``
-------------------------
-
-``syncroton-atomicapp``
------------------------
-
-``wallace-atomicapp``
----------------------
-
-``webadmin-atomicapp``
-----------------------
-
-``atomicapp``
--------------