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

CI: Add one more E2E tests run with all feature gates disabled #1546

Merged

Conversation

aLekSer
Copy link
Collaborator

@aLekSer aLekSer commented May 14, 2020

Run E2E tests with FeatureGates disabled.

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking
/kind bug
/kind cleanup
/kind documentation

/kind feature

/kind hotfix

What this PR does / Why we need it:

Which issue(s) this PR fixes:

For #1411

Special notes for your reviewer:

cloudbuild.yaml Outdated
- name: 'e2e-runner-release'
args: ['']
waitFor:
- e2e-runner
Copy link
Collaborator Author

@aLekSer aLekSer May 14, 2020

Choose a reason for hiding this comment

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

This line could be redundant, as consul lock should not allow this to happen simultaneously.

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from baff8dd to 7c03e36 Compare May 14, 2020 11:54
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 5bc7f20f-8946-476d-8035-08399e4976b2

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from 7c03e36 to 5668c28 Compare May 14, 2020 12:46
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 386e0fc2-e9b9-4079-942b-f0a68b80f3e1

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from 5668c28 to 4000600 Compare May 14, 2020 13:25
@aLekSer aLekSer added area/tests Unit tests, e2e tests, anything to make sure things don't break area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. labels May 14, 2020
@aLekSer
Copy link
Collaborator Author

aLekSer commented May 14, 2020

The downside of this PR, that now a probability of flaky tests appearance would roughly about twice times much than before (for small appearance chance or for test success (1-failChance)**2 to be accurate where failChance is probability of E2E tests fail).

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 2a0f190d-3be9-409b-ab9a-b081c3741c8d

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/GoogleCloudPlatform/agones.git pull/1546/head:pr_1546 && git checkout pr_1546
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.6.0-4000600

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from 4000600 to c1cf998 Compare May 14, 2020 14:01
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: be641b53-b6e9-4f36-8d65-c29d1745bb8c

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from c1cf998 to 96c0ba5 Compare May 14, 2020 14:20
set -e
echo "installing current release"
DOCKER_RUN= make install
DOCKER_RUN= make install FEATURE_GATES='"'$FEATURES'"'
Copy link
Collaborator Author

@aLekSer aLekSer May 14, 2020

Choose a reason for hiding this comment

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

This '"' is needed to prevent &featureGate from being used as new command:

helm upgrade --install --wait --namespace=agones-system\                             
--set agones.featureGates=123&saf \ 
agones /go/src/agones.dev/agones/install/helm/agones/     
bin/sh: saf: command not found   

Copy link
Member

Choose a reason for hiding this comment

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

In theory you could also use something like "none=false", or something else nonsensical. Just an idea.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 0b709056-3a72-42ef-9a28-c488ae30a7a9

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from 96c0ba5 to b62ed24 Compare May 14, 2020 16:22
@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: c45f2165-d25f-443b-a6f2-25f6e703626c

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 14, 2020

Today there are a bunch of errors on loading some binaries:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
E: Failed to fetch https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/d/dotnet-sdk-2.2/dotnet-sdk-2.2.402-x64.deb  GnuTLS recv error (-54): Error in the pull function.

Similar error on loading helm with curl occurred today:

RUN curl -L ${HELM_URL} > /tmp/helm.tar.gz \

@aLekSer aLekSer force-pushed the e2e-tests/without-feature-gates branch from b62ed24 to 5df2245 Compare May 14, 2020 16:39
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: f971f306-cf53-4311-a671-05cb2da1becb

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/GoogleCloudPlatform/agones.git pull/1546/head:pr_1546 && git checkout pr_1546
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.6.0-5df2245

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 14, 2020

Time of CI build with 2 E2E tests steps (each about 5 min) is 19 min 41 sec compared to previous 15 min 51 sec.
There is an option to remove one cloud build step change for now. But leave all changes to the .sh files in order to be more flexible to provide FeatureGates into CI. Or we can disable E2E tests stable step later on.

@aLekSer aLekSer marked this pull request as ready for review May 14, 2020 17:36
@aLekSer aLekSer requested a review from markmandel May 14, 2020 17:59
@aLekSer
Copy link
Collaborator Author

aLekSer commented May 14, 2020

@markmandel This change makes e2e-runner more flexible.
If we don't need new step we can comment it or make it conditional. For example, passing some special skip keyword as a parameter to e2e-runner every commit id not ending with 'a'. Then it would be executed once per 16 commits.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: cf85b712-f741-4642-8b01-9145aab60764

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 18, 2020

E2E test fail in:

--- FAIL: TestTlsWebhook (370.26s)
    fleetautoscaler_test.go:627: error waiting for fleet condition on fleet simple-fleet-k7fhd
FAIL
time="2020-05-18 14:53:10.948" level=info msg="Cleaning up now."

One more strange message:

time="2020-05-18 14:46:36.741" level=info msg="failing Allocate request" error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: authentication handshake failed: x509: cannot validate certificate for 35.233.192.59 because it doesn't contain any IP SANs\""
time="2020-05-18 14:46:44.891" level=info msg="waiting for fleet condition" fleet=simple-fleet-9d5p8

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 712078ca-9039-4096-9de4-e1a7750ec954

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 19, 2020

