diff --git a/ansible/roles/dnf_repos/defaults/main.yml b/ansible/roles/dnf_repos/defaults/main.yml index 112c5c7dd..714417765 100644 --- a/ansible/roles/dnf_repos/defaults/main.yml +++ b/ansible/roles/dnf_repos/defaults/main.yml @@ -3,3 +3,68 @@ dnf_repos_repos: {} # see environments/common/inventory/group_vars/all/{dnf_repo dnf_repos_pulp_content_url: "{{ appliances_pulp_url }}/pulp/content" dnf_repos_username: "{{ omit }}" dnf_repos_password: "{{ omit }}" + +openhpc_gpg_keys: # https://raw.githubusercontent.com/openhpc/ohpc/v2.6.1.GA/components/admin/ohpc-release/SOURCES/RPM-GPG-KEY-OpenHPC-2 + '8': | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + 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 + 12Gh2vqXQrofz8qYb+vYEKLVlPP0/w== + =2mn6 + -----END PGP PUBLIC KEY BLOCK----- + '9': | # https://raw.githubusercontent.com/openhpc/ohpc/v3.0.GA/components/admin/ohpc-release/SOURCES/RPM-GPG-KEY-OpenHPC-3 + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mQENBGRAIkcBCAC8ye7kDRUXziTcPmmaUmoe0Xu3RnCHUyQgUAuRgrZBgs70XXff + p1de9MABafAQQ2941Qx69NCecxAX7wYUbsoPth1G7TED9RJqa1LbajQP4134+vxi + zMwyLHaSdxlAZGiA2fsoA9X/S0P1x1/bDU3yqKMQFMnLvrSF06GdFVa/WDqTLdUp + m7O452iL7kM80dfxnTB/aZfC91pW0rb83NJYY7zfb33FbADsnOgYut5o79gqdR3n + sOF5jIZORB2QqyDVsPjkxEmjAFuyX5QLxw+H2dMz47GA4SedPgS2mrufKuFTHfCj + qcWmVkMf/r4T+3Ox3ZfIgTLaivzzJSGGIP15ABEBAAG0J09wZW5IUEMzIE9CUyBQ + cm9qZWN0IDxPcGVuSFBDM0Bwcml2YXRlPokBVAQTAQgAPhYhBG4ZvhHZoILACn20 + GnrAXwlAqQzIBQJkQCJHAhsDBQkpMuAABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheA + AAoJEHrAXwlAqQzIQzUH/jUpZ40cRSp4RkSajjnJuYf/ZqJrSgWTe8Y36UuzEBz7 + tHngVd27xmI4BAFYZI9OGWk8fyonwwlYlZ6x8lW120iqN60tVHQW4a7AGLMlr8oH + x8zrYjVclYIaPDB19zl2jdJCO9KIRGBzr71UQzZltt57wjyZkEWmbnrusV7hSq3i + GAXi/dxrVwCiFGLMegQjyM3crrUCaOHFuU0G1HQcj3orCL5sANfi+A89yD/liYNH + 0GYFq6ipuCh4ybdV9mL8HoET4iDReVKsTvR1chbCsr/226yDE6YFYnekr3pOoibU + BfWT6MJYBetGE3mazBOma4DoUzY3Mt9UiVKEvLeHIa6JATMEEwEIAB0WIQRTknRN + PFQ+1XhHZeaKMGAZ2lZcbAUCZEAiSAAKCRCKMGAZ2lZcbHQOB/9iLNaV+kK+x34h + FwK6u4JVemz/YmJZ5OhHeT+3juX4VVktWDirfYwqpxr0Xbqtnvh/W866sv8aKtVc + NNaguOY00oN8fhEaXyGghc67o0kHTj/e9Dh4zoWdcIS+lgSSDfW+NVN4shFr6vv6 + xrjiTDM771jgtvstu4VdRNgZZM/NYc2NgwoUGBvxcALaJ0bWQ9JQu/0fk6PTM6+h + 7s90gKpjUpf7ANGNwTWq0o1FFh3+F30z6RDD7WekvTfMNod1D3Md+rszMk+h6o0B + wYosLc92Rbma4KydoWuvSlPt2AjyIh7ShAe5MdlQf6O7yYHUIJVcGFuC0VvTTsVo + +6Bhdlwn + =OA41 + -----END PGP PUBLIC KEY BLOCK----- \ No newline at end of file diff --git a/ansible/roles/dnf_repos/tasks/disable_repos.yml b/ansible/roles/dnf_repos/tasks/disable_repos.yml index f79139d3f..8f76278eb 100644 --- a/ansible/roles/dnf_repos/tasks/disable_repos.yml +++ b/ansible/roles/dnf_repos/tasks/disable_repos.yml @@ -6,7 +6,8 @@ baseurl: "{{ repo_content_url }}/{{ repo_values.pulp_path }}/{{ repo_values.pulp_timestamp }}" description: "{{ repo_name }}" enabled: false - gpgcheck: false + gpgcheck: "{{ repo_values.gpgcheck | default(true) }}" + gpgkey: "{{ repo_values.gpgkey | default('') }}" loop: "{{ dnf_repos_repos | dict2items }}" loop_control: label: "{{ repo_name }}[{{ repo_os }}]: {{ repo_values }}" diff --git a/ansible/roles/dnf_repos/tasks/set_repos.yml b/ansible/roles/dnf_repos/tasks/set_repos.yml index bd78193b8..c5474ab87 100644 --- a/ansible/roles/dnf_repos/tasks/set_repos.yml +++ b/ansible/roles/dnf_repos/tasks/set_repos.yml @@ -1,5 +1,22 @@ --- +- name: Import Rocky GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import "/etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-{{ ansible_distribution_major_version }}" # noqa: command-instead-of-module + +- name: Import EPEL GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}" # noqa: command-instead-of-module + +- name: Install OpenHPC GPG key + ansible.builtin.copy: + content: "{{ openhpc_gpg_keys[ansible_distribution_major_version] }}" + dest: "/etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL{{ ansible_distribution_major_version }}" + owner: root + group: root + mode: '0644' + +- name: Import OpenHPC GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import "/etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL{{ ansible_distribution_major_version }}" # noqa: command-instead-of-module + - name: Replace non-epel repos with Pulp repos ansible.builtin.yum_repository: file: "{{ repo_values.repo_file }}" @@ -8,7 +25,8 @@ description: "{{ repo_name }}" username: "{{ dnf_repos_username }}" password: "{{ dnf_repos_password }}" - gpgcheck: false + gpgcheck: "{{ repo_values.gpgcheck | default(true) }}" + gpgkey: "{{ repo_values.gpgkey | default('') }}" loop: "{{ dnf_repos_repos | dict2items }}" loop_control: label: "{{ repo_name }}[{{ repo_os }}]: {{ repo_values }}" @@ -34,7 +52,8 @@ description: "{{ repo_name }}" username: "{{ dnf_repos_username }}" password: "{{ dnf_repos_password }}" - gpgcheck: false + gpgcheck: "{{ repo_values.gpgcheck | default(true) }}" + gpgkey: "{{ repo_values.gpgkey | default('') }}" loop: "{{ dnf_repos_repos | dict2items }}" loop_control: label: "{{ repo_name }}[{{ repo_os }}]: {{ repo_values }}" diff --git a/ansible/roles/eessi/defaults/main.yaml b/ansible/roles/eessi/defaults/main.yaml index 45efe79b0..4dbc5f341 100644 --- a/ansible/roles/eessi/defaults/main.yaml +++ b/ansible/roles/eessi/defaults/main.yaml @@ -11,4 +11,34 @@ cvmfs_config_default: cvmfs_config_overrides: {} cvmfs_config: "{{ cvmfs_config_default | combine(cvmfs_config_overrides) }}" -cvmfs_gpg_checksum: "sha256:5c60679d307a96524204c127250e8ebdda66a459659faa1718bdf32dde1d7069" +cvmfs_gpg_key: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + Version: GnuPG v2.0.22 (GNU/Linux) + + mQGiBEuGP6YRBADV89cbF4uoEX89Q8uxOklIDVJhOJAFKZ33LSdzHv3iObnjo5w4 + wbb8FiSir4oWgarAco4u0kR1yKjHJ33oVB2xmPOzW3NWoHI7aPF7tCgo7FY9hNoC + 4NEkNycvbfSoCScsv2yY5qz2q2sY1LWGZGbUXjBvKbmASe9sJFKJV7NsmwCg76W/ + aMazleHyDtooD8tk3ZWvpKcD/Rg51Oad+ZLc7h45wDMHpaDvOBeGoyp+k7JgQd87 + HfXiJtg/Q6zyTwrV3vCQvMpw3GRjRkZBcPgRWb6rUk68dL8fa2cTxhISX5/DIQzc + mmuDa0EgCGGAKUZ4bHqaexFFnp/B+VKBPvJuxLa0cBDd6eewxNwtHJ90EaMeBzGd + 6zU2BADO9YbXiEMqRkfVLnuvD5G31/WJZvffXCxspnSfg923DbILWa4vNW9MLMsK + IVHvyVr0mZF8xdyQNVPUX3/4uahKM4hwuFqdbyjuLGEIF3U73aIJ0+YDep/+I6yU + JGHnxy8Ex+a1XIhJ1hSI7+oalSdt+w/pE3+2MQyUfSDPSXVA3LQ+Q2VyblZNIEFk + bWluaXN0cmF0b3IgKGN2bWFkbWluKSA8Y2VybnZtLmFkbWluaXN0cmF0b3JAY2Vy + bi5jaD6IXgQTEQIAHgIbAwYLCQgHAwIDFQIDAxYCAQIeAQIXgAUCVwOYkgAKCRAj + DTidiuRc50E1AJ9AYvH/cydD7029jxGcs8K87lo3jACdEhbCj3cjPsp2U/WfpgK1 + BQOMiwe5Ag0ES4Y/qBAIAL3sWKXQKpbIOpwX+mNX2IV2XxNBM3KYjYOEii66i9ap + Po3BA39a9Wm9vh1kYIHTkh9Qqb8w53hc4ANkVT+cYzxXythGBjWoLtwCzKCPrIb7 + RQJRc956Ot0q4qmlcUEGi5zefSIoJZR5jyR7rZS+1PNJYI05xY2+Eah1u9UxrlzB + H5DCsvUqTNK12WrPIibmLo8u+yIDJjwgh9O5YITC+et/g47NLfZdiAGPLEjvJFRi + 7Ju+8ywO32dSVBPJQDktr5BC950DKZHA9n+sJ63iF3lP/aCTECpxxUqXVVqioobw + g5ytl60hw9I9sfwBP6z9PR90RcyT1l4giiBz9LV+KpcAAwUIAKeAxArGaJxzWziK + s7D8TTuE50Nw+S3RGhVzwSKy7183Z11iOEMqbm2/zwp65wFkntCKmLKDnGsTgFNp + stIyFwJmj34Axp7N3KGqXnTI+SIQd6VmzQ1phxfCOw8IGueOR6YI7S1GYWt7Dose + ZKz4EWdvXCOkQAhbxq/HT2c3ihxsuxrErxz7QtNaYOFXiuLj3mYH9XaMeEe8Pkl+ + yyRTvyUNlMIu/i79qf+QUlsi10nCUm88cSXQiKWOJ4GiUoT+jD7pN4ohdALRVl0t + l/EyPTw+asG3lQhPZ+solvJXp+i7KF7nwnyXDB63WNH15S1pQLMnqCuGCFyegf6j + nOJU0AqISQQYEQIACQIbDAUCVwOYgwAKCRAjDTidiuRc534jAKDu/9BZU3rirEMr + DuGbmN3ulUM+UgCfe7lg5qrGXUzZlJFTnTaTgS3Z0Rg= + =fspm + -----END PGP PUBLIC KEY BLOCK----- diff --git a/ansible/roles/eessi/tasks/install.yml b/ansible/roles/eessi/tasks/install.yml index 13edc47fc..e03c5bfef 100644 --- a/ansible/roles/eessi/tasks/install.yml +++ b/ansible/roles/eessi/tasks/install.yml @@ -1,34 +1,22 @@ --- -- name: Download Cern GPG key - # checkov:skip=CKV2_ANSIBLE_2: "Ensure that HTTPS url is used with get_url" - ansible.builtin.get_url: - url: https://cvmrepo.web.cern.ch/cvmrepo/yum/RPM-GPG-KEY-CernVM-2048 - dest: ./cvmfs-key.gpg - checksum: "{{ cvmfs_gpg_checksum }}" - mode: "0644" +- name: Install CVMFS GPG key + ansible.builtin.copy: + content: "{{ cvmfs_gpg_key }}" + dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM + owner: root + group: root + mode: '0644' -- name: Import downloaded GPG key # noqa: no-changed-when - ansible.builtin.command: rpm --import cvmfs-key.gpg # noqa: command-instead-of-module +- name: Import CVMFS GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM # noqa: command-instead-of-module -# cvmfs repo provided by dnf_repos role +# cvmfs repo and eessi config provided by dnf_repos role - name: Install CVMFS ansible.builtin.dnf: name: cvmfs - name: Install EESSI CVMFS config - # checkov:skip=CKV2_ANSIBLE_4: "Ensure that packages with untrusted or missing GPG signatures are not used by dnf" ansible.builtin.dnf: - name: https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi-latest.noarch.rpm - # NOTE: Can't find any docs on obtaining gpg key - maybe downloading directly from github is ok? - disable_gpg_check: true - -# Alternative version using official repo - still no GPG key :( -# - name: Add EESSI repo -# ansible.builtin.dnf: -# name: http://repo.eessi-infra.org/eessi/rhel/8/noarch/eessi-release-0-1.noarch.rpm - -# - name: Install EESSI CVMFS config -# ansible.builtin.dnf: -# name: cvmfs-config-eessi + name: cvmfs-config-eessi diff --git a/ansible/roles/openondemand/defaults/main.yml b/ansible/roles/openondemand/defaults/main.yml index ecb5a8d12..23351580f 100644 --- a/ansible/roles/openondemand/defaults/main.yml +++ b/ansible/roles/openondemand/defaults/main.yml @@ -111,3 +111,135 @@ openondemand_rstudio_version: 2025.05.1-513 openondemand_matlab_version: '' # Below is automatically calculated during role run: openondemand_gres_options: "{{ _openondemand_sinfo_gres.stdout | to_gres_options }}" + +openondemand_turbovnc_gpg_key: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mQINBF+0POoBEADvh8UbRhwEb4QdPwD0XqxncnLumwEViosBwZBQBMG7Toymk5oH + YlQIvDlr2Idj8ClBOEkhGMbH7EFoy55cFqG7RO5cMg442LK44j2LKzMqCuLQwEuf + LutUH2Ptuzgcd7ATc3od3RSpb8VL1HDtOu584MdKlKtdQU0K+xRtM+kqBzLRhb31 + U4PkQSDitXLG2juRFEN7VsKmr0IjWfjDZEHOLryfQXfEQmZJAO9ZjwKCwHIMxqYy + lWeit9C1PfBEVP30L5Vdd4vFW9XB9RLUFgMjo57dZGkk4yPDhsNhWe527A4pUOMK + Up5xLcUXrORjXEFlgh2BEC2Zy6QfRYoKTlpPGVr0g3UeYMFEkMTSsVJiwsITnpWI + wo0FzCZYBJZQQdQvI57vhRL3Xv7QPPGFnGrXye+WsTB4FQn42JE2h65yG47Dlgbw + IoMzfDd1pi7HtDl3JLvZzx3qRUk+FOzAKpZcRmpgSIih3pdZLVgQi2gZszXRLXoy + myiBkcczQk78E/RMh7bTcPxPaGukQojijlYuuLKn3Ff8WkZNrZ6RuRzzAB9qjXrY + vuALocuVcxaTPHAhoHiFaxwjPamxqlxkoR0tfad35egTqlnUraYYPTiv3XSDbHpv + he143H/Xh55eNXTZFpkBkqZWJUpt8C1ZR4xXFDy7FSDovfaMRn3rTZ/neQARAQAB + tFVUaGUgVmlydHVhbEdMIFByb2plY3QgKFNpZ25pbmcga2V5IGZvciBvZmZpY2lh + bCBiaW5hcmllcykgPGluZm9ybWF0aW9uQFZpcnR1YWxHTC5vcmc+iQJRBBMBCAA7 + AhsDAheAAh4HFiEErhp7pO//mpmH4UdMS6zKs25/6aEFAmjUQt8FCwkIBwICIgIG + FQoJCAsCBBYCAwEACgkQS6zKs25/6aH79hAAsC1N938+kG6ytplU1E5RHz5MlimN + WVa9dCqUvXd8ccetoxLqycmM4hGzZgqWmcv6v0aYiuvKMCiHi6sD8mK7NqmZugIq + CS4XKqBF2E5dDZVEYDIrR7OR+PY2OM7bi+0xGXrtXIANwHp6Vg+4N7S8ROKlykHP + SBO9xUN6JRwSCzOfla081rrYdHmgp+lJ25GMsvReZcR4JVaqXThT3vYQRbP9Q7wU + 1dq4tGupBRBzFNTXCDZgO3MDnHnyqGmwxqpupZMDL990CxvGTcJLIAZH06KA5AtO + vUn/Em3QVBcxbCPXYShNJdSU6Fgbnr3YbQrOpuMsiULWAwo2yUreHlQAwsPQEb5r + du++9WvSaH2b3GMVo/QS+xG/Oy06E6BqRTiov298Y4eHGHdQsVef/v/F+yxlmgi/ + JKqaZCfAifP5XKJDHUoLbngnoUOgAFRPjNU7e9uJRY1J4aZ97kyIknGqssDDnGcZ + AY3UhXf1rJYHzVt/r4yvSOIxHreVl1vLn2ZpJp/Nk9Gt/OfGnxC137CsMn5j2g4W + Nt24R5fabW2KCM6nunb99MmeRZCdDgqFJ48kxBckY8uvhqcE98z84qRaMUeUATpf + zpVAwLGDR+32uKbDij5gMfOiIFQKOMFG3SplCpaQlHUMjtIKvJZvFH75CJduGOTz + ctew8kqRjxPSNLw= + =ysOU + -----END PGP PUBLIC KEY BLOCK----- + +openondemand_rstudio_gpg_key: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + 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 + U2EuISkCgcTxT1ekiArexBXc + =fY3G + -----END PGP PUBLIC KEY BLOCK----- diff --git a/ansible/roles/openondemand/tasks/rstudio_compute.yml b/ansible/roles/openondemand/tasks/rstudio_compute.yml index 8cb3c911d..af8620d89 100644 --- a/ansible/roles/openondemand/tasks/rstudio_compute.yml +++ b/ansible/roles/openondemand/tasks/rstudio_compute.yml @@ -7,6 +7,17 @@ name: R state: present +- name: Install RStudio GPG key + ansible.builtin.copy: + content: "{{ openondemand_rstudio_gpg_key }}" + dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-RStudio + owner: root + group: root + mode: '0644' + +- name: Import RStudio GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-RStudio # noqa: command-instead-of-module + - name: Download RStudio Server RPM ansible.builtin.get_url: url: "https://download2.rstudio.org/server/rhel{{ ansible_distribution_major_version }}/x86_64/rstudio-server-rhel-{{ openondemand_rstudio_version }}-x86_64.rpm" # noqa: yaml[line-length] @@ -18,7 +29,6 @@ ansible.builtin.dnf: name: /tmp/rstudio-server.rpm state: present - disable_gpg_check: true - name: Create module directory for RStudio Server ansible.builtin.file: diff --git a/ansible/roles/openondemand/tasks/vnc_compute.yml b/ansible/roles/openondemand/tasks/vnc_compute.yml index 86add7103..62b24e870 100644 --- a/ansible/roles/openondemand/tasks/vnc_compute.yml +++ b/ansible/roles/openondemand/tasks/vnc_compute.yml @@ -19,6 +19,17 @@ - init_d.stat.exists - not init_d.stat.islnk +- name: Install TurboVNC GPG key + ansible.builtin.copy: + content: "{{ openondemand_turbovnc_gpg_key }}" + dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-TurboVNC + owner: root + group: root + mode: '0644' + +- name: Import TurboVNC GPG key # noqa: no-changed-when + ansible.builtin.command: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TurboVNC # noqa: command-instead-of-module + - name: Install VNC-related packages tags: install ansible.builtin.dnf: diff --git a/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json b/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json index 04730140e..5beb476bb 100644 --- a/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json +++ b/environments/.stackhpc/tofu/cluster_image.auto.tfvars.json @@ -1,6 +1,6 @@ { "cluster_image": { - "RL8": "openhpc-RL8-251211-0951-51b93e3f", - "RL9": "openhpc-RL9-251211-0951-51b93e3f" + "RL8": "openhpc-RL8-251216-0957-535242f1", + "RL9": "openhpc-RL9-251216-0957-535242f1" } } diff --git a/environments/common/inventory/group_vars/all/dnf_repo_timestamps.yml b/environments/common/inventory/group_vars/all/dnf_repo_timestamps.yml index 3e7788c49..d00a6287c 100644 --- a/environments/common/inventory/group_vars/all/dnf_repo_timestamps.yml +++ b/environments/common/inventory/group_vars/all/dnf_repo_timestamps.yml @@ -4,33 +4,40 @@ dnf_repos_default: pulp_path: centos/8-stream/storage/x86_64/ceph-quincy pulp_timestamp: 20231104T015751 repo_file: ceph + gpgcheck: false '9': pulp_path: centos/9-stream/storage/x86_64/ceph-reef pulp_timestamp: 20250617T023108 repo_file: ceph + gpgcheck: false OpenHPC: '8': pulp_path: OpenHPC/2/EL_8 pulp_timestamp: 20241218T154614 repo_file: OpenHPC + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL8 '9': pulp_path: OpenHPC/3/EL_9 pulp_timestamp: 20241218T154614 repo_file: OpenHPC + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL9 OpenHPC-updates: '8': pulp_path: OpenHPC/2/updates/EL_8 pulp_timestamp: 20250512T003315 repo_file: OpenHPC + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL8 '9': pulp_path: OpenHPC/3/updates/EL_9 pulp_timestamp: 20250510T003301 repo_file: OpenHPC + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-OpenHPC-EL9 appstream: '8.10': pulp_path: rocky/8.10/AppStream/x86_64/os pulp_timestamp: 20250923T022841 repo_file: Rocky-AppStream + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.4': pulp_path: rocky/9.4/AppStream/x86_64/os pulp_timestamp: 20241112T003151 @@ -43,11 +50,13 @@ dnf_repos_default: pulp_path: rocky/9.6/AppStream/x86_64/os pulp_timestamp: 20250923T031638 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 appstream-source: '8.10': pulp_path: rocky/8.10/AppStream/source/os pulp_timestamp: 20250923T024945 repo_file: Rocky-Sources + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.6': pulp_path: rocky/9.6/AppStream/source/os pulp_timestamp: 20250923T043546 @@ -57,73 +66,89 @@ dnf_repos_default: pulp_path: rocky/8.10/BaseOS/x86_64/os pulp_timestamp: 20250918T034501 repo_file: Rocky-BaseOS + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.4': pulp_path: rocky/9.4/BaseOS/x86_64/os pulp_timestamp: 20241115T011711 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 '9.5': pulp_path: rocky/9.5/BaseOS/x86_64/os pulp_timestamp: 20250513T031844 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 '9.6': pulp_path: rocky/9.6/BaseOS/x86_64/os pulp_timestamp: 20250923T045903 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 baseos-source: '8.10': pulp_path: rocky/8.10/BaseOS/source/os pulp_timestamp: 20250918T040529 repo_file: Rocky-Sources + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.6': pulp_path: rocky/9.6/BaseOS/source/os pulp_timestamp: 20250923T043546 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 crb: '8.10': pulp_path: rocky/8.10/PowerTools/x86_64/os pulp_timestamp: 20250918T034501 repo_file: Rocky-PowerTools repo_name: powertools + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.4': pulp_path: rocky/9.4/CRB/x86_64/os pulp_timestamp: 20241115T003133 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 '9.5': pulp_path: rocky/9.5/CRB/x86_64/os pulp_timestamp: 20250514T014704 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 '9.6': pulp_path: rocky/9.6/CRB/x86_64/os pulp_timestamp: 20250923T031638 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 crb-source: '8.10': pulp_path: rocky/8.10/PowerTools/source/tree pulp_timestamp: 20250923T125600 repo_file: Rocky-Sources repo_name: powertools-source + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.6': pulp_path: rocky/9.6/CRB/source/os pulp_timestamp: 20250923T043546 repo_file: rocky + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 epel: '8': pulp_path: epel/8/Everything/x86_64 pulp_timestamp: 20250923T001717 repo_file: epel + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9': pulp_path: epel/9/Everything/x86_64 pulp_timestamp: 20250923T001717 repo_file: epel + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 epel-source: '8': pulp_path: epel/8/Everything/source pulp_timestamp: 20250923T001717 repo_file: epel + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 '9': pulp_path: epel/9/Everything/source pulp_timestamp: 20250923T001717 repo_file: epel + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9 epel-cisco-openh264: '9': pulp_path: openh264/epel/9/x86_64/os @@ -134,6 +159,7 @@ dnf_repos_default: pulp_path: rocky/8.10/extras/x86_64/os pulp_timestamp: 20250510T032327 repo_file: Rocky-Extras + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.4': pulp_path: rocky/9.4/extras/x86_64/os pulp_timestamp: 20241118T002802 @@ -146,21 +172,23 @@ dnf_repos_default: pulp_path: rocky/9.6/extras/x86_64/os pulp_timestamp: 20250726T040613 repo_file: rocky-extras + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 extras-source: '8.10': pulp_path: rocky/8.10/extras/source/os pulp_timestamp: 20250828T161842 repo_file: Rocky-Sources + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-8 '9.6': pulp_path: rocky/9.6/extras/source/os pulp_timestamp: 20250828T161842 repo_file: rocky-extras + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 grafana: '8': pulp_path: grafana/oss/rpm pulp_timestamp: 20250917T024714 repo_file: grafana - timestamp: 20250615T005738 '9': pulp_path: grafana/oss/rpm pulp_timestamp: 20250917T024714 @@ -197,16 +225,31 @@ dnf_repos_default: pulp_path: cvmfs/EL/8/x86_64 pulp_timestamp: 20250816T005446 repo_file: cvmfs + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM '9': pulp_path: cvmfs/EL/9/x86_64 pulp_timestamp: 20250816T005446 repo_file: cvmfs + gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CernVM cernvmfs_cfg: '8': pulp_path: cvmfs-config/EL/8/x86_64 pulp_timestamp: 20250805T130249 repo_file: cvmfs + gpgcheck: false '9': pulp_path: cvmfs-config/EL/9/x86_64 pulp_timestamp: 20250805T130249 repo_file: cvmfs + gpgcheck: false + cernvmfs_eessi_cfg: + '8': + pulp_path: eessi/rhel/8/noarch + pulp_timestamp: 20251119T202303 + repo_file: cvmfs-config-eessi + gpgcheck: false + '9': + pulp_path: eessi/rhel/8/noarch # path is a red herring - RL8/9 use the same repo + pulp_timestamp: 20251119T202303 + repo_file: cvmfs-config-eessi + gpgcheck: false