diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index 63673333da..9e409437b3 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -39,11 +39,15 @@ jobs: steps: - name: Install testing tools run: | - dnf install -y ansible-lint nodejs git ansible + dnf install -y python3-pip nodejs git + pip3 install ansible-core ansible-lint - name: Install ansible collections run: | - ansible-galaxy collection install community.zabbix + ansible-galaxy collection install \ + community.zabbix \ + community.general \ + ansible.posix - name: Checkout code uses: https://code.forgejo.org/actions/checkout@v6 diff --git a/files/download/sync-up-downloads.sh.ib01 b/files/download/sync-up-downloads.sh.ib01 index fa2c3e64cc..1bfb1e38e5 100755 --- a/files/download/sync-up-downloads.sh.ib01 +++ b/files/download/sync-up-downloads.sh.ib01 @@ -8,7 +8,7 @@ RSYNC='/usr/bin/rsync' RS_OPT="-avSHP --numeric-ids" RS_DEADLY="--delete --delete-excluded --delete-delay --delay-updates" -ALT_EXCLUDES="" +ALT_EXCLUDES="--exclude 44_Beta*" # 2026-04-16 - tmp. running out of space EPL_EXCLUDES="" FED_EXCLUDES="" diff --git a/inventory/builders b/inventory/builders index 1875224f87..13448e4fe8 100644 --- a/inventory/builders +++ b/inventory/builders @@ -289,6 +289,9 @@ buildhw-x86-01.rdu3.fedoraproject.org buildhw-x86-02.rdu3.fedoraproject.org buildhw-x86-03.rdu3.fedoraproject.org buildhw-x86-04.rdu3.fedoraproject.org +buildhw-x86-05.rdu3.fedoraproject.org +buildhw-x86-06.rdu3.fedoraproject.org +buildhw-x86-07.rdu3.fedoraproject.org buildhw-x86-08.rdu3.fedoraproject.org buildhw-x86-09.rdu3.fedoraproject.org buildhw-x86-10.rdu3.fedoraproject.org @@ -312,6 +315,9 @@ buildhw-x86-02.rdu3.fedoraproject.org buildhw-x86-03.rdu3.fedoraproject.org buildhw-x86-04.rdu3.fedoraproject.org # old iad2 hw +buildhw-x86-05.rdu3.fedoraproject.org +buildhw-x86-06.rdu3.fedoraproject.org +buildhw-x86-07.rdu3.fedoraproject.org buildhw-x86-08.rdu3.fedoraproject.org buildhw-x86-09.rdu3.fedoraproject.org buildhw-x86-10.rdu3.fedoraproject.org diff --git a/inventory/group_vars/all b/inventory/group_vars/all index cd8f8c2a22..2ae29716a2 100644 --- a/inventory/group_vars/all +++ b/inventory/group_vars/all @@ -100,6 +100,7 @@ communishift_projects: name: communishift-planet communishift-standupbot: name: communishift-standupbot + do_not_delete: true # Marked do not delete 2026-05-01 - dkirwan communishift-weekly-bootc: do_not_delete: true # Marked do not delete 2024-11-26. Needed until end of bootc initative. - dkirwan name: communishift-weekly-bootc diff --git a/inventory/group_vars/buildvm_aarch64_stg b/inventory/group_vars/buildvm_aarch64_stg index 08f009690a..38e4097b0d 100644 --- a/inventory/group_vars/buildvm_aarch64_stg +++ b/inventory/group_vars/buildvm_aarch64_stg @@ -18,7 +18,7 @@ koji_topurl: "https://kojipkgs.stg.fedoraproject.org/" # Groups and individual hosts should ovveride them with specific info. koji_weburl: "https://koji.stg.fedoraproject.org/koji" -ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/aarch64/os/ +ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/44/Server/aarch64/os/ ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora lvm_size: 140000 max_cpu: "{{ num_cpus }}" diff --git a/inventory/group_vars/copr_aws b/inventory/group_vars/copr_aws index ffcaca5ff6..db4fb0dcf3 100644 --- a/inventory/group_vars/copr_aws +++ b/inventory/group_vars/copr_aws @@ -26,18 +26,13 @@ builders: aarch64: [50, 20, 33] x86_64: [70, 20, 52] aws_reserved_powerful: - x86_64: [1, 1, 1] + x86_64: [2, 2, 2] aws_powerful: aarch64: [10, 2, 0] x86_64: [10, 2, 1] aws_spot: aarch64: [30, 4, 1] x86_64: [70, 8, 16] - ppc64le_hypervisor_01: - ppc64le: [0, 4, 15] - # There's the ppc64le-test machine, so keep 2 builders less. - ppc64le_hypervisor_02: - ppc64le: [0, 4, 13] p09_hypervisor_01: ppc64le: [15, 5, 15] p09_hypervisor_02: @@ -61,42 +56,42 @@ builders: x86_hypervisor_03: x86_64: [20, 4, 20] x86_hypervisor_04: - x86_64: [20, 4, 20] + x86_64: [0, 4, 20] ibm_cloud_us_east_hp: s390x: [2, 1, 0] ibm_cloud_br_sao_1: - s390x: [3, 1, 1] + s390x: [3, 3, 1] ibm_cloud_br_sao_2: - s390x: [3, 1, 1] + s390x: [3, 3, 1] ibm_cloud_br_sao_3: - s390x: [3, 1, 1] + s390x: [3, 3, 1] ibm_cloud_eu_es_1: - s390x: [3, 1, 1] + s390x: [3, 3, 1] ibm_cloud_eu_es_2: - s390x: [3, 1, 1] + s390x: [3, 3, 1] ibm_cloud_eu_es_3: - s390x: [3, 1, 1] + s390x: [3, 3, 1] cloud_instance_types: ibm_cloud: - s390x: mz2-2x16 + s390x: bz2-2x8 s390x_hp: bz2-16x64 ibm_cloud_regions: eu_es: name: eu-es name_humans: Madrid, Spain - ssh_key: r050-cbd10ece-a28f-45c8-bc3a-15ecb9ff66d5 + ssh_key: r050-4e396a17-294c-4197-9c56-e126185025a1 vpc: r050-190b8bac-3bae-47cf-9be7-ac70fc54ccb9 security_group: r050-cfc3db07-8cde-4807-9756-db91b242092a images: "{{ copr_builder_images.ibm_cloud.eu_es }}" br_sao: name: br-sao name_humans: Sao Paulo, Brazil - ssh_key: r042-4fb65a23-e7bd-440f-8d71-ff57b83a4152 + ssh_key: r042-b30ff308-ef4f-43bf-bdd6-e16f1cc614cd vpc: r042-c902f12d-556f-4334-95cb-d181ebb3d8ba security_group: r042-22ef3881-fa20-4caa-9873-c8dc41c5dcb7 images: "{{ copr_builder_images.ibm_cloud.br_sao }}" diff --git a/inventory/group_vars/copr_dev_aws b/inventory/group_vars/copr_dev_aws index 0ecc09b90a..ae0e6961e2 100644 --- a/inventory/group_vars/copr_dev_aws +++ b/inventory/group_vars/copr_dev_aws @@ -33,10 +33,6 @@ builders: aws_spot: aarch64: [3, 3, 1] x86_64: [0, 0, 1] - ppc64le_hypervisor_01: - ppc64le: [0, 1, 1] - ppc64le_hypervisor_02: - ppc64le: [0, 1, 1] p09_hypervisor_01: ppc64le: [1, 1, 1] p09_hypervisor_02: @@ -60,7 +56,7 @@ builders: x86_hypervisor_03: x86_64: [2, 1, 1] x86_hypervisor_04: - x86_64: [2, 1, 1] + x86_64: [0, 1, 1] ibm_cloud_us_east_hp: s390x: [1, 1, 0] @@ -68,34 +64,34 @@ builders: ibm_cloud_br_sao_1: s390x: [1, 1, 0] ibm_cloud_br_sao_2: - s390x: [1, 1, 0] + s390x: [0, 0, 0] ibm_cloud_br_sao_3: - s390x: [1, 1, 0] + s390x: [0, 0, 0] ibm_cloud_eu_es_1: - s390x: [1, 1, 0] + s390x: [0, 0, 0] ibm_cloud_eu_es_2: - s390x: [1, 1, 0] + s390x: [0, 0, 0] ibm_cloud_eu_es_3: - s390x: [1, 1, 0] + s390x: [0, 0, 0] cloud_instance_types: ibm_cloud: - s390x: mz2-2x16 + s390x: bz2-2x8 s390x_hp: bz2-16x64 ibm_cloud_regions: eu_es: name: eu-es name_humans: Madrid, Spain - ssh_key: r050-cbd10ece-a28f-45c8-bc3a-15ecb9ff66d5 + ssh_key: r050-ea3b598c-39ca-4963-b8ef-c9d6ac146fad vpc: r050-190b8bac-3bae-47cf-9be7-ac70fc54ccb9 security_group: r050-cfc3db07-8cde-4807-9756-db91b242092a images: "{{ copr_builder_images.ibm_cloud.eu_es }}" br_sao: name: br-sao name_humans: Sao Paulo, Brazil - ssh_key: r042-4fb65a23-e7bd-440f-8d71-ff57b83a4152 + ssh_key: r042-3ec7f0e1-3eb3-4f55-a922-915c85da09c2 vpc: r042-c902f12d-556f-4334-95cb-d181ebb3d8ba security_group: r042-22ef3881-fa20-4caa-9873-c8dc41c5dcb7 images: "{{ copr_builder_images.ibm_cloud.br_sao }}" diff --git a/inventory/group_vars/copr_hypervisor b/inventory/group_vars/copr_hypervisor index 7a2fe21d09..2dd7d4013e 100644 --- a/inventory/group_vars/copr_hypervisor +++ b/inventory/group_vars/copr_hypervisor @@ -19,6 +19,8 @@ primary_auth_source: ipa nbde: true nbde_device: /dev/md2 +nbde_device2: /dev/md3 +nbde_device3: /dev/md4 nbde_client_bindings: - device: "{{ nbde_device }}" encryption_password: "{{ nbde_password }}" @@ -27,6 +29,20 @@ nbde_client_bindings: servers: - http://tang01.rdu3.fedoraproject.org - http://tang02.rdu3.fedoraproject.org + - device: "{{ nbde_device2 }}" + encryption_password: "{{ nbde_password }}" + password_temporary: no + threshold: 1 + servers: + - http://tang01.rdu3.fedoraproject.org + - http://tang02.rdu3.fedoraproject.org + - device: "{{ nbde_device3 }}" + encryption_password: "{{ nbde_password }}" + password_temporary: no + threshold: 1 + servers: + - http://tang01.rdu3.fedoraproject.org + - http://tang02.rdu3.fedoraproject.org libvirt_host: "{{ inventory_hostname }}" diff --git a/inventory/group_vars/download b/inventory/group_vars/download index 3f896606ca..272948f7d0 100644 --- a/inventory/group_vars/download +++ b/inventory/group_vars/download @@ -107,6 +107,9 @@ dl_tier1: - sv.mirrors.kernel.org - dfw.mirrors.kernel.org - mirror.raiolanetworks.com # 91.132.103.246 / 2a12:d282:102:f6::1 + - ftp-osl.osuosl.org # 140.211.166.134 / 2605:bc80:3010::134 + - ftp-chi.osuosl.org # 64.50.236.52 / 2600:3402:200:227::2 + - ftp-nyc.osuosl.org # 64.50.233.100 ipa_host_group: download ipa_host_group_desc: Download servers nagios_Check_Services: diff --git a/inventory/group_vars/koji_riscv b/inventory/group_vars/koji_riscv index 0f147d0c6e..84fa7ea95d 100644 --- a/inventory/group_vars/koji_riscv +++ b/inventory/group_vars/koji_riscv @@ -11,8 +11,8 @@ ipa_host_group_desc: riscv Koji Hub hosts koji_hub: "riscv-koji.fedoraproject.org/kojihub" koji_root: "riscv-koji.fedoraproject.org/koji" lvm_size: 100000 -mem_size: 32768 -max_mem_size: 65536 +mem_size: 45056 +max_mem_size: 90112 nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=4" num_cpus: 8 primary_auth_source: ipa diff --git a/inventory/group_vars/wiki b/inventory/group_vars/wiki index 6e80764a73..f75a51f7b3 100644 --- a/inventory/group_vars/wiki +++ b/inventory/group_vars/wiki @@ -14,7 +14,7 @@ lvm_size: 30000 max_mem_size: 8192 mem_size: 8192 nfs_mount_opts: "rw,hard,bg,intr,noatime,nodev,nosuid,sec=sys,nfsvers=3" -num_cpus: 4 +num_cpus: 16 primary_auth_source: ipa tcp_ports: [80] # mediawiki variables diff --git a/inventory/host_vars/buildhw-x86-05.rdu3.fedoraproject.org b/inventory/host_vars/buildhw-x86-05.rdu3.fedoraproject.org new file mode 100644 index 0000000000..a561490f04 --- /dev/null +++ b/inventory/host_vars/buildhw-x86-05.rdu3.fedoraproject.org @@ -0,0 +1,70 @@ +--- +bmc: + ip_address: 10.16.160.16 + ping: true + http: true + https: true +br0_ipv4_ip: 10.16.169.35 +br0_ipv4_gw: 10.16.169.254 +br0_ipv4_nm: 24 +datacenter: rdu3 +dns1: 10.16.163.33 +dns2: 10.16.163.34 +dns_search1: "rdu3.fedoraproject.org" +dns_search2: "fedoraproject.org" +has_ipv4: yes +mac0: c8:4b:d6:88:fb:c6 +mac1: c8:4b:d6:88:fb:c7 +mac2: 6c:fe:54:57:5f:48 +mac3: 6c:fe:54:57:5f:49 +network_connections: + # Bridge profile + - name: br0 + state: up + type: bridge + mtu: 1500 + autoconnect: yes + ip: + address: + - "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}" + dhcp4: no + dns: + - "{{ dns1 }}" + - "{{ dns2 }}" + dns_search: + - "{{ dns_search1 }}" + - "{{ dns_search2 }}" + gateway4: "{{ br0_ipv4_gw }}" + # Bond profile + - name: bond0 + type: bond + interface_name: bond0 + mtu: 1500 + controller: br0 + bond: + mode: 802.3ad + # Port profile for the 1st Ethernet device + - name: bond0-port1 + mac: "{{ mac2 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 + # Port profile for the 2nd Ethernet device + - name: bond0-port2 + mac: "{{ mac3 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 +# This is used to populate the inventory fields, only specific keys are allowed, see +# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory +zabbix_inventory: + date_hw_expiry: "" + date_hw_purchase: "2022-12-31" + hardware: PowerEdge R650 + location: RDU3 + oob_ip: "{{ bmc.ip_address }}" + serialno_a: 3ZGTRT3 + type: Prod_Dedicated_HW + vendor: Dell diff --git a/inventory/host_vars/buildhw-x86-06.rdu3.fedoraproject.org b/inventory/host_vars/buildhw-x86-06.rdu3.fedoraproject.org new file mode 100644 index 0000000000..e925331e79 --- /dev/null +++ b/inventory/host_vars/buildhw-x86-06.rdu3.fedoraproject.org @@ -0,0 +1,70 @@ +--- +bmc: + ip_address: 10.16.160.17 + ping: true + http: true + https: true +br0_ipv4_ip: 10.16.169.36 +br0_ipv4_gw: 10.16.169.254 +br0_ipv4_nm: 24 +datacenter: rdu3 +dns1: 10.16.163.33 +dns2: 10.16.163.34 +dns_search1: "rdu3.fedoraproject.org" +dns_search2: "fedoraproject.org" +has_ipv4: yes +mac0: c8:4b:d6:89:f7:5c +mac1: c8:4b:d6:89:f7:5d +mac2: 6c:fe:54:57:80:2c +mac3: 6c:fe:54:57:80:2d +network_connections: + # Bridge profile + - name: br0 + state: up + type: bridge + mtu: 1500 + autoconnect: yes + ip: + address: + - "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}" + dhcp4: no + dns: + - "{{ dns1 }}" + - "{{ dns2 }}" + dns_search: + - "{{ dns_search1 }}" + - "{{ dns_search2 }}" + gateway4: "{{ br0_ipv4_gw }}" + # Bond profile + - name: bond0 + type: bond + interface_name: bond0 + mtu: 1500 + controller: br0 + bond: + mode: 802.3ad + # Port profile for the 1st Ethernet device + - name: bond0-port1 + mac: "{{ mac2 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 + # Port profile for the 2nd Ethernet device + - name: bond0-port2 + mac: "{{ mac3 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 +# This is used to populate the inventory fields, only specific keys are allowed, see +# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory +zabbix_inventory: + date_hw_expiry: "" + date_hw_purchase: "2022-12-31" + hardware: PowerEdge R650 + location: RDU3 + oob_ip: "{{ bmc.ip_address }}" + serialno_a: 2ZGTRT3 + type: Prod_Dedicated_HW + vendor: Dell diff --git a/inventory/host_vars/buildhw-x86-07.rdu3.fedoraproject.org b/inventory/host_vars/buildhw-x86-07.rdu3.fedoraproject.org new file mode 100644 index 0000000000..9fa5f567c8 --- /dev/null +++ b/inventory/host_vars/buildhw-x86-07.rdu3.fedoraproject.org @@ -0,0 +1,68 @@ +--- +bmc: + ip_address: 10.16.160.18 + ping: true + http: true + https: true +br0_ipv4_ip: 10.16.169.37 +br0_ipv4_gw: 10.16.169.254 +br0_ipv4_nm: 24 +datacenter: rdu3 +dns1: 10.16.163.33 +dns2: 10.16.163.34 +dns_search1: "rdu3.fedoraproject.org" +dns_search2: "fedoraproject.org" +has_ipv4: yes +mac0: 6c:fe:54:57:4d:80 +mac1: 6c:fe:54:57:4d:81 +network_connections: + # Bridge profile + - name: br0 + state: up + type: bridge + mtu: 1500 + autoconnect: yes + ip: + address: + - "{{ br0_ipv4_ip }}/{{ br0_ipv4_nm }}" + dhcp4: no + dns: + - "{{ dns1 }}" + - "{{ dns2 }}" + dns_search: + - "{{ dns_search1 }}" + - "{{ dns_search2 }}" + gateway4: "{{ br0_ipv4_gw }}" + # Bond profile + - name: bond0 + type: bond + interface_name: bond0 + mtu: 1500 + controller: br0 + bond: + mode: 802.3ad + # Port profile for the 1st Ethernet device + - name: bond0-port1 + mac: "{{ mac0 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 + # Port profile for the 2nd Ethernet device + - name: bond0-port2 + mac: "{{ mac1 }}" + type: ethernet + controller: bond0 + state: up + mtu: 1500 +# This is used to populate the inventory fields, only specific keys are allowed, see +# https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory +zabbix_inventory: + date_hw_expiry: "2029-02-17" + date_hw_purchase: "2022-12-31" + hardware: PowerEdge R650 + location: RDU3 + oob_ip: "{{ bmc.ip_address }}" + serialno_a: 617DRT3 + type: Prod_Dedicated_HW + vendor: Dell diff --git a/inventory/host_vars/db-datanommer02.rdu3.fedoraproject.org b/inventory/host_vars/db-datanommer02.rdu3.fedoraproject.org index d236314e3d..eef1208477 100644 --- a/inventory/host_vars/db-datanommer02.rdu3.fedoraproject.org +++ b/inventory/host_vars/db-datanommer02.rdu3.fedoraproject.org @@ -41,3 +41,5 @@ shared_buffers: "4GB" tcp_ports: [5432, 443] vmhost: vmhost-x86-04.rdu3.fedoraproject.org volgroup: /dev/vg_guests +zabbix_macros: + 'PG.LOCKS.MAX.WARN:"mirrormanager2"': 3000 diff --git a/inventory/host_vars/db01.rdu3.fedoraproject.org b/inventory/host_vars/db01.rdu3.fedoraproject.org index 5fdf9208b1..a2e97104fe 100644 --- a/inventory/host_vars/db01.rdu3.fedoraproject.org +++ b/inventory/host_vars/db01.rdu3.fedoraproject.org @@ -82,5 +82,6 @@ vmhost: vmhost-x86-04.rdu3.fedoraproject.org volgroup: /dev/vg_guests zabbix_macros: 'PG.LOCKS.MAX.WARN:"anitya"': 500 - 'PG.LOCKS.MAX.WARN:"bodhi2"': 200 + 'PG.LOCKS.MAX.WARN:"bodhi2"': 500 + 'PG.LOCKS.MAX.WARN:"datanommer2"': 1000 'PG.LOCKS.MAX.WARN:"hyperkitty"': 500 diff --git a/inventory/host_vars/ipsilon03.rdu3.fedoraproject.org b/inventory/host_vars/ipsilon03.rdu3.fedoraproject.org deleted file mode 100644 index c487278ee1..0000000000 --- a/inventory/host_vars/ipsilon03.rdu3.fedoraproject.org +++ /dev/null @@ -1,16 +0,0 @@ ---- -datacenter: rdu3 -eth0_ipv4_gw: 10.16.163.254 -eth0_ipv4_ip: 10.16.163.117 -ks_repo: https://infrastructure.fedoraproject.org/pub/fedora/linux/releases/43/Server/x86_64/os/ -ks_url: https://infrastructure.fedoraproject.org/repo/rhel/ks/kvm-fedora -vmhost: vmhost-x86-02.rdu3.fedoraproject.org -volgroup: /dev/vg_guests -# Network configuration for RDU3 -dns: 10.16.163.33 -dns1: 10.16.163.33 -dns2: 10.16.163.34 -dns_search1: "rdu3.fedoraproject.org" -dns_search2: "vpn.fedoraproject.org" -dns_search3: "fedoraproject.org" -openid: yes diff --git a/inventory/host_vars/openqa-a64-worker01.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker01.rdu3.fedoraproject.org index 6a27a6a941..aa02e092b4 100644 --- a/inventory/host_vars/openqa-a64-worker01.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker01.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/host_vars/openqa-a64-worker02.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker02.rdu3.fedoraproject.org index a5fc810824..1db5ac8d64 100644 --- a/inventory/host_vars/openqa-a64-worker02.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker02.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/host_vars/openqa-a64-worker03.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker03.rdu3.fedoraproject.org index 19ed4637ff..fe74f2b33d 100644 --- a/inventory/host_vars/openqa-a64-worker03.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker03.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/host_vars/openqa-a64-worker04.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker04.rdu3.fedoraproject.org index 62c971c506..1924e9a617 100644 --- a/inventory/host_vars/openqa-a64-worker04.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker04.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/host_vars/openqa-a64-worker05.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker05.rdu3.fedoraproject.org index faf5ba1cb2..a9d9851937 100644 --- a/inventory/host_vars/openqa-a64-worker05.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker05.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/host_vars/openqa-a64-worker06.rdu3.fedoraproject.org b/inventory/host_vars/openqa-a64-worker06.rdu3.fedoraproject.org index d9bed19285..a936f17992 100644 --- a/inventory/host_vars/openqa-a64-worker06.rdu3.fedoraproject.org +++ b/inventory/host_vars/openqa-a64-worker06.rdu3.fedoraproject.org @@ -67,7 +67,7 @@ nrpe_procs_warn: 1400 openqa_rngd: true openqa_tap_iface: bondbr0 # this is a very powerful machine, can handle so many openQA workers -openqa_workers: 60 +openqa_workers: 45 # also means we need to bump the load average threshold openqa_critical_threshold: 120 sudoers: "{{ private }}/files/sudo/qavirt-sudoers" @@ -76,7 +76,7 @@ sudoers: "{{ private }}/files/sudo/qavirt-sudoers" # QEMUPORT is: # $ENV{QEMUPORT} = ($options{instance}) * 10 + 20002; # so for worker 1 it's 20012, for worker 2 it's 20022, etc etc -tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453', '20463', '20473', '20483', '20493', '20503', '20513', '20523', '20533', '20543', '20553', '20563', '20573', '20583', '20593', '20603'] +tcp_ports: ['20013', '20023', '20033', '20043', '20053', '20063', '20073', '20083', '20093', '20103', '20113', '20123', '20133', '20143', '20153', '20163', '20173', '20183', '20193', '20203', '20213', '20223', '20233', '20243', '20253', '20263', '20273', '20283', '20293', '20303', '20313', '20323', '20333', '20343', '20353', '20363', '20373', '20383', '20393', '20403', '20413', '20423', '20433', '20443', '20453'] # This is used to populate the inventory fields, only specific keys are allowed, see # https://www.zabbix.com/documentation/current/en/manual/api/reference/host/object#host-inventory diff --git a/inventory/inventory b/inventory/inventory index a7ffdc9623..25542fccc8 100644 --- a/inventory/inventory +++ b/inventory/inventory @@ -330,12 +330,10 @@ ipsilon01.stg.rdu3.fedoraproject.org [ipsilon] ipsilon01.rdu3.fedoraproject.org ipsilon02.rdu3.fedoraproject.org -ipsilon03.rdu3.fedoraproject.org [ipsilon_rdu3] ipsilon01.rdu3.fedoraproject.org ipsilon02.rdu3.fedoraproject.org -ipsilon03.rdu3.fedoraproject.org [nagios] noc02.fedoraproject.org diff --git a/playbooks/groups/copr-hypervisor.yml b/playbooks/groups/copr-hypervisor.yml index 512c145f59..7e73eb0036 100644 --- a/playbooks/groups/copr-hypervisor.yml +++ b/playbooks/groups/copr-hypervisor.yml @@ -20,7 +20,7 @@ dest: /usr/bin/nbde_client-network-flush owner: root group: root - mode: 755 + mode: 0755 - name: tell NetworkManager we don't want any auto connections ansible.builtin.copy: @@ -28,7 +28,7 @@ dest: /etc/NetworkManager/conf.d/noautodefault.conf owner: root group: root - mode: 644 + mode: 0644 tasks: - import_role: name=base @@ -41,6 +41,7 @@ - import_role: name: copr/hypervisor tags: copr_hypervisor + - {import_role: name=serial-console, when: datacenter == 'rdu3' and ansible_architecture != 'ppc64le'} - {import_role: name=linux-system-roles.nbde_client, tags: ['nbde_client'], when: (nbde|bool) } diff --git a/playbooks/groups/people.yml b/playbooks/groups/people.yml index 994138fb8d..c22376d88b 100644 --- a/playbooks/groups/people.yml +++ b/playbooks/groups/people.yml @@ -79,6 +79,10 @@ - role: apache + - role: anubis-el + tags: + - anubis + - role: httpd/certificate certname: wildcard-2025.fedorapeople.org SSLCertificateChainFile: wildcard-2025.fedorapeople.org.intermediate.cert diff --git a/playbooks/include/proxies-redirects.yml b/playbooks/include/proxies-redirects.yml index e3d7dfc65b..35d3277502 100644 --- a/playbooks/include/proxies-redirects.yml +++ b/playbooks/include/proxies-redirects.yml @@ -1018,3 +1018,10 @@ target: https://communityhealth.languages-in-floss.eu tags: - languages + + - role: httpd/redirectmatch + shortname: provisioning-server + website: provisioning.fedoraproject.org + target: https://fedoraproject.org/iot/ + tags: + - provisioning diff --git a/playbooks/include/proxies-websites.yml b/playbooks/include/proxies-websites.yml index 2801d18fa2..aa852ecb37 100644 --- a/playbooks/include/proxies-websites.yml +++ b/playbooks/include/proxies-websites.yml @@ -48,8 +48,8 @@ server_aliases: - stg.fedoraproject.org - localhost - - www.fedoraproject.org - hotspot-nocache.fedoraproject.org + tags: fedoraproject.org # This is for all the other domains we own # that redirect to https://fedoraproject.org @@ -1292,6 +1292,7 @@ cert_name: "{{wildcard_cert_name}}" tags: - riscv-koji + anubis: true - role: httpd/website site_name: riscv-kojipkgs.fedoraproject.org @@ -1299,6 +1300,17 @@ cert_name: "{{wildcard_cert_name}}" tags: - riscv-koji + anubis: true + when: "'proxies_internal' not in group_names" + + - role: httpd/website + site_name: riscv-kojipkgs.fedoraproject.org + sslonly: true + cert_name: "{{wildcard_cert_name}}" + tags: + - riscv-koji + anubis: false + when: "'proxies_internal' in group_names" - role: httpd/website site_name: "forge{{ env_suffix }}.fedoraproject.org" diff --git a/playbooks/manual/communishift_send_email_notifications.yml b/playbooks/manual/communishift_send_email_notifications.yml index 551bd9ff7c..b42ccf1012 100644 --- a/playbooks/manual/communishift_send_email_notifications.yml +++ b/playbooks/manual/communishift_send_email_notifications.yml @@ -5,6 +5,9 @@ # Run notifications only: # ansible-playbook .../communishift_send_email_notifications.yml --tags communishift_send_notifications # +# Dry run (FASJSON + per-project preview, no SMTP mail): +# ansible-playbook .../communishift_send_email_notifications.yml --tags communishift_send_notifications -e communishift_email_notifications_dry_run=true +# - hosts: localhost user: root gather_facts: false @@ -31,3 +34,10 @@ tags: - communishift_send_notifications loop: "{{ lookup('dict', communishift_projects) }}" + + - name: Summary of Communishift projects notified # noqa: run-once[task] + ansible.builtin.debug: + msg: "{%- set ns = namespace(names=[]) %}{%- for item in communishift_projects | dict2items | sort(attribute='value.name') %}{%- if not (item.value.do_not_delete | default(false)) %}{%- set _ = ns.names.append(item.value.name) %}{%- endif %}{%- endfor %} {% if communishift_email_notifications_dry_run | default(false) %}Communishift notification dry run complete (no email sent). Would notify {{ ns.names | length }} project(s): {{ ns.names | join(' ') }}{% else %}Communishift notification run complete. Emails were sent for {{ ns.names | length }} project(s): {{ ns.names | join(' ') }}{% endif %}" + run_once: true + tags: + - communishift_send_notifications diff --git a/playbooks/openshift-apps/badges.yml b/playbooks/openshift-apps/badges.yml index 2cc5c50774..58a05b7338 100644 --- a/playbooks/openshift-apps/badges.yml +++ b/playbooks/openshift-apps/badges.yml @@ -182,8 +182,8 @@ # Deployment config - role: openshift/object object_app: badges - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml # Cron jobs - role: openshift/object diff --git a/playbooks/openshift-apps/blockerbugs.yml b/playbooks/openshift-apps/blockerbugs.yml index 5ab84eee75..b7652d6800 100644 --- a/playbooks/openshift-apps/blockerbugs.yml +++ b/playbooks/openshift-apps/blockerbugs.yml @@ -92,11 +92,6 @@ object_template: buildconfig.yml.j2 object_objectname: buildconfig.yml - - role: openshift/object - object_app: blockerbugs - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml - - role: openshift/object object_app: blockerbugs object_template: deployment.yml.j2 diff --git a/playbooks/openshift-apps/bodhi.yml b/playbooks/openshift-apps/bodhi.yml index eb933f6456..b2f288fbf8 100644 --- a/playbooks/openshift-apps/bodhi.yml +++ b/playbooks/openshift-apps/bodhi.yml @@ -139,8 +139,8 @@ haproxy.router.openshift.io/timeout: 180s - role: openshift/object object_app: bodhi - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/object object_app: bodhi object_template: critpathcron.yml.j2 @@ -169,22 +169,22 @@ post_tasks: - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-consumer --replicas={{ bodhi_openshift_pods }} + ansible.builtin.command: oc -n bodhi scale deployment bodhi-consumer --replicas={{ bodhi_openshift_pods }} when: env == "production" - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-celery --replicas={{ bodhi_openshift_pods }} + ansible.builtin.command: oc -n bodhi scale deployment bodhi-celery --replicas={{ bodhi_openshift_pods }} when: env == "production" - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-web --replicas=4 + ansible.builtin.command: oc -n bodhi scale deployment bodhi-web --replicas=4 when: env == "production" - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-consumer --replicas={{ bodhi_openshift_pods_stg_consumers }} + ansible.builtin.command: oc -n bodhi scale deployment bodhi-consumer --replicas={{ bodhi_openshift_pods_stg_consumers }} when: env == "staging" - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-celery --replicas={{ bodhi_openshift_pods }} + ansible.builtin.command: oc -n bodhi scale deployment bodhi-celery --replicas={{ bodhi_openshift_pods }} when: env == "staging" - name: Scale up pods - ansible.builtin.command: oc -n bodhi scale dc/bodhi-web --replicas={{ bodhi_openshift_pods }} + ansible.builtin.command: oc -n bodhi scale deployment bodhi-web --replicas={{ bodhi_openshift_pods }} when: env == "staging" - name: Set the timeout to the openshift route ansible.builtin.command: "oc -n bodhi annotate route bodhi-web --overwrite haproxy.router.openshift.io/timeout=180s" diff --git a/playbooks/openshift-apps/datanommer.yml b/playbooks/openshift-apps/datanommer.yml index 685458b35e..035b2d8611 100644 --- a/playbooks/openshift-apps/datanommer.yml +++ b/playbooks/openshift-apps/datanommer.yml @@ -80,8 +80,8 @@ - role: openshift/object object_app: datanommer - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/object object_app: datanommer diff --git a/playbooks/openshift-apps/easyfix.yml b/playbooks/openshift-apps/easyfix.yml deleted file mode 100644 index 7bfcbc31a8..0000000000 --- a/playbooks/openshift-apps/easyfix.yml +++ /dev/null @@ -1,71 +0,0 @@ -# -# Fedora Project easyfixes -# ---- -- name: Make the app be real - # hosts: os_control_stg:os_control - hosts: os_control_stg - user: root - gather_facts: false - - vars_files: - - /srv/web/infra/ansible/vars/global.yml - - /srv/private/ansible/vars.yml - - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml - - vars: - - roles: - - role: openshift/project - project_app: easyfix - project_description: "Easyfixes" - project_appowners: - - abompard - tags: - - apply-appowners - - - role: openshift/object - object_app: easyfix - object_file: imagestream.yml - object_objectname: imagestream.yml - - - role: openshift/object - object_app: easyfix - object_template: buildconfig.yml.j2 - object_objectname: buildconfig.yml - - - role: openshift/object - object_app: easyfix - object_file: storage.yml - object_objectname: storage.yml - - - role: openshift/object - object_app: easyfix - object_template: configmap.yml.j2 - object_objectname: configmap.yml - - - role: openshift/object - object_app: easyfix - object_file: service.yml - object_objectname: service.yml - - # Routes - - role: openshift/route - route_app: easyfix - route_name: web - route_host: "easyfix.apps.ocp{{ env_suffix }}.fedoraproject.org" - route_servicename: web - route_serviceport: web - route_annotations: - haproxy.router.openshift.io/timeout: 5m - - - role: openshift/object - object_app: easyfix - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml - - # Cron jobs - - role: openshift/object - object_app: easyfix - object_template: cron.yml.j2 - object_objectname: cron.yml diff --git a/playbooks/openshift-apps/elections.yml b/playbooks/openshift-apps/elections.yml index b5a2d1fe0a..b6f14c7f95 100644 --- a/playbooks/openshift-apps/elections.yml +++ b/playbooks/openshift-apps/elections.yml @@ -119,5 +119,5 @@ - role: openshift/object object_app: elections - object_file: deploymentconfig.yml - object_objectname: deploymentconfig.yml + object_file: deployment.yml + object_objectname: deployment.yml diff --git a/playbooks/openshift-apps/flatpak-indexer.yml b/playbooks/openshift-apps/flatpak-indexer.yml index 7a61fd982e..6b1dd8e1cc 100644 --- a/playbooks/openshift-apps/flatpak-indexer.yml +++ b/playbooks/openshift-apps/flatpak-indexer.yml @@ -60,5 +60,5 @@ - role: openshift/object object_app: flatpak-indexer - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml diff --git a/playbooks/openshift-apps/fmn.yml b/playbooks/openshift-apps/fmn.yml index 9c7169905d..b22930b1a7 100644 --- a/playbooks/openshift-apps/fmn.yml +++ b/playbooks/openshift-apps/fmn.yml @@ -217,8 +217,8 @@ # Deployment config - role: openshift/object object_app: fmn - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml # FASJSON access - role: openshift/ipa-client diff --git a/playbooks/openshift-apps/mirrormanager.yml b/playbooks/openshift-apps/mirrormanager.yml index 00f1fb7161..6a965741b8 100644 --- a/playbooks/openshift-apps/mirrormanager.yml +++ b/playbooks/openshift-apps/mirrormanager.yml @@ -133,8 +133,8 @@ # Deployment config - role: openshift/object object_app: mirrormanager - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml # Cron jobs - role: openshift/object diff --git a/playbooks/openshift-apps/noggin-centos.yml b/playbooks/openshift-apps/noggin-centos.yml index 4c1314007e..8f15a924dd 100644 --- a/playbooks/openshift-apps/noggin-centos.yml +++ b/playbooks/openshift-apps/noggin-centos.yml @@ -103,8 +103,8 @@ - role: openshift/object object_app: noggin object_os_app: noggin-centos - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/start-build start_build_app: noggin-centos diff --git a/playbooks/openshift-apps/noggin.yml b/playbooks/openshift-apps/noggin.yml index 54b84bb6dc..1bb8fac8db 100644 --- a/playbooks/openshift-apps/noggin.yml +++ b/playbooks/openshift-apps/noggin.yml @@ -98,8 +98,9 @@ - role: openshift/object object_app: noggin - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_os_app: noggin + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/start-build start_build_app: noggin diff --git a/playbooks/openshift-apps/poddlers.yml b/playbooks/openshift-apps/poddlers.yml index 932571b5fe..c6101cdd6b 100644 --- a/playbooks/openshift-apps/poddlers.yml +++ b/playbooks/openshift-apps/poddlers.yml @@ -104,8 +104,8 @@ - role: openshift/object object_app: poddlers - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/object object_app: poddlers diff --git a/playbooks/openshift-apps/release-monitoring.yml b/playbooks/openshift-apps/release-monitoring.yml index e9a1e7a377..a7d3e54376 100644 --- a/playbooks/openshift-apps/release-monitoring.yml +++ b/playbooks/openshift-apps/release-monitoring.yml @@ -63,8 +63,8 @@ object_objectname: route.yml - role: openshift/object object_app: release-monitoring - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml - role: openshift/rollout rollout_app: release-monitoring rollout_dcname: release-monitoring-web diff --git a/playbooks/openshift-apps/transtats.yml b/playbooks/openshift-apps/transtats.yml deleted file mode 100644 index d6213dcaa3..0000000000 --- a/playbooks/openshift-apps/transtats.yml +++ /dev/null @@ -1,56 +0,0 @@ ---- -- name: Make the app be real - hosts: os_control[0]:os_control_stg[0] - user: root - gather_facts: false - - vars_files: - - /srv/web/infra/ansible/vars/global.yml - - "/srv/private/ansible/vars.yml" - - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml - - roles: - - role: openshift/project - project_app: transtats - project_description: transtats - project_appowners: - - suanand - - role: openshift/object - object_app: transtats - object_objectname: secret.yml - object_template: secret.yml.j2 - - role: openshift/imagestream - imagestream_app: transtats - imagestream_imagename: transtats - - role: openshift/object - object_app: transtats - object_template: buildconfig.yml.j2 - object_objectname: buildconfig.yml - - role: openshift/start-build - start_build_app: transtats - start_build_buildname: transtats-build - tags: - - never - - build - - role: openshift/object - object_app: transtats - object_file: service.yml - object_objectname: service.yml - - role: openshift/route - route_app: transtats - route_name: transtats-web - route_host: transtats{{ env_suffix }}.fedoraproject.org - route_serviceport: web - route_servicename: transtats-web - route_annotations: - haproxy.router.openshift.io/timeout: 8m - - role: openshift/object - object_app: transtats - object_file: deploymentconfig.yml - object_objectname: deploymentconfig.yml - - role: openshift/rollout - rollout_app: transtats - rollout_dcname: transtats-web - tags: - - never - - rollout diff --git a/playbooks/openshift-apps/webhook2fedmsg.yml b/playbooks/openshift-apps/webhook2fedmsg.yml index 2313af0539..448b9908bd 100644 --- a/playbooks/openshift-apps/webhook2fedmsg.yml +++ b/playbooks/openshift-apps/webhook2fedmsg.yml @@ -110,8 +110,8 @@ # Deployment config - role: openshift/object object_app: webhook2fedmsg - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml + object_template: deployment.yml.j2 + object_objectname: deployment.yml # - role: openshift/start-build # start_build_app: webhook2fedmsg diff --git a/playbooks/openshift-apps/zezere.yml b/playbooks/openshift-apps/zezere.yml deleted file mode 100644 index 6b46c6131e..0000000000 --- a/playbooks/openshift-apps/zezere.yml +++ /dev/null @@ -1,56 +0,0 @@ ---- -- name: Make the app be real - hosts: os_control[0]:os_control_stg[0] - user: root - gather_facts: false - - vars_files: - - /srv/web/infra/ansible/vars/global.yml - - "/srv/private/ansible/vars.yml" - - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml - - roles: - - role: openshift/project - project_app: zezere - project_description: Zezere provisioning service - project_appowners: - - pbrobinson - - role: openshift/imagestream - imagestream_app: zezere - imagestream_imagename: zezere - - role: openshift/object - object_app: zezere - object_objectname: buildconfig.yml - object_file: buildconfig.yml - - role: openshift/start-build - start_build_app: zezere - start_build_buildname: zezere-build - tags: - - never - - build - - role: openshift/object - object_app: zezere - object_file: service.yml - object_objectname: service.yml - - role: openshift/route - route_app: zezere - route_name: zezere - route_host: "provision{{ env_suffix }}.fedoraproject.org" - route_servicename: zezere - route_serviceport: 8080 - route_annotations: - haproxy.router.openshift.io/set-forwarded-headers: append - - role: openshift/object - object_app: zezere - object_template: secret.yml.j2 - object_objectname: secret.yml - - role: openshift/object - object_app: zezere - object_template: deploymentconfig.yml.j2 - object_objectname: deploymentconfig.yml - - role: openshift/rollout - rollout_app: zezere - rollout_dcname: zezere - tags: - - never - - rollout diff --git a/roles/communishift/tasks/cleanup-administration-send-notifications.yml b/roles/communishift/tasks/cleanup-administration-send-notifications.yml index 2ac08341f3..e4ecb6a597 100644 --- a/roles/communishift/tasks/cleanup-administration-send-notifications.yml +++ b/roles/communishift/tasks/cleanup-administration-send-notifications.yml @@ -28,6 +28,22 @@ headers: - Reply-To=admin@fedoraproject.org charset: us-ascii - when: "not should_not_delete" + when: + - not should_not_delete + - not communishift_email_notifications_dry_run | default(false) + tags: + - communishift_send_notifications + +- name: Communishift notification email (dry-run preview, mail not sent) + ansible.builtin.debug: + msg: + dry_run: true + project: "{{ item.value.name }}" + to: infrastructure@lists.fedoraproject.org + bcc: "{{ communishift_project_emails[item.value.name]['email_list'] }}" + subject: "Fedora Communishift Notification for project: {{ item.value.name }}" + when: + - not should_not_delete + - communishift_email_notifications_dry_run | default(false) tags: - communishift_send_notifications diff --git a/roles/copr/backend/files/buildsys.production.pub b/roles/copr/backend/files/buildsys.production.pub new file mode 100644 index 0000000000..e7a33183f1 --- /dev/null +++ b/roles/copr/backend/files/buildsys.production.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCao0nJaZ5JIE8rn5M/l5VXU1e1LSqGKVbDjNYIwbbT2n7T9SK91D2s7EpUq0/QdoFKuZVsGgl/P7V2Vk4PT5W3k+RG/ndBToa/9AJzFRRK3dbJncgdIKYuOHO6hqSOegbXihiLhML95R/XtN9ywwDw6H+ZvdA5A8HtDs/2VctRZ28zT2BYqUITZ78/Nhgq8ul315Oz+RDiZHp0NH6p0JPhsqtXuCQw/C7GipVgUAm4y4rbkpprPDweGFGN2Xpaps0NWafx9IuC752Kb3vg2IDYCTr2jn4Y5ISBzcJix4K57hR33KRhtdVLc25r7jfXoJzyoaUuHHTEqaYpXCLMO+aHAPruEFEPVIFK68POjebqY/O6ppglpf/qQNKipy0ujnMXTj5ZPMCSQeoTe1ym6ws1R1Nctvp9CBuHKDJg0PHHOLwktpdI6LxBg7gqj76tMiUsclH75JfbM7eSzeX0lMHRca9PoZgFRqduinHonB5mHjnen4mHlumCPVX0fATJ98IoI7VVveI+cZJ4NDklXTedl0K/KV3BhUWeSIM0UrqYiooHDRftenslLDTUFgPAzPst1bLUr/Oqa+66pv8qpbH6g7IHPnf3/xaKd4899SUgBcr9KhFFOTu6HvG9lrk/bZDh+pxp/8NwpJhqN74e0qkokwBjC5YonVNa34DDVF+Y9Q== copr-buildsys-prod diff --git a/roles/copr/backend/files/buildsys.staging.pub b/roles/copr/backend/files/buildsys.staging.pub new file mode 100644 index 0000000000..65cf3e206d --- /dev/null +++ b/roles/copr/backend/files/buildsys.staging.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDOcf6r8Q7qCELUVCc3jNYx2YiQ3wCnxwxfxKa76plR7jmbhhUdiXNZEeKybEKNzYd+7sKSxkT8rl9fympTziB7uGOL18350MvstVGRxsgtuZLfoh0yGa78ZNVuOHBCgwD8wl3swdogwgJydqJNijEaJbrYLru7CuTbbGcXLtPpA8blszH9CNH2OyWJtGXSiQyB5PmLyJXsATZiqAZI4/M53K8z3Zp4qiwTwGsS+OVRjlY5S+7MIgb5SH5JOsiTdEf5VkPM5j8WG70cL6Y6mp+DQ0KdDeCEPX7mUvqhRU9KImWuD2QKCfYXGzG9NmR+ycmK7NrR1sLkMTtjmJTm9gRVOtlE1QWMFGmkq/4NvQAm7Qw4G3QDbnMbVntUftWqeC6dQM2q2FX1yqA9ogoCIwkz5nIq8YH5cjO0UqVYICfw5rqN3LLALSsusKvPyiNGXwckSiV647i9PZgUxsnBfX8zZJaiBiwYE+S9dEhPSc3ejVx6INVXB8lXRvFO6A2i4KrXWpkL8NvCcUuH3q0CwxGpOrxB1NIadMNLVk6CiWPBWW03L55SIu82rgUcJqtP44/MLTUUseIB8sh7+ReFbbdNrpaX1pAfn67k8/Q4alisN0NLoCSucxN3tck1KgboAoGsN9s8YfUjGvOzy2h5c5jqgGF22/0asA4y6OLKHDEa4Q== copr-buildsys-2026-04-16 diff --git a/roles/copr/backend/files/provision/files/buildsys.pub b/roles/copr/backend/files/provision/files/buildsys.pub deleted file mode 100644 index 10790ee925..0000000000 --- a/roles/copr/backend/files/provision/files/buildsys.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeTO0ddXuhDZYM9HyM0a47aeV2yIVWhTpddrQ7/RAIs99XyrsicQLABzmdMBfiZnP0FnHBF/e+2xEkT8hHJpX6bX81jjvs2bb8KP18Nh8vaXI3QospWrRygpu1tjzqZT0Llh4ZVFscum8TrMw4VWXclzdDw6x7csCBjSttqq8F3iTJtQ9XM9/5tCAAOzGBKJrsGKV1CNIrfUo5CSzY+IUVIr8XJ93IB2ZQVASK34T/49egmrWlNB32fqAbDMC+XNmobgn6gO33Yq5Ly7Dk4kqTUx2TEaqDkZfhsVu0YcwV81bmqsltRvpj6bIXrEoMeav7nbuqKcPLTxWEY/2icePF diff --git a/roles/copr/backend/files/provision/files/mock/templates/fedora-eln.tpl b/roles/copr/backend/files/provision/files/mock/templates/fedora-eln.tpl new file mode 100644 index 0000000000..f809ebd4d8 --- /dev/null +++ b/roles/copr/backend/files/provision/files/mock/templates/fedora-eln.tpl @@ -0,0 +1,392 @@ +config_opts['releasever'] = 'eln' +config_opts['eln_rawhide_releasever'] = '45' + +config_opts['root'] = 'fedora-eln-{{ target_arch }}' + +config_opts['chroot_setup_cmd'] = 'install bash bzip2 coreutils cpio diffutils fedora-eln-release findutils gawk glibc-minimal-langpack grep gzip info patch redhat-rpm-config rpm-build sed tar unzip util-linux which xz' + +config_opts['dist'] = 'eln' # only useful for --resultdir variable subst +config_opts['extra_chroot_dirs'] = [ '/run/lock', ] + +# https://fedoraproject.org/wiki/Changes/BuildWithDNF5 +# https://pagure.io/releng/issue/11895 +config_opts['package_manager'] = 'dnf5' + +# Per https://github.com/fedora-eln/eln/issues/164 updated up to 4 times a day. +# Docs: https://docs.fedoraproject.org/en-US/eln/deliverables/#_container_image +config_opts['bootstrap_image'] = 'quay.io/fedora/eln:latest' + +# https://fedoraproject.org/wiki/Changes/ReplaceDnfWithDnf5 applied to ELN! +config_opts['bootstrap_image_ready'] = True + +config_opts['dnf.conf'] = """ +[main] +keepcache=1 +system_cachedir=/var/cache/dnf +debuglevel=2 +reposdir=/dev/null +logfile=/var/log/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +syslog_ident=mock +syslog_device= +install_weak_deps=0 +metadata_expire=0 +best=1 +user_agent={{ user_agent }} + +# TODO +module_platform_id=platform:eln +protected_packages= + +{%- macro rawhide_gpg_keys() -%} +file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary +{%- for version in [eln_rawhide_releasever|int, eln_rawhide_releasever|int - 1, eln_rawhide_releasever|int - 2] +%} file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-{{ version }}-primary +{%- endfor %} +{%- endmacro %} + +[eln-baseos] +name=Fedora - ELN BaseOS - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/BaseOS/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-baseos-1&arch=$basearch +enabled=1 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-baseos-debuginfo] +name=Fedora - ELN BaseOS - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/BaseOS/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-baseos-debug-1&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-baseos-source] +name=Fedora - ELN BaseOS - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/BaseOS/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-baseos-source-1&arch=source +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + + +[eln-appstream] +name=Fedora - ELN AppStream - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/AppStream/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-appstream-1&arch=$basearch +enabled=1 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-appstream-debuginfo] +name=Fedora - ELN AppStream - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/AppStream/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-appstream-debug-1&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-appstream-source] +name=Fedora - ELN AppStream - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/AppStream/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-appstream-source-1&arch=source +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + + +[eln-crb] +name=Fedora - ELN CodeReady Linux Builders - Build packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/CRB/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-crb-1&arch=$basearch +enabled=1 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-crb-debuginfo] +name=Fedora - ELN CodeReady Linux Builders - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/CRB/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-crb-debug-1&arch=$basearch +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + +[eln-crb-source] +name=Fedora - ELN CodeReady Linux Builders - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/CRB/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-crb-source-1&arch=source +enabled=0 +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey={{ rawhide_gpg_keys() }} +skip_if_unavailable=False + + + +[eln-extras] +name=Fedora - ELN Extras - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/Extras/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-extras-1&arch=$basearch +enabled=1 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-extras-debuginfo] +name=Fedora - ELN Extras - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/Extras/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-extras-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-extras-source] +name=Fedora - ELN Extras - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/Extras/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-extras-source-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + + + +[eln-ha] +name=Fedora - ELN HighAvailability - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/HighAvailability/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-highavailability-1&arch=$basearch +enabled=0 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-ha-debuginfo] +name=Fedora - ELN HighAvailability - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/HighAvailability/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-highavailability-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-ha-source] +name=Fedora - ELN HighAvailability - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/HighAvailability/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-highavailability-source-1&arch=source +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + + + +[eln-rt] +name=Fedora - ELN RT - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/RT/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-rt-1&arch=$basearch +enabled=0 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-rt-debuginfo] +name=Fedora - ELN RT - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/RT/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-rt-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-rt-source] +name=Fedora - ELN RT - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/RT/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-rt-source-1&arch=source +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + + + +[eln-nfv] +name=Fedora - ELN NFV - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/NFV/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-nfv-1&arch=$basearch +enabled=0 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-nfv-debuginfo] +name=Fedora - ELN NFV - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/NFV/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-nfv-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-nfv-source] +name=Fedora - ELN NFV - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/NFV/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-nfv-source-1&arch=source +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + + + +[eln-sap] +name=Fedora - ELN SAP - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAP/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-sap-1&arch=$basearch +enabled=0 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-sap-debuginfo] +name=Fedora - ELN SAP - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAP/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-sap-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-sap-source] +name=Fedora - ELN SAP - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAP/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-sap-source-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + + + +[eln-saphana] +name=Fedora - ELN SAPHANA - Developmental packages for the next Enterprise Linux release +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAPHANA/$basearch/os/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-saphana-1&arch=$basearch +enabled=0 +countme=1 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-saphana-debuginfo] +name=Fedora - ELN SAPHANA - Debug +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAPHANA/$basearch/debug/tree +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-saphana-debug-1&arch=$basearch +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[eln-saphana-source] +name=Fedora - ELN SAPHANA - Source +#baseurl=https://dl.fedoraproject.org/pub/eln/1/SAPHANA/source/tree/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=eln-saphana-source-1&arch=source +enabled=0 +metadata_expire=6h +repo_gpgcheck=0 +type=rpm +gpgcheck=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-eln-$basearch +skip_if_unavailable=False + +[local] +name=local +baseurl=https://kojipkgs.fedoraproject.org/repos/eln-build/latest/$basearch/ +cost=2000 +enabled=0 +skip_if_unavailable=False +""" diff --git a/roles/copr/backend/files/provision/provision_builder_tasks.yml b/roles/copr/backend/files/provision/provision_builder_tasks.yml index 92fd5470f4..65ffff2cd0 100644 --- a/roles/copr/backend/files/provision/provision_builder_tasks.yml +++ b/roles/copr/backend/files/provision/provision_builder_tasks.yml @@ -274,10 +274,14 @@ - preparing_image - name: mockbuilder authorized_keys - authorized_key: user=mockbuilder key='{{ lookup('file', 'files/buildsys.pub') }}' + authorized_key: + user: mockbuilder + key: "{{ lookup('file', 'files/buildsys.pub') }}" - name: root authorized_keys - authorized_key: user=root key='{{ lookup('file', 'files/buildsys.pub') }}' + authorized_key: + user: root + key: "{{ lookup('file', 'files/buildsys.pub') }}" - name: setup 10x more fds in limits.conf ansible.builtin.copy: diff --git a/roles/copr/backend/tasks/main.yml b/roles/copr/backend/tasks/main.yml index cb50f54147..417ff01704 100644 --- a/roles/copr/backend/tasks/main.yml +++ b/roles/copr/backend/tasks/main.yml @@ -61,7 +61,12 @@ - .ssh - name: Setup privkey for copr user - ansible.builtin.copy: src="{{ private }}/files/copr/buildsys.priv" dest=/home/copr/.ssh/id_rsa owner=copr group=copr mode=600 + ansible.builtin.copy: + src: "{{ private }}/files/copr/buildsys.{{ env }}.priv" + dest: /home/copr/.ssh/id_rsa + owner: copr + group: copr + mode: "0600" - name: Setup copr user ssh config file ansible.builtin.template: @@ -88,11 +93,14 @@ - name: Replace bashrc for copr user ansible.builtin.copy: src="copr_bashrc" dest=/home/copr/.bashrc owner=copr group=copr mode=600 +# TODO(praiskup): this is weird, doesn't seem to be needed - name: Auth_key so we can login to localhost as the copr user from the copr user - authorized_key: user=copr key="{{ item }}" + authorized_key: + user: copr + key: "{{ item }}" no_log: true with_file: - - "provision/files/buildsys.pub" + - "buildsys.{{ env }}.pub" - name: Copy .boto file ansible.builtin.copy: src="boto" dest=/home/copr/.boto owner=copr group=copr diff --git a/roles/copr/backend/tasks/resalloc.yml b/roles/copr/backend/tasks/resalloc.yml index 506ff5232c..6aa132db1d 100644 --- a/roles/copr/backend/tasks/resalloc.yml +++ b/roles/copr/backend/tasks/resalloc.yml @@ -159,7 +159,7 @@ - name: Resalloc, copy backend ssh identity ansible.builtin.copy: - src: "{{ private }}/files/copr/buildsys.priv" + src: "{{ private }}/files/copr/buildsys.{{ env }}.priv" dest: /var/lib/resallocserver/.ssh/id_rsa owner: resalloc group: resalloc diff --git a/roles/copr/backend/tasks/setup_provisioning_environment.yml b/roles/copr/backend/tasks/setup_provisioning_environment.yml index 9612a3bda9..223832bf90 100644 --- a/roles/copr/backend/tasks/setup_provisioning_environment.yml +++ b/roles/copr/backend/tasks/setup_provisioning_environment.yml @@ -19,6 +19,13 @@ tags: - provision_config +- name: install the correct buildsys.pub + ansible.builtin.copy: + dest: "{{ provision_directory }}/files/buildsys.pub" + src: "buildsys.{{ env }}.pub" + tags: + - provision_config + - name: "Sync copr provisioning files [remove mock config leftovers]" ansible.posix.synchronize: src: "{{ roles_path }}/copr/backend/files/provision/files/mock/" diff --git a/roles/copr/backend/templates/copr-be.conf.j2 b/roles/copr/backend/templates/copr-be.conf.j2 index 2d7801a1c3..bd21332638 100644 --- a/roles/copr/backend/templates/copr-be.conf.j2 +++ b/roles/copr/backend/templates/copr-be.conf.j2 @@ -114,6 +114,11 @@ pulp_content_url={{ pulp_content_url }} # praiskup +{% if env == 'production' %} +sentry_dsn={{ copr_sentry_dsn }} +{% endif %} + + [builder] # default is 1800, this probably has no effect! timeout=108000 diff --git a/roles/copr/backend/templates/provision/copr-resalloc-aws-new.j2 b/roles/copr/backend/templates/provision/copr-resalloc-aws-new.j2 index 70410dac73..f21e9d2067 100644 --- a/roles/copr/backend/templates/provision/copr-resalloc-aws-new.j2 +++ b/roles/copr/backend/templates/provision/copr-resalloc-aws-new.j2 @@ -14,7 +14,7 @@ cmd=( /usr/bin/resalloc-aws-new --aws-profile default --ami {{ copr_builder_images.aws[item] }} - --ssh-key-name copr-builder + --ssh-key-name copr-builder-{{ env }} --security-group-id sg-0c3efdb681ced5d4f --debug {% for subnet in aws_arch_subnets[item] %} diff --git a/roles/copr/backend/templates/provision/copr-rpmbuild/main.ini.j2 b/roles/copr/backend/templates/provision/copr-rpmbuild/main.ini.j2 index edaf37a0ec..b739de8192 100644 --- a/roles/copr/backend/templates/provision/copr-rpmbuild/main.ini.j2 +++ b/roles/copr/backend/templates/provision/copr-rpmbuild/main.ini.j2 @@ -1,10 +1,12 @@ -# rpkg-util v3+ +# TODO: this file is used by both rpkg-util(?) and copr-rpmbuild. Move the +# copr-rpmbuild related stuff into copr-rpmbuild.yml. [main] frontend_url = {{ frontend_base_url }} distgit_lookaside_url = https://${% raw %}{{git_props:remote_netloc}}{% endraw %}/repo/pkgs/%(repo_path)s/%(filename)s/%(hashtype)s/%(hash)s/%(filename)s distgit_clone_url = {scheme}://{netloc}/%(repo_path)s rpm_vendor_copr_name = {{ rpm_vendor_copr_name }} +macro_override_db_url = https://copr-be.cloud.fedoraproject.org/config/distro-arch-specific.json [distgit0] distgit_hostname_pattern = src.fedoraproject.org diff --git a/roles/copr/backend/templates/provision/libvirt-new b/roles/copr/backend/templates/provision/libvirt-new index de99ba803e..036e5f7330 100755 --- a/roles/copr/backend/templates/provision/libvirt-new +++ b/roles/copr/backend/templates/provision/libvirt-new @@ -17,6 +17,7 @@ import shlex import time import argparse import ipaddress +from urllib.parse import urlparse from helpers import get_hv_identification_from_pool_id @@ -65,13 +66,13 @@ class LibvirtSpawner: self.log.debug("Logging to %s", self.connection) self.cleanup_actions = {} - def call(self, cmd, *args, **kwargs): + def call(self, cmd, *args, call=subprocess.call, **kwargs): """ Run CMD, and log info. """ self.log.debug("cmd: %s", ' '.join([shlex.quote(str(x)) for x in cmd])) start = time.time() - status = subprocess.call(cmd, *args, **kwargs) + status = call(cmd, *args, **kwargs) self.log.debug(" -> exit_status=%s, time=%ss", status, round(time.time() - start, 3)) return status @@ -82,6 +83,13 @@ class LibvirtSpawner: """ return self.call(['virsh', '-c', self.connection] + args, stdout=sys.stderr) + def virsh_check_output(self, args): + """ + Call virsh without polluting stdout. + """ + return self.call(['virsh', '-c', self.connection] + args, + call=subprocess.check_output).decode("utf-8") + def wait_for_ssh(self, host): """ Knowing the IP address of recently started VM, wait for the SSH server @@ -200,6 +208,21 @@ class LibvirtSpawner: """ todo_files = copy.copy(self.config_files) + + # Make sure the machine trusts our buildsys.pub key (via cloud-init). + with open("/var/lib/resallocserver/provision/files/buildsys.pub", "r", + encoding='utf-8') as file: + public_key = file.read() + + user_data = f"""\n +#cloud-config +ssh_authorized_keys: + - {public_key} +""" + todo_files.append(ConfigFile('user-data', user_data)) + meta_data = "instance-id: {self.vm_name}\n" + todo_files.append(ConfigFile('meta-data', meta_data)) + startup_script = self.get_startup_script() if startup_script: todo_files.append(startup_script) @@ -216,18 +239,33 @@ class LibvirtSpawner: image = os.path.join(self.workdir, 'config.iso') - # The 'eimg_config' label is not important, we search for /dev/sr0 - # anyway. - if self.call(['mkisofs', '-o', image, '-V', 'eimg_config', '-r', '-J', + # The 'cidata' label is important, otherwise cloud-init can't take the + # image as NoCloud drive. Other files shouldn't be a problem for cloud + # init. + if self.call(['mkisofs', '-o', image, '-V', 'cidata', '-r', '-J', '--quiet', config_dir]) != 0: raise Exception("mkisofs failed") return image - def create_volume_from_iso(self, name, prealloc_size, iso, pool=DEFAULT_POOL): - """ Create libvirt volume from ISO file """ - self.alloc_disk(name, prealloc_size, pool) - if self.virsh_silent(['vol-upload', name, iso, '--pool', pool]): - raise Exception("can not vol-upload the config disk") + def create_volume_from_iso(self, name, iso, pool=DEFAULT_POOL): + """ + Create libvirt volume from ISO file + """ + parsed_url = urlparse(self.connection) + remote_host = parsed_url.netloc + if not remote_host: + raise RuntimeError(f"Could not deduce remote host from connection: {self.connection}") + + # /libvirt-images -> /libvirt-images + pool_path = self.virsh_check_output(["-q", "pool-dumpxml", pool, "--xpath", '//target/path']) + pool_path = pool_path.strip()[6:-7] + target_path = os.path.join(pool_path, name) + + scp_cmd = ['scp', '-p', iso, f"{remote_host}:{target_path}"] + if self.call(scp_cmd): + raise RuntimeError(f"Failed to upload ISO via SCP to {target_path} on {remote_host}") + + self.virsh_silent(["pool-refresh", pool]) def create_volume_from_volume(self, name, volume, pool=DEFAULT_POOL, size=None): """ @@ -341,8 +379,7 @@ class LibvirtSpawner: if config_iso: self.log.info("using config image %s", config_iso) config_vol_name = self.vm_name + "_config" - self.create_volume_from_iso(config_vol_name, '1M', config_iso, - pool=pool) + self.create_volume_from_iso(config_vol_name, config_iso, pool=pool) root_image_volume = VOLUMES[self.arch] vol_root = self.vm_name + '_root' diff --git a/roles/copr/backend/templates/resalloc/osuosl-vm.j2 b/roles/copr/backend/templates/resalloc/osuosl-vm.j2 index 2c433bbf96..200e2e5e96 100755 --- a/roles/copr/backend/templates/resalloc/osuosl-vm.j2 +++ b/roles/copr/backend/templates/resalloc/osuosl-vm.j2 @@ -41,6 +41,6 @@ resalloc-openstack-new \ --flavor "$flavor" \ --name "$RESALLOC_NAME" \ --post-command "set -x ; resalloc-wait-for-ssh --timeout 250 --log debug \"\$RESALLOC_OS_IP\" >&2 && ansible-playbook $playbook -i \"\$RESALLOC_OS_IP,\" >&2 " \ - --key-pair-id copr-builder \ + --key-pair-id copr-builder-{{ env }} \ --nic net-id="$network" \ --print-ip diff --git a/roles/copr/backend/templates/resalloc/pools.yaml.j2 b/roles/copr/backend/templates/resalloc/pools.yaml.j2 index d3550dfd0c..15021320b6 100644 --- a/roles/copr/backend/templates/resalloc/pools.yaml.j2 +++ b/roles/copr/backend/templates/resalloc/pools.yaml.j2 @@ -3,9 +3,14 @@ # Notes for Resalloc configuration file: # {% if False %} -# - This is rather a complex Jinja template. Feel free to use the helper -# script to expand locally before you commit any change to this file: -# ./roles/copr/backend/templates/resalloc/pools.yaml.expand.sh +# +# =================================================================== +# =================================================================== +# This is rather a complex Jinja template. PLEASE use the helper +# script to expand locally before you commit any change to this file: +# ./roles/copr/backend/templates/resalloc/pools.yaml.expand.sh +# =================================================================== +# =================================================================== # {% endif %} # - You do NOT need to restart resalloc server after changing this file, it @@ -25,7 +30,7 @@ # d) remove the pool in PostgreSQL database. {% macro aws(arch, max, max_starting, max_prealloc, spot=False, on_demand=none, priority=0, reserved=False) %} -aws_{{ arch }}_{{ on_demand + '_' if on_demand is not none else '' }}{% if spot %}spot{% else %}normal{% endif %}{% if reserved %}reserved{% endif %}_{% if devel %}dev{% else %}prod{% endif %}: +aws_{{ arch }}_{{ on_demand + '_' if on_demand is not none else '' }}{% if spot %}spot{% elif reserved %}reserved{% else %}normal{% endif %}_{% if devel %}dev{% else %}prod{% endif %}: {% if on_demand and not reserved %} max: 10 max_starting: 4 @@ -56,8 +61,6 @@ aws_{{ arch }}_{{ on_demand + '_' if on_demand is not none else '' }}{% if spot - arch_armhfp_emulated - arch_riscv64 - arch_riscv64_emulated - - arch_s390x - - arch_s390x_emulated {% else %} - arch_aarch64 - arch_aarch64_native @@ -222,8 +225,6 @@ vmhost_x86_{{ hv }}_{% if devel %}dev{% else %}prod{% endif %}: - arch_armhfp_emulated - arch_riscv64 - arch_riscv64_emulated - - arch_s390x - - arch_s390x_emulated - hypervisor - hypervisor_x86_64 - hypervisor_x86_64_{{ hv }} @@ -247,41 +248,6 @@ vmhost_x86_{{ hv }}_{% if devel %}dev{% else %}prod{% endif %}: {% endif %} {% endfor %} -# Power8 hypervisors -{% for hv in ["01", "02", "03"] %} -{% if "ppc64le_hypervisor_" + hv in builders %} - -copr_hv_ppc64le_{{ hv }}_{% if devel %}dev{% else %}prod{% endif %}: - max: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][0] }} - max_starting: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][1] }} - max_prealloc: {{ builders["ppc64le_hypervisor_" + hv]["ppc64le"][2] }} - tags: - - copr_builder - - name: arch_noarch - priority: -8 - - arch_ppc64le - - arch_ppc64le_native - - hypervisor - - hypervisor_ppc64le - - hypervisor_ppc64le_{{ hv }} - - arch_power8 - cmd_new: "copr-resalloc-vm-ip-to-yaml /var/lib/resallocserver/provision/libvirt-new --swap-vol-size 168" - cmd_delete: "/var/lib/resallocserver/resalloc_provision/vm-delete" - cmd_livecheck: "resalloc-check-vm-ip" - cmd_release: "/var/lib/resallocserver/resalloc_provision/vm-release" - cmd_list: "/var/lib/resallocserver/provision/libvirt-list" - livecheck_period: 180 - reuse_opportunity_time: 90 - reuse_max_count: 8 - reuse_max_time: 1800 - description: > - A pool of ppc64le instances in the Fedora Community Cage. - These machines have POWER8 processors and are located in RDU (N Carolina). - Thank you Fedora Infrastructure team for maintaining the hypervisors. - -{% endif %} -{% endfor %} - # Power9 hypervisors {% for hv in ["01", "02", "03", "04"] %} {% if "p09_hypervisor_" + hv in builders %} @@ -414,7 +380,7 @@ copr_ic_s390x_hp_us_east_{% if devel %}dev{% else %}prod{% endif %}: description: > A pool of high-performance s390x instances in the IBM Cloud, Washington, D.C. (us-east). Thanks to IBM for sponsoring these builders. - +#} {% for zone in ['br_sao_1', 'br_sao_2', 'br_sao_3', 'eu_es_1', 'eu_es_2', 'eu_es_3'] %} copr_ic_s390x_{{ zone }}_{% if devel %}dev{% else %}prod{% endif %}: @@ -469,7 +435,6 @@ copr_ic_s390x_{{ zone }}_{% if devel %}dev{% else %}prod{% endif %}: Thanks to IBM for sponsoring these builders. {% endfor %} -#} # Power9 builders in OSU osuosl {{ osuosl_p09_p10() }} diff --git a/roles/copr/backend/templates/resalloc/vm-delete.j2 b/roles/copr/backend/templates/resalloc/vm-delete.j2 index 81cc7be442..673e02b94b 100755 --- a/roles/copr/backend/templates/resalloc/vm-delete.j2 +++ b/roles/copr/backend/templates/resalloc/vm-delete.j2 @@ -41,11 +41,6 @@ copr_osuosl_*) *s390x*) exit 0 ;; - -*copr_hv_x86_64_*) - ;; -*copr_hv_ppc64le_*) - ;; vmhost*) # hypervisors ;; diff --git a/roles/copr/dist_git/files/dist-git.conf b/roles/copr/dist_git/files/dist-git.conf index 3e1f871ebc..30c59e82ad 100644 --- a/roles/copr/dist_git/files/dist-git.conf +++ b/roles/copr/dist_git/files/dist-git.conf @@ -12,3 +12,6 @@ gitolite = False # name of the default branch (a.k.a. master or main) default_branch = master +{% if env == 'production' %} +sentry_dsn={{ copr_sentry_dsn }} +{% endif %} diff --git a/roles/copr/frontend/files/chroots.conf b/roles/copr/frontend/files/chroots.conf index 0d29d04919..a8364041d4 100644 --- a/roles/copr/frontend/files/chroots.conf +++ b/roles/copr/frontend/files/chroots.conf @@ -22,5 +22,5 @@ config["rules"] = [{ }, { "match_type": "arch", "match": ["s390x"], - "comment": "An emulated chroot. Builds are done on x86_64 using QEMU.", + "comment": "", }] diff --git a/roles/copr/frontend/templates/copr.conf b/roles/copr/frontend/templates/copr.conf index 840257a23a..bbe58b5e5a 100644 --- a/roles/copr/frontend/templates/copr.conf +++ b/roles/copr/frontend/templates/copr.conf @@ -288,6 +288,10 @@ EXTRA_BUILDCHROOT_TAGS = [{ # https://github.com/fedora-copr/copr/issues/4256 "pattern": "^@python/python3\.\d+/.*/root$", "tags": ["on_demand_powerful"], +},{ + # packages that always takes time to build + "pattern": ".*/.*/.*/(firefox|thunderbird)$", + "tags": ["on_demand_powerful"], }] {% endif %} @@ -321,3 +325,8 @@ OIDC_METADATA = "https://id.fedoraproject.org/openidc/.well-known/openid-configu OIDC_SECRET = "{{ copr_oidc_stg_client_secret }}" OIDC_METADATA = "https://id.stg.fedoraproject.org/openidc/.well-known/openid-configuration" {% endif %} + + +{% if env == 'production' %} +SENTRY_DSN="{{ copr_sentry_dsn }}" +{% endif %} diff --git a/roles/copr/hypervisor/files/buildsys.production.pub b/roles/copr/hypervisor/files/buildsys.production.pub new file mode 120000 index 0000000000..9aecd5a027 --- /dev/null +++ b/roles/copr/hypervisor/files/buildsys.production.pub @@ -0,0 +1 @@ +../../backend/files/buildsys.production.pub \ No newline at end of file diff --git a/roles/copr/hypervisor/files/buildsys.pub b/roles/copr/hypervisor/files/buildsys.pub deleted file mode 120000 index 3afbe620a2..0000000000 --- a/roles/copr/hypervisor/files/buildsys.pub +++ /dev/null @@ -1 +0,0 @@ -../../../copr/backend/files/provision/files/buildsys.pub \ No newline at end of file diff --git a/roles/copr/hypervisor/files/buildsys.staging.pub b/roles/copr/hypervisor/files/buildsys.staging.pub new file mode 120000 index 0000000000..420d50c2f9 --- /dev/null +++ b/roles/copr/hypervisor/files/buildsys.staging.pub @@ -0,0 +1 @@ +../../backend/files/buildsys.staging.pub \ No newline at end of file diff --git a/roles/copr/hypervisor/tasks/main.yml b/roles/copr/hypervisor/tasks/main.yml index 19dd6002e5..8939c00fab 100644 --- a/roles/copr/hypervisor/tasks/main.yml +++ b/roles/copr/hypervisor/tasks/main.yml @@ -139,10 +139,13 @@ - name: Create the copr user user: name=copr uid=11666 group=libvirt groups=qemu password_lock=true -- name: Assure that copr-be can ssh there as copr@... - authorized_key: user=copr key="{{ item }}" +- name: Assure that copr user on copr-backend can ssh as copr@... + authorized_key: + user: copr + key: "{{ item }}" with_file: - - buildsys.pub + - buildsys.production.pub + - buildsys.staging.pub - name: Add @copr keys for sysadmin-main and other allowed users authorized_key: user=copr key="{{ item }}" @@ -153,18 +156,6 @@ - config - sshkeys -# todo: generate it's own key -- name: Make sure hostA can ssh to hostB - ansible.builtin.copy: - src: "{{ private }}/files/copr/buildsys.priv" - dest: /home/copr/.ssh/id_rsa - owner: copr - mode: "0600" - -- name: Provide pub key, too, so we can install them to generated builder images - ansible.builtin.copy: src=buildsys.pub dest=/home/copr/.ssh/id_rsa.pub - owner=copr mode=0600 - - name: Enable praiskup-helpers repo ansible.builtin.shell: | dnf copr enable -y praiskup/helpers diff --git a/roles/dhcp_server/files/dhcpd.conf.noc01.rdu3.fedoraproject.org b/roles/dhcp_server/files/dhcpd.conf.noc01.rdu3.fedoraproject.org index c2f7fb6da7..b5aa60b191 100644 --- a/roles/dhcp_server/files/dhcpd.conf.noc01.rdu3.fedoraproject.org +++ b/roles/dhcp_server/files/dhcpd.conf.noc01.rdu3.fedoraproject.org @@ -1137,12 +1137,11 @@ host ocp03 { option routers 10.16.163.254; option subnet-mask 255.255.255.0; } -# These are for aarch64 boxes to initially provision on their 1g interfaces -host bvmhost-a64-01-provision { - hardware ethernet d8:5e:d3:e6:20:b0; - fixed-address 10.16.163.150; +host bvmhost-a64-01-stg { + hardware ethernet b8:ce:f6:51:56:c5; + fixed-address 10.16.167.16; next-server 10.16.163.10; - option routers 10.16.163.254; + option routers 10.16.167.254; option subnet-mask 255.255.255.0; } host bvmhost-a64-02-provision { @@ -1704,3 +1703,12 @@ host buildhw-p10-fcos01.rdu3.fedoraproject.org { option subnet-mask 255.255.255.0; option host-name "buildhw-p10-fcos01.rdu3.fedoraproject.org"; } + +host buildhw-p10-fcos02.rdu3.fedoraproject.org { + hardware ethernet be:86:ed:ba:1a:00; + fixed-address 10.16.171.36; + next-server 10.16.163.10; + option routers 10.16.171.254; + option subnet-mask 255.255.255.0; + option host-name "buildhw-p10-fcos02.rdu3.fedoraproject.org"; +} diff --git a/roles/fasjson/files/aliases.static b/roles/fasjson/files/aliases.static index 7a3cf24a25..9affb4595f 100644 --- a/roles/fasjson/files/aliases.static +++ b/roles/fasjson/files/aliases.static @@ -150,7 +150,7 @@ legal-cla-archive: /dev/null vendors: distribution-members # Fedora Council -legal: fpl, bsutula@redhat.com, rfontana@redhat.com +legal: fpl,bsutula@redhat.com,rfontana@redhat.com board: council-private@lists.fedoraproject.org chair: fpl chairman: fpl @@ -180,9 +180,9 @@ diversity-inclusion: dei # Code of Conduct (CoC) Committee ## https://docs.fedoraproject.org/en-US/project/coc-committee/ -codeofconduct: fpl, fca, jonatoni, dcantrell, ankursinha, chris +codeofconduct: fpl,fca,jonatoni,dcantrell,ankursinha,chris ## a special CoC sub-committee for on-site response at Flock to Fedora contributor conference -flock-coc: codeofconduct, dvolavko, npazmino@redhat.com, shaunm@redhat.com, spotz +flock-coc: codeofconduct,dvolavko,npazmino@redhat.com,shaunm@redhat.com,spotz # Fedora Matrix admin matrixadmin: fpl,fca,kevin,nb @@ -212,13 +212,13 @@ fudcon-latam: flock-staff # flock #flockpress: fca,fpl #flockinfo: fca,fpl -flock-staff: flock-team-members@fedoraproject.org, jwheel@redhat.com +flock-staff: flock-team-members@fedoraproject.org,jwheel@redhat.com #flock-admin: flock-staff #flock-access: flock-admin # # flock/sponsor alias # https://forge.fedoraproject.org/infra/tickets/issues/10591 -sponsors: flock-team-sponsors@fedoraproject.org, jwheel@redhat.com +sponsors: flock-team-sponsors@fedoraproject.org,jwheel@redhat.com # swag customer email alias https://forge.fedoraproject.org/infra/tickets/issues/10794 swag-info: fca,shaunm,designteam-sponsors@fedoraproject.org diff --git a/roles/haproxy/templates/haproxy.cfg b/roles/haproxy/templates/haproxy.cfg index 19881b670d..5e565f2e00 100644 --- a/roles/haproxy/templates/haproxy.cfg +++ b/roles/haproxy/templates/haproxy.cfg @@ -159,39 +159,11 @@ backend oci-registry-backend frontend ipsilon-frontend bind 0.0.0.0:10020 - - option http-buffer-request - # Define ipsilon OpenID only instance - acl path_openidc path_beg /openidc - acl path_openid path_beg /openid - acl is_openid_cookie req.cook(OPENID) true -{% if env == 'staging' %} - acl host_is_id_sub hdr(host) -m reg -i ^.+\.id\.stg\.fedoraproject\.org$ -{% else %} - acl host_is_id_sub hdr(host) -m reg -i ^.+\.id\.fedoraproject\.org$ -{% endif %} - - use_backend ipsilon-backend if path_openidc - use_backend ipsilon-backend-openid if path_openid - use_backend ipsilon-backend-openid if is_openid_cookie - use_backend ipsilon-backend-openid if host_is_id_sub - default_backend ipsilon-backend -backend ipsilon-backend-openid - balance hdr(appserver) - cookie OPENID insert indirect nocache attr Max-Age=300 -{% if env == "staging" %} - server ipsilon01 ipsilon01:80 cookie true check inter 10s rise 1 fall 3 -{% else %} - server ipsilon03 ipsilon03:80 cookie true check inter 10s rise 1 fall 3 -{% endif %} - option httpchk GET / - backend ipsilon-backend balance hdr(appserver) server ipsilon01 ipsilon01:80 check inter 10s rise 1 fall 3 - http-response set-header x-xrds-location "https://id{{ env_suffix }}.fedoraproject.org/openid/XRDS" {% if env == "production" %} server ipsilon02 ipsilon02:80 check inter 10s rise 1 fall 3 {% endif %} diff --git a/roles/httpd/proxy/templates/httpd.conf.j2 b/roles/httpd/proxy/templates/httpd.conf.j2 index f0c2cdf7f8..188fdb286c 100644 --- a/roles/httpd/proxy/templates/httpd.conf.j2 +++ b/roles/httpd/proxy/templates/httpd.conf.j2 @@ -87,7 +87,7 @@ KeepAlive On # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # -MaxKeepAliveRequests 500 +MaxKeepAliveRequests 0 # # KeepAliveTimeout: Number of seconds to wait for the next request from the diff --git a/roles/httpd/website/templates/robots/riscv-koji.fedoraproject.org-robots.txt b/roles/httpd/website/templates/robots/riscv-koji.fedoraproject.org-robots.txt new file mode 100644 index 0000000000..1f53798bb4 --- /dev/null +++ b/roles/httpd/website/templates/robots/riscv-koji.fedoraproject.org-robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/roles/ipa/server/tasks/main.yml b/roles/ipa/server/tasks/main.yml index cc44604d06..497199e185 100644 --- a/roles/ipa/server/tasks/main.yml +++ b/roles/ipa/server/tasks/main.yml @@ -24,6 +24,7 @@ - ipa-server - ipa-server-dns - ipa-fas + - ipa-healthcheck tags: - ipa/server - packages @@ -794,38 +795,9 @@ - ipa/server - config -# Zabbix monitoring of the internal IPA server -- name: Install Zabbix agent config drop-in - ansible.builtin.copy: - src: zabbix/agent-ipa-backup.conf - dest: /etc/zabbix/zabbix_agentd.d/ipa-backup.conf - mode: '0644' - notify: - - Restart zabbix agent +- name: Configure IPA monitoring in Zabbix + ansible.builtin.include_tasks: monitoring.yml tags: - ipa/server - zabbix_agent - -- name: Zabbix API Block - vars: - ansible_zabbix_auth_key: "{{ zabbix_auth_key }}" - ansible_network_os: "{{ zabbix_network_os }}" - ansible_connection: "{{ zabbix_connection }}" - ansible_httpapi_port: "{{ zabbix_httpapi_port }}" - ansible_httpapi_use_ssl: "{{ zabbix_httpapi_use_ssl }}" - ansible_httpapi_validate_certs: "{{ zabbix_httpapi_validate_certs }}" - ansible_host: "{{ zabbix_server }}" - ansible_zabbix_url_path: "{{ zabbix_url_path }}" - tags: - - ipa/server - zabbix_api - block: - - name: Import IPA template file - community.zabbix.zabbix_template: - template_yaml: "{{ lookup('file', 'zabbix/template-ipa.yml') }}" - state: present - - name: Add self to IPA template in Zabbix - community.zabbix.zabbix_host: - host_name: "{{ inventory_hostname }}" - link_templates: IPA Monitoring - force: false diff --git a/roles/ipa/server/tasks/monitoring.yml b/roles/ipa/server/tasks/monitoring.yml new file mode 100644 index 0000000000..38b81f4991 --- /dev/null +++ b/roles/ipa/server/tasks/monitoring.yml @@ -0,0 +1,59 @@ +# Zabbix monitoring of the internal IPA server + +# ipa-healthcheck can only be run by root, so cron the +# output to where Zabbix can find it +- name: Set cron for ipa-healthcheck + ansible.builtin.cron: + name: "Dump IPA healthcheck as root for Zabbix" + minute: "*/5" + user: root + job: "/usr/bin/ipa-healthcheck --output-type prometheus --all > /etc/zabbix/ipa-healthcheck.log 2> /dev/null" + tags: + - ipa/server + - zabbix_agent + +- name: Install Zabbix agent config drop-in + ansible.builtin.copy: + src: zabbix/agent-ipa-backup.conf + dest: /etc/zabbix/zabbix_agentd.d/ipa-backup.conf + mode: '0644' + notify: + - Restart zabbix agent + tags: + - ipa/server + - zabbix_agent + +- name: Zabbix API Block + vars: + ansible_zabbix_auth_key: "{{ zabbix_auth_key }}" + ansible_network_os: "{{ zabbix_network_os }}" + ansible_connection: "{{ zabbix_connection }}" + ansible_httpapi_port: "{{ zabbix_httpapi_port }}" + ansible_httpapi_use_ssl: "{{ zabbix_httpapi_use_ssl }}" + ansible_httpapi_validate_certs: "{{ zabbix_httpapi_validate_certs }}" + ansible_host: "{{ zabbix_server }}" + ansible_zabbix_url_path: "{{ zabbix_url_path }}" + tags: + - ipa/server + - zabbix_api + block: + - name: Import IPA template file + community.zabbix.zabbix_template: + template_yaml: "{{ lookup('file', 'zabbix/template-ipa.yml') }}" + state: present + run_once: true + + - name: Ensure IPA Zabbix hostgroup is present + community.zabbix.zabbix_group: + host_groups: + - IPA Servers + state: present + run_once: true + + - name: Add self to IPA template in Zabbix + community.zabbix.zabbix_host: + host_name: "{{ inventory_hostname }}" + host_groups: IPA Servers + link_templates: IPA Monitoring + force: false + diff --git a/roles/ipsilon/defaults/main.yml b/roles/ipsilon/defaults/main.yml index 6175e2bb9a..b29592e93e 100644 --- a/roles/ipsilon/defaults/main.yml +++ b/roles/ipsilon/defaults/main.yml @@ -1,3 +1,4 @@ --- ipsilon_patches: - 409 + - integrityerror diff --git a/roles/ipsilon/files/openid_banner.patch b/roles/ipsilon/files/openid_banner.patch deleted file mode 100644 index 0fe9df268b..0000000000 --- a/roles/ipsilon/files/openid_banner.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- layout.html 2025-10-03 10:54:25.879128022 +0000 -+++ layout.html 2025-10-03 10:56:46.554758341 +0000 -@@ -21,6 +21,12 @@ - {%- endif %} - - -+
-+

-+ You are using OpenID to authenticate. This authentication method will go away on 1st May 2026. Please consider migrating to OpenID Connect. -+ For more info look at https://forge.fedoraproject.org/infra/tickets/issues/10241 -+

-+
-