Module: check_mk
Branch: master
Commit: 58a33183273c9d66de32e462073f9b38fcc19050
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=58a33183273c9d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Sep 13 07:54:22 2018 +0200
Docker container progress
* Verify GPG signature of Check_MK packages
* Try to fix the update test
Change-Id: I9b15f84c07d534c81061d1e76e93567576a8ed1a
---
docker/Dockerfile | 8 ++++++--
tests/docker/test_docker.py | 12 ++++++++----
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/docker/Dockerfile b/docker/Dockerfile
index e570fa1..db1684d 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -41,6 +41,8 @@ RUN set -e \
postfix \
inetutils-syslogd \
bsd-mailx \
+ gnupg2 \
+ dpkg-sig \
$(cat needed-packages) \
&& apt-get clean \
&& rm /usr/sbin/policy-rc.d \
@@ -48,9 +50,9 @@ RUN set -e \
&& rm needed-packages
# Now install the Check_MK version specific things
-# TODO: Verify gpg signature
# hadolint ignore=DL3003,DL3008,DL4006
RUN set -e \
+ && mkdir -p /usr/share/man/man8 \
&& echo "exit 101" > /usr/sbin/policy-rc.d \
&& chmod +x /usr/sbin/policy-rc.d \
&& export DEBIAN_FRONTEND=noninteractive \
@@ -58,7 +60,9 @@ RUN set -e \
&& PKG_FILE="${PKG_NAME}_0.stretch_$(dpkg
--print-architecture).deb" \
&& echo "--user \"${CMK_DL_CREDENTIALS}\"" \
| curl -o "${PKG_FILE}" -K -
"${CMK_DL_URL}/${CMK_VERSION}/${PKG_FILE}" \
- && mkdir -p /usr/share/man/man8 \
+ && curl -sS "${CMK_DL_URL}/Check_MK-pubkey.gpg" \
+ | gpg -q --import \
+ && dpkg-sig --verify "${PKG_FILE}" \
&& dpkg -i "${PKG_FILE}" \
&& rm -f "${PKG_FILE}" \
&& apt-get clean \
diff --git a/tests/docker/test_docker.py b/tests/docker/test_docker.py
index b2ec081..62d68a6 100644
--- a/tests/docker/test_docker.py
+++ b/tests/docker/test_docker.py
@@ -98,7 +98,7 @@ def _build(request, client, edition, version, add_args=None):
u'6557/tcp': {},
}
- assert attrs["Size"] < 830000000
+ assert attrs["Size"] < 840000000
assert len(attrs["RootFS"]["Layers"]) == 5
@@ -243,10 +243,12 @@ def test_start_enable_mail(request, client):
def test_update(request, client):
container_name="%s-monitoring" % branch_name
+ # Pick a random old version that we can use to the setup the initial site with
+ # Later this site is being updated to the current daily build
old_version = testlib.CMKVersion(
version="1.5.0p3",
edition=testlib.CMKVersion.CEE,
- branch=branch_name
+ branch="1.5.0",
)
# 1. create container with old version and add a file to mark the pre-update state
@@ -258,14 +260,16 @@ def test_update(request, client):
# 2. stop the container
c_orig.stop()
- # 3. start intermediate container
+ # 3. start intermediate container in the background and keep it running.
+ # Don't use the regular startup procedure (which would start the site). Use
+ # read to wait for termination of the container
edition = "enterprise"
_build(request, client, edition, build_version)
c_tmp = client.containers.run(
name="%s-update" % container_name,
image=_image_name(edition, build_version),
detach=True,
- command=["bash", "-c", "echo HI ; sleep 30"],
+ command=["bash", "-c", "echo HI ; read"],
stdin_open=True,
volumes_from=c_orig.id,
)