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

Clustering support #281

Merged
merged 22 commits into from
Jul 7, 2022
Merged

Clustering support #281

merged 22 commits into from
Jul 7, 2022

Conversation

fancycode
Copy link
Member

@fancycode fancycode commented Jun 21, 2022

See server.conf.in and README.md for details on how to configure. Doesn't work with the loopback NATS for obvious reasons.

Open tasks (no special order)

  • Automatic / central configuration of GRPC targets.
  • Encryption for GRPC connections.
  • Temporary proxy connections for subscribing streams from remote proxy not configured on the local signaling server.
  • More testing / automated tests. For now checked that basic communication works (join room, start streaming).
  • Setup documentation.
  • Add metrics.
  • Support sendoffer for remote clients:
    log.Printf("Sending offers to remote clients is not supported yet (client %s)", session.PublicId())
  • Automatic / central configuration of Nextcloud backends.
  • Testing with Kubernetes.
  • Support reloading of certificates without restart.

@fancycode fancycode force-pushed the refactor-async-events branch 5 times, most recently from ba70d52 to 57f7b1b Compare June 24, 2022 10:59
@coveralls
Copy link

coveralls commented Jun 24, 2022

Pull Request Test Coverage Report for Build 2610392075

  • 1939 of 2581 (75.13%) changed or added relevant lines in 24 files are covered.
  • 24 unchanged lines in 5 files lost coverage.
  • Overall coverage increased (+5.2%) to 50.699%

Changes Missing Coverage Covered Lines Changed/Added Lines %
async_events.go 100 102 98.04%
single_notifier.go 53 55 96.36%
syscallconn.go 7 9 77.78%
api_grpc.go 4 7 57.14%
natsclient.go 2 5 40.0%
backend_configuration.go 50 54 92.59%
backoff.go 24 28 85.71%
api_backend.go 8 17 47.06%
roomsessions_builtin.go 34 44 77.27%
backend_storage_static.go 195 213 91.55%
Files with Coverage Reduction New Missed Lines %
clientsession.go 1 59.14%
hub.go 1 66.85%
backend_configuration.go 2 89.92%
room.go 3 82.23%
capabilities.go 17 75.41%
Totals Coverage Status
Change from base Build 2555439811: 5.2%
Covered Lines: 6273
Relevant Lines: 12373

💛 - Coveralls

