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

feat: ingress annotations support enable websocket #1101

Merged
merged 9 commits into from
Jul 4, 2022
Merged

feat: ingress annotations support enable websocket #1101

merged 9 commits into from
Jul 4, 2022

Conversation

dickens7
Copy link
Contributor

@dickens7 dickens7 commented Jun 24, 2022

Type of change:

  • Bugfix
  • New feature provided
  • Improve performance
  • Backport patches

What this PR does / why we need it:

In our daily usage scenarios, we expect to be able to directly open websocket support for routing on ingress

Pre-submission checklist:

  • Did you explain what problem does this PR solve? Or what new features have been added?
  • Have you added corresponding test cases?
  • Have you modified the corresponding document?
  • Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

Copy link
Member

@tao12345666333 tao12345666333 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codecov-commenter
Copy link

codecov-commenter commented Jun 24, 2022

Codecov Report

Merging #1101 (427089e) into master (0e1f8d4) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1101      +/-   ##
==========================================
+ Coverage   30.38%   30.42%   +0.04%     
==========================================
  Files          81       81              
  Lines        9390     9396       +6     
==========================================
+ Hits         2853     2859       +6     
  Misses       6222     6222              
  Partials      315      315              
Impacted Files Coverage Δ
pkg/kube/translation/ingress.go 68.66% <100.00%> (+0.54%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 810f1a1...427089e. Read the comment docs.

@tao12345666333 tao12345666333 added the enhancement New feature or request label Jun 24, 2022
@dickens7
Copy link
Contributor Author

Thanks,

you should add e2e test cases for this one. you can ref to https://github.com/apache/apisix-ingress-controller/blob/master/test/e2e/suite-features/websocket.go and add test cases to https://github.com/apache/apisix-ingress-controller/tree/master/test/e2e/suite-annotations directory

ok, i'll take a look

@lingsamuel
Copy link
Member

ci failed

@dickens7
Copy link
Contributor Author

Please help, I have no problem running make unit-test locally

go version go1.18.3 linux/amd64

Linux seven 5.10.102.1-microsoft-standard-WSL2+ #1 SMP Mon Jun 13 04:56:19 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

make unit-test
go test -cover -coverprofile=coverage.txt ./...
?       github.com/apache/apisix-ingress-controller     [no test files]
?       github.com/apache/apisix-ingress-controller/cmd [no test files]
ok      github.com/apache/apisix-ingress-controller/cmd/ingress 10.027s coverage: 80.0% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api     0.037s  coverage: 85.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api/router      0.045s  coverage: 81.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api/validation  0.050s  coverage: 19.3% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/apisix  0.366s  coverage: 49.3% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/apisix/cache    0.010s  coverage: 83.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/config  0.013s  coverage: 64.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/id      0.014s  coverage: 100.0% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/ingress 0.031s  coverage: 2.1% of statements
?       github.com/apache/apisix-ingress-controller/pkg/ingress/gateway [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/ingress/gateway/translation     0.226s  coverage: 77.3% of statements
?       github.com/apache/apisix-ingress-controller/pkg/ingress/namespace       [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/ingress/utils   0.052s  coverage: 37.9% of statements
?       github.com/apache/apisix-ingress-controller/pkg/kube    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v1      [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2      [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta2 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta3 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned  [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/fake     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/scheme   [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2  [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2/fake     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta2     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta2/fake        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta3     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta3/fake        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions   [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2beta2    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2beta3    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/internalinterfaces        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2beta2       [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2beta3       [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/const       [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/kube/translation        1.951s  coverage: 49.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/kube/translation/annotations    0.009s  coverage: 38.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/log     0.021s  coverage: 88.5% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/metrics 0.028s  coverage: 59.5% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/types   0.008s  coverage: 87.0% of statements
?       github.com/apache/apisix-ingress-controller/pkg/types/apisix/v1 [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/version 0.003s  coverage: 100.0% of statements

@tao12345666333
Copy link
Member

Let me take a look

@AlinsRan
Copy link
Contributor

Please help, I have no problem running make unit-test locally

go version go1.18.3 linux/amd64

Linux seven 5.10.102.1-microsoft-standard-WSL2+ #1 SMP Mon Jun 13 04:56:19 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

make unit-test
go test -cover -coverprofile=coverage.txt ./...
?       github.com/apache/apisix-ingress-controller     [no test files]
?       github.com/apache/apisix-ingress-controller/cmd [no test files]
ok      github.com/apache/apisix-ingress-controller/cmd/ingress 10.027s coverage: 80.0% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api     0.037s  coverage: 85.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api/router      0.045s  coverage: 81.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/api/validation  0.050s  coverage: 19.3% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/apisix  0.366s  coverage: 49.3% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/apisix/cache    0.010s  coverage: 83.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/config  0.013s  coverage: 64.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/id      0.014s  coverage: 100.0% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/ingress 0.031s  coverage: 2.1% of statements
?       github.com/apache/apisix-ingress-controller/pkg/ingress/gateway [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/ingress/gateway/translation     0.226s  coverage: 77.3% of statements
?       github.com/apache/apisix-ingress-controller/pkg/ingress/namespace       [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/ingress/utils   0.052s  coverage: 37.9% of statements
?       github.com/apache/apisix-ingress-controller/pkg/kube    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v1      [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2      [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta2 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta3 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned  [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/fake     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/scheme   [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2  [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2/fake     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta2     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta2/fake        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta3     [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/typed/config/v2beta3/fake        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions   [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2 [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2beta2    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/config/v2beta3    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions/internalinterfaces        [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2    [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2beta2       [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2beta3       [no test files]
?       github.com/apache/apisix-ingress-controller/pkg/kube/apisix/const       [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/kube/translation        1.951s  coverage: 49.7% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/kube/translation/annotations    0.009s  coverage: 38.8% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/log     0.021s  coverage: 88.5% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/metrics 0.028s  coverage: 59.5% of statements
ok      github.com/apache/apisix-ingress-controller/pkg/types   0.008s  coverage: 87.0% of statements
?       github.com/apache/apisix-ingress-controller/pkg/types/apisix/v1 [no test files]
ok      github.com/apache/apisix-ingress-controller/pkg/version 0.003s  coverage: 100.0% of statements

You can try to merge the latest code

@dickens7
Copy link
Contributor Author

You can try to merge the latest code

Found the problem after merging the latest code

@tao12345666333
Copy link
Member

Thanks.

It's on my list. I will finish review today.

@tao12345666333 tao12345666333 self-assigned this Jul 4, 2022
Copy link
Member

@tao12345666333 tao12345666333 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

let's move forward.

Thanks!

@tao12345666333 tao12345666333 merged commit aae2105 into apache:master Jul 4, 2022
@tao12345666333 tao12345666333 added this to the 1.5.0 milestone Jul 4, 2022
@dickens7 dickens7 deleted the feat-annotations-websocket branch July 5, 2022 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/controller enhancement New feature or request
Projects
Development

Successfully merging this pull request may close these issues.

None yet

5 participants