#9091 Tracking : EPEL8 Modules in Production
Closed: Fixed 4 years ago by mohanboddu. Opened 4 years ago by mohanboddu.


Changes that are required:

#To add the build tags:
koji add-tag module-el8-build --parent module-package-list
koji add-external-repo epel8-build 'https://kojipkgs.fedoraproject.org/repos/epel8-build/latest/$arch/' -t module-el8-build -p 5 -m bare

#To add all the other tags:
release=epel8
modular_release=${release}-modular
echo $release
echo $modular_release
koji add-tag --parent "${release}" "${release}-modularity"
koji add-tag "${modular_release}"
koji edit-tag -x mock.package_manager=dnf "${modular_release}"
koji add-tag --parent "${modular_release}" "${modular_release}-updates"
koji add-tag --parent "${modular_release}-updates" "el8-modular-updates-candidate"
koji add-tag --parent "${modular_release}-updates" "${modular_release}-updates-testing"
koji add-tag --parent "${modular_release}-updates-testing" "${modular_release}-updates-testing-pending"
koji add-tag --parent "${modular_release}-updates" "${modular_release}-updates-pending"
koji add-tag --parent "${modular_release}-updates" "${modular_release}-override"
koji add-tag --parent "${modular_release}-updates-testing-pending" "${modular_release}-signing-pending"
koji add-tag --parent "${modular_release}-updates"  "${modular_release}-pending"
koji edit-tag --perm=fedora-override "${modular_release}-override"
koji edit-tag --perm=admin "${modular_release}-updates"
koji edit-tag --perm=admin "${modular_release}-updates-testing"
koji edit-tag --perm=autosign "${modular_release}-updates-testing-pending"
koji edit-tag --perm=admin "${modular_release}-updates-pending"
koji edit-tag --perm=autosign "${modular_release}-signing-pending"
koji edit-tag --perm=autosign "${modular_release}"

#To create the bodhi release
bodhi releases create --name EPEL-8M --long-name "Fedora Epel 8 Modular" --id-prefix FEDORA-EPEL-MODULAR --version 8 --branch epel8m --dist-tag epel8-modular --stable-tag epel8-modular-updates --testing-tag epel8-modular-updates-testing --candidate-tag el8-modular-updates-candidate --pending-stable-tag epel8-modular-updates-pending --pending-testing-tag epel8-modular-updates-testing-pending --pending-signing-tag epel8-modular-signing-pending --override-tag epel8-modular-override --state current --user mohanboddu

#To create empty repos on /mnt/koji:
sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/epel8-modular-updates
sudo ln -s /mnt/koji/compose/updates/empty-repo/ /mnt/koji/compose/updates/epel8-modular-updates-testing

#To create empty repos on /pub/epel:
#!/bin/bash
mkdir -p /pub/epel/8/Modular/{aarch64,ppc64le,s390x,x86_64}/{Packages,debug,drpms}
mkdir -p /pub/epel/8/Modular/SRPMS/Packages
mkdir -p /pub/epel/testing/8/Modular/{aarch64,ppc64le,s390x,x86_64}/{Packages,debug,drpms}
mkdir -p /pub/epel/testing/8/Modular/SRPMS/Packages
for dir in /pub/epel/8/Modular/*
do          
    createrepo_c $dir
done
for dir in /pub/epel/testing/8/Modular/*
do
    createrepo_c $dir
done    
mkdir -p /pub/epel/8/Modular/source/tree/Packages
mkdir -p /pub/epel/testing/8/Modular/source/tree/Packages
createrepo_c /pub/epel/8/Modular/source/tree
createrepo_c /pub/epel/testing/8/Modular/source/tree
for dir in /pub/epel/8/Modular/*/debug/
do      
    mkdir -p $dir/Packages
    createrepo_c $dir
