Deckhouse Platform in Amazon AWS
Before installation, ensure the following:
- Cloud provider quotas for cluster deployment.
- Access to the required regions.
- The
cloud-initpackage is installed on the VMs. After the VM starts, servicescloud-config.service,cloud-final.service,cloud-init.servicemust be running. - The virtual machine template contains only one disk.
Prepare the Amazon AWS environment so that Deckhouse Platform can manage cloud resources. The full procedure is described on the environment preparation page of the cloud-provider-aws module.
Create an IAM user for Deckhouse Platform. Run the following commands on the personal computer.
Create the JSON specification of the policy using the following command:
Create a new Policy based on the specification created above with D8CloudProviderAWS as a policy name:
aws iam create-policy --policy-name D8CloudProviderAWS --policy-document file://policy.json
You will see the following:
{
"Policy": {
"PolicyName": "D8CloudProviderAWS",
"PolicyId": "AAA",
"Arn": "arn:aws:iam::123:policy/D8CloudProviderAWS",
"Path": "/",
"DefaultVersionId": "v1",
"AttachmentCount": 0,
"PermissionsBoundaryUsageCount": 0,
"IsAttachable": true,
"CreateDate": "2020-08-27T02:52:06+00:00",
"UpdateDate": "2020-08-27T02:52:06+00:00"
}
}
Create a new user:
aws iam create-user --user-name deckhouse
You will see the following:
{
"User": {
"Path": "/",
"UserName": "deckhouse",
"UserId": "AAAXXX",
"Arn": "arn:aws:iam::123:user/deckhouse",
"CreateDate": "2020-08-27T03:05:42+00:00"
}
}
You need to allow access to the API and remember your AccessKeyId + SecretAccessKey values:
aws iam create-access-key --user-name deckhouse
You will see the following:
{
"AccessKey": {
"UserName": "deckhouse",
"AccessKeyId": "XXXYYY",
"Status": "Active",
"SecretAccessKey": "ZZZzzz",
"CreateDate": "2020-08-27T03:06:22+00:00"
}
}
Attach the policy to the user:
aws iam attach-user-policy --user-name deckhouse --policy-arn arn:aws:iam::<ACCOUNT_ID>:policy/D8CloudProviderAWS
Replace <ACCOUNT_ID> with the AWS account ID. It is part of the Arn field in the output of the aws iam create-policy command, for example, 123 in arn:aws:iam::123:policy/D8CloudProviderAWS.