Deploy ELNBuildSync to Fedora Infrastructure #3374
No reviewers
Labels
No labels
ai-review-please
freeze-break-request
post-freeze
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
Priority
High
Priority
Low
Priority
Medium
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
infra/ansible!3374
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "sgallagh/infra-ansible:elnbuildsync-deploy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds a new playbook, role and variables for deploying ELNBuildSync to OpenShift in the Fedora Infrastructure.
There are the following secrets that need to be provided to the ansible-private repository (which I do not have access to):
ebs_db_password: The password to the access theelnbuildsyncPostgreSQL production databaseebs_stg_db_password: The password to the access theelnbuildsyncPostgreSQL production databaseebs_keytab_secret: The base64-encoded keytab for theeln-buildsyncFAS user, used to access Koji and Bodhiebs_smtp_password: The password for SMTP email-sendingebs_fedora_messaging_cacert,ebs_fedora_messaging_client_pem, andebs_fedora_messaging_client_key: certificates for use with fedora-messaging.I have tested this playbook as best I can with my OpenShift Local cluster, but it's entirely possible that some gremlins remain with the RabbitMQ pieces, which I don't have available to test. Those bits are mostly copied from other OpenShift applications.
Attn: @yselkowitz
Fixes: infra/tickets#13139
1cc94caa7226990b71dd26990b71dd4a787e37b1There shouldn't be a need for a smtp password, you should be able to use our gateway ( bastion.fedoraproject.org ) if you are sending things.
The keytab I think you already have? should we just reuse that?
We can make the db passwords and point to the fedora-messaging files which we should already have.
We should probibly target staging only first, so leave os_control and the prod db out of hosts for now?
AI Code Review
Detailed Code Review
The OpenShift and RabbitMQ manifests establish the deployment structure for ELNBuildSync. The architecture correctly follows existing application patterns. However, two critical configuration bugs exist that will cause failures in both deployment and message routing. Certificate filenames in the OpenShift secret mismatch the expected paths in the
fedora-messagingTOML configuration, which will result in startup crashes. Furthermore, the TOML configuration hardcodes production URLs and routing keys, meaning any staging deployment will inadvertently connect to and process production message queues.📂 File Reviews
📄 `roles/openshift-apps/elnbuildsync/templates/fedora-messaging-config.yml.j2` - Creates the fedora-messaging secret including the TOML config and TLS certificates.
elnbuildsync.crtandelnbuildsync.key, but the corresponding TOML configuration (vars/apps/elnbuildsync.yml) expects/etc/fedora-messaging/distrobuildsync-eln.keyanddistrobuildsync-eln.crt. The container will crash on startup due to missing certificate files.📄 `vars/apps/elnbuildsync.yml` - Defines application variables including the fedora-messaging configuration payload.
ebs_fedora_messaging_configstring hardcodes the production RabbitMQ URL (rabbitmq.fedoraproject.org) and production routing keys (org.fedoraproject.prod...). A deployment to the staging cluster will incorrectly listen to production events.{{ env_suffix }}and{{ env_short }}) to dynamically configure the environment endpoints and routing keys in the TOML definition.✅ Summary
🤖 AI Code Review | Generated with ai-code-review | Model:
gemini-3.1-pro-preview⚠️ AI-generated suggestions may be incorrect. Verify before applying. Not a replacement for human review.
@kevin wrote in #3374 (comment):
You gave us an SMTP password previously, I assumed we would just use that.
Yes, but that will have to go into the private repo, which I cannot do.
Thanks.
Yeah, we can (and probably should) start with staging.