done    
for dir in /pub/epel/testing/8/Modular/*/debug/
do      
    mkdir -p $dir/Packages
    createrepo_c $dir
done

#Ansible diff
diff --git a/roles/bodhi2/backend/files/koji-sync-listener.py b/roles/bodhi2/backend/files/koji-sync-listener.py
index 7687743..7cad5a8 100644
--- a/roles/bodhi2/backend/files/koji-sync-listener.py
+++ b/roles/bodhi2/backend/files/koji-sync-listener.py
@@ -23,7 +23,7 @@ def handle(content):
     sys.stdout.flush()
     # XXX If you modify this taglist.  Please also modify the other copy in
     # bodhi2/backend/tasks/main.yml
-    taglist = 'f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel7 dist-6E-epel module-package-list modular'
+    taglist = 'f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular'
     cmd = [
         '/usr/local/bin/owner-sync-pagure',
         '--package', package,
diff --git a/roles/bodhi2/backend/files/new-updates-sync b/roles/bodhi2/backend/files/new-updates-sync
index 49890d5..2228517 100755
--- a/roles/bodhi2/backend/files/new-updates-sync
+++ b/roles/bodhi2/backend/files/new-updates-sync
@@ -112,14 +112,28 @@ RELEASES = {'f31': {'topic': 'fedora',
                       'repos': {'epel-testing': {
                           'from': 'epel8-testing',
                           'to': [{'arches': ['x86_64', 'aarch64', 'ppc64le', 's390x', 'source'],
-                                  'dest': os.path.join(EPELDEST, 'testing', '8/Everything')}
+                                  'dest': os.path.join(EPELDEST, 'testing', '8', 'Everything')}
                                 ]},
                                 'epel': {
                           'from': 'epel8',
                           'to': [{'arches': ['x86_64', 'aarch64', 'ppc64le', 's390x', 'source'],
-                                  'dest': os.path.join(EPELDEST, '8/Everything')}
+                                  'dest': os.path.join(EPELDEST, '8', 'Everything')}
                                 ]}}
                      },
+            'epel8m': {'topic': 'epel',
+                    'version': '8m',
+                    'modules': ['epel'],
+                    'repos': {'epel': {
+                        'from': 'epel8-modular-updates',
+                        'to': [{'arches': ['x86_64', 'aarch64', 'ppc64le', 's390x', 'source'],
+                                'dest': os.path.join(EPELDEST, '8', 'Modular')},
+                              ]},
+                              'epel-testing': {
+                        'from': 'epel8-modular-updates-testing',
+                        'to': [{'arches': ['x86_64', 'aarch64', 'ppc64le', 's390x', 'source'],
+                                'dest': os.path.join(EPELDEST, 'testing', '8', 'Modular')},
+                              ]}}
+                   },
             'epel7': {'topic': 'epel',
                       'version': '7',
                       'modules': ['epel'],
diff --git a/roles/bodhi2/backend/tasks/main.yml b/roles/bodhi2/backend/tasks/main.yml
index dd1559d..04e77f8 100644
--- a/roles/bodhi2/backend/tasks/main.yml
+++ b/roles/bodhi2/backend/tasks/main.yml
@@ -73,7 +73,7 @@
   # bodhi2/backend/files/koji-sync-listener.py
   # This cronjob runs only once a day.  The listener script runs reactively.
   cron: name="owner-sync" minute="15" hour="4" user="root"
-      job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel7 dist-6E-epel module-package-list modular'"
+      job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f32 f32-container f32-modular f31 f31-container f31-flatpak f31-modular f30 f30-container f30-flatpak f30-modular epel8 epel8-playground epel8-modular epel7 dist-6E-epel module-package-list modular'"
       cron_file=update-koji-owner
   when: env == "production"
   tags:
diff --git a/roles/bodhi2/backend/templates/pungi.module.conf.j2 b/roles/bodhi2/backend/templates/pungi.module.conf.j2
index 4de5b29..a594069 100644
--- a/roles/bodhi2/backend/templates/pungi.module.conf.j2
+++ b/roles/bodhi2/backend/templates/pungi.module.conf.j2
@@ -16,6 +16,8 @@ sigkeys = [
        'cfc659b9',
 [% elif release.version_int == 31 %]
        '3c3359c4',
+[% elif release.version_int == 8 %]
+        '2f86d6a1',
 [% endif %]
 {% if env == "staging" %}
     [% if release.version_int == 8 %]
@@ -35,7 +37,11 @@ module_defaults_dir = {
         [% endif %]
     {% else %}
         'repo': 'https://pagure.io/releng/fedora-module-defaults.git',
-        'branch': 'f[[ release.version_int ]]',
+        [% if release.version_int == 8 %]
+            'branch': 'el[[ release.version_int ]]',
+        [% else %]
+            'branch': 'f[[ release.version_int ]]',
+        [% endif %]
     {% endif %}
     'dir': '.'
 }
diff --git a/roles/mbs/common/files/default-modules.production/platform-el8.yaml b/roles/mbs/common/files/default-modules.production/platform-el8.yaml
new file mode 100644
index 0000000..b7a8654
--- /dev/null
+++ b/roles/mbs/common/files/default-modules.production/platform-el8.yaml
@@ -0,0 +1,25 @@
+document: modulemd
+version: 1
+data:
+  name: platform
+  stream: el8
+  version: 1
+  context: 00000000
+  summary: EPEL 8 base
+  description: EPEL 8 base
+  license:
+    module: [MIT]
+  profiles:
+    buildroot:
+      rpms: [bash, bzip2, coreutils, cpio, diffutils, epel-release, epel-rpm-macros, fedpkg-minimal, findutils, gawk, gcc, gcc-c++, grep, gzip, info, make, patch, redhat-release, redhat-release-everything, redhat-release-server, redhat-rpm-config, rpm-build, sed, shadow-utils, tar, unzip, util-linux, util-linux-ng, which, xz]
+    srpm-buildroot:
+      rpms: [bash, epel-release, epel-rpm-macros, fedpkg-minimal, git, gnupg, make, redhat-release, redhat-release-everything, redhat-release-server, redhat-rpm-config, rpm-build, shadow-utils]
+  xmd:
+    mbs:
+      buildrequires: {}
+      commit: el8
+      requires: {}
+      koji_tag: module-el8-build
+      mse: TRUE
+      default_modules_scm_url: https://pagure.io/releng/fedora-module-defaults.git
+      use_default_modules: TRUE
diff --git a/roles/mbs/common/templates/config.py b/roles/mbs/common/templates/config.py
index a2446c7..c4d947c 100644
--- a/roles/mbs/common/templates/config.py
+++ b/roles/mbs/common/templates/config.py
@@ -155,6 +155,7 @@ class ProdConfiguration(BaseConfiguration):
         # Fedora 28 includes 'ppc64'.  F29 and later drops it.
         # https://fedoraproject.org/wiki/Changes/DiscontinuePPC64
         'platform:f28': ['aarch64', 'armv7hl', 'i686', 'ppc64', 'ppc64le', 'x86_64', 's390x'],
+        'platform:el8' : ['aarch64', 'ppc64le', 'x86_64', 's390x']
     }
     KOJI_REPOSITORY_URL = 'https://kojipkgs.fedoraproject.org/repos'
     MESSAGING_TOPIC_PREFIX = ['org.fedoraproject.prod']

I created to https://pagure.io/releng/issue/9106 track the eventual deployment of modular EPEL8-playground to production.

@mohanboddu Is there anything more to add here before closing it?

CC: @sgallagh

I think we can close this now.

I think we can close this now.

@mohanboddu Then please close it. (I would if I could.) Thanks again for taking care of this!

Closing this ticket as the work is done.

Metadata Update from @mohanboddu:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

4 years ago

Login to comment on this ticket.

Metadata