Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Refactored end-to-end tests fully orchestrated by pytest #1094

Merged
merged 60 commits into from
Oct 27, 2020

Conversation

pyalex
Copy link
Collaborator

@pyalex pyalex commented Oct 23, 2020

What this PR does / why we need it:
Reworked e2e tests consist of:

  • Registering definitions in Core
  • Retrieve historical features
  • Retrieve online features (ingested by batch/stream)

Runners regrouped by environment:

  • standalone (run spark locally, all services (kafka, redis, postgres, incl feast core & serving) spawned by pytest as subprocesses)
  • gcp (dataproc, redis-cluster & kafka in kubernetes)
  • (potentially) aws

Auth (enabled/disabled) is now just a parameterised fixture.

Which issue(s) this PR fixes:

Fixes #

Does this PR introduce a user-facing change?:


@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: pyalex

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@@ -156,3 +156,25 @@ jobs:
- name: copy to gs
run: gsutil cp ./spark/ingestion/target/feast-ingestion-spark-${GITHUB_SHA}.jar gs://feast-jobs/spark/ingestion/

test-end-to-end:
runs-on: [self-hosted]
Copy link
Member

@woop woop Oct 25, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The self-hosted runners don't clean up. If you aren't using docker then all the state will remain. I dont think this test is safe, it's going to fall over for our current runners because they are already so unstable (long running stateful pods)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't use docker. It's regular test, which github runner was designed for, hence there should be way to easily clean up. Right now for example python w/ environment (and installed packages) being cleaned up by python action

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, we're on preemptible nodes right now. So we have additional clean up

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't use docker. It's regular test, which github runner was designed for, hence there should be way to easily clean up. Right now for example python w/ environment (and installed packages) being cleaned up by python action

ok, but self-hosted runners don't clean up right? state just hangs around as far as I know.

pyalex added 16 commits October 27, 2020 10:39
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
pyalex added 17 commits October 27, 2020 10:39
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
@pyalex pyalex changed the title [WIP] Refactored end-to-end tests fully orchestrated by pytest Refactored end-to-end tests fully orchestrated by pytest Oct 27, 2020
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
@feast-ci-bot
Copy link
Collaborator

@pyalex: The following tests failed, say /retest to rerun them all:

Test name Commit Details Rerun command
test-end-to-end 5f706cf link /test test-end-to-end
test-end-to-end-auth 5f706cf link /test test-end-to-end-auth
test-end-to-end-redis-cluster 5f706cf link /test test-end-to-end-redis-cluster

Full PR test history

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@pyalex pyalex merged commit ec0d65f into feast-dev:master Oct 27, 2020
@feast-ci-bot
Copy link
Collaborator

@pyalex: Updated the config configmap in namespace default at cluster default using the following files:

  • key config.yaml using file .prow/config.yaml

In response to this:

What this PR does / why we need it:
Reworked e2e tests consist of:

  • Registering definitions in Core
  • Retrieve historical features
  • Retrieve online features (ingested by batch/stream)

Runners regrouped by environment:

  • standalone (run spark locally, all services (kafka, redis, postgres, incl feast core & serving) spawned by pytest as subprocesses)
  • gcp (dataproc, redis-cluster & kafka in kubernetes)
  • (potentially) aws

Auth (enabled/disabled) is now just a parameterised fixture.

Which issue(s) this PR fixes:

Fixes #

Does this PR introduce a user-facing change?:


Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

export feast_redis_3_ip=$(gcloud compute addresses describe $feast_redis_3_ip_name --region=${GCLOUD_REGION} --format "value(address)")


envsubst '$feast_kafka_ip' < helm/kafka-values.tpl.yaml > helm/kafka-values.yaml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have to use double templating (envsubst, helm)? What if we just used --set CLI command for Kafka IP and redis IP?

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants