Skip to content

[release-3.4] .github/workflows: Remove tests.yaml #20116

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

Merged

Conversation

joshjms
Copy link
Member

@joshjms joshjms commented Jun 4, 2025

All the tests inside tests.py has already been migrated to Prow 🥳

Ref: kubernetes/test-infra#32754

/cc @ivanvc @abdurrehman107

Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.

Signed-off-by: joshjms <joshjms1607@gmail.com>
@joshjms
Copy link
Member Author

joshjms commented Jun 4, 2025

/hold

Let's wait for kubernetes/test-infra#34916 to be merged

@joshjms
Copy link
Member Author

joshjms commented Jun 4, 2025

/retest

@ivanvc
Copy link
Member

ivanvc commented Jun 4, 2025

/retitle [release-3.4] .github/workflows: Remove tests.yaml

@k8s-ci-robot k8s-ci-robot changed the title .github/workflows: Remove tests.yaml [release-3.4] .github/workflows: Remove tests.yaml Jun 4, 2025
@ivanvc
Copy link
Member

ivanvc commented Jun 5, 2025

/close testing

@ivanvc
Copy link
Member

ivanvc commented Jun 5, 2025

/close

@joshjms
Copy link
Member Author

joshjms commented Jun 5, 2025

/test pull-etcd-e2e-amd64

@ivanvc
Copy link
Member

ivanvc commented Jun 5, 2025

Noting the --- FAIL: TestConnectionMultiplexing (5.41s) error. Let's retry the job.

/retest

@ivanvc
Copy link
Member

ivanvc commented Jun 6, 2025

@jmhbnz, do you recall any issues you encountered during the initial migration of AMD64 jobs with the e2e tests? It passes with the same arguments in GitHub runners (i.e., I altered the GitHub workflow to match what we have in Prow in this PR: #20129), but fails in the Prow infrastructure.

@joshjms
Copy link
Member Author

joshjms commented Jun 6, 2025

The error:

../../bin/etcd-18074: 2025-06-05 19:14:07.393977 I | embed: rejected connection from "127.0.0.1:45890" (error "tls: client requested unsupported application protocols ([http/1.0])", ServerName "")

/usr/bin/curl-18123: curl: (35) OpenSSL/3.0.16: error:0A000460:SSL routines::tlsv1 alert no application protocol

Comparing with main, this seems to be an issue when curl-ing using HTTP 1.0 as 1.0 is not tested in main branch.

In main:

t.Run("curl", func(t *testing.T) {
	for _, httpVersion := range []string{"2", "1.1", ""} {
		tname := "http" + httpVersion
		if httpVersion == "" {
			tname = "default"
		}
		t.Run(tname, func(t *testing.T) {
			assert.NoError(t, fetchGRPCGateway(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchMetrics(t, httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchVersion(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchHealth(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchDebugVars(httpEndpoint, httpVersion, connType))
		})
	}
})

In release-3.4

t.Run("curl", func(t *testing.T) {
	for _, httpVersion := range []string{"2", "1.1", "1.0", ""} {
		tname := "http" + httpVersion
		if httpVersion == "" {
			tname = "default"
		}
		t.Run(tname, func(t *testing.T) {
			assert.NoError(t, fetchGrpcGateway(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchMetrics(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchVersion(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchHealth(httpEndpoint, httpVersion, connType))
			assert.NoError(t, fetchDebugVars(httpEndpoint, httpVersion, connType))
		})
	}
})

However, this problem only happens in Prow as the Github actions workflow works fine and running it locally also succeeds. Using pj-on-kind shows the same error as the one in Prow (link).

@joshjms
Copy link
Member Author

joshjms commented Jun 6, 2025

I think it's related to this #16516

See the conversation here #16513

From @ahrtr (sorry for the tag)

This PR is breaking FAIL: TestConnectionMultiplexing/ServerTLS/ClientTLS/curl/http1.0.

It looks like http 1.0 isn't supported any more in go:1.20-bookworm. Since HTTP 1.0 has already been obsoleted, it's OK to update the test case.

From @jmhbnz

Please remove the "1.0" entry in this line:

etcd/tests/e2e/cmux_test.go

Line 124 in e4e05c5
for _, httpVersion := range []string{"2", "1.1", "1.0", ""} {

@ivanvc
Copy link
Member

ivanvc commented Jun 6, 2025

@joshjms, I can think of two solutions:

  1. We run the tests on the Prow infra using a different image, which will require a different job configuration for release-3.4 e2e jobs
  2. We keep this job as a GitHub action/workflow

Given the timeline to give support to this version, I lean towards option 2.

That would mean:

  1. Keep the tests.yaml file, simplify it, so it only runs e2e tests
  2. Revert etcd: Add e2e tests for branch release-3.4 kubernetes/test-infra#34916

@jmhbnz, thoughts?

@joshjms
Copy link
Member Author

joshjms commented Jun 6, 2025

@ivanvc I think according to the conversation in the PR, it would be better to obsolete HTTP 1.0 (i.e. a partial backport of #16516). What do you think?

@ivanvc
Copy link
Member

ivanvc commented Jun 6, 2025

@ivanvc I think according to the conversation in the PR, it would be better to obsolete HTTP 1.0 (i.e. a partial backport of #16516). What do you think?

I don't think it makes sense to change a stable release.

@joshjms
Copy link
Member Author

joshjms commented Jun 6, 2025

@ivanvc I think according to the conversation in the PR, it would be better to obsolete HTTP 1.0 (i.e. a partial backport of #16516). What do you think?

I don't think it makes sense to change a stable release.

Ah I see, makes sense.

@jmhbnz
Copy link
Member

jmhbnz commented Jun 6, 2025

Hey team - We have already backported the fix to 3.5 in #16568 so I would have no issue with backporting to 3.4 if that means we can modernize our testing infrastructure.

@ivanvc
Copy link
Member

ivanvc commented Jun 6, 2025

@joshjms, let's follow James' suggestion. I didn't realize until later that the change is in the tests package.

Let's backport #16568 first, and then we continue with this pull request. Thanks! :)

@joshjms
Copy link
Member Author

joshjms commented Jun 6, 2025

@joshjms, let's follow James' suggestion. I didn't realize until later that the change is in the tests package.

Let's backport #16568 first, and then we continue with this pull request. Thanks! :)

Got it

@ivanvc
Copy link
Member

ivanvc commented Jun 9, 2025

/test pull-etcd-e2e-amd64

@ivanvc
Copy link
Member

ivanvc commented Jun 9, 2025

@joshjms, can we enable e2e periodic and postsubmits before we consider merging this pull request? Thanks.

@ivanvc
Copy link
Member

ivanvc commented Jun 11, 2025

e2e periodics look fine: https://testgrid.k8s.io/sig-etcd-periodics#ci-etcd-e2e-release34-amd64.

The rest of the jobs are migrated into Prow.

Copy link
Member

@ivanvc ivanvc left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks, @joshjms.

/cc @jmhbnz

@k8s-ci-robot k8s-ci-robot requested a review from jmhbnz June 11, 2025 16:29
Copy link
Member

@jmhbnz jmhbnz left a comment

Choose a reason for hiding this comment

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

LGTM - Thanks team

@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ivanvc, jmhbnz, joshjms

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

@jmhbnz jmhbnz merged commit 799496c into etcd-io:release-3.4 Jun 13, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

4 participants