This folder contains the Feast test infrastructure.
- test-image/ - Base docker image and script for running tests.
- prow/ - Prow configuration (plugins and jobs)
- tf/ - Terraform modules to provision the base testing infrastructure on GCP
These steps will allow you to provision the test infrastructure in an empty GCP project. It is not necessary to rerun these steps once the infrastructure has been provisioned.
-
Make sure you have access to your GCP project and that you Terraform installed.
-
Create a bucket for maintaining Terraform state in your GCP project. This can be done manually. Update all
backend.tffiles to point to this bucket. -
Import the bucket to manage it's own state
mv tf/gcs
terraform import google_storage_bucket.kf-feast-terraform-state kf-feast-terraform-state
-
Ensure that all variables are set correctly in
tf/terraform.tfvars. It is likely that the GCP project will need to be updated. -
Create the primary Kubernetes cluster which will host Prow and Argo
mv ../k8s-cluster
terraform apply -var-file="../terraform.tfvars"
-
Create a ci-bot account on GitHub with owner access to your organization. Create and save a personal access token for the bot.
-
Install and run Tackle
go get -u k8s.io/test-infra/prow/cmd/tackle
tackle
Follow the steps to install Prow in your cluster. If any step fails, follow this guide to complete the steps manually.
Prow should now be receiving events from the Feast repository. You should be able to access Prow on an Ingress IP that the cluster exposes.
To update Prow jobs, plugins, or the Docker image used for testing, modify one or more of the following:
prow/config.yamlprow/plugins.yamltest-image/Dockerfiletest-image/run.sh
After making modifications, run make. This will update the Prow configuration, build a new test image, and push it to the container registry.