Skip to content

Releases: johnlam90/aws-multi-eni-controller

v1.3.8

03 Jul 18:59

Choose a tag to compare

  • 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

03 Jul 18:54
ec7657b

Choose a tag to compare

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.tgz

Option 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.8

Configuration

See the Helm Chart README for configuration options.

v1.3.5

28 May 04:09

Choose a tag to compare

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 dpdkPCIAddress field
  • 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.0 incorrectly mapped to sriov_kernel_1 instead of sriov_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 TestPCIAddressMapping and TestRegularENINoSRIOVConfiguration
  • Documentation: Updated GitHub issue #22 with detailed root cause analysis and solution documentation

Changed

  • Interface Mapping Logic: Modified findNodeENIForInterface method to check PCI address first for SR-IOV configurations, then fall back to device index for regular ENI configurations
  • SR-IOV Logic: Updated updateSRIOVConfiguration method to only process interfaces where dpdkPCIAddress is explicitly specified, ensuring proper separation between regular ENI and SR-IOV functionality

Technical Details

This release addresses critical issues in SR-IOV configuration generation:

  1. Issue 1: Regular ENI configurations (no DPDK fields) were incorrectly generating SR-IOV device plugin configuration
  2. 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

28 May 04:05
ab7d466

Choose a tag to compare

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.tgz

Option 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.5

Configuration

See the Helm Chart README for configuration options.

v1.3.4

27 May 08:47
cd23e74

Choose a tag to compare

Added

  • Modular Architecture: Complete refactoring from monolithic 6700+ line main.go to focused, maintainable packages
    • pkg/eni-manager/coordinator/ - Main orchestration logic and integration tests
    • pkg/eni-manager/dpdk/ - DPDK device binding operations with circuit breaker pattern
    • pkg/eni-manager/network/ - Network interface management with validation
    • pkg/eni-manager/kubernetes/ - Kubernetes API interactions and NodeENI handling
    • pkg/eni-manager/sriov/ - SR-IOV device plugin configuration management
    • pkg/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

27 May 08:43
cd23e74

Choose a tag to compare

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.tgz

Option 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.4

Configuration

See the Helm Chart README for configuration options.

v1.3.3

25 May 04:55

Choose a tag to compare

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

25 May 04:50

Choose a tag to compare

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.tgz

Option 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.3

Configuration

See the Helm Chart README for configuration options.

Helm Chart 1.3.2

24 May 00:41

Choose a tag to compare

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.tgz

Option 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.2

Configuration

See the Helm Chart README for configuration options.

v1.3.0

14 May 04:52

Choose a tag to compare

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