-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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 periodic conformance test run against cloud-provider-gcp using kubetest2 #18714
Add periodic conformance test run against cloud-provider-gcp using kubetest2 #18714
Conversation
Adds a new periodic job to run the conformance ginkgo suite against the cloud-provider-gcp repository. Test job is based on ci-kubernetes-gce-conformance-latest, with the main difference being using the new kubetest2 GCE deployer instead of kubetest. Because cloud-provider-gcp does not have published release tars, this job has to clone and build the cloud-provider-gcp repository. The job also does not include the forking and the alerting in the job it is based on because it needs to be validated in production prow before meaningful decisions can be made using it.
preset-service-account: "true" | ||
spec: | ||
containers: | ||
- image: gcr.io/k8s-testimages/krte:v20200806-28035c4-1.16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure which tag of this KRTE release I should be using. This is the postsubmit that built it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need your fix so this is fine, but eventually we should use the auto generated tag.
@@ -0,0 +1,32 @@ | |||
periodics: | |||
- interval: 3h |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this interval should be longer. Conformance tests take a while.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3h seems fine, that's also the cadence for the existing job.
go get sigs.k8s.io/kubetest2@latest; | ||
go get sigs.k8s.io/kubetest2/kubetest2-gce@latest; | ||
go get sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest; | ||
kubetest2 gce -v 2 --repo-root $REPO_ROOT --build --up --down --test=ginkgo -- --focus-regex='\[Conformance\]' --parallel=30 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The original job doesn't configure a parallel amount for the tester. Doing so speeds up tests. I would appreciate perspective on potential issues this could cause.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not all jobs can be safely run in parallel and usually causes failures as compared to when run serially.
Let's stick to serial for now, or we can have another job for parallel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dropped the parallel
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
preset-service-account: "true" | ||
spec: | ||
containers: | ||
- image: gcr.io/k8s-testimages/krte:v20200806-28035c4-1.16 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need your fix so this is fine, but eventually we should use the auto generated tag.
@@ -0,0 +1,32 @@ | |||
periodics: | |||
- interval: 3h |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3h seems fine, that's also the cadence for the existing job.
go get sigs.k8s.io/kubetest2@latest; | ||
go get sigs.k8s.io/kubetest2/kubetest2-gce@latest; | ||
go get sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest; | ||
kubetest2 gce -v 2 --repo-root $REPO_ROOT --build --up --down --test=ginkgo -- --focus-regex='\[Conformance\]' --parallel=30 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not all jobs can be safely run in parallel and usually causes failures as compared to when run serially.
Let's stick to serial for now, or we can have another job for parallel.
cluster: k8s-infra-prow-build | ||
name: ci-cloud-provider-gcp-conformance-latest | ||
annotations: | ||
testgrid-tab-name: Conformance - Cloud Provider GCP - master |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you'll need a dashboard here: https://github.com/kubernetes/test-infra/blob/master/config/testgrids/kubernetes/sig-cloud-provider/gcp/config.yaml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added, hopefully that's the correct syntax.
6d579ba
to
5db8fdc
Compare
set -o nounset; | ||
set -o pipefail; | ||
set -o xtrace; | ||
git clone https://github.com/kubernetes/cloud-provider-gcp; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we use extra_refs
instead of manually git cloning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Periodics don't get access to extra_refs
. I believe this is also indicated by the fact that there is no clonerefs
containers as part of periodic job specs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if that's true. extra_refs
is a ProwJob field so it's independent of whether it's a presubmit or a periodic.
We use it in a bunch of jobs
test-infra/config/jobs/kubernetes-sigs/kind/kind.yaml
Lines 5 to 9 in 70c4596
extra_refs: | |
- org: kubernetes-sigs | |
repo: kind | |
base_ref: master | |
path_alias: sigs.k8s.io/kind |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm. I tried adding it to my periodic, regenerating it, and then looking for the repo and couldn't find it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you'll need decorate: true
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
decorate: true
solves this problem. Updated the PR to use extra_refs
to get the cloud-provider-gcp
repo.
cd cloud-provider-gcp; | ||
REPO_ROOT=$(git rev-parse --show-toplevel); | ||
cd; | ||
go get -u github.com/onsi/ginkgo/ginkgo; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fyi the ginkgo binary also exists in the same tarball as e2e.test
.
Let's start with this.
and as a follow up add the logic inside the tester to use that one and then remove this from here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good idea
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve
/label tide/merge-method-squash |
/cc @BenTheElder @cheftako |
cpu: 2000m | ||
memory: 2G | ||
requests: | ||
cpu: 2000m | ||
memory: 2G |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The closest analogue I would have for this is maybe pull-kubernetes-e2e-gce, which is currently at cpu: 4, memory: 14Gi
.
Can be tuned once job is running regularly and can be inspected.
/lgtm |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
for the testgrid changes as well
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: amwat, michaelmdresser, spiffxp 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 |
@michaelmdresser: Updated the
In response to this:
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. |
it looks like this hasn't passed since it was added: https://testgrid.k8s.io/provider-gcp-periodics#Conformance%20-%20Cloud%20Provider%20GCP%20-%20master&width=5 the failing tests look exclusively connected to the new APIs added in 1.19 (ingress v1, ingressclass v1, certificatesigningrequests v1)... what configuration is this running with, and are we sure it's running against the 1.19 artifacts? |
opened kubernetes/kubernetes#94051 to track |
Adds a new periodic job to run the conformance ginkgo suite against the cloud-provider-gcp repository. Test job is based on
ci-kubernetes-gce-conformance-latest, with the main difference being using the new kubetest2 GCE deployer instead of kubetest. Because cloud-provider-gcp does not have published release tars, this job has to clone and build the cloud-provider-gcp repository. The job also does not include the forking and the alerting in the job it is based on because it needs to be validated in production prow before meaningful decisions can be made using it.
Additional note: due to #18706, this job uses KRTE instead of kubekins-e2e as the test runner.
Tested in a GKE cluster using mkpj and mkpod.