@fancycode fancycode force-pushed the refactor-async-events branch 4 times, most recently from c0cd9f5 to 69df776 Compare June 29, 2022 14:22
@fancycode fancycode marked this pull request as ready for review June 30, 2022 09:36
The external address of the (own) GRPC server might only be reachable after
some time, so performing the check only initially could fail but will
succeed later.
Previously each instance would send one message to all users in the cluster.
@fancycode fancycode merged commit d3f8876 into master Jul 7, 2022
@fancycode fancycode deleted the refactor-async-events branch July 7, 2022 14:24
mwalbeck added a commit to mwalbeck/docker-nextcloud-spreed-signaling that referenced this pull request Aug 6, 2022
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [strukturag/nextcloud-spreed-signaling](https://github.com/strukturag/nextcloud-spreed-signaling) | major | `v0.5.0` -> `v1.0.0` |

---

### Release Notes

<details>
<summary>strukturag/nextcloud-spreed-signaling</summary>

### [`v1.0.0`](https://github.com/strukturag/nextcloud-spreed-signaling/releases/tag/v1.0.0)

[Compare Source](strukturag/nextcloud-spreed-signaling@v0.5.0...v1.0.0)

##### Added

-   Clustering support.  [#&#8203;281](strukturag/nextcloud-spreed-signaling#281)
-   Send initial "welcome" message when clients connect.  [#&#8203;288](strukturag/nextcloud-spreed-signaling#288)
-   Support hello auth version "2.0" with JWT.  [#&#8203;251](strukturag/nextcloud-spreed-signaling#251)
-   dist: add systemd sysusers file.  [#&#8203;275](strukturag/nextcloud-spreed-signaling#275)
-   Add more tests.  [#&#8203;292](strukturag/nextcloud-spreed-signaling#292)
-   Add tests for virtual sessions.  [#&#8203;295](strukturag/nextcloud-spreed-signaling#295)
-   Implement per-backend session limit for clusters.  [#&#8203;296](strukturag/nextcloud-spreed-signaling#296)

##### Changed

-   Don't run "go mod tidy" when building.  [#&#8203;269](strukturag/nextcloud-spreed-signaling#269)
-   Bump sphinx from 5.0.0 to 5.0.1 in /docs  [#&#8203;270](strukturag/nextcloud-spreed-signaling#270)
-   Bump sphinx from 5.0.1 to 5.0.2 in /docs  [#&#8203;277](strukturag/nextcloud-spreed-signaling#277)
-   Move common etcd code to own class.  [#&#8203;282](strukturag/nextcloud-spreed-signaling#282)
-   Support arbitrary capabilities values.  [#&#8203;287](strukturag/nextcloud-spreed-signaling#287)
-   dist: harden systemd service unit.  [#&#8203;276](strukturag/nextcloud-spreed-signaling#276)
-   Update to Go module version of github.com/golang-jwt/jwt  [#&#8203;289](strukturag/nextcloud-spreed-signaling#289)
-   Disconnect sessions with the same room session id synchronously.  [#&#8203;294](strukturag/nextcloud-spreed-signaling#294)
-   Bump google.golang.org/grpc from 1.47.0 to 1.48.0  [#&#8203;297](strukturag/nextcloud-spreed-signaling#297)
-   Update to github.com/pion/sdp v3.0.5  [#&#8203;301](strukturag/nextcloud-spreed-signaling#301)
-   Bump sphinx from 5.0.2 to 5.1.1 in /docs  [#&#8203;303](strukturag/nextcloud-spreed-signaling#303)
-   make: Include vendored dependencies in tarball.  [#&#8203;300](strukturag/nextcloud-spreed-signaling#300)
-   docs: update and pin dependencies.  [#&#8203;305](strukturag/nextcloud-spreed-signaling#305)
-   Bump actions/upload-artifact from 2 to 3  [#&#8203;307](strukturag/nextcloud-spreed-signaling#307)
-   Bump actions/download-artifact from 2 to 3  [#&#8203;308](strukturag/nextcloud-spreed-signaling#308)
-   Bump google.golang.org/protobuf from 1.28.0 to 1.28.1  [#&#8203;306](strukturag/nextcloud-spreed-signaling#306)
-   CI: Also test with Golang 1.19  [#&#8203;310](strukturag/nextcloud-spreed-signaling#310)

##### Fixed

-   Fix check for async room messages received while not joined to a room.  [#&#8203;274](strukturag/nextcloud-spreed-signaling#274)
-   Fix testing etcd server not starting up if etcd is running on host.  [#&#8203;283](strukturag/nextcloud-spreed-signaling#283)
-   Fix CI issues on slow CPUs.  [#&#8203;290](strukturag/nextcloud-spreed-signaling#290)
-   Fix handling of "unshareScreen" messages and add test.  [#&#8203;293](strukturag/nextcloud-spreed-signaling#293)
-   Fix Read The Ddocs builds.  [#&#8203;302](strukturag/nextcloud-spreed-signaling#302)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xMzUuMSIsInVwZGF0ZWRJblZlciI6IjMyLjEzNS4xIn0=-->

Co-authored-by: Magnus Walbeck <[email protected]>
Reviewed-on: https://git.walbeck.it/walbeck-it/docker-nextcloud-spreed-signaling/pulls/207
Co-authored-by: renovate-bot <[email protected]>
Co-committed-by: renovate-bot <[email protected]>
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.

2 participants