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

Add new publicSubnetIds and privateSubnetIds cluster options. Also, update tests to use new awsx.ec2.Vpc API and new subnet options #238

Closed
wants to merge 4 commits into from

Conversation

metral
Copy link
Contributor

@metral metral commented Aug 27, 2019

Proposed changes

  1. feat(subnetIds): add new opts: publicSubnetIds and privateSubnetIds
    This change intends to tackle 2 cases:

    • Simplifying cluster subnet defintion by explicitly accepting both
      public and private subnets, and
    • To properly build the cluster dependency graph w.r.t. the subnets used by the
      cluster. This should produce expected results for nodegroup subnet definition
      between initial updates and proceeding empty preview steps.

    Cluster worker subnet definition benefits from having individual publicSubnetIds
    and privateSubnetIds options, as they are:

    • Explicit in defintion of which subnets are being used for a given subnet class.
    • Inline with user practice, and
    • computeWorkerSubnets() in the NodeGroup class is an approximation
      of the which subnets belong to which class, and it can occassionaly experience
      non-deterministic issues.
  2. fix(tests): update awsx.Network -> awsx.ec2.Vpc & use specific subnetIds

    • Update tests that use VPCs created with awsx.Network to the newer
      awsx.ec2.Vpc API.
    • Remove any awsx.ec2.Vpc settings already set by defaults.
    • Update EKS cluster definitions that used the eks.Cluster.subnetIds to
      now use the new subnet options: eks.Cluster.publicSubnetIds and eks.Cluster.privateSubnetIds.
  3. test(awsx-network-and-subnetIds): add test of older VPC & network setup
    Add new test which creates EKS clusters using the previous awsx.Network API
    and related cluster network setups.

    This test creates two types of clusters that use the previous network API setup:

    • One cluster uses a VPC from the awsx.Network API, and cluster subnetIds.
    • One cluster uses a VPC from the awsx.Network API, cluster
      subnetIds, and a node group with the nodeSubnetIds override option.

Related issues

Closes #199
Closes #179

This change intends to tackle 2 cases:
- Simplifying cluster subnet defintion by explicitly accepting both
public and private subnets, and
- To properly build the cluster dependency graph w.r.t. the subnets used by the
cluster. This should produce expected results for nodegroup subnet definition
between initial updates and proceeding empty preview steps.

Cluster worker subnet definition benefits from having individual `publicSubnetIds`
and `privateSubnetIds` options, as they are:
- Explicit in defintion of which subnets are being used for a given subnet class.
- Inline with user practice, and
- `computeWorkerSubnets()` in the NodeGroup class is an approximation
of the which subnets belong to which class, and it can occassionaly experience
non-deterministic issues.
- Update tests that use VPCs created with `awsx.Network` to the newer
`awsx.ec2.Vpc` API.
- Remove any `awsx.ec2.Vpc` settings already set by defaults.
- Update EKS cluster definitions that used the `eks.Cluster.subnetIds` to
now use the new subnet options: `eks.Cluster.publicSubnetIds` and `eks.Cluster.privateSubnetIds`.
Add new test which creates EKS clusters using the previous `awsx.Network` API
and related cluster network setups.

This test creates two types of clusters that use the previous network API setup:
- One cluster uses a VPC from the `awsx.Network` API, and cluster `subnetIds`.
- One cluster uses a VPC from the `awsx.Network` API, cluster
`subnetIds`, and a node group with the `nodeSubnetIds` override option.
@metral metral closed this Aug 27, 2019
@lukehoban lukehoban mentioned this pull request Dec 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant