sigs.k8s.io/cluster-api-provider-aws@v1.5.5/docs/proposal/20180827-mvp-architecture.md (about) 1 # AWS Provider MVP 2 3 This is a proposal for possible MVP candidates for cluster-api-provider-aws. Features referenced are from the [Features Document](features.md). 4 5 ## Table of Contents 6 7 A table of contents is helpful for quickly jumping to sections of a KEP and for highlighting any additional information provided beyond the standard KEP template. 8 [Tools for generating][] a table of contents from markdown are available. 9 10 - [AWS Provider MVP](#aws-provider-mvp) 11 - [Table of Contents](#table-of-contents) 12 - [Summary](#summary) 13 - [Motivation](#motivation) 14 - [Goals](#goals) 15 - [Non-Goals](#non-goals) 16 - [Proposal](#proposal) 17 - [Implementation Details/Notes/Constraints](#implementation-detailsnotesconstraints) 18 - [Features Implemented for Private Networking, Single AZ](#features-implemented-for-private-networking-single-az) 19 - [Filling in Gaps from Feature List](#filling-in-gaps-from-feature-list) 20 - [Alternatives](#alternatives) 21 - [Public Networking, Single AZ](#public-networking-single-az) 22 - [Features Implemented for Public Networking, Single AZ](#features-implemented-for-public-networking-single-az) 23 24 ## Summary 25 26 In order to limit scope of the project and to be able to deliver an MVP implementation of the AWS Provider for the Cluster API, this proposal presents an infrastructure architecture to target for the initial release of the AWS Provider. 27 28 ## Motivation 29 30 ### Goals 31 32 - An MVP implementation for cluster-api-provider-aws 33 - kubeadm-driven installation 34 35 ### Non-Goals 36 37 - Cluster-api potential impedance mismatches: 38 - EKS-based deployments (25) 39 - Auto Scaling Groups (20) 40 - Separate control of public/private network selection between control plane and workers. 41 - Multi-AZ-based deployments (9, 14) 42 - Instance Creation 43 - placement groups (15) 44 - Dedicated Tenancy (17) 45 - Spot Instances 46 - Accessibility 47 - Private API Server Access (23) 48 - VPC PrivateLink (31) 49 - Default to pre-baked images and leveraging kubeadm for deployment 50 - Custom CRI configuration (33, 34) 51 - Custom kubelet configuration (39) 52 - [Red Hat] Arbitrary bootstrap script support (40) 53 - Custom API Server configuration (41, 42) 54 - Deploying etcd to dedicated hosts (47, 48) 55 56 ## Proposal 57 58 ### Implementation Details/Notes/Constraints 59 60 Private Networking, Single AZ 61 62  63 64 #### Features Implemented for Private Networking, Single AZ 65 66 - VPC: 1, 2, 3 67 - Control Plane Placement: 5, 7, 8 68 - Worker Node Placement: 10, 12, 13, 16 69 - Worker Node Scaling: 18, 19 70 - API Server Access: 21, 22, 43 71 - Type of Control Plane: 24, 26 72 - CRI: None 73 - Container Hosts: 36, 37, 38 74 - API Server Configuration: None 75 - etcd location: 45, 46 76 77 #### Filling in Gaps from Feature List 78 79 - Require predefined IAM Roles/Instance Profiles 80 - Security Groups created on demand or use predefined 81 - Bootstrapping 82 - Pre-baked images containing binaries required as input 83 - Cloud-init driven using kubeadm 84 - Kubeadm config used to provide customization 85 86 ## Alternatives 87 88 ### Public Networking, Single AZ 89 90  91 92 #### Features Implemented for Public Networking, Single AZ 93 94 - VPC: 1, 2, 3 95 - Control Plane Placement: 5, 6, 8 96 - Worker Node Placement: 10, 11, 13, 16 97 - Worker Node Scaling: 18, 19 98 - API Server Access: 21, 22, 43 99 - Type of Control Plane: 24, 26 100 - CRI: None 101 - Container Hosts: 36, 37, 38 102 - API Server Configuration: None 103 - etcd location: 45, 46