New E2E test fail, @pooneh-m this might be interesting to you:

time="2020-05-19 14:19:28.042" level=info msg="failing Allocate request" error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: Error while dialing dial tcp 35.233.192.59:443: connect: connection refused\""
time="2020-05-19 14:19:30.053" level=info msg="failing Allocate request" error="rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: desc = \"transport: Error while dialing dial tcp 35.233.192.59:443: connect: connection refused\""
--- FAIL: TestAllocatorCrossNamespace (2.21s)
    allocator_test.go:116: Allocator TLS is refreshed with public CA: -----BEGIN CERTIFICATE-----
        MIIDMTCCAhmgAwIBAgIQESMEEUtwGN2/rZTEJhVV/jANBgkqhkiG9w0BAQUFADAq
        MRAwDgYDVQQKEwd0ZXN0aW5nMRYwFAYDVQQDEw0zNS4yMzMuMTkyLjU5MB4XDTIw
        MDUxOTE0MTkzM1oXDTIwMDUxOTE1MTkzM1owKjEQMA4GA1UEChMHdGVzdGluZzEW
        MBQGA1UEAxMNMzUuMjMzLjE5Mi41OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
        AQoCggEBALyUFVN+Wxt0Eg9V1AzQLgX7iVH02b8YDjzO2N9E3FiTkI0WDXBmPuMh
        Spd3z7ltqqapG+PCtJE1y7qykzm7eh0qss3zqGe9q7g97t0bHCUdQe9Qn1CkkLKX
        nMkphZkePqt5sE7DVsR6cBLiooY2You6/wmHrt2JRFWyBdkJjDpJsbn/KbsYRLFK
        lkF74hWoqmyRTpAdUcAMZDihgCuzgncd1k0LnHxRr04X1wIdUr82+dc5DcrpiK+x
        BcmvkM7Qrr9xYoi4jqwPSshKU3S4VItePAIJXfrnw40dmSdHTXr4lXW/Wp0jD/jx
        YNog1svhpdCvXjN+imbKUIaxfkWJm/MCAwEAAaNTMFEwDgYDVR0PAQH/BAQDAgKk
        MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/
        MA8GA1UdEQQIMAaHBCPpwDswDQYJKoZIhvcNAQEFBQADggEBACwo9kp1VEo/HHAs
        NqDDpoMnXMRXgyikB20m1BR1DgRgWGDUJ3ezKguy0CyXzdGJx80CSob87v1OEdc6
        Tes8xfI6n9LJpt+7l4L/FkeWozywsc4AyNtxWeSbdB4o3LgJbmd/CKnEQ43OEKxd
        41fE6hYO7hwtPlMBNLHOeBsVAbZyuFEOkWQZZbH1d2KKevKDnrc7R7STz/teUukv
        X3bN4/zni2ZIUO242SL1CmNsaCMsZNgP7DjqIWyowod+bWujDP/csjVpJPqibvMZ
        U+XhOuTGkRtWhI+F3aA9Qi5r/oKjsaxbR+TE+LswG939Q2/dPcs54INve0PyQj63
        1LNac2M=
        -----END CERTIFICATE-----
         for endpoint 35.233.192.59
    allocator_test.go:117: deleting pods failed: pods "agones-allocator-656d44988f-ftm7b" not found

set -e
echo "installing current release"
DOCKER_RUN= make install
DOCKER_RUN= make install FEATURE_GATES='"'$FEATURES'"'
Copy link
Member

Choose a reason for hiding this comment

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

In theory you could also use something like "none=false", or something else nonsensical. Just an idea.

build/e2e-image/e2e.sh Show resolved Hide resolved
waitFor:
- push-images
- build-e2e

#
Copy link
Member

Choose a reason for hiding this comment

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

This would run one after the other, yes?

Is this where we should be looking at prow, so we can run this in parallel? @roberthbailey ?

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 94a01cd2-275c-41be-9a1e-15ff912f63ec

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 28, 2020

make test-go have failed:


--- FAIL: TestSDKServerReserveTimeout (3.32s)
    sdkserver_test.go:848: 
        	Error Trace:	sdkserver_test.go:848
        	            				sdkserver_test.go:841
        	            				sdkserver_test.go:891
        	Error:      	Not equal: 
        	            	expected: time.Time{wall:0x0, ext:63726261609, loc:(*time.Location)(0x2cc04a0)}
        	            	actual  : time.Time{wall:0x0, ext:63726261608, loc:(*time.Location)(0x2cc04a0)}
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -1,2 +1,2 @@
        	            	-(time.Time) 2020-05-28 11:20:09 +0000 UTC
        	            	+(time.Time) 2020-05-28 11:20:08 +0000 UTC
        	            	 
        	Test:       	TestSDKServerReserveTimeout

@markmandel
Copy link
Member

