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.