Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add integration tests for AWS Lambda feature server #2001

Merged

Conversation

tsotnet
Copy link
Collaborator

@tsotnet tsotnet commented Nov 5, 2021

Signed-off-by: Tsotne Tabidze tsotne@tecton.ai

What this PR does / why we need it: This PR does a couple of things:

  • Build AWS Lambda feature server docker image for approved PRs
  • Make PR integration test job dependent on the docker image build
  • Merge ECR and Docker Hub image tagging logic (_get_version_for_aws, AWS_LAMBDA_FEATURE_SERVER_IMAGE) into one: _get_docker_image_version
    • Docker Hub image tag was constant :aws, which obviously couldn't support multiple releases (let alone integration tests)
    • The tag will now be either Feast public version (e.g. 0_14_0) for public releases, or git commit hash of HEAD (for integration tests).
    • For local development, I decided to use the latest released image up to the point where local code is at. For example, for local SDK version of 0.14.1.dev41+g1cbfa225.d20211104, it'll use 0_14_1 version.
  • Modify universal integration test configuration to deploy feature server for AWS provider. Also had to modify the registry to be on S3 instead of local, and had to make some changes how feature_store.yaml is written and how yaml file is parsed.
  • Modify the universal integration test for online retrieval (test_online_retrieval) to check results from both SDK and AWS Lambda-based feature server

Which issue(s) this PR fixes:

Fixes #

Does this PR introduce a user-facing change?:

NONE

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
@codecov-commenter
Copy link

codecov-commenter commented Nov 5, 2021

Codecov Report

Merging #2001 (84cce53) into master (d607a20) will increase coverage by 1.16%.
The diff coverage is 81.63%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2001      +/-   ##
==========================================
+ Coverage   83.20%   84.37%   +1.16%     
==========================================
  Files         103      103              
  Lines        8467     8523      +56     
==========================================
+ Hits         7045     7191     +146     
+ Misses       1422     1332      -90     
Flag Coverage Δ
integrationtests 75.67% <81.63%> (+1.23%) ⬆️
unittests 60.01% <28.57%> (-0.15%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
sdk/python/feast/infra/aws.py 72.59% <47.61%> (+31.47%) ⬆️
sdk/python/feast/feature_server.py 29.72% <50.00%> (+1.95%) ⬆️
sdk/python/feast/type_map.py 72.34% <66.66%> (-0.33%) ⬇️
sdk/python/feast/infra/utils/aws_utils.py 84.78% <75.00%> (+13.67%) ⬆️
sdk/python/feast/repo_config.py 87.00% <83.33%> (+8.02%) ⬆️
.../integration/online_store/test_universal_online.py 97.67% <92.68%> (-1.29%) ⬇️
sdk/python/feast/constants.py 100.00% <100.00%> (ø)
sdk/python/feast/online_response.py 87.71% <100.00%> (+0.92%) ⬆️
...tion/feature_repos/integration_test_repo_config.py 100.00% <100.00%> (ø)
...ts/integration/feature_repos/repo_configuration.py 94.50% <100.00%> (+0.67%) ⬆️
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d607a20...84cce53. Read the comment docs.

@adchia
Copy link
Collaborator

adchia commented Nov 5, 2021

going to hold off on review until the tests run successfully

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
Copy link
Collaborator

@adchia adchia left a comment

Choose a reason for hiding this comment

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

lgtm pending fixing of flaky test

/lgtm

base64-ing project name and then taking the prefix was not working when
the prefix of the project name was identical between tests (only their
endings were different for some tests). This caused lambda names between
test cases to be the same, causing conflicts between updates. Now, we
instead use md5 hash which depends on the entire body of the input,
eliminating this issue.

Signed-off-by: Tsotne Tabidze <tsotne@tecton.ai>
@feast-ci-bot feast-ci-bot removed the lgtm label Nov 12, 2021
@adchia
Copy link
Collaborator

adchia commented Nov 12, 2021

/lgtm

@feast-ci-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: adchia, tsotnet

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

@feast-ci-bot feast-ci-bot merged commit 2435777 into feast-dev:master Nov 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants