Releases: johnlam90/aws-multi-eni-controller
v1.3.8
- Synchronized YAML manifests with Helm chart templates
- Added missing NODE_NAME environment variable to controller deployment
- Updated resource limits to match Helm chart values (500m CPU, 512Mi memory)
- Added LOG_LEVEL environment variable to ENI manager daemonset
- Set MAX_CONCURRENT_RECONCILES to 5 consistently across all manifests
Helm Chart 1.3.8
AWS Multi-ENI Controller Helm Chart 1.3.8
This release contains the Helm chart for AWS Multi-ENI Controller version v1.3.8.
Installation Options
Option 1: Install from GitHub Release
# Download the chart
wget https://github.com/johnlam90/aws-multi-eni-controller/releases/download/helm-chart-1.3.8/aws-multi-eni-controller-1.3.8.tgz
# Install the chart
helm install my-release ./aws-multi-eni-controller-1.3.8.tgzOption 2: Install from OCI Registry (Recommended)
# Install directly from OCI registry
helm install my-release oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.8Configuration
See the Helm Chart README for configuration options.
v1.3.5
Fixed
- SR-IOV Configuration Generation: Fixed ENI Manager incorrectly generating SR-IOV device plugin configuration for regular ENI configurations (Case 1) when it should only do so for configurations where SR-IOV is explicitly requested via
dpdkPCIAddressfield - PCI Address Mapping: Fixed interface-to-NodeENI mapping logic to prioritize PCI address matching over device index matching for SR-IOV configurations, resolving PCI address mismatches in SR-IOV device plugin configuration
- Resource Name Mapping: Resolved issue where PCI addresses were incorrectly mapped to SR-IOV resource names (e.g., PCI
0000:00:08.0incorrectly mapped tosriov_kernel_1instead ofsriov_kernel_2)
Added
- Enhanced Logging: Added detailed logging for interface mapping decisions to help troubleshoot configuration issues
- Test Coverage: Added comprehensive test coverage for interface-to-NodeENI mapping scenarios including
TestPCIAddressMappingandTestRegularENINoSRIOVConfiguration - Documentation: Updated GitHub issue #22 with detailed root cause analysis and solution documentation
Changed
- Interface Mapping Logic: Modified
findNodeENIForInterfacemethod to check PCI address first for SR-IOV configurations, then fall back to device index for regular ENI configurations - SR-IOV Logic: Updated
updateSRIOVConfigurationmethod to only process interfaces wheredpdkPCIAddressis explicitly specified, ensuring proper separation between regular ENI and SR-IOV functionality
Technical Details
This release addresses critical issues in SR-IOV configuration generation:
- Issue 1: Regular ENI configurations (no DPDK fields) were incorrectly generating SR-IOV device plugin configuration
- Issue 2: PCI address mapping was using device index first, causing incorrect associations between interfaces and NodeENI resources
The fixes ensure that:
- Regular ENI configurations work as intended (basic ENI attachment only)
- SR-IOV configurations correctly map PCI addresses to resource names
- Cleaner separation of concerns between regular ENI and SR-IOV functionality
Helm Chart 1.3.5
AWS Multi-ENI Controller Helm Chart 1.3.5
This release contains the Helm chart for AWS Multi-ENI Controller version v1.3.5.
Installation Options
Option 1: Install from GitHub Release
# Download the chart
wget https://github.com/johnlam90/aws-multi-eni-controller/releases/download/helm-chart-1.3.5/aws-multi-eni-controller-1.3.5.tgz
# Install the chart
helm install my-release ./aws-multi-eni-controller-1.3.5.tgzOption 2: Install from OCI Registry (Recommended)
# Install directly from OCI registry
helm install my-release oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.5Configuration
See the Helm Chart README for configuration options.
v1.3.4
Added
- Modular Architecture: Complete refactoring from monolithic 6700+ line main.go to focused, maintainable packages
pkg/eni-manager/coordinator/- Main orchestration logic and integration testspkg/eni-manager/dpdk/- DPDK device binding operations with circuit breaker patternpkg/eni-manager/network/- Network interface management with validationpkg/eni-manager/kubernetes/- Kubernetes API interactions and NodeENI handlingpkg/eni-manager/sriov/- SR-IOV device plugin configuration managementpkg/eni-manager/testutil/- Testing utilities and mock implementations
- Enhanced SR-IOV Management: Improved device plugin restart isolation and tracking
- NodeENI Deletion Detection: Automatic cleanup and tracking for deleted NodeENI resources
- Batched SR-IOV Updates: Prevention of configuration overwrites during concurrent operations
- Comprehensive Test Suite: Organized test structure with 16+ test files moved to appropriate packages
- Circuit Breaker Pattern: Fault tolerance for DPDK operations to prevent cascading failures
- Input Validation Framework: Comprehensive validation with detailed error messages
- Exponential Backoff Retry: Resilient network operations with configurable retry logic
Changed
- Architecture Transformation: Reduced main.go from 6700+ lines to ~300 lines per focused package
- Improved Maintainability: Clear separation of concerns with single responsibility principle
- Enhanced Testability: Mock implementations and comprehensive unit tests for each component
- Better Observability: Enhanced status reporting and component health metrics
- Optimized Performance: Same or better performance with improved resource utilization
- Organized Test Structure: Moved all test files to appropriate package directories with fixed declarations
Fixed
- SR-IOV Resource Cleanup: Fixed cleanup issues for non-DPDK interfaces
- Device Plugin Restart Loops: Prevented unnecessary restart cycles with improved change detection
- DPDK Status Reporting: Enhanced accuracy of DPDK binding status in NodeENI resources
- Configuration Conflicts: Resolved SR-IOV placeholder resource conflicts with updated CRD group
- Race Condition Protection: Enhanced protection against concurrent operation conflicts
Security
- Improved Error Handling: Enhanced error recovery and timeout protection for all operations
- Resource Lifecycle Management: Proper cleanup and resource management across all components
- Graceful Shutdown: Enhanced shutdown handling for all modular components
Documentation
- Modular Architecture Guide: Comprehensive documentation for new architecture (docs/MODULAR_ARCHITECTURE.md)
- Migration Guide: Detailed guide for developers working with the new structure (docs/REFACTORING_MIGRATION.md)
- Updated README: Enhanced architecture overview and component descriptions
Addresses: GitHub issue #20 - Complete modular architecture refactoring
Backward Compatibility: 100% backward compatible - no breaking changes
Helm Chart 1.3.4
AWS Multi-ENI Controller Helm Chart 1.3.4
This release contains the Helm chart for AWS Multi-ENI Controller version v1.3.4.
Installation Options
Option 1: Install from GitHub Release
# Download the chart
wget https://github.com/johnlam90/aws-multi-eni-controller/releases/download/helm-chart-1.3.4/aws-multi-eni-controller-1.3.4.tgz
# Install the chart
helm install my-release ./aws-multi-eni-controller-1.3.4.tgzOption 2: Install from OCI Registry (Recommended)
# Install directly from OCI registry
helm install my-release oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.4Configuration
See the Helm Chart README for configuration options.
v1.3.3
Added
- Cloud-Native SR-IOV Device Plugin Restart: Implemented native Kubernetes API-based restart functionality for SR-IOV device plugins
- Enhanced RBAC Permissions: Added comprehensive pod management permissions for SR-IOV device plugin operations
- Multiple SR-IOV Plugin Support: Support for various SR-IOV device plugin naming conventions and deployment patterns
- Performance Testing Framework: Added a comprehensive performance testing suite for enterprise-scale deployments
- Timeout Protection: Enhanced error handling with configurable timeouts for SR-IOV operations
Changed
- Replaced kubectl Dependency: Eliminated external kubectl binary dependency in favor of native Kubernetes client-go APIs
- Improved SR-IOV Integration: Enhanced reliability and error handling for DPDK binding/unbinding operations
- Enhanced Device Detection: Improved DPDK device detection and status reporting in ENI manager
- Optimized Concurrent Operations: Better handling of concurrent ENI operations and reconciliation
Fixed
- SR-IOV Device Plugin Restart Reliability: Fixed issues with SR-IOV device plugin restart when DPDK binding changes occur
- DPDK Status Reporting: Improved accuracy of DPDK binding status in NodeENI resources
- Race Condition Handling: Enhanced protection against race conditions in concurrent operations
Security
- Principle of Least Privilege: Refined RBAC permissions to follow security best practices
- Enhanced Pod Security: Improved security context and capabilities management for privileged operations
Helm Chart 1.3.3
AWS Multi-ENI Controller Helm Chart 1.3.3
This release contains the Helm chart for AWS Multi-ENI Controller version v1.3.3.
Installation Options
Option 1: Install from GitHub Release
# Download the chart
wget https://github.com/johnlam90/aws-multi-eni-controller/releases/download/helm-chart-1.3.3/aws-multi-eni-controller-1.3.3.tgz
# Install the chart
helm install my-release ./aws-multi-eni-controller-1.3.3.tgzOption 2: Install from OCI Registry (Recommended)
# Install directly from OCI registry
helm install my-release oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.3Configuration
See the Helm Chart README for configuration options.
Helm Chart 1.3.2
AWS Multi-ENI Controller Helm Chart 1.3.2
This release contains the Helm chart for AWS Multi-ENI Controller version v1.3.2.
Installation Options
Option 1: Install from GitHub Release
# Download the chart
wget https://github.com/johnlam90/aws-multi-eni-controller/releases/download/helm-chart-1.3.2/aws-multi-eni-controller-1.3.2.tgz
# Install the chart
helm install my-release ./aws-multi-eni-controller-1.3.2.tgzOption 2: Install from OCI Registry (Recommended)
# Install directly from OCI registry
helm install my-release oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.2Configuration
See the Helm Chart README for configuration options.
v1.3.0
Added
- Device index tracking in ENI attachments for better reconciliation
- Consistent device index to subnet mapping across all nodes
- Automatic cleanup of manually detached ENIs to prevent resource leakage
Changed
- Refactored code to reduce cyclomatic complexity
- Enhanced controller stability and reliability
- Improved logging for ENI attachment operations
Fixed
- Fixed issue where manually detached ENIs were left in the available state
- Fixed device index type conversion in ENI attachment status
Installation
helm install aws-multi-eni oci://ghcr.io/johnlam90/charts/aws-multi-eni-controller --version 1.3.0 --namespace eni-controller-system --create-namespace