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

Allow cluster daemonsets to use maxSurge #27819

Conversation

Miciah
Copy link
Contributor

@Miciah Miciah commented Mar 24, 2023

Change the "[sig-arch] Managed cluster should only include cluster daemonsets that have maxUnavailable update of 10 or 33 percent" test to allow daemonsets to specify maxUnavailable 0 with maxSurge 10%.

The intention of this test is to verify that cluster components have parameters configured for rolling updates to ensure a reasonable balance between rapid rollout and minimum availability during upgrades. At the time this test was written, the only way to accomplish that goal was to set an appropriate maxUnavailable value. Since then, the maxSurge parameter has been added to the available parameters for daemonsets (see https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge). Now, a daemonset can ensure rapid rollout and minimum availability using maxSurge. However, when maxSurge is used, maxUnavailable must be zero. Thus this PR changes the test to allow maxUnavailable to be zero if maxSurge is set to 10%.

  • test/extended/operators/daemon_set.go: Don't mark a daemonset as invalid if it has maxSurge set to 10%. Include the maxSurge value in the violation message when neither maxUnavailable nor maxSurge is set appropriately.
  • cmd/openshift-tests/minimal.go:
  • pkg/test/ginkgo/testNames.txt:
  • test/extended/testdata/bindata.go:
  • test/extended/util/annotate/generated/zz_generated.annotations.go: Update test name.

@Miciah
Copy link
Contributor Author

Miciah commented Apr 3, 2023

Rebased for changes in #27714.

@Miciah
Copy link
Contributor Author

Miciah commented Apr 3, 2023

Lots of jobs failed with { error occurred handling build src: could not get build src: builds.build.openshift.io "src" not found}.
/retest

@Miciah
Copy link
Contributor Author

Miciah commented Apr 3, 2023

@mfojtik, could you approve this change? This PR is related to openshift/cluster-dns-operator#358, which is intended to fix a 4.13 release blocker. I'll want to backport both this origin PR and the cluster-dns-operator PR to their respective release-4.13 branches.

@Miciah
Copy link
Contributor Author

Miciah commented Apr 3, 2023

@bparees, could you approve this change? (Maybe I should just avoid changing the test name so I wouldn't need to ping approvers from multiple OWNERS files...)

@gcs278
Copy link
Contributor

gcs278 commented Apr 3, 2023

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 3, 2023
@bparees
Copy link
Contributor

bparees commented Apr 3, 2023

/approve

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 3, 2023
@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 84d65eb and 2 for PR HEAD 35bf447 in total

@Miciah Miciah force-pushed the allow-cluster-daemonsets-to-use-maxSurge branch from 35bf447 to 1219706 Compare April 3, 2023 22:20
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 3, 2023
@Miciah
Copy link
Contributor Author

Miciah commented Apr 3, 2023

@gcs278
Copy link
Contributor

gcs278 commented Apr 3, 2023

Agree with the update.
/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 3, 2023
@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 84d65eb and 2 for PR HEAD 1219706 in total

Change the "[sig-arch] Managed cluster should only include cluster
daemonsets that have maxUnavailable update of 10 or 33 percent" test to
allow daemonsets to specify maxUnavailable 0 with maxSurge 10%.

The intention of this test is to verify that cluster components have
parameters configured for rolling updates to ensure a reasonable balance
between rapid rollout and minimum availability during upgrades.  At the
time this test was written, the only way to accomplish that goal was to set
an appropriate maxUnavailable value.  Since then, the maxSurge parameter
has been added to the available parameters for daemonsets (see
<https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge>).
Now, a daemonset can ensure rapid rollout and minimum availability using
maxSurge.  However, when maxSurge is used, maxUnavailable must be zero.
Thus this commit changes the test to allow maxUnavailable to be zero if
maxSurge is set to 10%.

* test/extended/operators/daemon_set.go: Don't mark a daemonset as invalid
if it has maxSurge set to 10%.  Include the maxSurge value in the violation
message when neither maxUnavailable nor maxSurge is set appropriately.
* cmd/openshift-tests/minimal.go:
* pkg/test/ginkgo/testNames.txt:
* test/extended/testdata/bindata.go:
* test/extended/util/annotate/generated/zz_generated.annotations.go: Update
test name.
@Miciah Miciah force-pushed the allow-cluster-daemonsets-to-use-maxSurge branch from 1219706 to b28b814 Compare April 4, 2023 03:23
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 4, 2023
@Miciah
Copy link
Contributor Author

Miciah commented Apr 4, 2023

@gcs278
Copy link
Contributor

gcs278 commented Apr 4, 2023

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 4, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Apr 4, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bparees, gcs278, Miciah

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

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 84d65eb and 2 for PR HEAD b28b814 in total

@Miciah
Copy link
Contributor Author

Miciah commented Apr 4, 2023

e2e-gcp-ovn-rt-upgrade failed because one of the kube-apiserver pods didn't come up. As far as I can tell, the installer pod for master-1 didn't get created; event-filter.html shows no matches for component "kube-apiserver-operator-installer-controller" and message "master-1", and host_service_logs/masters/kubelet_service.log from must-gather.tar does not have any matches for the regexp openshift-kube-apiserver/installer-.*master-1, so I guess cluster-kube-apiserver-operator never created the pod for master-1. I'm not sure how to diagnose this further, so let's just rerun the test for now to see whether the issue reoccurs.
/test e2e-gcp-ovn-rt-upgrade

@Miciah
Copy link
Contributor Author

Miciah commented Apr 5, 2023

e2e-aws-ovn-serial failed because [sig-instrumentation] Prometheus [apigroup:image.openshift.io] when installed on the cluster shouldn't report any alerts in firing state apart from Watchdog and AlertmanagerReceiversNotConfigured failed. Search.ci shows similar failures for other PRs and repositories. I filed https://issues.redhat.com/browse/OCPBUGS-11402 with more details.
/test e2e-aws-ovn-serial

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 18bd941 and 1 for PR HEAD b28b814 in total

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Apr 5, 2023

@Miciah: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-vsphere-ovn-etcd-scaling b28b814 link false /test e2e-vsphere-ovn-etcd-scaling
ci/prow/e2e-aws-ovn-etcd-scaling b28b814 link false /test e2e-aws-ovn-etcd-scaling
ci/prow/e2e-aws-ovn-single-node-serial b28b814 link false /test e2e-aws-ovn-single-node-serial
ci/prow/e2e-metal-ipi-sdn b28b814 link false /test e2e-metal-ipi-sdn
ci/prow/e2e-gcp-ovn-etcd-scaling b28b814 link false /test e2e-gcp-ovn-etcd-scaling
ci/prow/e2e-aws-csi b28b814 link false /test e2e-aws-csi
ci/prow/e2e-aws-ovn-single-node-upgrade b28b814 link false /test e2e-aws-ovn-single-node-upgrade
ci/prow/e2e-azure-ovn-etcd-scaling b28b814 link false /test e2e-azure-ovn-etcd-scaling
ci/prow/e2e-agnostic-ovn-cmd b28b814 link false /test e2e-agnostic-ovn-cmd
ci/prow/e2e-gcp-ovn-rt-upgrade b28b814 link false /test e2e-gcp-ovn-rt-upgrade

Full PR test history. Your PR dashboard.

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.

@openshift-merge-robot openshift-merge-robot merged commit ff14e18 into openshift:master Apr 5, 2023
@Miciah
Copy link
Contributor Author

Miciah commented Apr 5, 2023

/cherry-pick release-4.13

@openshift-cherrypick-robot

@Miciah: new pull request created: #27859

In response to this:

/cherry-pick release-4.13

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants