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: add optional Gateway API resource definition to expose endpoints #280

Merged
merged 44 commits into from
Aug 25, 2023

Conversation

leninmehedy
Copy link
Member

@leninmehedy leninmehedy commented Aug 24, 2023

Description

This pull request changes the following:

  • Add optional Gateway API resource definition for haproxy-node*-svc TCPRoutes for port 50211 (GRPC)

    • If haproxy is not enabled then these ports are mapped to network-node*-svc
  • Add optional Gateway API resource definition for envoy-proxy-node*-svc HTTPRoutes for port 8080 (gRPC relay)

Limitations

  • We needed to use envoy-gateway since haproxy-ingress-controller is in alpha and doesn't seem to support TCPRoute yet.
  • Currently Gateway API ports are mapped as below (we need a different port mapping strategy to support a large number of nodes)
    • 50211 ports are mapped to nodes as below:
      • nodeX: 50211 + X * 1000
        • node0: 50211
        • node1: 51211
        • node2: 52211
          ...
    • 8080 ports are mapped to nodes as below:
      • nodeX: 8080 + X * 100
        • node0: 8080
        • node1: 8180
        • node2: 8280
          ...

Related Issues

leninmehedy and others added 30 commits August 14, 2023 06:47
Signed-off-by: Lenin Mehedy <[email protected]>
This is because OTel collector ports can be configured by the user

Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>

# Conflicts:
#	dev/Makefile
Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>
@leninmehedy leninmehedy marked this pull request as ready for review August 25, 2023 05:22
leninmehedy and others added 3 commits August 25, 2023 15:25
…eMonitor resource definition (#271)

Signed-off-by: Lenin Mehedy <[email protected]>
Co-authored-by: Nathan Klick <[email protected]>
Signed-off-by: Deepak Mishra <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Deepak Mishra <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Co-authored-by: Lenin Mehedy <[email protected]>
Co-authored-by: Nathan Klick <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>

# Conflicts:
#	dev/Makefile
#	dev/scripts/telemetry.sh
Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Lenin Mehedy <[email protected]>
@github-actions
Copy link

Unit Test Results

16 files  ±0  16 suites  ±0   35s ⏱️ +5s
85 tests ±0  82 ✔️ ±0  3 💤 ±0  0 ±0 
86 runs  ±0  83 ✔️ ±0  3 💤 ±0  0 ±0 

Results for commit 33c8f5e. ± Comparison against base commit 8842aa0.

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@leninmehedy leninmehedy merged commit 9b9effd into main Aug 25, 2023
@leninmehedy leninmehedy deleted the gateway-api branch August 25, 2023 21:38
swirlds-automation added a commit that referenced this pull request Sep 14, 2023
## [0.8.0](v0.7.0...v0.8.0) (2023-09-14)

### Features

* add hedera node explorer as a conditional sub chart ([#275](#275)) ([c4eb8d7](c4eb8d7))
* add helm chart tests to check haproxy and envoy proxy deployments ([#319](#319)) ([08c3f85](08c3f85))
* add helm chart tests to validate state of sidecars ([#314](#314)) ([e04de57](e04de57))
* add optional Gateway API resource definition to expose endpoints ([#280](#280)) ([9b9effd](9b9effd))
* allow pod-monitor-role to have access to secrets ([#309](#309)) ([75e66c3](75e66c3))
* convert helm client test source set to a module ([#300](#300)) ([2fcb3c3](2fcb3c3))
* enable locally building and loading kubectl-bats docker image into the cluster for helm tests ([#310](#310)) ([230b291](230b291))
* ensure OTel collector is able to export metrics and traces ([#298](#298)) ([8c24733](8c24733))
* expose envoy-proxy prometheus metrics endpoint ([#328](#328)) ([f052481](f052481))
* expose prometheus metrics from HAProxy ([#320](#320)) ([8d4f51c](8d4f51c))
* introduces the build-logic project instead of buildSrc ([#327](#327)) ([aeb4c48](aeb4c48))
* parameterize gateway port mapping using values file ([#339](#339)) ([0c16855](0c16855))
* support higher number of nodes with consistent gateway port mapping ([#337](#337)) ([8b44410](8b44410))
* switch from JPMS module conventions to project level plugin ([#312](#312)) ([b3a7429](b3a7429))
* update Open Telemetry configuration to support optional remote write pushing of metrics and log ([#281](#281)) ([f5aadc5](f5aadc5))

### Bug Fixes

* lock the semantic release toolchain to specific known working versions ([#342](#342)) ([5eb8600](5eb8600))
* resolves the accidental mangling of Helm subchart versions on release ([#285](#285)) ([4e6a539](4e6a539))
* use 9090 as prometheus port across services for consistency ([#330](#330)) ([5052945](5052945))
@swirlds-automation
Copy link
Contributor

🎉 This PR is included in version 0.8.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

jeromy-cannon pushed a commit that referenced this pull request Sep 14, 2023
## [0.8.0](v0.7.0...v0.8.0) (2023-09-14)

### Features

* add hedera node explorer as a conditional sub chart ([#275](#275)) ([c4eb8d7](c4eb8d7))
* add helm chart tests to check haproxy and envoy proxy deployments ([#319](#319)) ([08c3f85](08c3f85))
* add helm chart tests to validate state of sidecars ([#314](#314)) ([e04de57](e04de57))
* add optional Gateway API resource definition to expose endpoints ([#280](#280)) ([9b9effd](9b9effd))
* allow pod-monitor-role to have access to secrets ([#309](#309)) ([75e66c3](75e66c3))
* convert helm client test source set to a module ([#300](#300)) ([2fcb3c3](2fcb3c3))
* enable locally building and loading kubectl-bats docker image into the cluster for helm tests ([#310](#310)) ([230b291](230b291))
* ensure OTel collector is able to export metrics and traces ([#298](#298)) ([8c24733](8c24733))
* expose envoy-proxy prometheus metrics endpoint ([#328](#328)) ([f052481](f052481))
* expose prometheus metrics from HAProxy ([#320](#320)) ([8d4f51c](8d4f51c))
* introduces the build-logic project instead of buildSrc ([#327](#327)) ([aeb4c48](aeb4c48))
* parameterize gateway port mapping using values file ([#339](#339)) ([0c16855](0c16855))
* support higher number of nodes with consistent gateway port mapping ([#337](#337)) ([8b44410](8b44410))
* switch from JPMS module conventions to project level plugin ([#312](#312)) ([b3a7429](b3a7429))
* update Open Telemetry configuration to support optional remote write pushing of metrics and log ([#281](#281)) ([f5aadc5](f5aadc5))

### Bug Fixes

* lock the semantic release toolchain to specific known working versions ([#342](#342)) ([5eb8600](5eb8600))
* resolves the accidental mangling of Helm subchart versions on release ([#285](#285)) ([4e6a539](4e6a539))
* use 9090 as prometheus port across services for consistency ([#330](#330)) ([5052945](5052945))

Signed-off-by: Jeromy Cannon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
4 participants