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

Min tls 12 #3

Closed
wants to merge 259 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
259 commits
Select commit Hold shift + click to select a range
8ec906e
doc: Update milestones
rg0now Jul 20, 2023
58186cb
Merge branch 'l7mp:main' into staging
tyhu05 Jul 24, 2023
a470a37
docs(Gateway): Document external ip specification (#93)
davidkornel Jul 28, 2023
a0e0cd4
chore(CI/CD): Bump Go version to 1.20 (#94)
levaitamas Aug 2, 2023
2459ff2
fix(rtd): Fix code rendering
VidarHUN Aug 9, 2023
c26fb44
fix(livekit-demo): fix api version
davidkornel Aug 11, 2023
234767f
chore(rtd): .readthedocs build deprecation
VidarHUN Aug 17, 2023
89221ee
Update stunnerd.conf
davidkornel Sep 4, 2023
b5b2b40
feat: Implement and integrate a Config Discovery Service (CDS) client
rg0now Sep 11, 2023
6f16d00
chore(CI/CD): Add e2e test for stable version too
levaitamas Sep 20, 2023
219970a
feature: Let id and CDS server address to be passed in env vars
rg0now Sep 14, 2023
e59e201
fix: Protocol name disambiguation
rg0now Sep 21, 2023
549b6ff
fix: Streamline TURN URI parsing
rg0now Sep 21, 2023
0fe3d2f
fix: Make sure STUNner listens on all interfaces
rg0now Sep 22, 2023
48e59a8
doc: Document the StaticService CRD
rg0now Sep 25, 2023
06bd535
doc: Update docs as per the upcoming v0.16.0 release
rg0now Sep 25, 2023
f0f4212
chore: Update pion dependencies
rg0now Sep 25, 2023
a9698fb
fix: Fix handling /dev/stdin client connections in turncat
rg0now Sep 25, 2023
1291326
chore: Report active connections on graceful shutdown
rg0now Sep 25, 2023
626faf9
doc: Update the direct-1to1 call tutorial as per v0.16.0
rg0now Sep 25, 2023
5a72041
doc: Update LiveKit tutorial as per v0.16.0
davidkornel Sep 26, 2023
ce226bc
doc: Initial installation docs for the managed mode
rg0now Sep 26, 2023
f5c7b52
docs: Advertise RTD in the main README
rg0now Sep 27, 2023
fc86ff4
doc: Update Neko tutorial as per v0.16.0
levaitamas Sep 27, 2023
22c01f4
doc(examples/neko): Use abs. path of INSTALL.md
levaitamas Sep 27, 2023
07136f3
doc(examples/neko): Fix broken section link
levaitamas Sep 27, 2023
aa9fc40
chore(CI/CD): Add e2e test for managed mode too
levaitamas Sep 27, 2023
1f779fc
chore(CI/CD): Update to actions/checkout@v4
levaitamas Sep 27, 2023
395e647
chore(CI/CD): Update docker actions in publish
levaitamas Sep 27, 2023
fe4b93e
chore(CI/CD): Install Dataplane in e2e managed dev
levaitamas Sep 28, 2023
146fbce
chore(CI/CD): Remove Dataplane config in e2e dev
levaitamas Sep 28, 2023
ae52fd0
chore(CI/CD): Wait for deployment in e2e mngd dev
levaitamas Sep 28, 2023
eb786a5
chore(CI/CD): Fix deployment wait in e2e mngd dev
levaitamas Sep 28, 2023
9fb1682
chore(CI/CD): Fix kubectl wait in e2e mngd dev
levaitamas Sep 28, 2023
1e940cd
chore(CI/CD): Increase deployment wait time
levaitamas Sep 28, 2023
d2ef41a
chore(CI/CD): Add timeout for LB IP wait (e2e,dev)
levaitamas Sep 28, 2023
afc0c70
chore(CI/CD): Add timeout for LB IP wait (e2e,stable)
levaitamas Sep 28, 2023
848ca10
chore(CI/CD): Add timeout for LB IP wait (e2e,managed-dev)
levaitamas Sep 28, 2023
209ec04
docs: Add mediasoup demo (#103)
davidkornel Oct 2, 2023
697449e
docs(mediasoup): Add Help and Acknowledgments
levaitamas Oct 2, 2023
b67efdc
chore(CI/CD): Fix end2end tests w/ dev versions
levaitamas Oct 2, 2023
a610f36
chore(CI/CD): Fix end2end legacy dev test
levaitamas Oct 2, 2023
548af70
doc: Link mediasoup demo in root directory README
davidkornel Oct 3, 2023
4a3ef85
doc: Dataplane CRD docs updated
rg0now Oct 3, 2023
9867fc3
doc: Add a disclaimer that the inline docs track the bleeding edge
rg0now Oct 4, 2023
44a8b44
fix(rtd): Fix navigation
VidarHUN Oct 9, 2023
7903b6d
fix(rtd): Add index.md
VidarHUN Oct 10, 2023
6056daa
chore(CI/CD): Bump go version to v1.21
levaitamas Oct 15, 2023
deee808
chore(ci/cd): Do not discard linter issues
levaitamas Oct 24, 2023
971aae5
chore(ci/cd): Set publish step dependencies
levaitamas Oct 24, 2023
1b0edff
chore(CI/CD): Fix dev publish workflow
levaitamas Oct 24, 2023
ea21740
chore(CI/CD): Revert referencing test action
levaitamas Oct 24, 2023
fdf5993
chore(CI/CD): Fix test action ref in publish
levaitamas Oct 24, 2023
6f04aa6
chore(CI/CD): Fix test action use in publish
levaitamas Oct 24, 2023
e531208
chore(CI/CD): Make test action callable
levaitamas Oct 24, 2023
74a4365
chore(manifests/static): Update static manifest #85
davidkornel Oct 24, 2023
75954b2
chore(CI/CD): Build image with go 1.21
levaitamas Nov 2, 2023
23a804b
doc: Update stable docs URL
rg0now Oct 9, 2023
632ae53
chore: Fix misleading error message
rg0now Nov 25, 2023
932943a
chore: Introduce a rate-limited logger
rg0now Nov 25, 2023
d411f92
chore: Fix linter error
rg0now Nov 25, 2023
1bed0fc
chore: Introduce STUNner dataplane config API v1
rg0now Nov 26, 2023
e61cfb2
feat: Implement port range filtering on peer connections
rg0now Dec 1, 2023
a92d3f7
fix: LoggerFactory now emits loggers at the correct loglevel
rg0now Dec 4, 2023
f6723bb
refactor: Move CDS clients into separate files
rg0now Dec 4, 2023
058d400
chore(CI/CD): Bump actions/setup-go to v5
levaitamas Dec 7, 2023
2b36ec4
refactor: Re-implement CDS API over OpenAPI
rg0now Dec 7, 2023
211bf34
test: Add CDS client reconnect tests
rg0now Dec 8, 2023
3fd76bf
refactor: Steamline command line argument parsing
rg0now Dec 11, 2023
793e2ad
test: Make CDS tests more robust
rg0now Dec 11, 2023
db7bdc7
refactor: MinPort/MaxPort are now a property of clusters
rg0now Dec 11, 2023
7111782
refactor: TURN relay rewrite
rg0now Dec 12, 2023
fb1b112
feature: Per-cluster port range filtering
rg0now Dec 13, 2023
323aed2
refactor: Simplify the CDS server API
rg0now Dec 15, 2023
19df3f1
fix: Fix error ib API.V1 DeepEqual
rg0now Dec 15, 2023
8ad707a
chore: Update Milestones
rg0now Dec 15, 2023
089b1a9
chore(CI/CD): Set legacy mode in e2e legacy test
levaitamas Dec 18, 2023
93da4ec
docs: Add ref to mediasoup demo
levaitamas Dec 20, 2023
e5d7727
chore: Update static manifests
rg0now Dec 21, 2023
d7e8265
test: Update benchmarks to the STUNner TURN URI format
rg0now Dec 21, 2023
1da6838
fix: Let the default stunnerd id pass our own validation check
rg0now Dec 21, 2023
27026ab
doc: Update docs for v1, take 1
rg0now Dec 22, 2023
69b5865
Add mediasoup demo to rtd
VidarHUN Jan 2, 2024
fbf7fdf
doc: Add standalone TURN server config
rg0now Jan 2, 2024
c9e70b5
doc: Add ToC to the config reference
rg0now Jan 2, 2024
cd40fc0
fix: Unbreak legacy config file watcher
rg0now Jan 2, 2024
4167d92
doc: Update the simple-tunnel tutorial
rg0now Jan 2, 2024
366ca06
doc: Update user manuals
rg0now Jan 2, 2024
41ac3b9
doc: Update CloudRetro tutorial (#109)
bbalint105 Jan 3, 2024
4ce155b
doc: Kurento examples updated
rg0now Jan 3, 2024
c1cf7c6
doc: Update neko example
levaitamas Jan 3, 2024
827807c
update(doc): Jitsi example
VidarHUN Jan 4, 2024
abcebbd
doc(jitsi): Update protocol name
levaitamas Jan 4, 2024
99b9d62
doc: Update livekit example
VidarHUN Jan 4, 2024
83f1bc9
doc: Remove dev tags from charts
davidkornel Jan 5, 2024
0253a76
doc: Update mediasoup
davidkornel Jan 5, 2024
7bb0048
doc: Update user manuals
rg0now Jan 5, 2024
dfad892
docs(MONITORING): Update with managed-mode steps
levaitamas Jan 5, 2024
f687843
doc(MONITORING): Unify 'Dataplane' links
levaitamas Jan 5, 2024
4af9fb5
chore: Module dependencies
rg0now Jan 5, 2024
74d1136
doc: Remove doc disclaimer
rg0now Jan 5, 2024
36a739b
doc: Readd doc disclaimer
rg0now Jan 5, 2024
c40128c
chore(CI/CD): Update stable e2e test
levaitamas Jan 5, 2024
d7448e6
feat(turncat): Extend help message in --help
levaitamas Jan 9, 2024
0a94ce5
fix(turncat): Fix build on Windows (#111)
levaitamas Jan 9, 2024
68eac15
chore: Bump copyright year
levaitamas Jan 12, 2024
22c2575
chore: Bump prometheus/client_golang to v1.18.0
levaitamas Jan 18, 2024
60021e7
refactor: Rewrite config discovery in strict OpenAPI mode
rg0now Jan 19, 2024
55ea83e
doc: Add docs for CDS client
rg0now Jan 19, 2024
e1d3b8c
chore: Update module dependencies
rg0now Jan 19, 2024
1b20538
feat: Add `turncat` binaries as release assets (#115)
levaitamas Jan 19, 2024
6a4b9ac
doc: Improve package docs
rg0now Jan 23, 2024
08eeec4
fix: Remove race condition on CDS client poller
rg0now Jan 23, 2024
20c394c
fix: Make sure CDS server listens on all local interfaces
rg0now Jan 25, 2024
5a55b15
fix: Make sure CDS server listens on localhost
rg0now Jan 25, 2024
602ed95
refactor: Rewrite stunnerctl and turncat to use the CDS API, fix #81
rg0now Feb 1, 2024
d93e41c
fix: Streamline environment and CLI flags in CDS discovery
rg0now Feb 2, 2024
00c9c0e
chore: Streamline CDS client error messages
rg0now Feb 2, 2024
1bb46b7
fix: Restore credentials after config env substitution, fix #102
rg0now Feb 2, 2024
bc1bfb9
test: Avoid CDS server port clashes in tests
rg0now Feb 2, 2024
dabdb34
chore(CI/CD): Build and release stunnerctl too (#121)
levaitamas Feb 5, 2024
4e2d950
chore(CI/CD): Fix syntax errors
levaitamas Feb 5, 2024
73632e6
chore(CI/CD): Revert 4e2d950
levaitamas Feb 5, 2024
d4466b6
chore(CI/CD): Fix syntax errors in push_charts
levaitamas Feb 5, 2024
9f1624d
chore(CI/CD): Fix type errors in publish workflows
levaitamas Feb 5, 2024
ea46480
chore(CI/CD): Fix missing secrets in push_charts
levaitamas Feb 5, 2024
8ba9074
chore(CI/CD): Fix missing secrets in push_charts
levaitamas Feb 5, 2024
b16223c
chore: Streamline CDS server error handling
rg0now Feb 3, 2024
8a9c7ad
test: Run CDS client-server tests on a random port
rg0now Feb 6, 2024
ef76f94
fix: Make sure CDS clients get an update on config deletion
rg0now Feb 6, 2024
8b7f545
fix: Tight control of CDS server connection handler lifetime
rg0now Feb 7, 2024
530320c
feat: Report deleted configs in stunnerctl
rg0now Feb 7, 2024
65a9f1b
fix: Make sure DNS domain names properly parse as a CDS server URI
rg0now Feb 7, 2024
24f5960
doc: Remove all references of the ConfigMap that is now gone
rg0now Feb 7, 2024
01843e8
doc(examples/neko): Update README
levaitamas Feb 13, 2024
4a9d03c
doc: README updates
rg0now Feb 15, 2024
571ddc7
chore(CI/CD): Bump azure/setup-helm to v4
levaitamas Feb 21, 2024
4a259e7
chore(CI/CD): Remove legacy mode e2e test
levaitamas Feb 21, 2024
4ab0374
chore(CI/CD): Bump golangci/golangci-lint-action to v4
levaitamas Feb 21, 2024
69f4ada
feat: Serve /status requests on the health-check server
rg0now Feb 21, 2024
f9c624c
feat: Implement a status sub-command in stunnerctl
rg0now Feb 21, 2024
3397486
chore: Define CDS server K8s flags as per of the public API
rg0now Feb 21, 2024
fd532d8
doc: README updates
rg0now Feb 15, 2024
1b95538
Merge branch 'feature-pod-status'
rg0now Feb 21, 2024
ce15c43
chore: Add helper scripts to download stunner tools (#124)
levaitamas Feb 21, 2024
0bcea5d
fix(getstunner): Fix repo name
levaitamas Feb 21, 2024
c9ebbbf
feat: Implement a basic auth-service client in stunnerctl
rg0now Feb 21, 2024
0b06ecd
chore(CI/CD): Skip coverage calculation in forks
levaitamas Feb 21, 2024
7c6ca5d
fix(CI/CD): Fix invalid characters in 'test'
levaitamas Feb 21, 2024
466b67b
doc: Document the new stunnerctl commands (status and auth)
rg0now Feb 21, 2024
cb58de8
chore: Remove doc disclaimer before release
rg0now Feb 26, 2024
0680f3c
chore: Restore doc disclaimer
rg0now Feb 26, 2024
aecff26
chore: Update the release engineering docs
rg0now Feb 26, 2024
b962318
fix(CI/CD): Fix azure/setup-helm version
levaitamas Feb 26, 2024
1d3b1b8
chore(CI/CD): Use azure/setup-helm@v4
levaitamas Feb 28, 2024
e64841b
chore(CI/CD): Bump go version to v1.22
levaitamas Mar 4, 2024
82b0bb3
docs: Fix userName typo (#134)
zifeo Mar 25, 2024
a71f1eb
chore: Create issue template
rg0now Mar 25, 2024
75e1bff
Update AUTH.md
davidkornel Apr 16, 2024
ef35bfa
doc: Use an explicit UDPRoute backend Service in the direct-1to1 demo
rg0now Apr 24, 2024
38b9c67
Add allocations active metric (#140)
amm0nite Apr 25, 2024
868704f
chore: Doc update
VidarHUN Apr 29, 2024
374ecc5
chore: Add test not to break legacy mode again
rg0now May 10, 2024
e1f30a6
chore: Report git version/tag/hash in the startup logs
rg0now May 10, 2024
4df714c
chore: Report git version/tag/hash in the turncat startup logs too
rg0now May 10, 2024
009ee7a
chore(CI/CD): Use the new build process
levaitamas May 11, 2024
4e4d6a3
chore(CI/CD): Strip debug info from built binaries
levaitamas May 11, 2024
0a5c095
doc: Add stunner_allocations_active in the monitoring doc (#142)
amm0nite May 13, 2024
24a8733
chore: Bump pion and prometheus deps
levaitamas May 13, 2024
1792b5e
chore(ci/cd): Print gw-operator logs in e2e tests
levaitamas May 14, 2024
92167d1
doc: Document the new settings in the Dataplane CRD
rg0now May 15, 2024
bf55994
doc: Document Gateway annotations
rg0now May 20, 2024
09bcb54
fix: Let stunnerctl use the default namespace if no namespace given, …
rg0now May 22, 2024
897a4bf
doc: Document the remaining Gateway annotations
rg0now May 23, 2024
b2b37ee
doc: Update examples
rg0now May 24, 2024
bd4199c
chore: Updated release notes
rg0now May 27, 2024
af70f3d
doc(examples/cloudretro): Fix minor issues
levaitamas May 28, 2024
9aba8b6
chore: Update static CRDs
rg0now May 28, 2024
1272d5f
doc: Update milestones
rg0now May 28, 2024
e4fc45b
chore: Remove doc disclaimer before release
rg0now May 28, 2024
241e9e9
chore: Restore doc disclaimers
rg0now May 28, 2024
6b66aa4
doc: Update release instructions
rg0now May 29, 2024
512ce55
fix(turncat): Report error in turncat when invoked with empty peer IP
rg0now May 29, 2024
246913f
feature(turncat): Set SNI on TURN/TLS client connections
rg0now Jun 10, 2024
904b352
chore: Improve logging format consistency
rg0now Jun 11, 2024
012f8c0
fix: Prevent concurrent WS socket write errors in the CDS client
rg0now Jun 15, 2024
b11bdf4
chore: Update static manifests
rg0now Jun 27, 2024
96c0ce2
doc: Document stunnerd pod label/annotation customization
rg0now Jun 27, 2024
0c17a0f
doc: Document if/when the health-check port is exposed
rg0now Jun 27, 2024
1613a5d
fix(stunnerd.conf): Update protocol names
levaitamas Jul 2, 2024
ea06087
doc: Update stunnerd README
rg0now Jul 23, 2024
d16deb4
doc: Document the annotation for selecting the targetport
rg0now Jul 23, 2024
69dff75
doc: Add link to blog post describing the STUN service use case
rg0now Aug 8, 2024
f533fea
chore(CI/CD): Disable Docker build in other repos
levaitamas Aug 19, 2024
9635083
doc: Add SECURITY.md
levaitamas Aug 25, 2024
18aa9c1
chore: Fix linter error
rg0now Aug 27, 2024
81f018d
doc: Add warning for manual dataplane restart on helm upgrade
rg0now Aug 29, 2024
c22ba33
doc: Minor fixes
rg0now Aug 30, 2024
5176898
chore: Remove doc disclaimer before release
rg0now Aug 30, 2024
1b190b1
chore: Restore doc disclaimers
rg0now Aug 30, 2024
a6b3de4
chore: Bump pion/turn to v4 and update some deps (#156)
levaitamas Sep 3, 2024
0e3cc2e
chore(rtd): Sync with the official template
levaitamas Sep 5, 2024
d7d7f66
chore(rtd): Update rtd dependencies
levaitamas Sep 5, 2024
eeb59a7
chore(rtd): Remove non-working pages
levaitamas Sep 6, 2024
03d2b10
chore(rtd): Fix CloudRetro name in the Examples
levaitamas Sep 17, 2024
77b00e5
chore: Add stunnerctl bin to gitignore
levaitamas Sep 18, 2024
5d8acaf
chore: Add buildinfo to stunnerctl binary too
levaitamas Sep 18, 2024
e1760bf
doc: Document the disable-session-affinity:true annotation
rg0now Sep 20, 2024
5eede98
chore: Remove doc disclaimer before release
rg0now Sep 20, 2024
6647128
chore: Restore doc disclaimers
rg0now Sep 20, 2024
b64b2ea
docs: Add Janus example (#158)
davidkornel Sep 24, 2024
b41c19a
docs(rtd): Add Janus example to readthedocs
levaitamas Sep 24, 2024
c9c2c2e
docs: Mention Janus example
levaitamas Sep 24, 2024
fd58039
chore(rtd): Update deps
levaitamas Sep 29, 2024
5596d84
chore(rtd): Fix github alert rendering
levaitamas Sep 30, 2024
c52752c
doc: Fix wrong reg, fix #165
rg0now Oct 1, 2024
f677a94
chore(CI/CD): Bump helm to v3.16.2
levaitamas Oct 10, 2024
9d1583d
doc: Fix dead links
rg0now Oct 24, 2024
79e322d
doc: Refactor examples and extend install guide (#164)
davidkornel Oct 28, 2024
2cd71f8
docs(examples/neko): Remove extra iceTransportPolicy
levaitamas Oct 28, 2024
4215806
doc: Massive doc reorg
rg0now Oct 31, 2024
88194d6
chore: Remove doc disclaimer before release
rg0now Oct 31, 2024
bb50435
chore(rtd): Add udp-echo example
levaitamas Oct 31, 2024
4061e98
chore: Restore doc disclaimers
rg0now Oct 31, 2024
9d8d007
doc: Fix typo
rg0now Oct 31, 2024
609ca10
chore(CI/CD): Bump go version to v1.23
levaitamas Oct 31, 2024
5c8acf9
chore(rtd): Update deps
levaitamas Oct 31, 2024
b843a01
chore(e2e-test-stable): Use latest turncat binary
levaitamas Oct 31, 2024
c7a5112
chore(examples/livekit): Upgrade LiveKit Server to v1.8.0 (#175)
bkbasavaraju Nov 8, 2024
a9a8164
docs(examples/elixir-webrtc): fix iceTransportPolicy syntax (#178)
duratm Nov 12, 2024
1d3f5cf
docs(INSTALL): Fix gateway API CRD install URLs
levaitamas Nov 12, 2024
fd61fbf
refactor: Rewrite metric exporting to Open Telemetry
rg0now Nov 12, 2024
5b87159
test: Mark telemetry tester helpers as such
rg0now Nov 15, 2024
5e476c8
fix: Improve CDS server port randomization on tests
rg0now Nov 15, 2024
5646b6e
fix: Fix race condition in logger
rg0now Nov 15, 2024
79f1b32
feature: Implement ICE tester server and client
rg0now Nov 15, 2024
3451422
refactor: Reimplement ICE tester on top of standard WHIP
rg0now Nov 17, 2024
032619f
fix: No longer delay config-delete messages in the CDS server
rg0now Nov 28, 2024
74d5480
chore: Improve error message consistency
rg0now Nov 28, 2024
f48067f
feature: Implement ICE tester in stunnerctl
rg0now Nov 28, 2024
cf69799
docs(icetester): Fix some typos/thinkos
levaitamas Nov 29, 2024
fa30699
chore(CI/CD): Build and publish icester images
levaitamas Nov 29, 2024
43cc556
chore(rtd): Update deps
levaitamas Nov 29, 2024
0be4af0
chore(CI/CD): Fix task dependencies in publish
levaitamas Nov 29, 2024
4812c10
doc(icetester): Make it appear on the readthedocs
levaitamas Nov 29, 2024
5d1a7b1
docs: Fix link to outdated api version
davidkornel Dec 1, 2024
87ed328
Merge branch 'l7mp:main' into staging
tyhu05 Dec 2, 2024
1ca02ff
docs: Fix broken references (#181)
emmanuel-ferdman Dec 3, 2024
2f5c5bc
Merge branch 'l7mp:main' into staging
notdurson Dec 3, 2024
5ecc0e8
Bump minimum supported TLS version to 1.2.
Dec 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve STUNner
title: ''
labels: ''
assignees: ''

---

### Description

[Description of the problem]

### Steps to Reproduce

[Brief description of the steps you took to encounter the problem, if applicable]

**Expected behavior:** [What you expected to happen]

**Actual behavior:** [What actually happened]

### Versions

[Which version of STUNner you are using]

### Info

[Please copy-paste the output of the below commands and make sure to remove all sensitive information, like usernames, passwords, IP addresses, etc.]

#### Gateway API status

[Output of `kubectl get gateways,gatewayconfigs,gatewayclasses,udproutes.stunner.l7mp.io --all-namespaces -o yaml`]

#### Operator logs

[Output of `kubectl -n stunner-system logs $(kubectl get pods -l control-plane=stunner-gateway-operator-controller-manager --all-namespaces -o jsonpath='{.items[0].metadata.name}')`]
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
name: Run End-to-End Test
name: Run End-to-End Test (dev)

on:
workflow_dispatch:
schedule:
- cron: '0 11 * * 1'
- cron: '0 12 * * 1'

jobs:
e2e_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: 1.19
go-version: '1.23'

- name: Download modules
run: go mod download
Expand All @@ -29,22 +29,22 @@ jobs:
driver: docker
container-runtime: containerd
wait: all
cpus: max
cache: false

- name: Start minikube tunnel
run: minikube tunnel &>mktunnel.log &

- name: Set up Helm
uses: azure/setup-helm@v3
uses: azure/setup-helm@v4
with:
version: v3.11.3
version: v3.16.2

- name: Install STUNner
run: |
helm repo add stunner https://l7mp.io/stunner
helm repo update
helm install stunner-gateway-operator stunner/stunner-gateway-operator-dev --create-namespace --namespace=stunner
helm install stunner stunner/stunner-dev --create-namespace --namespace=stunner
helm install stunner-gateway-operator stunner/stunner-gateway-operator-dev --create-namespace --namespace=stunner --set stunnerGatewayOperator.deployment.container.manager.resources.requests.cpu=200m --set stunnerGatewayOperator.dataplane.spec.resources.requests.cpu=100m

- name: Deploy iperf server
run: kubectl apply -f docs/examples/simple-tunnel/iperf-server.yaml
Expand All @@ -61,12 +61,16 @@ jobs:

- name: Wait for LoadBalancer IP
run: |
while [[ -z $(kubectl get svc udp-gateway -n stunner -o jsonpath="{.status.loadBalancer.ingress[0].ip}") ]]; do echo "Waiting for LoadBalancer IP"; sleep 2; done
for n in {1..60}; do [[ ! -z $(kubectl get svc udp-gateway -n stunner -o jsonpath="{.status.loadBalancer.ingress[0].ip}") ]] && break; echo "Waiting for LoadBalancer IP"; sleep 2; done
echo "* wait for the deployment"
kubectl get all -A
kubectl wait -n stunner --for=condition=Available deployment udp-gateway --timeout 5m
echo "* EVERYTHING UP"
kubectl get all -A

- name: Start turncat
run: |
./turncat --log=all:INFO udp://127.0.0.1:5000 k8s://stunner/stunnerd-config:udp-listener udp://$(kubectl get svc iperf-server -o jsonpath="{.spec.clusterIP}"):5001 &>turncat.log &
./turncat --log=all:INFO udp://127.0.0.1:5000 k8s://stunner/udp-gateway:udp-listener udp://$(kubectl get svc iperf-server -o jsonpath="{.spec.clusterIP}"):5001 &>turncat.log &
sleep 1

- name: Run iperf client
Expand All @@ -86,6 +90,8 @@ jobs:
cat turncat.log
echo "* STUNNER"
kubectl logs -n stunner $(kubectl get pods -n stunner -l app=stunner -o jsonpath='{.items[0].metadata.name}')
echo "* STUNNER-GATEWAY=OPERATOR"
kubectl logs -n stunner $(kubectl get pods -n stunner -l control-plane=stunner-gateway-operator-controller-manager -o jsonpath='{.items[0].metadata.name}')

- name: Check iperf conectivity
run: grep "Server Report" iperf.log
87 changes: 87 additions & 0 deletions .github/workflows/e2e-test-stable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Run End-to-End Test (stable)

on:
workflow_dispatch:
schedule:
- cron: '0 11 1-7,15-21 * 2'

jobs:
e2e_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install turncat
run: |
URL=`wget -q -O - https://api.github.com/repos/l7mp/stunner/releases/latest | jq -r '.assets[] | select(.name | contains ("turncat")) | select(.name | contains ("linux")) | select(.name | contains ("amd64")) | .browser_download_url'`
wget $URL -O turncat
chmod a+x turncat

- name: Start minikube
uses: medyagh/setup-minikube@master
with:
driver: docker
container-runtime: containerd
wait: all
cache: false

- name: Start minikube tunnel
run: minikube tunnel &>mktunnel.log &

- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.2

- name: Install STUNner
run: |
helm repo add stunner https://l7mp.io/stunner
helm repo update
helm install stunner-gateway-operator stunner/stunner-gateway-operator --create-namespace --namespace=stunner --set stunnerGatewayOperator.dataplane.mode=managed --set stunnerGatewayOperator.deployment.container.manager.resources.requests.cpu=200m --set stunnerGatewayOperator.dataplane.spec.resources.requests.cpu=100m

- name: Deploy iperf server
run: kubectl apply -f docs/examples/simple-tunnel/iperf-server.yaml

- name: Configure STUNner
run: |
kubectl apply -f docs/examples/simple-tunnel/iperf-stunner.yaml
sleep 75

- name: Install iperf client
run: |
sudo apt-get update
sudo apt-get -y install iperf

- name: Wait for LoadBalancer IP
run: |
for n in {1..60}; do [[ ! -z $(kubectl get svc udp-gateway -n stunner -o jsonpath="{.status.loadBalancer.ingress[0].ip}") ]] && break; echo "Waiting for LoadBalancer IP"; sleep 2; done
kubectl wait -n stunner --for=condition=Available deployment udp-gateway --timeout 5m
kubectl get all -A

- name: Start turncat
run: |
./turncat --log=all:INFO udp://127.0.0.1:5000 k8s://stunner/udp-gateway:udp-listener udp://$(kubectl get svc iperf-server -o jsonpath="{.spec.clusterIP}"):5001 &>turncat.log &
sleep 1

- name: Run iperf client
run: |
iperf -c 127.0.0.1 -p 5000 -u -l 100 -b 5M -t 5 | tee iperf.log

- name: Show logs
run: |
echo "* IPERF"
echo "** Client"
cat iperf.log
echo "** Server"
kubectl logs $(kubectl get pods -l app=iperf-server -o jsonpath='{.items[0].metadata.name}')
echo "* MINIKUBE TUNNEL"
cat mktunnel.log
echo "* TURNCAT"
cat turncat.log
echo "* STUNNER"
kubectl logs -n stunner $(kubectl get pods -n stunner -l app=stunner -o jsonpath='{.items[0].metadata.name}')
echo "* STUNNER-GATEWAY=OPERATOR"
kubectl logs -n stunner $(kubectl get pods -n stunner -l control-plane=stunner-gateway-operator-controller-manager -o jsonpath='{.items[0].metadata.name}')

- name: Check iperf conectivity
run: grep "Server Report" iperf.log
10 changes: 5 additions & 5 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: 1.19
go-version: '1.23'
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Run linters
uses: golangci/golangci-lint-action@v3
uses: golangci/golangci-lint-action@v4
with:
args: --timeout 3m --issues-exit-code=0
args: --timeout 5m
68 changes: 68 additions & 0 deletions .github/workflows/publish--add-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: "publish: Add binaries to release assets"

on:
workflow_call:

jobs:
add_binaries:
name: Add binaries to release assets
runs-on: ubuntu-latest
strategy:
matrix:
include:
- os: linux
arch: amd64
file_end: ""
- os: linux
arch: arm64
file_end: ""

- os: darwin
arch: amd64
file_end: ""
- os: darwin
arch: arm64
file_end: ""

- os: windows
arch: amd64
file_end: ".exe"
- os: windows
arch: arm64
file_end: ".exe"

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get version
id: vars
run: echo tag=$(echo ${GITHUB_REF:11}) >> $GITHUB_OUTPUT

- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.23'

- name: Build binaries
run: |
export CGO_ENABLED=0 GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }}
make build-bin
mv bin/turncat turncat-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}
mv bin/stunnerctl stunnerctl-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}

- name: Release turncat binary
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: turncat-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}
tag: ${{ github.ref_name }}
asset_name: turncat-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}

- name: Release stunnerctl binary
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: stunnerctl-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}
tag: ${{ github.ref_name }}
asset_name: stunnerctl-v${{ steps.vars.outputs.tag }}-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.file_end }}
39 changes: 39 additions & 0 deletions .github/workflows/publish--push-charts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: "publish: Push Helm charts to web"

on:
workflow_call:
inputs:
dev:
description: Whether to release a dev version
required: true
type: boolean

jobs:
push_charts:
name: Push Helm charts to web
runs-on: ubuntu-latest
steps:
- name: Get version for non-dev release
if: ${{ inputs.dev == false || inputs.dev == 'false' }}
id: vars
run: echo tag=$(echo ${GITHUB_REF:11}) >> $GITHUB_OUTPUT

- name: Trigger release workflow in the stunner-helm repo
if: ${{ inputs.dev == false || inputs.dev == 'false' }}
uses: convictional/[email protected]
with:
github_token: ${{ secrets.WEB_PAT_TOKEN }}
owner: l7mp
repo: stunner-helm
client_payload: '{"tag": "${{ steps.vars.outputs.tag }}", "type": "stunner"}'
workflow_file_name: publish.yaml

- name: Trigger release workflow in the stunner-helm repo
if: ${{ inputs.dev == true || inputs.dev == 'true' }}
uses: convictional/[email protected]
with:
github_token: ${{ secrets.WEB_PAT_TOKEN }}
owner: l7mp
repo: stunner-helm
client_payload: '{"tag": "dev", "type": "stunner"}'
workflow_file_name: publish.yaml
Loading
Loading