Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Work on BBB 3.0 #380

Draft
wants to merge 6 commits into
base: bbb/2.7
Choose a base branch
from
Draft

WIP: Work on BBB 3.0 #380

wants to merge 6 commits into from

Conversation

defnull
Copy link
Contributor

@defnull defnull commented Feb 3, 2025

This is a WIP to get this role in shape for BBB 3.0 (and future versions).

Please note:

  • This PR targets bbb/2.7 because there is no appropriate target branch in the ebbba-org repository yet and it is based on bbb/2.7. No not merge!
  • The role will change in backwards incompatible ways, which should be fine for a major release upgrade.
  • I will use this opportunity to clean up, simplify, modernize and refactor this role in major ways and I will not try to keep this PR small or easy to review. This will be a major rewrite, not a small patch. If you think that this should be a fork and not a PR, please tell me.
  • If you want to contribute to this PR, please do so by forking my fork and sending PRs or patches my way for now. There is no appropriate branch or PR target in the ebbba-org repository yet.
  • Goals: Port to BBB 3.0. clean up role to simplify future development and maintenance. Add missing core features.
  • Non-goals: Support every use case ever. Be backwards compatible to 2.7. Allow major in-place BBB upgrades. Support multiple BBB releases from a single branch.

Progress

  • Revise and fix all tasks until BBB 3.x installs successfully. Simplify and refactor along the way.
    • checkvars.yml
    • bbb_secret.yml
    • check-for-sessions.yml
    • firewall/*
    • locale.yml
    • repositories.yml -> install.yml
    • installation.yml -> install.yml
    • install.yml
    • docker.yml
    • certificate.yml
    • nginx.yml
    • config.yml
    • ntp.yml
    • dial-in/*
    • monitoring/*
    • mongodb.yml
    • webrtc-sfu.yml
    • bbb-web.yml
    • bbb-html5.yml
    • freeswitch.yml
    • stun-turn.yml
    • kurento.yml
    • etherpad.yml
  • Implement missing core features.
    • Cluster setup.
    • Embedded coturn.
    • Manage optional recording formats (minimum: video).
    • Better support privileged containers (LXC).
  • Whishlist: Nice-to-have features.
    • Custom webcam backgrounds.
    • Better fonts in libreoffice container.
    • Fixed user and group IDs.
    • Install various tools (e.g. bbbctl).
    • Support clamav and presentation converter hooks.
    • Add fix.yml tasks for various BBB bugs/workarounds.
  • Rework test framework and tests.
  • Rework documentation.
    • Replace the unreadable config parameter table with something else.
    • Add "getting Started" section with a minimal example.
    • Add examples for more involved topics (e.g. cluster setup).
  • Soft targets
    • Better sanity checks and safeguards.
    • Improve role performance, reduce unneeded changes or handler invocations.
    • Role should be idempotent. It should report zero changes if run twice.

Old module is deprecated and was removed in ansible 2.18. We also stop configuring the exact docker compose version and use the default one.
Also, assume the distribution code contained in bbb_version instead of a hardcoded one
Simplified and streamlined repository and package handling.

Visible changes include:
- Removed mongodb related config keys or and tasks.
- Removed bbb_state and bbb_upgrade_packages config keys in favour of a new bbb_upgrade config key.
- Documented and fixed bbb_apt_key config key.
- Removed  bbb_nodejs_version config key. The version depends on the BBB release and does not need to be configured.
- Removed dependency on geerlingguy.nodejs and geerlingguy.docker ansible modules.
@defnull defnull marked this pull request as draft February 3, 2025 15:07
Docker logs to unbounded json files by default, which is a ticking time bomb. Log to (rotated) journald by default. This new option can also be used to change container MTU (required in certain VM environments) or other daemon defaults.
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