From nobody Tue Apr 30 05:10:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 152904565739553.100924327665666; Thu, 14 Jun 2018 23:54:17 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BAB0381106; Fri, 15 Jun 2018 06:54:15 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 80DE730A7605; Fri, 15 Jun 2018 06:54:15 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1BE994CA83; Fri, 15 Jun 2018 06:54:15 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w5F6rnOj017598 for ; Fri, 15 Jun 2018 02:53:49 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CB852166BD6; Fri, 15 Jun 2018 06:53:49 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3EECC2166BB2 for ; Fri, 15 Jun 2018 06:53:49 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 15 Jun 2018 08:53:43 +0200 Message-Id: <20180615065344.5321-2-abologna@redhat.com> In-Reply-To: <20180615065344.5321-1-abologna@redhat.com> References: <20180615065344.5321-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Subject: [libvirt] [jenkins-ci POC 1/2] guests: Remove OS detection X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 15 Jun 2018 06:54:16 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" We're going to need information about the OS outside of Ansible soon, so drop the OS detection code and start storing the information as host variables instead. Signed-off-by: Andrea Bolognani Reviewed-by: Daniel P. Berrang=C3=A9 --- guests/host_vars/libvirt-centos-7/main.yml | 4 ++ guests/host_vars/libvirt-debian-8/main.yml | 4 ++ guests/host_vars/libvirt-debian-9/main.yml | 4 ++ guests/host_vars/libvirt-debian-sid/main.yml | 4 ++ guests/host_vars/libvirt-fedora-27/main.yml | 4 ++ guests/host_vars/libvirt-fedora-28/main.yml | 4 ++ .../host_vars/libvirt-fedora-rawhide/main.yml | 4 ++ guests/host_vars/libvirt-freebsd-10/main.yml | 4 ++ guests/host_vars/libvirt-freebsd-11/main.yml | 4 ++ .../libvirt-freebsd-current/main.yml | 4 ++ guests/host_vars/libvirt-ubuntu-16/main.yml | 4 ++ guests/host_vars/libvirt-ubuntu-18/main.yml | 4 ++ guests/tasks/base.yml | 51 ------------------- 13 files changed, 48 insertions(+), 51 deletions(-) diff --git a/guests/host_vars/libvirt-centos-7/main.yml b/guests/host_vars/= libvirt-centos-7/main.yml index c147830..4c80e22 100644 --- a/guests/host_vars/libvirt-centos-7/main.yml +++ b/guests/host_vars/libvirt-centos-7/main.yml @@ -13,3 +13,7 @@ projects: - osinfo-db - osinfo-db-tools - virt-viewer + +package_format: rpm +os_name: CentOS +os_version: 7 diff --git a/guests/host_vars/libvirt-debian-8/main.yml b/guests/host_vars/= libvirt-debian-8/main.yml index 954a037..a6875a4 100644 --- a/guests/host_vars/libvirt-debian-8/main.yml +++ b/guests/host_vars/libvirt-debian-8/main.yml @@ -11,3 +11,7 @@ projects: - osinfo-db - osinfo-db-tools - virt-viewer + +package_format: deb +os_name: Debian +os_version: 8 diff --git a/guests/host_vars/libvirt-debian-9/main.yml b/guests/host_vars/= libvirt-debian-9/main.yml index a588c09..cdc5a57 100644 --- a/guests/host_vars/libvirt-debian-9/main.yml +++ b/guests/host_vars/libvirt-debian-9/main.yml @@ -14,3 +14,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: deb +os_name: Debian +os_version: 9 diff --git a/guests/host_vars/libvirt-debian-sid/main.yml b/guests/host_var= s/libvirt-debian-sid/main.yml index a588c09..5dd887b 100644 --- a/guests/host_vars/libvirt-debian-sid/main.yml +++ b/guests/host_vars/libvirt-debian-sid/main.yml @@ -14,3 +14,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: deb +os_name: Debian +os_version: Sid diff --git a/guests/host_vars/libvirt-fedora-27/main.yml b/guests/host_vars= /libvirt-fedora-27/main.yml index 00b0848..f131953 100644 --- a/guests/host_vars/libvirt-fedora-27/main.yml +++ b/guests/host_vars/libvirt-fedora-27/main.yml @@ -15,3 +15,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: rpm +os_name: Fedora +os_version: 27 diff --git a/guests/host_vars/libvirt-fedora-28/main.yml b/guests/host_vars= /libvirt-fedora-28/main.yml index 00b0848..f115598 100644 --- a/guests/host_vars/libvirt-fedora-28/main.yml +++ b/guests/host_vars/libvirt-fedora-28/main.yml @@ -15,3 +15,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: rpm +os_name: Fedora +os_version: 28 diff --git a/guests/host_vars/libvirt-fedora-rawhide/main.yml b/guests/host= _vars/libvirt-fedora-rawhide/main.yml index 5044594..1bd3332 100644 --- a/guests/host_vars/libvirt-fedora-rawhide/main.yml +++ b/guests/host_vars/libvirt-fedora-rawhide/main.yml @@ -20,3 +20,7 @@ projects: - virt-manager - virt-viewer - virt-viewer+mingw + +package_format: rpm +os_name: Fedora +os_version: Rawhide diff --git a/guests/host_vars/libvirt-freebsd-10/main.yml b/guests/host_var= s/libvirt-freebsd-10/main.yml index 2ad4584..005acb4 100644 --- a/guests/host_vars/libvirt-freebsd-10/main.yml +++ b/guests/host_vars/libvirt-freebsd-10/main.yml @@ -15,3 +15,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: pkg +os_name: FreeBSD +os_version: 10 diff --git a/guests/host_vars/libvirt-freebsd-11/main.yml b/guests/host_var= s/libvirt-freebsd-11/main.yml index 2ad4584..dd06fc5 100644 --- a/guests/host_vars/libvirt-freebsd-11/main.yml +++ b/guests/host_vars/libvirt-freebsd-11/main.yml @@ -15,3 +15,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: pkg +os_name: FreeBSD +os_version: 11 diff --git a/guests/host_vars/libvirt-freebsd-current/main.yml b/guests/hos= t_vars/libvirt-freebsd-current/main.yml index 2ad4584..07f3f25 100644 --- a/guests/host_vars/libvirt-freebsd-current/main.yml +++ b/guests/host_vars/libvirt-freebsd-current/main.yml @@ -15,3 +15,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: pkg +os_name: FreeBSD +os_version: Current diff --git a/guests/host_vars/libvirt-ubuntu-16/main.yml b/guests/host_vars= /libvirt-ubuntu-16/main.yml index a588c09..92296b4 100644 --- a/guests/host_vars/libvirt-ubuntu-16/main.yml +++ b/guests/host_vars/libvirt-ubuntu-16/main.yml @@ -14,3 +14,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: deb +os_name: Ubuntu +os_version: 16 diff --git a/guests/host_vars/libvirt-ubuntu-18/main.yml b/guests/host_vars= /libvirt-ubuntu-18/main.yml index a588c09..8a45854 100644 --- a/guests/host_vars/libvirt-ubuntu-18/main.yml +++ b/guests/host_vars/libvirt-ubuntu-18/main.yml @@ -14,3 +14,7 @@ projects: - osinfo-db-tools - virt-manager - virt-viewer + +package_format: deb +os_name: Ubuntu +os_version: 18 diff --git a/guests/tasks/base.yml b/guests/tasks/base.yml index 13d02f8..6310d96 100644 --- a/guests/tasks/base.yml +++ b/guests/tasks/base.yml @@ -1,55 +1,4 @@ --- -- name: Set additional facts (OS) - set_fact: - os_name: '{{ ansible_distribution }}' - -- name: Set additional facts (OS) - set_fact: - os_version: '{{ ansible_distribution_major_version }}' - when: - - ansible_distribution_major_version is defined - -- name: Set additional facts (OS) - set_fact: - os_version: Rawhide - when: - - os_name =3D=3D 'Fedora' - - ansible_distribution_release =3D=3D 'Rawhide' - -- name: Set additional facts (OS) - set_fact: - os_version: Sid - when: - - os_name =3D=3D 'Debian' - - ansible_distribution_major_version is match("^.*/sid$") - -- name: Set additional facts (OS) - set_fact: - os_version: Current - when: - - ansible_distribution =3D=3D 'FreeBSD' - - ansible_distribution_release is match("^.*-CURRENT$") - -- name: Set additional facts (package format) - set_fact: - package_format: deb - when: - - ( os_name =3D=3D 'Debian' or - os_name =3D=3D 'Ubuntu' ) - -- name: Set additional facts (package format) - set_fact: - package_format: pkg - when: - - os_name =3D=3D 'FreeBSD' - -- name: Set additional facts (package format) - set_fact: - package_format: rpm - when: - - ( os_name =3D=3D 'CentOS' or - os_name =3D=3D 'Fedora' ) - - name: Bootstrap the package module command: apt-get install -y python-apt args: --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Tue Apr 30 05:10:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1529045638098575.9100500559598; Thu, 14 Jun 2018 23:53:58 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6066961474; Fri, 15 Jun 2018 06:53:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A4C1A17C7B; Fri, 15 Jun 2018 06:53:55 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 30ABE1800537; Fri, 15 Jun 2018 06:53:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w5F6roE1017606 for ; Fri, 15 Jun 2018 02:53:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 41A0B2166BD6; Fri, 15 Jun 2018 06:53:50 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D88D72166BB2 for ; Fri, 15 Jun 2018 06:53:49 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 15 Jun 2018 08:53:44 +0200 Message-Id: <20180615065344.5321-3-abologna@redhat.com> In-Reply-To: <20180615065344.5321-1-abologna@redhat.com> References: <20180615065344.5321-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Subject: [libvirt] [jenkins-ci POC 2/2] guests: Add Dockerfile generator X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 15 Jun 2018 06:53:57 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This is basically the exact same algorithm used by the Ansible playbooks to process package mappings, implemented as a standalone script. There's little to none error handling, and some information is hardcoded instead of being configurable at runtime; more importantly, before it can be considered for merging it needs to be integrated into lcitool, which in turn requires lcitool to be significantly reworked. Signed-off-by: Andrea Bolognani Reviewed-by: Daniel P. Berrang=C3=A9 --- guests/dockerfile-generator | 72 +++++++++++++++++++ guests/host_vars/libvirt-centos-7/docker.yml | 2 + guests/host_vars/libvirt-debian-8/docker.yml | 2 + guests/host_vars/libvirt-debian-9/docker.yml | 2 + .../host_vars/libvirt-debian-sid/docker.yml | 2 + guests/host_vars/libvirt-fedora-27/docker.yml | 2 + guests/host_vars/libvirt-fedora-28/docker.yml | 2 + .../libvirt-fedora-rawhide/docker.yml | 2 + guests/host_vars/libvirt-ubuntu-16/docker.yml | 2 + guests/host_vars/libvirt-ubuntu-18/docker.yml | 2 + 10 files changed, 90 insertions(+) create mode 100755 guests/dockerfile-generator create mode 100644 guests/host_vars/libvirt-centos-7/docker.yml create mode 100644 guests/host_vars/libvirt-debian-8/docker.yml create mode 100644 guests/host_vars/libvirt-debian-9/docker.yml create mode 100644 guests/host_vars/libvirt-debian-sid/docker.yml create mode 100644 guests/host_vars/libvirt-fedora-27/docker.yml create mode 100644 guests/host_vars/libvirt-fedora-28/docker.yml create mode 100644 guests/host_vars/libvirt-fedora-rawhide/docker.yml create mode 100644 guests/host_vars/libvirt-ubuntu-16/docker.yml create mode 100644 guests/host_vars/libvirt-ubuntu-18/docker.yml diff --git a/guests/dockerfile-generator b/guests/dockerfile-generator new file mode 100755 index 0000000..e1212da --- /dev/null +++ b/guests/dockerfile-generator @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 + +import sys +import yaml + +if len(sys.argv) < 2: + print("Usage: {} GUEST".format(sys.argv[0])) + sys.exit(1) + +guest =3D sys.argv[1] + +# Load data + +with open("vars/mappings.yml", "r") as f: + mappings =3D yaml.load(f) + mappings =3D mappings["mappings"] + +with open("host_vars/{}/main.yml".format(guest), "r") as f: + main =3D yaml.load(f) + package_format =3D main["package_format"] + os_name =3D main["os_name"] + os_version =3D main["os_version"] + os_full =3D "{}{}".format(os_name, os_version) + +with open("host_vars/{}/docker.yml".format(guest), "r") as f: + docker =3D yaml.load(f) + docker_base =3D docker["docker_base"] + +projects =3D ["base", "libvirt"] +if os_name =3D=3D "Fedora" and os_version =3D=3D "Rawhide": + projects +=3D ["libvirt+mingw"] + +# Process mappings + +temp =3D {} + +for project in projects: + with open("vars/projects/{}.yml".format(project), "r") as f: + packages =3D yaml.load(f) + packages =3D packages["packages"] + for package in packages: + if "default" in mappings[package]: + temp[package] =3D mappings[package]["default"] + if package_format in mappings[package]: + temp[package] =3D mappings[package][package_format] + if os_name in mappings[package]: + temp[package] =3D mappings[package][os_name] + if os_full in mappings[package]: + temp[package] =3D mappings[package][os_full] + +flattened =3D [] + +for item in temp: + if temp[item] !=3D None and temp[item] not in flattened: + flattened +=3D [ temp[item] ] + +# Output Dockerfile + +print("FROM {}".format(docker_base)) + +sys.stdout.write("ENV PACKAGES ") +print(" \\\n ".join(sorted(flattened))) + +if package_format =3D=3D "deb": + print("RUN apt-get update && \\") + print(" apt-get install -y ${PACKAGES} && \\") + print(" apt-get autoremove -y && \\") + print(" apt-get autoclean -y") +elif package_format =3D=3D "rpm": + print("RUN yum install -y ${PACKAGES} && \\") + print(" yum autoremove -y && \\") + print(" yum clean all -y") diff --git a/guests/host_vars/libvirt-centos-7/docker.yml b/guests/host_var= s/libvirt-centos-7/docker.yml new file mode 100644 index 0000000..59f7f12 --- /dev/null +++ b/guests/host_vars/libvirt-centos-7/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: centos:centos7 diff --git a/guests/host_vars/libvirt-debian-8/docker.yml b/guests/host_var= s/libvirt-debian-8/docker.yml new file mode 100644 index 0000000..235f0fd --- /dev/null +++ b/guests/host_vars/libvirt-debian-8/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: debian:8 diff --git a/guests/host_vars/libvirt-debian-9/docker.yml b/guests/host_var= s/libvirt-debian-9/docker.yml new file mode 100644 index 0000000..0b4ccee --- /dev/null +++ b/guests/host_vars/libvirt-debian-9/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: debian:9 diff --git a/guests/host_vars/libvirt-debian-sid/docker.yml b/guests/host_v= ars/libvirt-debian-sid/docker.yml new file mode 100644 index 0000000..e20a37e --- /dev/null +++ b/guests/host_vars/libvirt-debian-sid/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: debian:sid diff --git a/guests/host_vars/libvirt-fedora-27/docker.yml b/guests/host_va= rs/libvirt-fedora-27/docker.yml new file mode 100644 index 0000000..dcada18 --- /dev/null +++ b/guests/host_vars/libvirt-fedora-27/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: fedora:27 diff --git a/guests/host_vars/libvirt-fedora-28/docker.yml b/guests/host_va= rs/libvirt-fedora-28/docker.yml new file mode 100644 index 0000000..a874018 --- /dev/null +++ b/guests/host_vars/libvirt-fedora-28/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: fedora:28 diff --git a/guests/host_vars/libvirt-fedora-rawhide/docker.yml b/guests/ho= st_vars/libvirt-fedora-rawhide/docker.yml new file mode 100644 index 0000000..39dda1c --- /dev/null +++ b/guests/host_vars/libvirt-fedora-rawhide/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: fedora:rawhide diff --git a/guests/host_vars/libvirt-ubuntu-16/docker.yml b/guests/host_va= rs/libvirt-ubuntu-16/docker.yml new file mode 100644 index 0000000..2d4eb25 --- /dev/null +++ b/guests/host_vars/libvirt-ubuntu-16/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: ubuntu:16.04 diff --git a/guests/host_vars/libvirt-ubuntu-18/docker.yml b/guests/host_va= rs/libvirt-ubuntu-18/docker.yml new file mode 100644 index 0000000..13d6cc1 --- /dev/null +++ b/guests/host_vars/libvirt-ubuntu-18/docker.yml @@ -0,0 +1,2 @@ +--- +docker_base: ubuntu:18.04 --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list