@@ -6,8 +6,8 @@ clusters across multiple cloud accounts, using GitOps principles with ArgoCD.
6
6
## Requirements
7
7
8
8
Guides on setting up Kubernetes clusters in the cloud are common, but few cover
9
- managing clusters across multiple providers and accounts ( a key need for large
10
- enterprises)
9
+ managing clusters across multiple providers and accounts, a key need for large
10
+ enterprises.
11
11
12
12
This project aims to provide a practical example:
13
13
@@ -30,15 +30,15 @@ Each cloud provider has a designated "management account" where subdomains are h
30
30
> The second-level domain ` mylabs.dev ` is hosted externally (e.g., Cloudflare),
31
31
> and it's the user's responsibility to configure DNS delegation properly.
32
32
33
- An IAM role (or the equivalent for each cloud provider) will be created in the
34
- management account. This role will allow GitHub Actions / mise to manage resources
33
+ An IAM role (or its equivalent for each cloud provider) will be created in the
34
+ management account. This role will allow GitHub Actions/ mise to manage resources
35
35
in the management account and will also be used to access other accounts where
36
36
Kubernetes clusters are deployed.
37
37
38
38
## Cloud Providers - Multi-Account Setup
39
39
40
- Let's assume you have 2 AWS accounts, 2 Azure accounts, 2 GCP accounts and you
41
- want to deploy 2 Kubernetes clusters (EKS, AKS, GKE) in each account:
40
+ Let's assume you have two AWS accounts, two Azure accounts, and two GCP accounts,
41
+ and you want to deploy two Kubernetes clusters (EKS, AKS, GKE) in each account:
42
42
43
43
| Cloud Provider | Account 01 | Account 02 |
44
44
| --------------------------------------------------| --------------------------------------------------------------| --------------------------------------------------------------|
@@ -79,17 +79,16 @@ AWS_USER_ARN=$(aws iam list-users --query "Users[? UserName==\`${AWS_USER_NAME}\
79
79
sed -i " s@^AWS_USER_ARN.*@AWS_USER_ARN = \" ${AWS_USER_ARN} \" @" mise.local.toml
80
80
```
81
81
82
- The ` aws-cli ` user was created in the management AWS account. It will be used to
83
- access all AWS accounts via the AWS CLI by assuming the proper IAM Role .
82
+ The ` aws-cli ` user is created in the management AWS account. It will be used to
83
+ access all AWS accounts via the AWS CLI by assuming the proper IAM role .
84
84
85
85
##### Route35 Hosted Zone + GitHub Action IAM Role
86
86
87
87
The following steps will create a Route 53 hosted zone for the subdomain
88
- ` aws.mylabs.dev ` and a GitHub Action IAM role that can be assumed by the
88
+ ` aws.mylabs.dev ` and a GitHub Actions IAM role that can be assumed by the
89
89
GitHub Actions workflow.
90
- The GitHub Action IAM role will be used to manage resources in the management
91
- account and will also be used to access other accounts where Kubernetes
92
- clusters are deployed.
90
+ The GitHub Actions IAM role will be used to manage resources in the management
91
+ account and to access other accounts where Kubernetes clusters are deployed.
93
92
94
93
Create a Route 53 hosted zone for ` aws.mylabs.dev ` :
95
94
@@ -127,7 +126,7 @@ mise run create:aws-tenant:cf-iam-role
127
126
128
127
## K8s Clusters
129
128
130
- All the " kubeconfig files" will be stored in the ` clusters/.kubeconfigs `
129
+ All kubeconfig files will be stored in the ` clusters/.kubeconfigs `
131
130
directory.
132
131
133
132
### Kind
0 commit comments