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

[release-4.7] Bug 1937089: Configure CoreDNS to shut down gracefully #247

Conversation

Miciah
Copy link
Contributor

@Miciah Miciah commented Mar 9, 2021

Configure CoreDNS to shut down gracefully

This PR is the same as #205, which was reverted with #213, except that this PR does not change DNS pods' termination grace period.

  • assets/dns/daemonset.yaml: Change the readiness probe to use :8181/ready.
  • pkg/manifests/bindata.go: Regenerate.
  • pkg/operator/controller/controller_dns_configmap.go (corefileTemplate): Configure CoreDNS's health plugin to sleep 20 seconds when CoreDNS is shut down. Enable CoreDNS's ready plugin in order to provide a readiness endpoint on :8181/ready, which doesn't report ready until all plugins are initialized and stops reporting ready when CoreDNS is shutting down.
  • pkg/operator/controller/controller_dns_configmap_test.go (TestDesiredDNSConfigmap): Adjust for changes to corefileTemplate.

Delete TestCoreDNSImageUpgrade

Delete the TestCoreDNSImageUpgrade CI test. This test is unreliable, and we can achieve sufficient test coverage without it.

  • test/e2e/operator_test.go (TestCoreDNSImageUpgrade, setVersion, setImage,checkCurrentDNSImage): Delete functions.

Add TestCoreDNSDaemonSetReconciliation

Add an end-to-end test that verifies that the operator reconciles changes to the dns-default daemonset. This new test adds a node selector to the daemonset and verifies that the operator reverts the change.

The operator already has unit tests to verify that the daemonset update logic handles changes to image pullspecs and other important fields. Together, the new end-to-end test and the existing unit tests should provide sufficient test coverage for reconciliation of daemonsets.

  • test/e2e/operator_test.go (TestCoreDNSDaemonSetReconciliation): New test. Verify that the operator reconciles the dns-default daemonset.

This is a manual cherry-pick of #237.

@openshift-ci-robot openshift-ci-robot added the bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. label Mar 9, 2021
@openshift-ci-robot
Copy link
Contributor

@Miciah: This pull request references Bugzilla bug 1937089, which is invalid:

  • expected dependent Bugzilla bug 1884053 to be in one of the following states: VERIFIED, RELEASE_PENDING, CLOSED (ERRATA), but it is ON_QA instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

[release-4.7] Bug 1937089: Configure CoreDNS to shut down gracefully

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.

@openshift-ci-robot openshift-ci-robot added bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Mar 9, 2021
@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 9, 2021
This commit is the same as commit f094ddf,
which was reverted with commit a96c45e,
except that this commit does not change DNS pods' termination grace period.

This commit is related to bug 1884053.

https://bugzilla.redhat.com/show_bug.cgi?id=1884053

* assets/dns/daemonset.yaml: Change the readiness probe to use :8181/ready.
* pkg/manifests/bindata.go: Regenerate.
* pkg/operator/controller/controller_dns_configmap.go (corefileTemplate):
Configure CoreDNS's health plugin to sleep 20 seconds when CoreDNS is shut
down.  Enable CoreDNS's ready plugin in order to provide a readiness
endpoint on :8181/ready, which doesn't report ready until all plugins are
initialized and stops reporting ready when CoreDNS is shutting down.
* pkg/operator/controller/controller_dns_configmap_test.go
(TestDesiredDNSConfigmap): Adjust for changes to corefileTemplate.
Delete the TestCoreDNSImageUpgrade CI test.  This test is unreliable, and
we can achieve sufficient test coverage without it.

* test/e2e/operator_test.go (TestCoreDNSImageUpgrade, setVersion, setImage,
checkCurrentDNSImage): Delete functions.
Add an end-to-end test that verifies that the operator reconciles changes
to the dns-default daemonset.  This new test adds a node selector to the
daemonset and verifies that the operator reverts the change.

The operator already has unit tests to verify that the daemonset update
logic handles changes to image pullspecs and other important fields.
Together, the new end-to-end test and the existing unit tests should
provide sufficient test coverage for reconciliation of daemonsets.

* test/e2e/operator_test.go (TestCoreDNSDaemonSetReconciliation): New
test.  Verify that the operator reconciles the dns-default daemonset.
@Miciah Miciah force-pushed the cherry-pick-237-to-release-4.7 branch from b891947 to 0b1e8af Compare March 9, 2021 19:32
@openshift-ci-robot openshift-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 9, 2021
@Miciah
Copy link
Contributor Author

Miciah commented Mar 9, 2021

/retest

@Miciah
Copy link
Contributor Author

Miciah commented Mar 10, 2021

/test e2e-upgrade

@sgreene570
Copy link
Contributor

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Mar 17, 2021
@openshift-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Miciah, sgreene570

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

@sgreene570
Copy link
Contributor

/bugzilla refresh

@openshift-ci-robot
Copy link
Contributor

@sgreene570: This pull request references Bugzilla bug 1937089, which is valid.

6 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.7.z) matches configured target release for branch (4.7.z)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)
  • dependent bug Bugzilla bug 1884053 is in the state VERIFIED, which is one of the valid states (VERIFIED, RELEASE_PENDING, CLOSED (ERRATA))
  • dependent Bugzilla bug 1884053 targets the "4.8.0" release, which is one of the valid target releases: 4.8.0
  • bug has dependents

Requesting review from QA contact:
/cc @lihongan

In response to this:

/bugzilla refresh

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.

@openshift-ci-robot openshift-ci-robot added bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. and removed bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. labels Mar 17, 2021
@ecordell ecordell added the cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. label Mar 22, 2021
@openshift-merge-robot openshift-merge-robot merged commit 0eb71da into openshift:release-4.7 Mar 22, 2021
@openshift-ci-robot
Copy link
Contributor

@Miciah: All pull requests linked via external trackers have merged:

Bugzilla bug 1937089 has been moved to the MODIFIED state.

In response to this:

[release-4.7] Bug 1937089: Configure CoreDNS to shut down gracefully

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. bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants