Skip to content

Commit e95594b

Browse files
awesomenixk8s-ci-robot
authored andcommitted
Add design diagrams and notes on code, for easier development (#158)
Add design diagram and notes on code, for easier development Apply suggestions from code review Co-Authored-By: awesomenix <[email protected]> Move design under project documentation
1 parent 0aec2b5 commit e95594b

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010

1111
## Project Documentation
1212

13-
TODO
13+
- [Design](design.md)

docs/design.jpg

30.5 KB
Loading

docs/design.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Cluster API Provider Azure Design<!-- omit in toc -->
2+
3+
![Design](./design.jpg)
4+
5+
## Folder Structure
6+
7+
- /pkg/cloud/azure/apis - contains the crds
8+
- /pkg/cloud/azure
9+
- /pkg/cloud/azure/actuators/cluster - cluster actuator for cluster api provider
10+
- /pkg/cloud/azure/actuators/machine - machine actuator for cluster api provider
11+
- /pkg/cloud/azure/services - each folder represents an azure service, implements Get/CreateOrUpdate/Delete
12+
- /pkg/cloud/azure/services/config - contains startup scripts for controlplane and worker nodes
13+
14+
## Components
15+
16+
### Cluster Actuator
17+
18+
The cluster actuator creates the following resources, in order:
19+
- Certificates (generating using the kubeadm packages):
20+
- Kubernetes Certificate Authority (CA)
21+
- API server (includes public IP FQDN as a certificate SAN (subject alternative name))
22+
- front proxy
23+
- SA (Service account)
24+
- Admin kubeconfig
25+
- kubeadm discovery hashes (required for bootstrapping)
26+
- Azure networking components (zone-redundant, by default)
27+
- (1) virtual network
28+
- (2) subnets
29+
- control plane
30+
- node
31+
- (2) NSG (network security groups)
32+
- control plane
33+
- node
34+
- (1) route table (node)
35+
- (1) public IP (Standard SKU)
36+
- (1) public load balancer (Standard SKU, attached to public IP)
37+
- (1) internal load balancer (Standard SKU, for communication from worker nodes)
38+
39+
### Machine Actuator
40+
41+
The machine actuator creates Kubernetes nodes, according to the supplied `machines.yaml`, within the above Azure network infrastructure, in the following order:
42+
- NIC (network interface card)
43+
- virtual machine (created in an Azure Availability Zone, in regions where AZs are supported)
44+
- kubeadm bootstrap token (if required)
45+
- generated startup script (to be used by Azure Custom Script Extension)

docs/design.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile modified="2019-03-27T19:07:31.527Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" etag="Cyrk-QMCyKAi6-ZwuJxZ" version="10.5.9" type="device"><diagram id="ecJVTbs71rcYks0ToKYx" name="Page-1">7Vtbc5s4FP41fqwHScjAY53bdiebyW463fTJIxvFZouRB0Rs99evZCRjQDYkAZN0mocEHQ4Cfd+56BzIAF0sNzcxWS3+Yj4NB9DyNwN0OYAQIM8Vf6Rkm0lc6GWCeRz4SikXPAQ/qRJaSpoGPk0KipyxkAeronDGoojOeEFG4piti2pPLCzedUXmtCJ4mJGwKv038PlCrQJbufwPGswX+s7AUmeWRCsrQbIgPlsfiNDVAF3EjPHsaLm5oKEET+OSXXd95Oz+wWIa8SYX3PI/n5K/afRpka6TL8ndzeMEfLId9XB8q1dMfQGAGrKYL9icRSS8yqXjmKWRT+W0lhjlOreMrYQQCOF/lPOtYpOknAnRgi9DdZZuAv4oLx96GKvx991Yjy43avbdYHswuKdxsKScxloW8Xj7eDg4mEkO86l2Iz1Xtm652KN4KlHC0nhGT4Co7ZLEc8pP6EG8p134C2ViGfFWXBjTkPDgufggRBnufK+XcysOFL0voFrN+0zCVN1pAEeheN7xVBzM5cF9Og2DmVC6ZcQfk5BEM4Gz0hI33StWjOaZxjwQXnNLpjS8Z0nAAxaJU1PGOVsW2de6n8NgLnW4tBpxt2w0E/BLcscJj9kPesFCJqmOWCRN7ykIQy0aQGRZ46trKJUXZCUfZbmZyzg0JD/TmGa/J6FYzGSqV6MfXj4F3ZzmvkqVvsBVTq2iGrJhNl7nMUKHiMVBeEC4I3IR7NePC178Bh/O3fa7vsd5fBh+CB+G9T78RbqPIPG3F9d6MXLgEBf82MagZz/GvfpxW7kYDPrKxdBp6sijNzry7tLPcUy2BworFkQ8OZj5Xgpyk8OgmDhszytu2mr0sQdKNpY9QW5x+6W8wQi9X8IIxe7Sc4qGaKMaS9yNyjP2Yp795hnHkGg+RLJ4DmKeknASUb5m8Y92EgXGJa91sU4cNYkCOkNsHf7YXSUO0/a+xNhc+OjqKByqgiZTrW69FCYEy/kUWaMKTMDBVZyAbQ07y6nWOaA5wUoVsD7hgLgejjyYS+9dLwJOH1ZkF9nWwtmKzl1y0OvrKyyyWkPHO8HYadhM3gYspyvQXANopZ33BRPJg4X3YotKhepDOhVBqNG+WwDEi5jWRkIlqoTQcqRdBr6/y88mEos5u32+1DTlqAAMwRMgE59d0Qm8/kJCDValAOpWkQIGpEZWV0jZvSGVkXQ6CpwVC9Ry4Hy9w2WsnIRGbFHACEDPElkZu9bIkGXsrlJMA5vpGSg9jTUciZo/xwkWvM8xBKo+cTVl7pNJqEHueR9EQHvoItexvJHj2MBDeFTMGO+Lh5dvBu4ebj5yB242o0kymWVraqemgp5TLhZcr8KyaZeHO4vvpqq3zGuYJhJXaH17/e4upknwUyVEufNSXSOhjccDfClZTLkgf9cpAQekhvSJH2U+EW4bRPOvu36LiMHtlL52qQEFUIUkz1T4dkWS7VYAPuubDucFrzpe+Vqj6yYUUhTWN6HMpnGmHtSo5V3Em+rUms6HLii0l6CqlwD9bqFQ4YDOuh6m3WopmN0x/9etVGsYQ24p/WBkauq554xt8D008WxQBsaxTAW7dc7SC/bXwzuGV29YgAYNvK6waNCYOy8WbSeJRqHlBC0nsXGc4a64sVWt41aR6qxmAQ1e6fSMlJrGG+oicIcTKAQjU0neK6wNakGZZpN3VYyfJkA2bEVFnTdGCgwYavE+CcCogmJvXz7pM2//8ikvCvopEXSNXVsiHEmO5ykRcINdwfvsqKRJa58iesUCHTpWxT9N71Z0edU6KcebKMmKRHnoM9ci/7CU06+7nYkxYO5lxclKpO+/tZZu4ZNksff1usolLJlJpVw5akdNjadkD8tkRuhwFrLUH8Zy8RNhSUI1MdmU412O2jEbGxXNZoTshp806E9dWzcc01bObCS/u6mVqs1yS3SaaraWuqlimP/bQvbRWf7PH+jqfw==</diagram></mxfile>

0 commit comments

Comments
 (0)