alibaba / higress Goto Github PK
View Code? Open in Web Editor NEWCloud Native API Gateway | 云原生API网关
Home Page: https://higress.io
License: Apache License 2.0
Cloud Native API Gateway | 云原生API网关
Home Page: https://higress.io
License: Apache License 2.0
请将该Issue 分配给我,谢谢
Edit Deploy Of higress-gateway,adds hostNetwork: true ,but Pod's status is SysctlForbidden.
If there is an exception, please attach the exception trace:
Just paste your stack trace here!
-> 20%
Deployment mode support HTTP/3
Add a helm value to determine whether it is enabled
https://github.com/istio/istio/wiki/Experimental-QUIC-and-HTTP-3-support-in-Istio-gateways
实现 RESTful 的 admin api 提供控制台对接
Implement RESTful admin api to provide console usage
What features are needed for the first release higress console
5.1% -> 30%
hmac-auth 插件的 README 文档翻译
https://github.com/alibaba/higress/blob/main/plugins/wasm-cpp/extensions/hmac_auth
When I read the source, I found that Higress uses a single patch to record the change from the upstream projects.
Therefore, Higress now have some huge patch file (9000 lines+), which will make the maintenance very hard.
Some features require patching several projects. For example, to add sentinel support, both go-control-plane and istio are patched. If we can move the patch into upstream, we can avoid some patches.
Break down the patch into multiple ones according to their features.
If possible, we can contribute some patches back to the upstream.
I can solve it, assign it to me plz.
16.7% -> 40%
First of all, thanks sincerely for constantly using and supporting Higress. We will try our best to keep Higress better, and keep growing community.
Pls. submit a comment in this issue to include the following information:
You can refer to the following sample answer for the format:
* Orgnizatioin: Alibaba
* Location: Hangzhou, China
* Contact: [email protected]
* Purpose (multiple choice):
- [x] pure reverse proxy scene(F5/nginx)
- [x] microservice scene (kong/spring cloud gateway)
- [x] security scene(waf)
* Status:
- [] development&testing
- [] production
* (Option) Logo (show in the official site):
If you are still concerning about using Higress in production, you can join us by scanning the DingTalk QR Code. We will track Higress status from your side by the information you provided above, and assist you join the community to build the Higress together.
Thanks again for your participation !
Higress Team
首先诚挚地感谢每一位持续关注并使用 Higress 的朋友。我们会持续投入,力图把 Higress 变得更好,把 Higress 社区和生态变得更加繁荣。
聆听社区的声音,让 Higress 变得更好
吸引更多的人参与贡献
更多的了解 Higress 的实际使用场景,以方便下一步的规划
在此提交一条评论, 评论内容包括:
您可以参考下面的样例来提供您的信息:
* 组织:阿里巴巴
* 地点:**杭州
* 联系方式:[email protected]
* 业务场景(多选):
- [x] 流量网关场景(如nginx)
- [x] 微服务网关场景 (如kong/spring cloud gateway)
- [x] 安全网关场景(如waf)
* 采用状态:
- [] 预研&测试阶段
- [] 生产使用阶段
* (非必填)公司logo(用于官网展示):
如果您还对 Higress 的开发和生产上线有问题,您可以通过扫描钉钉群二维码加入我们,我们会根据您上面提供的信息来跟踪您的使用情况,辅助您参与到社区共建中。
再次感谢你的参与!!!
Higress 团队
Implement a plugin that can replace the response body according to the configuration
config example:
rules:
- match:
status: 403
body: "RBAC: access denied"
replace:
status: 200
body: "{\"code\":403,\"message\":\"User is not authenticated\"}"
content-type: "application/json;utf-8"
- match:
status: 503
body: "no healthy upstream"
replace:
status: 200
body: "{\"code\":503,\"message\":\"No Healthy Upstream\"}"
content-type: "application/json;utf-8"
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe in details
我有如下的路由
[{
"match": {
"PathSpecifier": {
"Prefix": "/web/"
}
},
"Action": {
"Route": {
"ClusterSpecifier": {
"Cluster": "my-web"
},
"prefix_rewrite": "/",
"HostRewriteSpecifier": {
"AutoHostRewrite": {}
}
}
}
},
{
"match": {
"PathSpecifier": {
"Prefix": "/web"
}
},
"Action": {
"Route": {
"ClusterSpecifier": {
"Cluster": "my-web"
},
"prefix_rewrite": "/",
"HostRewriteSpecifier": {
"AutoHostRewrite": {}
}
}
}
}]
假设请求 {gateway-domain}
/web/abc , 上游服务 my-web 返回 302 Found location: /abc/ . 此时如果 envoy 不处理该响应的话, 浏览器就会访问 {gateway-domain}
/abc/ 了.
对标 Nginx http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
envoy 要么内部处理该重定向, 自动请求新的地址, 将正确结果返回客户端, 要么修改 location 字段后再返回给客户端.
Add any other context or screenshots about the feature request here.
有搭建开发环境入门资料吗
64.7% -> 80%
提供开箱即用的网关日志收集和分析的能力
Provides out-of-the-box gateway log collection and analysis capabilities
higress doc: https://higress.io/zh-cn/docs/ops/log.html
envoy doc: https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/overview
We should add code format tool and check the code style before merging pr.
key-auth 插件的 README 文档翻译
https://github.com/alibaba/higress/blob/main/plugins/wasm-cpp/extensions/key_auth
61.1% -> 80%
38.8% -> 60%
-> 20%
1:因为接入cert-manager需要一定的学习成本,对不了解cert-manager的工程师来讲不是特别友好
2:针对dev/sit/test/fat/uat等环境可能并不需要真正的接入付费证书
1:希望在Helm/Yamlfile部署的时候可以支持打开这个功能,可以调研一下caddy的ingress的功能
2:打开此功能后,当用户没有在部署应用时可以选择性的开启自动TLS,这样它可以自动的去走ACME或者其他的自动方法去实现这个HTTPS生成的功能
higress/registry/memory/cache.go
Line 11 in e01377f
If there is an exception, please attach the exception trace:
Just paste your stack trace here!
commit id: 14421bd
Dependency | License | Version |
---|---|---|
cloud.google.com/go | Apache-2.0 | v0.97.0 |
cloud.google.com/go/logging | Apache-2.0 | v1.4.2 |
contrib.go.opencensus.io/exporter/prometheus | Apache-2.0 | v0.4.0 |
github.com/Azure/go-ansiterm | MIT | v0.0.0-20210617225240-d185dfc1b5a1 |
github.com/Azure/go-autorest | Apache-2.0 | v14.2.0+incompatible |
github.com/Azure/go-autorest/autorest | Apache-2.0 | v0.11.20 |
github.com/Azure/go-autorest/autorest/adal | Apache-2.0 | v0.9.15 |
github.com/Azure/go-autorest/autorest/date | Apache-2.0 | v0.3.0 |
github.com/Azure/go-autorest/logger | Apache-2.0 | v0.2.1 |
github.com/Azure/go-autorest/tracing | Apache-2.0 | v0.6.0 |
github.com/MakeNowJust/heredoc | MIT | v0.0.0-20170808103936-bb23615498cd |
github.com/Masterminds/goutils | Apache-2.0 | v1.1.1 |
github.com/Masterminds/semver/v3 | MIT | v3.1.1 |
github.com/Masterminds/sprig/v3 | MIT | v3.2.2 |
github.com/Microsoft/go-winio | MIT | v0.5.0 |
github.com/Microsoft/hcsshim | MIT | v0.8.21 |
github.com/PuerkitoBio/purell | BSD-3-Clause | v1.1.1 |
github.com/PuerkitoBio/urlesc | BSD-3-Clause | v0.0.0-20170810143723-de5bf2ad4578 |
github.com/aws/aws-sdk-go | Apache-2.0 | v1.41.7 |
github.com/beorn7/perks | MIT | v1.0.1 |
github.com/cenkalti/backoff/v4 | MIT | v4.1.1 |
github.com/census-instrumentation/opencensus-proto | Apache-2.0 | v0.3.0 |
github.com/cespare/xxhash/v2 | MIT | v2.1.1 |
github.com/chai2010/gettext-go | BSD-3-Clause | v0.0.0-20160711120539-c6fed771bfd5 |
github.com/cncf/xds/go | Apache-2.0 | v0.0.0-20220520190051-1e77728a1eaa |
github.com/containerd/continuity | Apache-2.0 | v0.1.0 |
github.com/davecgh/go-spew | ISC | v1.1.1 |
github.com/decred/dcrd/dcrec/secp256k1/v3 | ISC | v3.0.0 |
github.com/docker/cli | Apache-2.0 | v20.10.7+incompatible |
github.com/docker/distribution | Apache-2.0 | v0.0.0-20191216044856-a8371794149d |
github.com/docker/docker-credential-helpers | MIT | v0.6.3 |
github.com/docker/go-units | Apache-2.0 | v0.4.0 |
github.com/envoyproxy/protoc-gen-validate | Apache-2.0 | v0.1.0 |
github.com/evanphx/json-patch | BSD-3-Clause | v4.11.0+incompatible |
github.com/evanphx/json-patch/v5 | BSD-3-Clause | v5.6.0 |
github.com/exponent-io/jsonpath | MIT | v0.0.0-20151013193312-d6023ce2651d |
github.com/fsnotify/fsnotify | BSD-3-Clause | v1.5.1 |
github.com/fvbommel/sortorder | MIT | v1.0.1 |
github.com/ghodss/yaml | MIT and BSD-3-Clause | v1.0.0 |
github.com/go-errors/errors | MIT | v1.0.1 |
github.com/go-kit/log | MIT | v0.1.0 |
github.com/go-logfmt/logfmt | MIT | v0.5.0 |
github.com/go-logr/logr | Apache-2.0 | v0.4.0 |
github.com/go-openapi/jsonpointer | Apache-2.0 | v0.19.5 |
github.com/go-openapi/jsonreference | Apache-2.0 | v0.19.5 |
github.com/go-openapi/swag | Apache-2.0 | v0.19.14 |
github.com/goccy/go-json | MIT | v0.4.8 |
github.com/gogo/protobuf | BSD-3-Clause | v1.3.2 |
github.com/golang-jwt/jwt/v4 | MIT | v4.0.0 |
github.com/golang/groupcache | Apache-2.0 | v0.0.0-20210331224755-41bb18bfe9da |
github.com/golang/protobuf | BSD-3-Clause | v1.5.2 |
github.com/google/btree | Apache-2.0 | v1.0.1 |
github.com/google/go-cmp | BSD-3-Clause | v0.5.6 |
github.com/google/go-containerregistry | Apache-2.0 | v0.6.0 |
github.com/google/gofuzz | Apache-2.0 | v1.2.0 |
github.com/google/shlex | Apache-2.0 | v0.0.0-20191202100458-e7afc7fbc510 |
github.com/google/uuid | BSD-3-Clause | v1.3.0 |
github.com/googleapis/gax-go/v2 | BSD-3-Clause | v2.1.1 |
github.com/googleapis/gnostic | Apache-2.0 | v0.5.5 |
github.com/gregjones/httpcache | MIT | v0.0.0-20180305231024-9cad4c3443a7 |
github.com/grpc-ecosystem/go-grpc-middleware | Apache-2.0 | v1.3.0 |
github.com/grpc-ecosystem/go-grpc-prometheus | Apache-2.0 | v1.2.0 |
github.com/hashicorp/errwrap | MPL-2.0 | v1.0.0 |
github.com/hashicorp/go-multierror | MPL-2.0 | v1.1.1 |
github.com/hashicorp/go-version | MPL-2.0 | v1.3.0 |
github.com/hashicorp/golang-lru | MPL-2.0 | v0.5.4 |
github.com/huandu/xstrings | MIT | v1.3.2 |
github.com/imdario/mergo | BSD-3-Clause | v0.3.5 |
github.com/inconshreveable/mousetrap | Apache-2.0 | v1.0.0 |
github.com/jmespath/go-jmespath | Apache-2.0 | v0.4.0 |
github.com/jonboulle/clockwork | Apache-2.0 | v0.2.2 |
github.com/josharian/intern | MIT | v1.0.0 |
github.com/json-iterator/go | MIT | v1.1.11 |
github.com/lestrrat-go/backoff/v2 | MIT | v2.0.7 |
github.com/lestrrat-go/blackmagic | MIT | v1.0.0 |
github.com/lestrrat-go/httpcc | MIT | v1.0.0 |
github.com/lestrrat-go/iter | MIT | v1.0.1 |
github.com/lestrrat-go/jwx | MIT | v1.2.0 |
github.com/lestrrat-go/option | MIT | v1.0.0 |
github.com/liggitt/tabwriter | BSD-3-Clause | v0.0.0-20181228230101-89fcab3d43de |
github.com/mailru/easyjson | MIT | v0.7.6 |
github.com/matttproud/golang_protobuf_extensions | Apache-2.0 | v1.0.2-0.20181231171920-c182affec369 |
github.com/mitchellh/copystructure | MIT | v1.2.0 |
github.com/mitchellh/go-wordwrap | MIT | v1.0.0 |
github.com/mitchellh/reflectwalk | MIT | v1.0.2 |
github.com/moby/moby | Apache-2.0 | v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible |
github.com/moby/spdystream | Apache-2.0 | v0.2.0 |
github.com/moby/term | Apache-2.0 | v0.0.0-20210610120745-9d4ed1856297 |
github.com/modern-go/concurrent | Apache-2.0 | v0.0.0-20180306012644-bacd9c7ef1dd |
github.com/modern-go/reflect2 | Apache-2.0 | v1.0.1 |
github.com/monochromegane/go-gitignore | MIT | v0.0.0-20200626010858-205db1a8cc00 |
github.com/natefinch/lumberjack | MIT | v2.0.0+incompatible |
github.com/opencontainers/go-digest | Apache-2.0 | v1.0.0 |
github.com/opencontainers/image-spec | Apache-2.0 | v1.0.1 |
github.com/opencontainers/runc | Apache-2.0 | v1.0.2 |
github.com/openshift/api | Apache-2.0 | v0.0.0-20200713203337-b2494ecb17dd |
github.com/peterbourgon/diskv | MIT | v2.0.1+incompatible |
github.com/pkg/errors | BSD-2-Clause | v0.9.1 |
github.com/pmezard/go-difflib | BSD-3-Clause | v1.0.0 |
github.com/prometheus/client_golang | Apache-2.0 | v1.11.0 |
github.com/prometheus/client_model | Apache-2.0 | v0.2.0 |
github.com/prometheus/common | Apache-2.0 | v0.32.1 |
github.com/prometheus/procfs | Apache-2.0 | v0.6.0 |
github.com/prometheus/statsd_exporter | Apache-2.0 | v0.21.0 |
github.com/russross/blackfriday | BSD-2-Clause | v1.5.2 |
github.com/shopspring/decimal | MIT | v1.2.0 |
github.com/sirupsen/logrus | MIT | v1.8.1 |
github.com/spaolacci/murmur3 | BSD-3-Clause | v1.1.0 |
github.com/spf13/cast | MIT | v1.3.1 |
github.com/spf13/cobra | Apache-2.0 | v1.2.1 |
github.com/spf13/pflag | BSD-3-Clause | v1.0.5 |
github.com/stretchr/testify | MIT | v1.7.0 |
github.com/xlab/treeprint | MIT | v0.0.0-20181112141820-a009c3971eca |
github.com/yl2chen/cidranger | MIT | v1.0.2 |
go.opencensus.io | Apache-2.0 | v0.23.0 |
go.opentelemetry.io/proto/otlp | Apache-2.0 | v0.7.0 |
go.starlark.net | BSD-3-Clause | v0.0.0-20200306205701-8dd3e2ee1dd5 |
go.uber.org/atomic | MIT | v1.9.0 |
go.uber.org/multierr | MIT | v1.7.0 |
go.uber.org/zap | MIT | v1.19.1 |
golang.org/x/crypto | BSD-3-Clause | v0.0.0-20210817164053-32db794688a5 |
golang.org/x/net | BSD-3-Clause | v0.0.0-20211020060615-d418f374d309 |
golang.org/x/oauth2 | BSD-3-Clause | v0.0.0-20211005180243-6b3c2da341f1 |
golang.org/x/sync | BSD-3-Clause | v0.0.0-20210220032951-036812b2e83c |
golang.org/x/sys | BSD-3-Clause | v0.0.0-20211020174200-9d6173849985 |
golang.org/x/term | BSD-3-Clause | v0.0.0-20210220032956-6a3ed077a48d |
golang.org/x/text | BSD-3-Clause | v0.3.6 |
golang.org/x/time | BSD-3-Clause | v0.0.0-20210723032227-1f47c861a9ac |
golang.org/x/xerrors | BSD-3-Clause | v0.0.0-20200804184101-5ec99f83aff1 |
gomodules.xyz/jsonpatch/v2 | Apache-2.0 | v2.2.0 |
gomodules.xyz/jsonpatch/v3 | Apache-2.0 | v3.0.1 |
gomodules.xyz/orderedmap | MIT | v0.1.0 |
google.golang.org/api | BSD-3-Clause | v0.59.0 |
google.golang.org/appengine | Apache-2.0 | v1.6.7 |
google.golang.org/genproto | Apache-2.0 | v0.0.0-20211020151524-b7c3a969101a |
google.golang.org/grpc | Apache-2.0 | v1.42.0 |
google.golang.org/protobuf | BSD-3-Clause | v1.27.1 |
gopkg.in/inf.v0 | BSD-3-Clause | v0.9.1 |
gopkg.in/square/go-jose.v2 | Apache-2.0 | v2.6.0 |
gopkg.in/yaml.v2 | Apache-2.0 | v2.4.0 |
gopkg.in/yaml.v3 | MIT and Apache-2.0 | v3.0.0-20210107192922-496545a6307b |
istio.io/gogo-genproto | Apache-2.0 | v0.0.0-20211115195057-0e34bdd2be67 |
k8s.io/api | Apache-2.0 | v0.22.2 |
k8s.io/apiextensions-apiserver | Apache-2.0 | v0.22.2 |
k8s.io/apimachinery | Apache-2.0 | v0.22.2 |
k8s.io/cli-runtime | Apache-2.0 | v0.22.2 |
k8s.io/client-go | Apache-2.0 | v0.22.2 |
k8s.io/component-base | Apache-2.0 | v0.22.2 |
k8s.io/klog/v2 | Apache-2.0 | v2.10.0 |
k8s.io/kube-openapi | Apache-2.0 | v0.0.0-20211020163157-7327e2aaee2b |
k8s.io/kubectl | Apache-2.0 | v0.22.2 |
k8s.io/utils | Apache-2.0 | v0.0.0-20210930125809-cb0fa318a74b |
sigs.k8s.io/controller-runtime | Apache-2.0 | v0.10.2 |
sigs.k8s.io/gateway-api | Apache-2.0 | v0.4.0 |
sigs.k8s.io/kustomize/api | Apache-2.0 | v0.8.11 |
sigs.k8s.io/kustomize/kyaml | Apache-2.0 | v0.11.0 |
sigs.k8s.io/mcs-api | Apache-2.0 | v0.1.0 |
sigs.k8s.io/structured-merge-diff/v4 | Apache-2.0 | v4.1.2 |
sigs.k8s.io/yaml | MIT and BSD-3-Clause | v1.3.0 |
用于实现 Skywalking 指标观测,从而实现基于 Skywalking 的 Higress 监控大盘
It is used to realize the Skywalking indicator observation, so as to realize the Higress observability kanban based on Skywalking
skywalking doc: https://skywalking.apache.org/docs/main/v8.9.1/en/setup/envoy/metrics_service_setting/
gateway 创建报错。
If there is an exception, please attach the exception trace:
helm upgrade --install higress -n higress-system oci://higress-registry.cn-hangzhou.cr.aliyuncs.com/charts/higress
这种情况建议通过增加 QA 来引导用户自己配置 securityContext 以及 containerSecurityContext
实现 Higress CLI 工具,简化安装、升级、运维步骤
Implement Higress CLI to support easier installation, upgrade and operations
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.