Skip to content

feat(roles/google_chrome): add headless Chrome backend for icingaweb2_module_pdfexport#249

Open
danyalberchtoldlf wants to merge 11 commits into
mainfrom
feat/google-chrome-roles
Open

feat(roles/google_chrome): add headless Chrome backend for icingaweb2_module_pdfexport#249
danyalberchtoldlf wants to merge 11 commits into
mainfrom
feat/google-chrome-roles

Conversation

@danyalberchtoldlf
Copy link
Copy Markdown
Contributor

No description provided.

Deploy /etc/icingaweb2/modules/pdfexport/config.ini so the module talks to
the chrome-headless service over the Chrome DevTools Protocol by default
(host/port), with an optional fall-back to a local Chrome binary. Move the
platform-variables import into an always-tagged block so the new
icingaweb2_module_pdfexport:configure tag can be run on its own. Wire the
repo_epel, repo_google_chrome and google_chrome roles into both the
standalone playbook and setup_icinga2_master.yml, with *__skip_* opt-outs
tracking the existing pdfexport skip flag.
…lean

Without bind_any the chrome-headless-proxy.socket cannot bind the listen
port on hosts where the port carries an unexpected SELinux port type
(on Rocky/RHEL 9 the default 9222 is registered as hplip_port_t).
Remove the comments and the chrome-headless-before-socket ordering that
only existed to handle the cut-over from a pre-existing, non-socket-
activated chrome service. With no such legacy unit in the wild, the
regular notify chain (daemon-reload, restart socket, restart chrome on
template change) is sufficient.
Declare the two user-facing variables (basic_auth_login as 'raw',
mirror_url as 'str'), matching the pattern repo_remi established.
Also sort entries in roles/google_chrome/{meta/argument_specs.yml,
defaults/main.yml} alphabetically per CONTRIBUTING.md.
- Split SELinux booleans into their own block, scoped to `google_chrome` only,
  so `google_chrome:configure` is limited to unit-file deployment as documented
  in the README.
- Move daemon-reload from a handler into a regular task, gated by `is changed`
  on the three deploy tasks. The state block now runs with the freshly reloaded
  unit definitions without needing an intermediate `flush_handlers`, and the
  restart-socket handler can rely on `__google_chrome__service_state_result is
  not changed` (with an `is not defined` fallback for tag-restricted runs) to
  skip the redundant restart right after a fresh service start.
- Drop the `restart chrome-headless` handler. Changes to the proxy or Chrome
  service unit only need a daemon-reload now; they take effect on the next
  socket-activation cycle. Only socket-template changes still trigger an
  immediate restart, because that unit holds the externally-visible listen
  port.
- Fix descriptions for `google_chrome__service_enabled` and
  `google_chrome__service_state` in `meta/argument_specs.yml`: both manage the
  `chrome-headless-proxy.socket` unit, not `chrome-headless.service`.
- Drop `mesa-libOSMesa-devel` from the runtime package list; the runtime
  library `mesa-libOSMesa` stays.
@danyalberchtoldlf danyalberchtoldlf changed the title Feat/google chrome roles feat(roles/google_chrome): add headless Chrome backend for icingaweb2_module_pdfexport May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant