168 lines
5.3 KiB
Markdown
168 lines
5.3 KiB
Markdown
## running ipv6-only enos tests without an ipv6 connection
|
|||
|
|
|
||
|
|
1. create ipv6-enabled vpc
|
||
|
|
2. create ipv6-enabled subnet
|
||
|
|
3. create internet gateway and route
|
||
|
|
- likely needs more detail
|
||
|
|
4. create t2-medium instance
|
||
|
|
- attach the vpc
|
||
|
|
- add public ipv4
|
||
|
|
- add public ipv6
|
||
|
|
- use at least 20gb storage
|
||
|
|
5. create a new policy and attach it to the ec2 instance
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"Version": "2012-10-17",
|
||
|
|
"Statement": [
|
||
|
|
{
|
||
|
|
"Sid": "VisualEditor0",
|
||
|
|
"Effect": "Allow",
|
||
|
|
"Action": [
|
||
|
|
"ec2:DescribeImages",
|
||
|
|
"ec2:DescribeInstanceTypeOfferings",
|
||
|
|
"ec2:DescribeAvailabilityZones",
|
||
|
|
"ec2:CreateVpc",
|
||
|
|
"kms:CreateKey",
|
||
|
|
"ec2:CreateTags",
|
||
|
|
"kms:DescribeKey",
|
||
|
|
"ec2:DescribeVpcs",
|
||
|
|
"kms:ScheduleKeyDeletion",
|
||
|
|
"kms:GetKeyPolicy",
|
||
|
|
"kms:GetKeyRotationStatus",
|
||
|
|
"kms:ListResourceTags",
|
||
|
|
"kms:CreateAlias",
|
||
|
|
"ec2:DeleteVpc",
|
||
|
|
"ec2:ModifyVpcAttribute",
|
||
|
|
"kms:ListAliases",
|
||
|
|
"ec2:DescribeVpcAttribute",
|
||
|
|
"kms:DeleteAlias",
|
||
|
|
"ec2:CreateSubnet",
|
||
|
|
"ec2:CreateInternetGateway",
|
||
|
|
"ec2:CreateSecurityGroup",
|
||
|
|
"ec2:DescribeSecurityGroups",
|
||
|
|
"ec2:AttachInternetGateway",
|
||
|
|
"ec2:DescribeSubnets",
|
||
|
|
"ec2:DescribeNetworkInterfaces",
|
||
|
|
"ec2:DeleteSubnet",
|
||
|
|
"ec2:DeleteSecurityGroup",
|
||
|
|
"ec2:RevokeSecurityGroupEgress",
|
||
|
|
"ec2:ModifySubnetAttribute",
|
||
|
|
"ec2:DetachInternetGateway",
|
||
|
|
"ec2:AuthorizeSecurityGroupIngress",
|
||
|
|
"ec2:DeleteInternetGateway",
|
||
|
|
"ec2:AuthorizeSecurityGroupEgress",
|
||
|
|
"ec2:DescribeInternetGateways",
|
||
|
|
"ec2:DescribeRouteTables",
|
||
|
|
"ec2:CreateRoute",
|
||
|
|
"ec2:RevokeSecurityGroupIngress",
|
||
|
|
"iam:CreateUser",
|
||
|
|
"iam:DeleteUser",
|
||
|
|
"iam:TagUser",
|
||
|
|
"iam:GetUser",
|
||
|
|
"iam:ListGroupsForUser",
|
||
|
|
"iam:CreateAccessKey",
|
||
|
|
"iam:DeleteAccessKey",
|
||
|
|
"iam:PutUserPolicy",
|
||
|
|
"iam:GetUserPolicy",
|
||
|
|
"iam:DeleteUserPolicy",
|
||
|
|
"ec2:DeleteRoute",
|
||
|
|
"ec2:RunInstances",
|
||
|
|
"ec2:DescribeInstances",
|
||
|
|
"rds:CreateDBSubnetGroup",
|
||
|
|
"iam:CreateRole",
|
||
|
|
"elasticloadbalancing:DescribeTargetGroups",
|
||
|
|
"ec2:TerminateInstances",
|
||
|
|
"ec2:DescribeInstanceTypes",
|
||
|
|
"rds:DescribeDBSubnetGroups",
|
||
|
|
"iam:GetRole",
|
||
|
|
"elasticloadbalancing:CreateTargetGroup",
|
||
|
|
"elasticloadbalancing:DeleteTargetGroup",
|
||
|
|
"rds:DeleteDBSubnetGroup",
|
||
|
|
"iam:ListInstanceProfilesForRole",
|
||
|
|
"iam:DeleteRole",
|
||
|
|
"ec2:DescribeTags",
|
||
|
|
"rds:ListTagsForResource",
|
||
|
|
"iam:ListRolePolicies",
|
||
|
|
"elasticloadbalancing:AddTags",
|
||
|
|
"ec2:DescribeInstanceAttribute",
|
||
|
|
"rds:CreateDBInstance",
|
||
|
|
"iam:ListAttachedRolePolicies",
|
||
|
|
"elasticloadbalancing:ModifyTargetGroupAttributes",
|
||
|
|
"rds:DeleteDBInstance",
|
||
|
|
"ec2:DescribeVolumes",
|
||
|
|
"rds:AddTagsToResource",
|
||
|
|
"iam:PutRolePolicy",
|
||
|
|
"iam:DeleteRolePolicy",
|
||
|
|
"iam:CreateInstanceProfile",
|
||
|
|
"iam:DeleteInstanceProfile",
|
||
|
|
"elasticloadbalancing:DescribeTargetGroupAttributes",
|
||
|
|
"ec2:DescribeInstanceCreditSpecifications",
|
||
|
|
"rds:DescribeDBInstances",
|
||
|
|
"iam:GetRolePolicy",
|
||
|
|
"iam:GetInstanceProfile",
|
||
|
|
"elasticloadbalancing:DescribeTags",
|
||
|
|
"iam:RemoveRoleFromInstanceProfile",
|
||
|
|
"iam:AddRoleToInstanceProfile",
|
||
|
|
"elasticloadbalancing:DescribeLoadBalancers",
|
||
|
|
"elasticloadbalancing:RegisterTargets",
|
||
|
|
"elasticloadbalancing:CreateLoadBalancer",
|
||
|
|
"elasticloadbalancing:DeregisterTargets",
|
||
|
|
"elasticloadbalancing:ModifyLoadBalancerAttributes",
|
||
|
|
"elasticloadbalancing:DeleteLoadBalancer",
|
||
|
|
"elasticloadbalancing:DescribeLoadBalancerAttributes",
|
||
|
|
"elasticloadbalancing:CreateListener",
|
||
|
|
"elasticloadbalancing:DescribeListeners",
|
||
|
|
"elasticloadbalancing:DeleteListener",
|
||
|
|
"ec2:AssociateRouteTable",
|
||
|
|
"ec2:DisassociateRouteTable",
|
||
|
|
"ec2:CreateIpam",
|
||
|
|
"ec2:DeleteIpam",
|
||
|
|
"ec2:ModifyIpam",
|
||
|
|
"ec2:DescribeIpams",
|
||
|
|
"ec2:CreateIpamPool",
|
||
|
|
"ec2:DeleteIpamPool",
|
||
|
|
"ec2:ModifyIpamPool",
|
||
|
|
"ec2:DescribeIpamPools",
|
||
|
|
"ec2:AllocateIpamPoolCidr",
|
||
|
|
"ec2:ProvisionIpamPoolCidr",
|
||
|
|
"s3:CreateBucket",
|
||
|
|
"s3:DeleteBucket",
|
||
|
|
"s3:ListBucket",
|
||
|
|
"s3:ListAllMyBuckets",
|
||
|
|
"s3:GetAccelerateConfiguration",
|
||
|
|
"s3:PutAccelerateConfiguration",
|
||
|
|
"s3:GetLifecycleConfiguration",
|
||
|
|
"s3:PutLifecycleConfiguration",
|
||
|
|
"s3:GetReplicationConfiguration",
|
||
|
|
"s3:PutReplicationConfiguration",
|
||
|
|
"s3:GetBucket*",
|
||
|
|
"s3:PutBucket*",
|
||
|
|
"s3:GetEncryptionConfiguration",
|
||
|
|
"s3:PutEncryptionConfiguration",
|
||
|
|
"ec2:AttachNetworkInterface",
|
||
|
|
"ec2:DetachNetworkInterface",
|
||
|
|
"iam:CreateServiceLinkedRole",
|
||
|
|
"iam:DeleteServiceLinkedRole",
|
||
|
|
"iam:PassRole"
|
||
|
|
],
|
||
|
|
"Resource": "*"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
6. change sudo password
|
||
|
|
- `sudo passwd ec2-user`
|
||
|
|
- enter new password (doesn't need to be secure)
|
||
|
|
7. install git
|
||
|
|
- `sudo yum install git`
|
||
|
|
8. install homebrew
|
||
|
|
- https://brew.sh/
|
||
|
|
- follow post-install instructions given by homebrew in the cli (install gcc and other utils)
|
||
|
|
9. install enos deps
|
||
|
|
- https://github.com/hashicorp/boundary/blob/main/enos/README.md
|
||
|
|
- you do **not** need to install doormat
|
||
|
|
- you will need to create/add/use a github token on the ec2 instance
|
||
|
|
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
|
||
|
|
- also install nvm and run `nvm install 20` and `nvm use 20`
|
||
|
|
- https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating
|
||
|
|
10. you should now be able to run enos instances from the enos directory
|