github.com/kubernetes-incubator/kube-aws@v0.16.4/e2e/README.md (about) 1 # End-to-end testing for kube-aws 2 3 This directory contains a set of tools to run end-to-end testing for kube-aws. 4 It is composed of: 5 6 * Cluster creation using `kube-aws` 7 * [Kubernetes Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md#conformance-tests) 8 9 To run e2e tests, you should have set all he required env vars. 10 For convenience, creating `.envrc` used by `direnv` like as follows would be good. 11 12 ``` 13 export KUBE_AWS_KEY_NAME=... 14 export KUBE_AWS_KMS_KEY_ARN=arn:aws:kms:us-west-1:<account id>:key/<id> 15 export KUBE_AWS_DOMAIN=example.com 16 export KUBE_AWS_REGION=us-west-1 17 export KUBE_AWS_AVAILABILITY_ZONE=us-west-1b 18 export KUBE_AWS_HOSTED_ZONE_ID=... 19 export KUBE_AWS_AZ_1=... 20 21 export DOCKER_REPO=quay.io/mumoshu/ 22 export SSH_PRIVATE_KEY=path/to/private/key/matching/key/name 23 ``` 24 25 Finally, run e2e tests like: 26 27 ``` 28 $ KUBE_AWS_CLUSTER_NAME=kubeawstest ./run all 29 ``` 30 31 Enable all the features including experimental ones: 32 33 ``` 34 KUBE_AWS_DEPLOY_TO_EXISTING_VPC=1 \ 35 KUBE_AWS_SPOT_FLEET_ENABLED=1 \ 36 KUBE_AWS_CLUSTER_AUTOSCALER_ENABLED=1 \ 37 KUBE_AWS_NODE_POOL_INDEX=1 \ 38 KUBE_AWS_WAIT_SIGNAL_ENABLED=1 \ 39 KUBE_AWS_AWS_NODE_LABELS_ENABLED=1 \ 40 KUBE_AWS_NODE_LABELS_ENABLED=1 \ 41 KUBE_AWS_AWS_ENV_ENABLED=1 \ 42 KUBE_AWS_USE_CALICO=true \ 43 KUBE_AWS_CLUSTER_NAME=kubeawstest sh -c './run all' 44 ``` 45 46 ## Common configurations used for validating kube-aws releases 47 48 ### For deployments to new VPCs managed by kube-aws 49 50 #### With Calico 51 52 ``` 53 KUBE_AWS_USE_CALICO=true \ 54 KUBE_AWS_CLUSTER_NAME=kubeawstest sh -c './run all' 55 ``` 56 57 #### Without Calico 58 59 ``` 60 KUBE_AWS_CLUSTER_NAME=kubeawstest sh -c './run all' 61 ``` 62 63 ### For deployments to existing VPCs not managed bu kube-aws 64 65 #### With Calico 66 67 ``` 68 KUBE_AWS_DEPLOY_TO_EXISTING_VPC=1 \ 69 KUBE_AWS_USE_CALICO=true \ 70 KUBE_AWS_CLUSTER_NAME=kubeawstest sh -c './run all' 71 ``` 72 73 ## Customizing your test kubernetes cluster 74 75 The test cluster created by the `e2e/run` script can be customized via various environment variables. 76 77 `KUBE_AWS_DEPLOY_TO_EXISTING_VPC=1`: Set to `1` if you'd like the script to provision a VPC before running kube-aws and then deploying a kubernetes cluster to it. 78 79 `KUBE_AWS_USE_CALICO=true`: Enable Calico throughout the cluster. 80 81 `ETCD_COUNT=1`: Number of etcd nodes in the cluster. Defaults to 1. Set to an odd number greater than or equal to 3 for testing a H/A etcd cluster 82 83 `ETCD_MEMBER_IDENTITY_PROVIDER=<eni|eip>`: "eni" for using secondary NICs=ENIs for etcd node=member identity. "eip" for using EIPs and Amazon DNS. 84 85 `ETCD_INTERNAL_DOMAIN_NAME=internal.example.com`: Used only when `ETCD_MEMBER_IDENTITY_PROVIDER` is set to "eni". See comments in `cluster.yaml` for more details. 86 87 `KUBE_AWS_CLUSTER_NAME=mycluster`: The name of a kube-aws main cluster i.e. a cloudformation stack for the main cluster. Must be unique in your AWS account. 88 89 `LIMIT_SSH_ACCESS`: When set to a non-empty value, limit ssh access to all the nodes to be allowed from only your public IP.