Code Monkey home page Code Monkey logo

higress's Introduction

Higress
Cloud Native API Gateway

Build Status license

官网   |   文档   |   博客   |   开发指引   |   Higress 企业版  

English | 中文

Higress 是基于阿里内部两年多的 Envoy Gateway 实践沉淀,以开源 IstioEnvoy 为核心构建的云原生 API 网关。Higress 实现了安全防护网关、流量网关、微服务网关三层网关合一,可以显著降低网关的部署和运维成本。

arch

Summary

使用场景

  • Kubernetes Ingress 网关:

    Higress 可以作为 K8s 集群的 Ingress 入口网关, 并且兼容了大量 K8s Nginx Ingress 的注解,可以从 K8s Nginx Ingress 快速平滑迁移到 Higress。

    支持 Gateway API 标准,支持用户从 Ingress API 平滑迁移到 Gateway API。

  • 微服务网关:

    Higress 可以作为微服务网关, 能够对接多种类型的注册中心发现服务配置路由,例如 Nacos, ZooKeeper, Consul, Eureka 等。

    并且深度集成了 Dubbo, Nacos, Sentinel 等微服务技术栈,基于 Envoy C++ 网关内核的出色性能,相比传统 Java 类微服务网关,可以显著降低资源使用率,减少成本。

  • 安全防护网关:

    Higress 可以作为安全防护网关, 提供 WAF 的能力,并且支持多种认证鉴权策略,例如 key-auth, hmac-auth, jwt-auth, basic-auth, oidc 等。

核心优势

  • 生产等级

    脱胎于阿里巴巴2年多生产验证的内部产品,支持每秒请求量达数十万级的大规模场景。

    彻底摆脱 reload 引起的流量抖动,配置变更毫秒级生效且业务无感。

  • 平滑演进

    支持 Nacos/Zookeeper/Eureka 等多种注册中心,可以不依赖 K8s Service 进行服务发现,支持非容器架构平滑演进到云原生架构。

    支持从 Nginx Ingress Controller 平滑迁移,支持平滑过渡到 Gateway API,支持业务架构平滑演进到 ServiceMesh。

  • 兼收并蓄

    兼容 Nginx Ingress Annotation 80%+ 的使用场景,且提供功能更丰富的 Higress Annotation 注解。

    兼容 Ingress API/Gateway API/Istio API,可以组合多种 CRD 实现流量精细化管理。

  • 便于扩展

    提供 Wasm、Lua、进程外三种插件扩展机制,支持多语言编写插件,生效粒度支持全局级、域名级,路由级。

    插件支持热更新,变更插件逻辑和配置都对流量无损。

功能展示

  • 丰富的可观测

    提供开箱即用的可观测,Grafana&Prometheus 可以使用内置的也可对接自建的

  • 插件扩展机制

    官方提供了多种插件,用户也可以开发自己的插件,构建成 docker/oci 镜像后在控制台配置,可以实时变更插件逻辑,对流量完全无损。

  • 多种服务发现

    默认提供 K8s Service 服务发现,通过配置可以对接 Nacos/ZooKeeper 等注册中心实现服务发现,也可以基于静态 IP 或者 DNS 来发现

  • 域名和证书

    可以创建管理 TLS 证书,并配置域名的 HTTP/HTTPS 行为,域名策略里支持对特定域名生效插件

  • 丰富的路由能力

    通过上面定义的服务发现机制,发现的服务会出现在服务列表中;创建路由时,选择域名,定义路由匹配机制,再选择目标服务进行路由;路由策略里支持对特定路由生效插件

社区

感谢

如果没有 Envoy 和 Istio 的开源工作,Higress 就不可能实现,在这里向这两个项目献上最诚挚的敬意。

交流群

image

技术分享

微信公众号:

higress's People

Contributors

2456868764 avatar baerwang avatar cf1998 avatar ch3cho avatar charlie17li avatar dongdongh233 avatar dspo avatar fengshunli avatar fkbqf avatar hinsteny avatar iutx avatar jizhuozhi avatar johnlanni avatar lynskylate avatar onlypiglet avatar performance308 avatar realjacksun avatar rinfx avatar sjcsjc123 avatar sjtuzbk avatar slievrly avatar spacewander avatar specialyang avatar tomkerkhove avatar uncle-justice avatar vikizhao156 avatar weixinx avatar whalecold avatar xcbeyond avatar xunzhuo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

higress's Issues

Wanted: who's using Higress

Who is Using Higress

First of all, thanks sincerely for constantly using and supporting Higress. We will try our best to keep Higress better, and keep growing community.

The purpose of this issue

  • We’d like to listen to the community to make Higress better.
  • We want to attract more people to contribute to Higress.
  • We're willing to learn more Higress use scenarios in the field for better planning.

What we expect from you

Pls. submit a comment in this issue to include the following information:

  • your company, school or organization.
  • your city and country.
  • your contact info: blog, email, twitter (at least one,you may not provide it if it is inconvenient).
  • for what business scenario do you use Higress.

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):

Action now,build Higress

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 社区和生态变得更加繁荣。

此 Issue 的目的

