Skip to content

Commit 4de581c

Browse files
wtripp180901sjpb
andauthored
Use rocky 9.4 release train snapshots for builds (#486)
* replaces system repos with ark repos during ci * now uses lookup instead of packer args * only applies to RL9 for now * refactored ark role, disabled repos at end of build and modified site to work with disabled repos * fixed ood install with disbaled repos + fixed ark CRB typo * fixed eessi install and slurm not loading appliances_mode * variables renames + more ansible facts in dnf_repos * bump images * added review comment Co-authored-by: Steve Brasier <[email protected]> * moved config into builder and .stackhpc --------- Co-authored-by: Steve Brasier <[email protected]>
1 parent f23be23 commit 4de581c

File tree

18 files changed

+123
-6
lines changed

18 files changed

+123
-6
lines changed

.github/workflows/fatimage.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ jobs:
3939
"openstack.openhpc": "rocky-latest-RL9"
4040
}
4141
}
42+
ARK_PASSWORD: ${{ secrets.ARK_PASSWORD }}
4243

4344
steps:
4445
- uses: actions/checkout@v2

.github/workflows/nightlybuild.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
"RL8": "Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2",
3838
"RL9": "Rocky-9-GenericCloud-Base-9.4-20240523.0.x86_64.qcow2"
3939
}
40+
ARK_PASSWORD: ${{ secrets.ARK_PASSWORD }}
4041

4142
steps:
4243
- uses: actions/checkout@v2

ansible/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,5 @@ roles/*
6464
!roles/k9s/**
6565
!roles/lustre/
6666
!roles/lustre/**
67+
!roles/dnf_repos/
68+
!roles/dnf_repos/**

ansible/fatimage.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@
9898
tasks_from: jupyter_compute.yml
9999
when: "'openondemand_jupyter' in group_names"
100100

101+
- name: Install Apache PAM module # Extracted from start of roles/openondemand/tasks/pam_auth.yml to ensure only installed during build
102+
yum:
103+
name: mod_authnz_pam
104+
101105
# - import_playbook: monitoring.yml:
102106
- import_role:
103107
name: opensearch
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
dnf_repos_rocky_ark_prefix: https://ark.stackhpc.com/pulp/content/{{ ansible_distribution | lower }}/{{ ansible_distribution_version }}
2+
dnf_repos_rocky_ark_suffix: "{{ ansible_architecture }}/os/{{ dnf_repos_rocky_ark_timestamp }}/"
3+
# most stable from https://github.com/stackhpc/stackhpc-kayobe-config/blob/stackhpc/2024.1/etc/kayobe/pulp-repo-versions.yml
4+
# note that some timestamps can't be used because not all repos have snapshots for them
5+
dnf_repos_rocky_ark_timestamp: 20240816T002610
6+
dnf_repos_username: slurm-app-ci
7+
dnf_repos_password: "{{ lookup('ansible.builtin.env', 'ARK_PASSWORD') }}"
8+
9+
# epel installed separately
10+
dnf_repos_repolist:
11+
- file: rocky
12+
name: baseos
13+
base_url: "{{ dnf_repos_rocky_ark_prefix }}/BaseOS/{{ dnf_repos_rocky_ark_suffix }}"
14+
- file: rocky
15+
name: appstream
16+
base_url: "{{ dnf_repos_rocky_ark_prefix }}/AppStream/{{ dnf_repos_rocky_ark_suffix }}"
17+
- file: rocky
18+
name: crb
19+
base_url: "{{ dnf_repos_rocky_ark_prefix }}/CRB/{{ dnf_repos_rocky_ark_suffix }}"
20+
- file: rocky-extras
21+
name: extras
22+
base_url: "{{ dnf_repos_rocky_ark_prefix }}/extras/{{ dnf_repos_rocky_ark_suffix }}"
23+
24+
dnf_repos_epel_timestamp: 20240902T080424
25+
dnf_repos_epel_baseurl: "https://ark.stackhpc.com/pulp/content/epel/{{ ansible_distribution_major_version }}/Everything/{{ ansible_architecture }}/{{ dnf_repos_epel_timestamp }}"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
- name: Disable Pulp repos and remove creds
3+
ansible.builtin.yum_repository:
4+
file: "{{ item.file }}"
5+
name: "{{ item.name }}"
6+
baseurl: "{{ item.base_url }}"
7+
description: "{{ item.name }}"
8+
enabled: false
9+
loop: "{{ dnf_repos_repolist }}"
10+
11+
- name: Disable EPEL repo and remove creds
12+
ansible.builtin.yum_repository:
13+
name: epel
14+
file: epel
15+
description: epel
16+
baseurl: "{{ dnf_repos_epel_baseurl }}"
17+
gpgcheck: false
18+
enabled: false
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
3+
- name: Replace system repos with Pulp repos
4+
ansible.builtin.yum_repository:
5+
file: "{{ item.file }}"
6+
name: "{{ item.name }}"
7+
baseurl: "{{ item.base_url }}"
8+
description: "{{ item.name }}"
9+
username: "{{ dnf_repos_username }}"
10+
password: "{{ dnf_repos_password }}"
11+
loop: "{{ dnf_repos_repolist }}"
12+
13+
- name: Install epel-release
14+
# done so that roles installing epel via epel-release don't over-write our changes to the epel repo
15+
ansible.builtin.dnf:
16+
name: epel-release
17+
18+
- name: Use Pulp EPEL repo
19+
ansible.builtin.yum_repository:
20+
name: epel
21+
file: epel
22+
description: epel
23+
gpgcheck: false
24+
username: "{{ dnf_repos_username }}"
25+
password: "{{ dnf_repos_password }}"
26+
baseurl: "{{ dnf_repos_epel_baseurl }}"

ansible/roles/eessi/tasks/main.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- name: Add CVMFS repo
1111
dnf:
1212
name: https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm
13+
disable_gpg_check: true
1314

1415
- name: Install CVMFS
1516
dnf:

ansible/roles/openondemand/tasks/main.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@
66
loop: "{{ openondemand_osc_ood_defaults | dict2items }}"
77
when: (item.key in hostvars[inventory_hostname]) or (item.value)
88

9+
# osc.ood variables are exposed to play here instead of setting 'public' in include role so that they will still be exposed during runtime
10+
- ansible.builtin.include_vars:
11+
dir: "{{ playbook_dir }}/roles/osc.ood/defaults/main"
12+
13+
- ansible.builtin.include_vars:
14+
file: "{{ playbook_dir }}/roles/osc.ood/vars/Rocky/{{ ansible_distribution_major_version }}.yml"
15+
916
# if using PAM auth we need apache installed but NOT started so split the osc.ood role up:
1017
- include_role:
1118
name: osc.ood
1219
tasks_from: install-package.yml
1320
vars_from: "Rocky/{{ ansible_distribution_major_version }}.yml"
14-
public: yes # Expose the vars from this role to the rest of the play
21+
when: appliances_mode != 'configure'
1522
# can't set vars: from a dict hence the workaround above
1623

1724
- include_tasks:

ansible/roles/openondemand/tasks/pam_auth.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# https://osc.github.io/ood-documentation/latest/authentication/pam.html
22
---
3-
- name: Install Apache PAM module
3+
- name: Install Apache PAM module # Extracted from start of roles/openondemand/tasks/pam_auth.yml to ensure only installed during build
44
yum:
55
name: mod_authnz_pam
66

0 commit comments

Comments
 (0)