- Improvement - Multi card support - Prevent route override for primary ENI across multi-cards ENAs (#1396 , @jayanthvn)
- Improvement - Adds http timeout to aws sessions (#1370 , @couralex6)
- Improvement - Switch calico to be deployed with the Tigera operator (#1297 by @tmjd)
- Improvement - Update calico to v3.17.1 (#1328 , @lwr20)
- Improvement - update plugins to v0.9.0 (#1362 , @fr0stbyte)
- Improvement - update github.com/containernetworking/plugins to v0.9.0 (#1350 , @fr0stbyte)
- Bug - Fix regex match for getting primary interface (#1311 , @jayanthvn)
- Bug - Output to stderr when no log file path is passed (#1275 , @couralex6)
- Bug - Fix deletion of hostVeth rule for pods using security group (#1376 , @SaranBalaji90)
- Improvement - Replace DescribeNetworkInterfaces with paginated version (#1333, @haouc)
- Bug - Rearrange Pod deletion workflow (#1315, @SaranBalaji90)
- Improvement - Avoid detaching EFA ENIs (#1237 , @mogren)
- Improvement - Add t4g instance type (#1219 , @mogren)
- Improvement - Add p4d.24xlarge instance type (#1238 , @mogren)
- Improvement - Update calico to v3.16.2 (#1235 , @lwr20)
- Improvement - Update readme on stdout support for plugin log file (#1251 , @jayanthvn)
- Bug - Make p3dn.24xlarge examples more realistic (#1263 , @mogren)
- Bug - Make sure we have space for a trunk ENI (#1210 , @mogren)
- Bug - Update README for DISABLE_TCP_EARLY_DEMUX (#1273 , @SaranBalaji90)
- Bug - Update p4 instance limits (#1289 , @jayanthvn)
- Bug - Match primary ENI IP correctly (#1247 , @mogren)
- Bug - Ignore error on enabling TCP early demux for old kernels (#1242, @mogren)
- Bug - Add support to toggle TCP early demux (#1212, @SaranBalaji90)
- Bug - Avoid deleting ENIs being created by older CNI versions (#1109, @jayanthvn)
- Bug - Add iptables fix and update to v1.7.x (#1187, @mogren)
- Bug - Handle stale IMDS metadata for secondary IPs (#1177, @mogren)
- Bug - Mount /run/xtables.lock to prevent unwanted race conditions (#1186, @kgtw)
- Bug - Make a deep copy for introspection (#1179, @mogren)
- Bug - Wait for ENI and secondary IPs (#1174, @mogren)
- Improvement - Update Calico images to v3.15.1 & set routeSource=WorkloadIPs for v1.7 (#1182, @realgaurav)
- Improvement - Update Calico to v3.15.1 & set routeSource=WorkloadIPs (#1165, @realgaurav)
- Improvement - Clean up go lint warnings (#1162, @mogren)
- Improvement - Update SG on secondary ENIs (#1098, @jayanthvn)
- Improvement - Fix device number and update table name the device index (#1071, @mogren)
- Bug - Calico deletes routes when using CNI v1.7.0 (#1166, @jayanthvn)
- Improvement - enable manual override for VERSION in images (#1156, @nprab428)
- Improvement - Reject version skew between gRPC client and server (#1141, @anguslees)
- Improvement - Write to IPAM checkpoint file immediately after reading from CRI (#1140, @anguslees)
- Improvement - Fix a log message (#1138, @anguslees)
- Improvement - Add ipamd changes for sg support (#1126, @mogren)
- Improvement - Add support to setup pod network using VLANss (#1125, @SaranBalaji90)
- Improvement - Improve CRI->checkpoint logic in the face of downgrades (#1123, @anguslees)
- Improvement - Slash and burn unused code (#1115, @anguslees)
- Improvement - Remove references to unused metadata
owner-id
(#1111, @anguslees) - Improvement - Remove old pre-1.3 migration code (#1110, @anguslees)
- Improvement - Enable log config for the metrics agent (#1104, @mogren)
- Improvement - Refactor ENI limit struct (#1035, @mogren)
- Improvement - Use sed as a stream editor and redirect to file (#1069, @willejs)
- Improvement - JSON output format for the entrypoint script (#1066, @jayanthvn)
- Improvement - Use install command instead of cp (#1061, @mogren)
- Improvement - Updated manifest configs with default env vars (#1057, @saiteja313)
- Improvement - Default to random-fully (#1048, @mogren)
- Improvement - Update probe settings (#1028, @mogren)
- Improvement - Added warning if delete on termination is set to false for the primary ENI (#1024, @jayanthvn)
- Improvement - Limit scope of logs writable by ipamd container (#987, @anguslees)
- Improvement - Autogenerate per-region YAML manifests from a common template (#986, @anguslees)
- Improvement - Persist IPAM state to local file and use across restarts (#972, @anguslees)
- Improvement - Add init container (#955, @mogren)
- Improvement - Refresh subnet/CIDR information periodically (#903, @nithu0115)
- Docs - Changed data type for variables in README (#1116, @abhinavmpandey08)
- Docs - Fix docs links for cni-metrics-agent (#1072, @mogren)
- Testing - Create script to run all release tests (#1106, @bnapolitan)
- Testing - Cover bottlerocket cluster test (#1096, @bnapolitan)
- Testing - Introduce automated performance testing (#1068, @bnapolitan)
- Testing - scripts/lib: bump up tester to v1.4.0 (#1065, @gyuho)
- Testing - Add parallel testing to conformance (#1018, @bnapolitan)
- Testing - Cache go packages in CircleCI (#1017, @bnapolitan)
- Testing - Create roles by default for e2e test cluster creation (#994, @bnapolitan)
- Bug - Use limits from API for g4dn.16xlarge (#1086, @mogren)
- Bug - Make metrics-helper docker logging statement multi-arch compatible (#1067, @nprab428)
- Bug - Handle stale instance metadata (#1011, @mogren)
- Improvement - Add support for c5a and c5ad (#1003, @mogren)
- Improvement - Make the aws-cni-support.sh executable (#1007, @jayanthvn)
- Bug - Add WithNoProxy to ignore proxies in gRPC connections when using unix sockets (#980, @nithu0115)
- Improvement - Fix order of file copies in entrypoint.sh (#935, @dthorsen)
- Improvement - Check all errors and log appropriately (#939, @mogren)
- Improvement - Add MTU and RPFilter configs to debug (#954, @mogren)
- Improvement - Bump aws-k8s-tester to v1.2.2 (#978, @gyuho)
- Improvement - Add context and user agent to EC2 requests (#979, @mogren)
- Improvement - Update limits for m6g, c6g and r6g (#996, @mogren)
- Feature - Support architecture targeted builds (#837, @jahkeup)
- Feature - Zap logger (#824, @nithu0115)
- Improvement - Run conformance test as part of PR/Release certification (#851, @SaranBalaji90)
- Improvement - Use eks:cluster-name as clusterId (#856, @groodt)
- Improvement - Bump Calico to v3.13.0 (#857, @lmm)
- Improvement - Use go.mod version of mockgen (#863, @anguslees)
- Improvement - Mock /proc/sys (#870, @anguslees)
- Improvement - Replace debug script with updated script from EKS AMI (#864, @mogren)
- Improvement - Update cluster-proportional-autoscaler to 1.7.1 (#885, @ricardochimal)
- Improvement - Remove unnecessary/incorrect ClusterRole resource (#883, @anguslees)
- Improvement - Disable IPv6 RA and ICMP redirects (#897, @anguslees)
- Improvement - scripts/lib/aws.sh: use "aws-k8s-tester" v1.0.0 (#900, @gyuho)
- Improvement - Configure rp_filter based on env variable (#902, @SaranBalaji90)
- Improvement - Less verbose logging (#908, @mogren)
- Improvement - Reduce number of calls to EC2 API (#909, @mogren)
- Improvement - Bump containernetworking dependencies (#916, @mogren)
- Improvement - Use -buildmode=pie for binaries (#919, @mogren)
- Bug - Add missing permissions in typha-cpha sa (Calico) (#892, @marcincuber)
- Bug - Fix logging to stdout (#904, @mogren)
- Bug - Ensure non-nil Attachment in getENIAttachmentID (#915, @jaypipes)
- Feature - Add fallback to fetch limits from EC2 API (#782, @mogren)
- Feature - Additional tags to ENI (#734, @nithu0115)
- Feature - Add support for a 'no manage' tag (#726, @euank)
- Feature - Use CRI to obtain pod sandbox IDs instead of Kubernetes API (#714, @drakedevel)
- Feature - Add support for listening on unix socket for introspection endpoint (#713, @adammw)
- Feature - Add MTU to the plugin config (#676, @mogren)
- Feature - Clean up leaked ENIs on startup (#624, @mogren)
- Feature - Introduce a minimum target for ENI IPs (#612, @asheldon)
- Feature - Allow peered VPC CIDRs to be excluded from SNAT (#520, @totahuanocotl, @rewiko, @yorg1st)
- Feature - Get container ID from kube rather than docker (#371, @rudoi)
- Improvement - Make entrypoint script fail if any step fails (#839, @drakedevel)
- Improvement - Place binaries in cmd/ and packages in pkg/ (#815, @jaypipes)
- Improvement - De-dupe calls to DescribeNetworkInterfaces (#808, @jaypipes)
- Improvement - Update RollingUpdate strategy to allow 10% unavailable (#805, @gavinbunney)
- Improvement - Bump github.com/vishvananda/netlink version from 1.0.0 to 1.1.0 (#802, @ajayk)
- Improvement - Adding node affinity for Fargate (#792, @nithu0115)
- Improvement - Force ENI/IP reconciliation to delete from the datastore (#754, @tatatodd)
- Improvement - Use dockershim.sock for CRI (#751, @mogren)
- Improvement - Treating ErrUnknownPod from ipamd to be a noop and not returning error (#750, @uruddarraju)
- Improvement - Copy CNI plugin and config in entrypoint not agent (#735, @jaypipes)
- Improvement - Adding m6g instance types (#742, Srini Ramabadran)
- Improvement - Remove deprecated session.New method (#729, @nithu0115)
- Improvement - Scope watch on "pods" to only pods associated with the local node (#716, @jacksontj)
- Improvement - Update ENI limits to match documentation (#710, @mogren)
- Improvement - Reduce image layers and strip debug flags (#699, @mogren)
- Improvement - Add run-integration-tests.sh script (#698, @nckturner)
- Improvement - Return the error from ipamd to plugin (#688, @mogren)
- Improvement - Bump aws-sdk-go to v1.23.13 (#681, @mogren)
- Improvement - Add support for m5n/m5dn/r5n/r5dn instances (#657, @Jeffwan)
- Improvement - Add IPs to the first ENI on startup (#648, @mogren)
- Improvement - Add shutdown listener (#645, @mogren)
- Improvement - Made timeouts exponential (#640, @Zyqsempai)
- Improvement - Remove vendor folder (#635, @mogren)
- Improvement - Update protobuf to v1.3.2 (#633, @mogren)
- Improvement - Reduce log level to Trace for the most common Debug lines (#631, @mogren)
- Improvement - Bump grpc version to v1.23.1 (#629, @mogren)
- Improvement - Add inCoolingPeriod for AddressInfo (#627, @chendotjs)
- Improvement - Added retryNbackoff for tagENI method (#626, @nithu0115)
- Improvement - Update backoff code from upstream and use when detaching ENIs (#623, @mogren)
- Improvement - Update kubeconfig lookup with eksctl clusters (#513, @dkeightley)
- Improvement - Fix introspection port in troubleshooting docs (#512, @drakedevel)
- Bug fix - Log security groups correctly (#646, @mogren)
- Bug fix - Fix WARM_ENI_TARGET=0 (#587, @mogren)
- Improvement - New AL2 image with iptables-1.8.2 (@mogren)
- Improvement - Enable the
-buildmode=pie
flag for the binaries (@mogren) - Improvement - Disable IPv6 RA and ICMP redirects on host-side veth (@anguslees)
- arm64 preview custom build
- Bug fix - Revert "Return delete success for pods that never got scheduled" (#672, @mogren)
- Improvement - Add support for r5dn instance family (#656, @mogren)
- Improvement - Add support for m5n/m5dn/r5n instances (#657, @Jeffwan)
- Improvement - Update cni-metrics-helper to v1.5.5 (#672, @mogren)
- Improvement - Reduce image layers and strip debug flags (#699, @mogren)
- Improvement - Add support for g4dn instance family (#621, @mogren)
- Improvement - Set cniVersion in the config to 0.3.1 (required for Kubernetes 1.16) (#605, @mogren)
- Bug fix - Return delete success for pods that never got scheduled (#623, @mogren)
- Bug fix - Copy the binary and config after ipamd is ready (#576, @mogren)
- Improvement - Update Calico version to v3.8.1 (#554, @lmm)
- Improvement - Add env var to override introspection bind address (#501, @jacksontj)
- Improvement - Remove unused env variable (#578, @mogren)
- Improvement - Exit early if MAC address doesn't match (#582, @mogren)
- Bug fix - Fix formatting flag (#521, @uthark)
- Bug fix - Fix formatting issue (#524, @uthark)
- Bug fix - Detach ENI before deleting (#538, @uthark)
- Improvement - Adding healthz endpoint to IPamD (#548, @nithu0115)
- Improvement - Adding new m5 and r5 instances (#518, @mogren)
- Improvement - t3a.small only have 2 ENIs (#543, @mogren)
- Improvement - Updating AWS Go SDK version (#549, Nordlund, Eric)
- Improvement - Reduce the wait time when checking for pods without IPs (#552, @mogren)
- Improvement - Update start script to wait for ipamd health (#552, @mogren)
- Improvement - Hide health check output (#569, @mogren)
- Improvement - Support c5.12xlarge and c5.24xlarge (#510, @mogren)
- Bug fix - Ignore namespace for custom eniconfig watch (#561, @mogren)
- Bug fix - Fix spelling on annotation (#482, @forsberg)
- Bug fix - Avoid using force detach of ENIs (#458, @mogren)
- Bug fix - Flush logs before exiting (#451, @venkatesh-eb)
- Improvement - Add IPs to existing ENIs first (#487, @mogren)
- Improvement - Added error handling for GetENIipLimit (#484, @Zyqsempai)
- Improvement - Moved all GetEnv's calls to init step (#445, @Zyqsempai)
- Improvement - On start up, wait for pods with no IP (#480, @mogren)
- Improvement - Don't modify maxENI (#472, @nckturner)
- Improvement - Improve WARM_IP_TARGET handling (#461, @nckturner)
- Improvement - Update logging format to align messages (#473, @mogren)
- Improvement - Added -W (wait for xlock's) flag to iptables commands (#439, @Zyqsempai)
- Improvement - Remove error message from Prometheus labels (#467, @bboreham)
- Improvement - Update instance types (#459, @mogren)
- Feature - Add flag to disable metrics and introspection (#436, @mogren)
- Bug fix - Adding additional CRD for Calico that was missing (#410, @wmorgan6796)
- Improvement - Update CNI metrics (#413, @mogren)
- Feature - Add an environment variable to limit the number of ENIs (#251, @pdbogen)
- Makes it possible to limit how many ENIs that are allocated per node.
- Feature - Randomize outgoing port for connections in the SNAT iptables rule (#246, @taylorb-syd)
- To avoid a race condition when using SNAT, select ports randomly instead of sequentially.
- Feature - ENIConfig set by custom annotation or label names (#280, @etopeter)
- Enables users to set a custom annotation or label key to define ENIConfig name.
- Improvement - Update Calico to 3.3.6 (#368, @2ffs2nns)
- Improvement - Add new instance types (#366, @mogren)
- Adds m5ad and r5ad families.
- Improvement - Actually enable prometheus metrics (#361, @mogren)
- Improvement - Retry LinkByMac when link not found (#360, @peterbroadhurst)
- Sometimes it takes a few seconds for a new ENI to be available, so we retry 5 times.
- Improvement - Run
yum clean all
to reduce image size (#351, @mogren) - Improvement - Renaming Prometheus metrics with "awscni_" prefix (#348, @max-rocket-internet)
- Improvement - Allow configuring docker image when running make (#178, @mikkeloscar)
- Improvement - Add support for stdout logging (#342, @rudoi)
- Adds the environment variable
AWS_VPC_K8S_CNI_LOG_FILE
that can be set tostdout
or a file path.
- Adds the environment variable
- Improvement - Some cleanups related to #234 (#244, @mogren)
- Improvement - Use apps/v1 for DaemonSet (#341, @errordeveloper)
- Improvement - Clean up aws-cni-support.sh and update the documentation (#320, @mogren)
- Improvement - Fix tiny typo in log message (#323, #324, @ankon)
- Improvement - Collect rp_filter from all network interface in aws-cni-support.sh (#338, @nak3)
- Improvement - Use device number 0 for primary device in unit test (#247, @nak3)
- Improvement - Collect iptables -nvL -t mangle in support script (#304, @nak3)
- Improvement - Return the err from f.Close() (#249, @mogren)
- Improvement - Explicitly set the IP on secondary ENIs (#271, @ewbankkit)
- Fixes IP bug on older kernels.
- Improvement - Update instance ENI and IP mapping table (#275, @hmizuma)
- Adds a1 and c5n instances. (Already included in v1.3.2)
- Improvement - Add ENI entries for p3dn.24xlarge instance (#274, @hmizuma)
- p3dn.24xlarge was already included in v1.3.2
- Improvement - Use InClusterConfig when CreateKubeClient() was called without args (#293, @nak3)
- Improvement - Expose configuration variables via ipamD to make it debug friendly (#287, @nak3)
- Improvement - Allow cross compile on different platform (#292, @nak3)
- Improvement - Add changes to support multiple platform build (#286, @mbartsch)
- arm64 build support
- Improvement - Improve setup advice in README around ENI / IP (#276 @sftim)
- Improvement - Use
unix.RT_TABLE_MAIN
for main routing table number (#269, @nak3) - Improvement - Detect if mockgen and goimports are in the path (#278, @nak3)
- Improvement - Increment IP address safely (#258, @nak3)
- Calculate the gateway IP in a safe way.
- Improvement - Remove unused options from rpc.proto (#252, @nak3)
- Improvement - Add missing unit tests execution to Makefile (#253, @nak3)
- Improvement - Bump TravisCI to use 1.11 (#243, @mogren)
- Bug fix - Fix typos in json types for ENIConfig (#393, @tiffanyfay)
- Bug fix - Avoid unbound variable error in aws-cni-support.sh (#382, @StevenACoffman)
- Bug fix - Output CIDR in correct format (#267, @nak3)
- Bug fix - Use replace when adding host route (#367, @mogren)
- Bug fix - Update k8sapi to use operator-framework inClusterConfig (#364, @tiffanyfay)
- If the environment variables are missing, fall back to DNS lookup.
- Bug fix - Set mainENIRule mask (#340, @tustvold)
- In order to match the connmark correctly, we need to mask it out when checking.
- Bug fix - Use primary interface to add iptables for connmark entry (#305, @nak3)
- Bug fix - Stop wrapping and returning nil (#245, @nak3)
- Bug fix - Fix return path of NodePort traffic when using Calico network policy (#263, @ikatson)
- Bug fix - Remove scope: Cluster from spec.names (#199, @rickardrosen)
- Bug fix - Remove unneeded spec entry in v1.3 manifest (#262, @hmizuma)
- Bug fix - Add formatter to errors.Wrapf in driver (#241, @nak3)
- Bug fix - Fix max pods for p3dn.24xlarge
- Bug fix - Bump CNI to latest 1.3 version
- Feature - Add ENI entries for p3dn.24xlarge
- Bug fix - Restrict p3dn.24xlarge to 31 IPs/ENI
- Feature - Add logic to handle multiple VPC CIDRs
- Improvement - Update instance types
- Improvement - Add retry for plumbing route entry
- Improvement - Update vpc_ip_resource_limit.go
- Improvement - Add support for g3s.xlarge machines
- Improvement - Fixing t3.xl and t3.2xl eni numbers
- Improvement - Configure MTU of ENI and veths to 9001
- Bug fix - Update containerPort in the spec
- Bug fix - cleanup the host route when perform CNI delete
- Bug fix - Add missing calico.yaml to 1.2
- Bug fix - Do not watch eniconfig CRD if cni is not configured to use pod config
- Bug fix - Fixed typo in aws-k8s-cni.yaml
- Bug fix - Add logic to dynamically discover primary interface name
- Feature - Add hostPort support #153
- Feature - Add a configuration knob to allow Pod to use different VPC SecurityGroups and Subnet #165
- Feature - Fix return path of NodePort traffic #130
- Improvement - Add more error messages during initialization #174
- Improvement - Check to make it is a Pod object #170
- Improvement - Maintain the right number of ENIs and its IP addresses in WARM-IP pool #169
- Improvement - Add support for more instance types: r5, r5d, z1d, t3 #145
- Feature - Versioning with git SHA #106
- Feature - Ability to configure secondary IP preallocation (aws#125)
- Feature - Allow pods communicate with outside VPC without NAT#81
- Improvement - Added travis CI support #116, #117, #118
- Improvement - Modify toleration to make aws-node schedule-able on all nodes #128
- Improvement - Move from TagResources to CreateTags for ENI Tagging #129
- Improvement - Updated troubleshooting guidelines
- Bug Fix - Release IP to datastore upon failure #127
Initial release of amazon-vpc-cni-k8s a cni plugin for use with Kubernetes that uses ENIs and secondary ip addresses.
See the README for additional information.