聆听社区的声音,让 Higress 变得更好
吸引更多的人参与贡献
更多的了解 Higress 的实际使用场景,以方便下一步的规划

我们期待您能提供

在此提交一条评论, 评论内容包括:

  • 您所在公司、学校或组织
  • 您所在的城市、国家
  • 您的联系方式: 微博、邮箱、微信 (至少一个,如果不方便可不提供)
  • 您将 Higress 用于哪些业务场景

您可以参考下面的样例来提供您的信息:

* 组织:阿里巴巴
* 地点:**杭州
* 联系方式:[email protected]
* 业务场景(多选):
   - [x] 流量网关场景(如nginx)
   - [x] 微服务网关场景 (如kong/spring cloud gateway)
   - [x] 安全网关场景(如waf)
 *  采用状态:
   - [] 预研&测试阶段
   - [] 生产使用阶段
 * (非必填)公司logo(用于官网展示):

开始行动,使用 Higress

如果您还对 Higress 的开发和生产上线有问题,您可以通过扫描钉钉群二维码加入我们,我们会根据您上面提供的信息来跟踪您的使用情况,辅助您参与到社区共建中。

再次感谢你的参与!!!
Higress 团队

支持通过hgctl集成证书管理组件 (Support integrating certificate management components through helm parameters)

我为什么需要这个功能?

1:因为接入cert-manager需要一定的学习成本,对不了解cert-manager的工程师来讲不是特别友好
2:针对dev/sit/test/fat/uat等环境可能并不需要真正的接入付费证书

我希望它是什么样子?

1:希望在Helm/Yamlfile部署的时候可以支持打开这个功能,可以调研一下caddy的ingress的功能
2:打开此功能后,当用户没有在部署应用时可以选择性的开启自动TLS,这样它可以自动的去走ACME或者其他的自动方法去实现这个HTTPS生成的功能

Caddy-ingress

Caddy-ingress

支持通过 helm 参数实现 Host 网络模式部署(Higress-gateway Pod Uses hostNetwork)

  • I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

Edit Deploy Of higress-gateway,adds hostNetwork: true ,but Pod's status is SysctlForbidden.

Ⅱ. Describe what happened

If there is an exception, please attach the exception trace:

Just paste your stack trace here!

Ⅲ. Describe what you expected to happen

Ⅳ. How to reproduce it (as minimally and precisely as possible)

  1. xxx
  2. xxx
  3. xxx

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  • Higress version:
  • OS :
  • Others:

Implement Higress CLI

Why do you need it?

实现 Higress CLI 工具,简化安装、升级、运维步骤


Implement Higress CLI to support easier installation, upgrade and operations

Will there be a plan to break down patch and contribute some patches to the upstream?

Why you need it?

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.

How it could be?

Break down the patch into multiple ones according to their features.
If possible, we can contribute some patches back to the upstream.

Other related information

实现和 nginx proxy_redirect 功能等价的 wasm 插件(Implement A wasm plugin that the functional equivalent of nginx proxy_redirect)

Why do you need it?

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

How could it be?

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 字段后再返回给客户端.

Other related information

Add any other context or screenshots about the feature request here.

License Compatibility check

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

支持通过 helm 参数集成开源日志分析组件(Support the integration of open source log analysis components through helm parameters)

Why do you need it?

提供开箱即用的网关日志收集和分析的能力


Provides out-of-the-box gateway log collection and analysis capabilities

How could it be?

Other related information

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

Kubernetes 在 低版本内核中,Gateway 创建报错

  • I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

gateway 创建报错。

Ⅱ. Describe what happened

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

image

Ⅲ. Describe what you expected to happen

这种情况建议通过增加 QA 来引导用户自己配置 securityContext 以及 containerSecurityContext

Ⅳ. How to reproduce it (as minimally and precisely as possible)

  1. xxx
  2. xxx
  3. xxx

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  1. Kubernetes 1.23
  2. OS: CentOS7
  3. Linux Kernel: 3.10

Implement a plugin that can replace the response body according to the configuration

Why do you need it?

实现一个插件,可以匹配应答和状态码返回自定义应答

Implement a plugin that can replace the response body according to the configuration

How could it be?

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"

Other related information

Add any other context or screenshots about the feature request here.

Implement RESTful admin api

Why do you need it?

实现 RESTful 的 admin api 提供控制台对接


Implement RESTful admin api to provide console usage

How could it be?

Other related information

支持通过 helm 参数集成 skywalking,提供 metrics 大盘模版(Support integration of skywalking through helm parameters, and provide metrics template)

Why do you need it?

用于实现 Skywalking 指标观测,从而实现基于 Skywalking 的 Higress 监控大盘


It is used to realize the Skywalking indicator observation, so as to realize the Higress observability kanban based on Skywalking

How could it be?

Other related information

skywalking doc: https://skywalking.apache.org/docs/main/v8.9.1/en/setup/envoy/metrics_service_setting/

About Gateway Console

Why do you need it?

What features are needed for the first release higress console

How could it be?

  • Service list & Service Source;
  • Route list;
  • Domain list.

Other related information

  • Plugin Management ?
  • BPM SPI ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.