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

fix(ec2): IPAM allocated subnets cannot split more than 256 times #28027

Merged
merged 3 commits into from
Nov 17, 2023

Commits on Nov 16, 2023

  1. fix(ec2): IPAM allocated subnets cannot split more than 256 times

    Because of IPAM allocation, we can't know the parent CIDR at synth
    time, so we cannot calculate the CIDR split at synth time either.
    
    This forces us to rely on the `{ Fn::Cidr }` function provided by
    CloudFormation. For resource consumption reasons, this function is
    limited to splitting any range into at most 256 subranges, which means
    the IPAM allocated VPC cannot split into more subranges either.
    
    This PR adds a recursive split feature: if we need to split an
    CIDR range more than 256 times, we will do multiple splits:
    
    ```ts
    Fn.select(300, Fn.cidr(range, 4096, 4)) // <-- illegal
    
    // ==
    
    Fn.select(44, Fn.cidr(Fn.select(1, Fn.cidr(range, 4, 12)), 256, 4))
    ```
    rix0rrr committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    7e2ce26 View commit details
    Browse the repository at this point in the history
  2. One more test

    rix0rrr committed Nov 16, 2023
    Configuration menu
    Copy the full SHA
    4fe685b View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. Configuration menu
    Copy the full SHA
    9a8025b View commit details
    Browse the repository at this point in the history