EAS: add Extension API Server with multi-active HA#1388
Open
zhengxiexie wants to merge 1 commit intovmware-tanzu:mainfrom
Open
EAS: add Extension API Server with multi-active HA#1388zhengxiexie wants to merge 1 commit intovmware-tanzu:mainfrom
zhengxiexie wants to merge 1 commit intovmware-tanzu:mainfrom
Conversation
0fa2851 to
dd97093
Compare
Codecov Report❌ Patch coverage is ❌ Your patch status has failed because the patch coverage (12.10%) is below the target coverage (70.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #1388 +/- ##
==========================================
- Coverage 76.74% 74.17% -2.57%
==========================================
Files 151 163 +12
Lines 21162 22191 +1029
==========================================
+ Hits 16240 16460 +220
- Misses 3762 4554 +792
- Partials 1160 1177 +17
🚀 New features to boost your workflow:
|
dd97093 to
642da0f
Compare
Add the Extension API Server (EAS) as an aggregated API that exposes NSX IP usage data (VPC IP address usage, IP block usage, subnet IP pools, subnet DHCP stats) via standard Kubernetes API endpoints. EAS is read-only and runs in multi-active mode — all replicas serve concurrently without leader election, with the Kubernetes Service providing automatic load balancing. TLS certificates are generated automatically: a self-signed CA and server certificate are created, stored in a Kubernetes Secret, and injected into the APIService caBundle. Certificates refresh every 30 days. Co-Authored-By: Oz <oz-agent@warp.dev> Change-Id: I967903412334a30e31f815d0ed4fdbf53afd60f6
805b822 to
bc806a7
Compare
Contributor
Author
|
/e2e |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ What's Changed
NSX Extension API Server (EAS)
New sidecar in the nsx-ncp pod exposing NSX IP usage data via Kubernetes aggregated API (
eas.nsx.vmware.com/v1alpha1).Resources:
VPCIPAddressUsage— per-VPC IP block allocation percentagesIPBlockUsage— IP block used/available rangesSubnetIPPools— subnet IP pool details (excludes DHCP subnets)SubnetDHCPServerConfigStats— DHCP server config and pool statsAll resources support JSON and
kubectlTable output (kubectl get ... -o wide).Server Architecture (
pkg/eas/server/)registerResource[Item, List]()— no per-resource switch/caseRunnablelifecycle (context-aware shutdown, manager-managed)GET/HEADallowed; others return405StatusErrorresponses for consistent error formatFile Structure
🎯 Design Decisions
Why no leader election? Unlike nsx-operator which writes to NSX, EAS only reads. Multiple replicas returning the same data is harmless and enables:
✅ Testing
Unit Tests
E2E Verification (Testbed 15412)
Deployed to Supervisor cluster (10.161.114.97, NSX 10.161.117.160):
Multi-active verified: EAS starts serving immediately after NSX client init (no election delay). Health check and aggregated API (
kubectl get vpcipaddressusages -A) confirmed working.🔄 Backward Compatibility
No API changes to existing resources. EAS is an additive feature — new sidecar container, new APIService, new CRDs.