This project provides a turn-key solution for running the Kubernetes conformance tests on the VMware vSphere on VMC platform. In other words, it's Yet Another Kubernetes e2e runner :)
To run the Kubernetes conformance tests follow these steps:
-
Create a file named
config.env
with Terraform properties that reflect the environment to which the cluster will be deployed. For a full list of the properties available (as well as their default values), please seeinput.tf
. -
Create a file named
secure.env
with vSphere and AWS credentials used to access the vSphere on VMC environment. For example:
TF_VAR_vsphere_server=1.2.3.4
TF_VAR_vsphere_user=admin
TF_VAR_vsphere_password=password
AWS_ACCESS_KEY_ID=abc123
AWS_SECRET_ACCESS_KEY=edf456
AWS_DEFAULT_REGION=us-west-2
- Turn up a cluster named
stable
:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
--env-file config.env \
--env-file secure.env \
gcr.io/kubernetes-conformance-testing/yake2e \
stable up
- Schedule the e2e conformance tests as job on the turned-up cluster:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
gcr.io/kubernetes-conformance-testing/yake2e \
stable test
- Follow the remote, e2e conformance job's progress in real-time:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
gcr.io/kubernetes-conformance-testing/yake2e \
stable tlog
- Turn down the cluster:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
--env-file config.env \
--env-file secure.env \
gcr.io/kubernetes-conformance-testing/yake2e \
stable down
The cluster turned up in the quick start section is deployed with the in-tree vSphere cloud provider. To turn up a cluster using the out-of-tree vSphere cloud provider simply modify the third step:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
--env-file config.env \
--env-file secure.env \
--env TF_VAR_cloud_provider=external \
gcr.io/kubernetes-conformance-testing/yake2e \
stable up
Beyond that all the other steps are the same.
The following command will block until the e2e tests have completed and then download the test results as a tarball:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
gcr.io/kubernetes-conformance-testing/yake2e \
stable tget
After using tget
, the following command will upload the test results
to a GCS bucket:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
gcr.io/kubernetes-conformance-testing/yake2e \
stable tput gs://path-to-bucket google-cloud-key-file.json
The following command stops any in-progress e2e test job:
$ docker run -it --rm \
-v "$(pwd)/data":/tf/data \
gcr.io/kubernetes-conformance-testing/yake2e \
stable tdel