Maybe we update our e2e scripts so that we can pass in the name of the cluster - then we could spin up more thank 1 cluster, so we could do this in parralel? WDYT?

@aLekSer
Copy link
Collaborator Author

aLekSer commented May 28, 2020

Yes, I will add an ability to select a cluster.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 49a9e8f3-c399-4c7e-ab33-6f38f226a8a2

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/GoogleCloudPlatform/agones.git pull/1546/head:pr_1546 && git checkout pr_1546
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.7.0-14d1c9c

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

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

@aLekSer I'm going to approve this PR.

Let's add the ability to select a cluster, and running the e2e tests in another cluster as part of a separate PR. Sound good?

@google-oss-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aLekSer, markmandel

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

@google-oss-robot
Copy link

New changes are detected. LGTM label has been removed.

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 8f00dbc7-f8ad-4b6f-ab32-ce93a08a7042

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@markmandel
Copy link
Member

--- FAIL: TestAllocatorCrossNamespace (3.67s)
    allocator_test.go:116: Allocator TLS is refreshed with public CA: -----BEGIN CERTIFICATE-----
        MIIDMjCCAhqgAwIBAgIRAOBeazlf5QfLLsRZPVwyLDMwDQYJKoZIhvcNAQEFBQAw
        KjEQMA4GA1UEChMHdGVzdGluZzEWMBQGA1UEAxMNMzUuMjMzLjE5Mi41OTAeFw0y
        MDA2MDEyMzUzNTJaFw0yMDA2MDIwMDUzNTJaMCoxEDAOBgNVBAoTB3Rlc3Rpbmcx
        FjAUBgNVBAMTDTM1LjIzMy4xOTIuNTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
        ggEKAoIBAQCty4mLBXaAS/trq9hcePO5nWD14LfH7kF9AQH0Qc5f28lqweKHhmiZ
        JHIYhqrknxrncYJ7Q3d9k7vrAfUpZ3+rMDb9o8tfLF1LbCZpYZFA7OLPvkL1LFCP
        elJWw3eksI0wZeA4FWVaYkqnQbPjQdn3s2/59iXgFO2SuCz9D1JgPP+DD5Nal7Qf
        xcueDuVmfkyskL+pha0gWoCRijAG8uFtF8ahawE0FeWxGIk3JGEHKslDHFgltQDQ
        tnnxQXvfWU43ctZ/+6Wn3EbwOStEit6ueNfchcK1FvjWFLzKqzafTbFu41IkX9yK
        vmIDMgkMJSqMJ46HSif5pBtPEpF39P6nAgMBAAGjUzBRMA4GA1UdDwEB/wQEAwIC
        pDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDwYDVR0TAQH/BAUwAwEB
        /zAPBgNVHREECDAGhwQj6cA7MA0GCSqGSIb3DQEBBQUAA4IBAQBr2DQA2XEKs2aJ
        isLtWUg/I4P6n2Uyx7g3Oy982Hcvnnc/b/KvSaNXle6pPwzi/9arh+ap+50uGzql
        wEQw0tNpFuIrulcBckyKmQNd1571kVqkpddK0OL3DUU41zmc7FPQhjpZSnTRW5Zc
        +05TayhArhpn5yC5NH442n70acFQvfuV7dY+8I1BhUK6WDSP4DM4NjFsisHWHUug
        E+Y8eY+uHywUkTejxbee03Bf9pE98z9OXdU469Emv71Io8yWNq+7+3zyDX0/8GNf
        M/pua06/pucPCzgPlGEQPAtPjzoVUE1pJXWLoXK6W5ghqUZjODTPewOWWJMzxem9
        m/JOO4fb
        -----END CERTIFICATE-----
         for endpoint 35.233.192.59
    allocator_test.go:117: deleting pods failed: pods "agones-allocator-f6b4cfcb8-xmh55" not found

Seems like this shows up from time to time, or is it just me?

(Wondering if we should file a flaky bug on it)

Of course the downside of this is that we're twice as likely to get e2e flakes 🙁

@agones-bot
Copy link
Collaborator

Build Failed 😱

Build Id: 89267cc5-ffc0-437e-946b-df9501abe9b5

To get permission to view the Cloud Build view, join the agones-discuss Google Group.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 227d25db-ecbf-4369-b960-3c0494e5903f

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

  • git fetch https://github.com/GoogleCloudPlatform/agones.git pull/1546/head:pr_1546 && git checkout pr_1546
  • helm install ./install/helm/agones --namespace agones-system --name agones --set agones.image.tag=1.7.0-e475070

@markmandel markmandel merged commit 714c582 into googleforgames:master Jun 2, 2020
@markmandel markmandel added this to the 1.7.0 milestone Jun 2, 2020
ilkercelikyilmaz pushed a commit to ilkercelikyilmaz/agones that referenced this pull request Oct 23, 2020
Add one more E2E tests step with FeatureGates disabled - stable version.
Add parameter to e2e-runner step to switch between FeatureGates.

Co-authored-by: Mark Mandel <markmandel@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. area/tests Unit tests, e2e tests, anything to make sure things don't break size/S
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants