Skip to content

Commit dd52e90

Browse files
committed
autodetect latest in adhoc script, refactored timestamps to allow gated ohpc repos, fixed pulp site
1 parent 4aa9fee commit dd52e90

File tree

6 files changed

+169
-160
lines changed

6 files changed

+169
-160
lines changed

ansible/adhoc/sync-pulp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
vars:
77
pulp_site_target_arch: "x86_64"
88
pulp_site_target_distribution: "rocky"
9-
pulp_site_target_distribution_version: "9.6" # TODO: how can we automatically make this the latest??
9+
pulp_site_target_distribution_version: "{{ dnf_repos_all['baseos'].keys() | map('float') | sort | last }}"

ansible/roles/dnf_repos/defaults/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
dnf_repos_default: {} # see environments/common/inventory/group_vars/all/timestamps.yml
22
dnf_repos_extra: {}
3+
dnf_repos_no_epel: {}
4+
dnf_repos_all: {}
35
dnf_repos_default_epel: {}
46
dnf_repos_pulp_content_url: "{{ appliances_pulp_url }}/pulp/content"
57
dnf_repos_username: "{{ omit }}"

ansible/roles/dnf_repos/tasks/set_repos.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
username: "{{ dnf_repos_username }}"
1010
password: "{{ dnf_repos_password }}"
1111
gpgcheck: false
12-
loop: "{{ dnf_repos_default | combine(dnf_repos_extra) | dict2items }}"
12+
loop: "{{ dnf_repos_no_epel | dict2items }}"
1313
loop_control:
1414
label: "{{ repo_name }}[{{ repo_os }}]: {{ repo_values }}"
1515
vars:
@@ -40,5 +40,3 @@
4040
repo_values: "{{ item.value[repo_os] }}"
4141
repo_name: "{{ repo_values.repo_name | default(item.key) }}"
4242
repo_content_url: "{{ repo_values.pulp_content_url | default(dnf_repos_pulp_content_url) }}"
43-
44-
- meta: end_here

ansible/roles/pulp_site/defaults/main.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ pulp_site_rpm_repo_defaults:
1414
remote_username: "{{ pulp_site_upstream_username }}"
1515
remote_password: "{{ pulp_site_upstream_password }}"
1616
policy: on_demand
17-
state: present
1817

1918
pulp_site_rpm_info: |
2019
{{
21-
dnf_repos_default |
22-
combine(dnf_repos_default_epel, dnf_repos_extra) |
20+
dnf_repos_all |
2321
select_repos(pulp_site_target_distribution_version)
2422
}}
2523
pulp_site_rpm_repos: |
@@ -28,5 +26,5 @@ pulp_site_rpm_repos: |
2826
to_rpm_repos(pulp_site_upstream_content_url, pulp_site_rpm_repo_defaults)
2927
}}
3028
31-
pulp_site_rpm_publications: "{{ _pulp_site_rpm_info_all | to_rpm_pubs }}"
32-
pulp_site_rpm_distributions: "{{ _pulp_site_rpm_info_all | to_rpm_distros }}"
29+
pulp_site_rpm_publications: "{{ pulp_site_rpm_info | to_rpm_pubs }}"
30+
pulp_site_rpm_distributions: "{{ pulp_site_rpm_info | to_rpm_distros }}"

ansible/roles/pulp_site/filter_plugins/pulp-list-filters.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ def filters(self):
77
'select_repos': self.select_repos,
88
}
99

10-
def select_repos(self, dnf_repos, target_distro_ver):
10+
def select_repos(self, dnf_repos, target_distro_ver): #TODO: why does baseos get a major and minor version?
1111
""" Filter dnf_repos to only those for a relevant distribution version (M.m or M). Returns a list of dicts.
1212
TODO: note this adds distro_ver as a key
1313
"""
@@ -33,21 +33,25 @@ def to_rpm_repos(self, rpm_info, content_url, repo_defaults):
3333
rpm_repos = []
3434
for repo_data in rpm_info:
3535
rpm_data = repo_defaults.copy() # NB: this changes behaviour vs before, so now defaults can correctly be overriden
36-
rpm_data['name'] = f"{repo_data['pulp_repo_name']}-{repo_data['distro_ver']}-{repo_data['pulp_timestamp']}"
36+
rpm_data['name'] = get_repo_name(repo_data)
3737
rpm_data['url'] = '/'.join([content_url, repo_data['pulp_path'], repo_data['pulp_timestamp']])
38+
rpm_data['state'] = 'present'
3839
rpm_repos.append(rpm_data)
3940
return rpm_repos
4041

4142
def to_rpm_pubs(self, list):
4243
pub_list = map(lambda x: {
43-
'repository': x['pulp_repo_name'],
44-
'state': x['state'] }, list)
44+
'repository': get_repo_name(x),
45+
'state': 'present' }, list)
4546
return pub_list
4647

4748
def to_rpm_distros(self, list):
4849
distro_list = map(lambda x: {
49-
'name': x['name'],
50-
'repository': x['pulp_repo_name'],
50+
'name': x['pulp_repo_name'],
51+
'repository': get_repo_name(x),
5152
'base_path': x['pulp_path'],
52-
'state': x['state'] }, list)
53+
'state': 'present' }, list)
5354
return distro_list
55+
56+
def get_repo_name(dnf_repos_data):
57+
return f"{dnf_repos_data['pulp_repo_name']}-{dnf_repos_data['distro_ver']}-{dnf_repos_data['pulp_timestamp']}"
Lines changed: 151 additions & 144 deletions
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,155 @@
1-
dnf_repos_default:
2-
appstream: # yum_repository:name
3-
'8.10': # ansible_distribution_version or ansible_distribution_major_version
4-
repo_file: Rocky-AppStream # yum_repository: file
5-
# repo_name: # optional, override yum_repository:name
6-
pulp_path: rocky/8.10/AppStream/x86_64/os
7-
pulp_timestamp: 20250614T013846
8-
# pulp_content_url: # optional, dnf_repos_pulp_content_url
9-
pulp_repo_name: appstream # pulp repository name
10-
'9.4':
11-
repo_file: rocky
12-
pulp_path: rocky/9.4/AppStream/x86_64/os
13-
pulp_timestamp: 20241112T003151
14-
pulp_repo_name: appstream
15-
'9.5':
16-
repo_file: rocky
17-
pulp_path: rocky/9.5/AppStream/x86_64/os
18-
pulp_timestamp: 20250514T014704
19-
pulp_repo_name: appstream
20-
'9.6':
21-
repo_file: rocky
22-
pulp_path: rocky/9.6/AppStream/x86_64/os
23-
pulp_timestamp: 20250726T040613
24-
pulp_repo_name: appstream
25-
baseos:
26-
'8.10':
27-
repo_file: Rocky-BaseOS
28-
pulp_path: rocky/8.10/BaseOS/x86_64/os
29-
pulp_timestamp: 20250614T013846
30-
pulp_repo_name: baseos
31-
'9.4':
32-
repo_file: rocky
33-
pulp_path: rocky/9.4/BaseOS/x86_64/os
34-
pulp_timestamp: 20241115T011711
35-
pulp_repo_name: baseos
36-
'9.5':
37-
repo_file: rocky
38-
pulp_path: rocky/9.5/BaseOS/x86_64/os
39-
pulp_timestamp: 20250513T031844
40-
pulp_repo_name: baseos
41-
'9.6':
42-
repo_file: rocky
43-
pulp_path: rocky/9.6/BaseOS/x86_64/os
44-
pulp_timestamp: 20250726T052250
45-
pulp_repo_name: baseos
46-
Ceph:
47-
'8':
48-
repo_file: ceph
49-
pulp_path: centos/8-stream/storage/x86_64/ceph-quincy
50-
pulp_timestamp: 20231104T015751
51-
pulp_repo_name: baseos
52-
'9':
53-
repo_file: ceph
54-
pulp_path: centos/9-stream/storage/x86_64/ceph-reef
55-
pulp_timestamp: 20250617T023108
56-
pulp_repo_name: baseos
57-
crb:
58-
'8.10':
59-
repo_name: powertools
60-
repo_file: Rocky-PowerTools
61-
pulp_path: rocky/8.10/PowerTools/x86_64/os
62-
pulp_timestamp: 20250614T013846
63-
pulp_repo_name: crb
64-
'9.4':
65-
repo_file: rocky
66-
pulp_path: rocky/9.4/CRB/x86_64/os
67-
pulp_timestamp: 20241115T003133
68-
pulp_repo_name: crb
69-
'9.5':
70-
repo_file: rocky
71-
pulp_path: rocky/9.5/CRB/x86_64/os
72-
pulp_timestamp: 20250514T014704
73-
pulp_repo_name: crb
74-
'9.6':
75-
repo_file: rocky
76-
pulp_path: rocky/9.6/CRB/x86_64/os
77-
pulp_timestamp: 20250726T040613
78-
pulp_repo_name: crb
79-
extras:
80-
'8.10':
81-
repo_file: Rocky-Extras
82-
pulp_path: rocky/8.10/extras/x86_64/os
83-
pulp_timestamp: 20250510T032327
84-
pulp_repo_name: extras
85-
'9.4':
86-
repo_file: rocky-extras
87-
pulp_path: rocky/9.4/extras/x86_64/os
88-
pulp_timestamp: 20241118T002802
89-
pulp_repo_name: extras
90-
'9.5':
91-
repo_file: rocky-extras
92-
pulp_path: rocky/9.5/extras/x86_64/os
93-
pulp_timestamp: 20250506T032818
94-
pulp_repo_name: extras
95-
'9.6':
96-
repo_file: rocky-extras
97-
pulp_path: rocky/9.6/extras/x86_64/os
98-
pulp_timestamp: 20250726T040613
99-
pulp_repo_name: extras
100-
grafana:
101-
'8':
102-
repo_file: grafana
103-
pulp_path: grafana/oss/rpm
104-
timestamp: 20250615T005738
105-
pulp_repo_name: grafana
106-
'9':
107-
repo_file: grafana
108-
pulp_path: grafana/oss/rpm
109-
pulp_timestamp: 20250730T011314
110-
pulp_repo_name: grafana
111-
# TODO: figure out how to break out openhpc repos out separately to allow for no-ohpc case
112-
openhpc_base:
113-
'8':
114-
repo_file: OpenHPC
115-
pulp_path: OpenHPC/2/EL_8
116-
pulp_timestamp: 20241218T154614
117-
pulp_repo_name: ohpc
118-
'9':
119-
repo_file: OpenHPC
120-
pulp_path: OpenHPC/3/EL_9
121-
pulp_timestamp: 20241218T154614
122-
pulp_repo_name: ohpc
123-
openhpc_updates:
124-
'8':
125-
repo_file: OpenHPC
126-
pulp_path: OpenHPC/2/updates/EL_8
127-
pulp_timestamp: 20250512T003315
128-
pulp_repo_name: ohpc-updates
129-
'9':
130-
repo_file: OpenHPC
131-
pulp_path: OpenHPC/3/updates/EL_9
132-
pulp_timestamp: 20250510T003301
133-
pulp_repo_name: ohpc-updates
1+
dnf_repos_all: "{{ dnf_repos_no_epel | combine(dnf_repos_default_epel) }}"
2+
dnf_repos_no_epel: |
3+
{{ dnf_repos_default['base']
4+
| combine(dnf_repos_default['ohpc'] if (openhpc_install_type | default('ohpc')) == 'ohpc' else {})
5+
| combine(dnf_repos_extra) }}
6+
dnf_repos_default_epel: "{{ dnf_repos_default['epel'] }}"
1347

135-
dnf_repos_default_epel: # as for dnf_repos_default
8+
dnf_repos_default:
9+
base: # top level keys for internal indexing only, see ansible/roles/dnf_repos/defaults.yml
10+
appstream: # yum_repository:name
11+
'8.10': # ansible_distribution_version or ansible_distribution_major_version
12+
repo_file: Rocky-AppStream # yum_repository: file
13+
# repo_name: # optional, override yum_repository:name
14+
pulp_path: rocky/8.10/AppStream/x86_64/os
15+
pulp_timestamp: 20250614T013846
16+
# pulp_content_url: # optional, dnf_repos_pulp_content_url
17+
pulp_repo_name: appstream # pulp repository name
18+
'9.4':
19+
repo_file: rocky
20+
pulp_path: rocky/9.4/AppStream/x86_64/os
21+
pulp_timestamp: 20241112T003151
22+
pulp_repo_name: appstream
23+
'9.5':
24+
repo_file: rocky
25+
pulp_path: rocky/9.5/AppStream/x86_64/os
26+
pulp_timestamp: 20250514T014704
27+
pulp_repo_name: appstream
28+
'9.6':
29+
repo_file: rocky
30+
pulp_path: rocky/9.6/AppStream/x86_64/os
31+
pulp_timestamp: 20250726T040613
32+
pulp_repo_name: appstream
33+
baseos:
34+
'8.10':
35+
repo_file: Rocky-BaseOS
36+
pulp_path: rocky/8.10/BaseOS/x86_64/os
37+
pulp_timestamp: 20250614T013846
38+
pulp_repo_name: baseos
39+
'9.4':
40+
repo_file: rocky
41+
pulp_path: rocky/9.4/BaseOS/x86_64/os
42+
pulp_timestamp: 20241115T011711
43+
pulp_repo_name: baseos
44+
'9.5':
45+
repo_file: rocky
46+
pulp_path: rocky/9.5/BaseOS/x86_64/os
47+
pulp_timestamp: 20250513T031844
48+
pulp_repo_name: baseos
49+
'9.6':
50+
repo_file: rocky
51+
pulp_path: rocky/9.6/BaseOS/x86_64/os
52+
pulp_timestamp: 20250726T052250
53+
pulp_repo_name: baseos
54+
Ceph:
55+
'8':
56+
repo_file: ceph
57+
pulp_path: centos/8-stream/storage/x86_64/ceph-quincy
58+
pulp_timestamp: 20231104T015751
59+
pulp_repo_name: ceph
60+
'9':
61+
repo_file: ceph
62+
pulp_path: centos/9-stream/storage/x86_64/ceph-reef
63+
pulp_timestamp: 20250617T023108
64+
pulp_repo_name: ceph
65+
crb:
66+
'8.10':
67+
repo_name: powertools
68+
repo_file: Rocky-PowerTools
69+
pulp_path: rocky/8.10/PowerTools/x86_64/os
70+
pulp_timestamp: 20250614T013846
71+
pulp_repo_name: crb
72+
'9.4':
73+
repo_file: rocky
74+
pulp_path: rocky/9.4/CRB/x86_64/os
75+
pulp_timestamp: 20241115T003133
76+
pulp_repo_name: crb
77+
'9.5':
78+
repo_file: rocky
79+
pulp_path: rocky/9.5/CRB/x86_64/os
80+
pulp_timestamp: 20250514T014704
81+
pulp_repo_name: crb
82+
'9.6':
83+
repo_file: rocky
84+
pulp_path: rocky/9.6/CRB/x86_64/os
85+
pulp_timestamp: 20250726T040613
86+
pulp_repo_name: crb
87+
extras:
88+
'8.10':
89+
repo_file: Rocky-Extras
90+
pulp_path: rocky/8.10/extras/x86_64/os
91+
pulp_timestamp: 20250510T032327
92+
pulp_repo_name: extras
93+
'9.4':
94+
repo_file: rocky-extras
95+
pulp_path: rocky/9.4/extras/x86_64/os
96+
pulp_timestamp: 20241118T002802
97+
pulp_repo_name: extras
98+
'9.5':
99+
repo_file: rocky-extras
100+
pulp_path: rocky/9.5/extras/x86_64/os
101+
pulp_timestamp: 20250506T032818
102+
pulp_repo_name: extras
103+
'9.6':
104+
repo_file: rocky-extras
105+
pulp_path: rocky/9.6/extras/x86_64/os
106+
pulp_timestamp: 20250726T040613
107+
pulp_repo_name: extras
108+
grafana:
109+
'8':
110+
repo_file: grafana
111+
pulp_path: grafana/oss/rpm
112+
timestamp: 20250615T005738
113+
pulp_repo_name: grafana
114+
'9':
115+
repo_file: grafana
116+
pulp_path: grafana/oss/rpm
117+
pulp_timestamp: 20250730T011314
118+
pulp_repo_name: grafana
119+
ohpc:
120+
openhpc_base:
121+
'8':
122+
repo_file: OpenHPC
123+
pulp_path: OpenHPC/2/EL_8
124+
pulp_timestamp: 20241218T154614
125+
pulp_repo_name: ohpc
126+
'9':
127+
repo_file: OpenHPC
128+
pulp_path: OpenHPC/3/EL_9
129+
pulp_timestamp: 20241218T154614
130+
pulp_repo_name: ohpc
131+
openhpc_updates:
132+
'8':
133+
repo_file: OpenHPC
134+
pulp_path: OpenHPC/2/updates/EL_8
135+
pulp_timestamp: 20250512T003315
136+
pulp_repo_name: ohpc-updates
137+
'9':
138+
repo_file: OpenHPC
139+
pulp_path: OpenHPC/3/updates/EL_9
140+
pulp_timestamp: 20250510T003301
141+
pulp_repo_name: ohpc-updates
136142
epel:
137-
'8':
138-
repo_file: epel
139-
pulp_path: epel/8/Everything/x86_64
140-
pulp_timestamp: 20250615T234151
141-
pulp_repo_name: epel
142-
'9':
143-
repo_file: epel
144-
pulp_path: epel/9/Everything/x86_64
145-
pulp_timestamp: 20250729T235750
146-
pulp_repo_name: epel
143+
epel:
144+
'8':
145+
repo_file: epel
146+
pulp_path: epel/8/Everything/x86_64
147+
pulp_timestamp: 20250615T234151
148+
pulp_repo_name: epel
149+
'9':
150+
repo_file: epel
151+
pulp_path: epel/9/Everything/x86_64
152+
pulp_timestamp: 20250729T235750
153+
pulp_repo_name: epel
147154

148155
dnf_repos_extra: {}

0 commit comments

Comments
 (0)