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

[Kubeadm]:Bump CoreDNS to v1.7.0 #92651

Merged
merged 2 commits into from Jul 10, 2020

Conversation

rajansandeep
Copy link
Contributor

@rajansandeep rajansandeep commented Jun 30, 2020

What type of PR is this?
/kind bug

What this PR does / why we need it:
Updates CoreDNS to v1.7.0. The default Corefile now includes the max_concurrent option, which sets the maximum number of concurrent upstream queries allowed by the forward plugin.

Also updates the migration library to 1.0.10 which supports coredns v1.7.0

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. 

Kubeadm now includes CoreDNS version v1.7.0. Some of the major changes include:
-  Fixed a bug that could cause CoreDNS to stop updating service records.
-  Fixed a bug in the forward plugin where only the first upstream server is always selected no matter which policy is set.
-  Remove already deprecated options `resyncperiod` and `upstream` in the Kubernetes plugin.
-  Includes Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics' names.
-  The federation plugin (allows for v1 Kubernetes federation) has been removed.
More details are available in https://coredns.io/2020/06/15/coredns-1.7.0-release/

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/bug Categorizes issue or PR as related to a bug. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jun 30, 2020
@rajansandeep
Copy link
Contributor Author

/cc @chrisohaver

@k8s-ci-robot k8s-ci-robot requested review from chrisohaver, fejta, kad and a team June 30, 2020 15:12
@k8s-ci-robot k8s-ci-robot added area/dependency Issues or PRs related to dependency changes area/kubeadm sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. and removed needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jun 30, 2020
@BenTheElder
Copy link
Member

@@ -660,7 +660,9 @@ func TestCreateCoreDNSConfigMap(t *testing.T) {
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
forward . /etc/resolv.conf {
max_concurrent 1000
Copy link
Member

Choose a reason for hiding this comment

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

should we also mention this change in the release note? i don't have good statistical context on how breaking it is, but i'm going to assume it affects larger clusters with a lot of queries?

Copy link
Contributor

Choose a reason for hiding this comment

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

The limit is per instance. The larger a cluster the more CoreDNS instances... So it should not change drastically at scale in theory. For comparison, kube-dns (via it's default dnsmasq behavior), had a limit of 150 concurrent queries. More details here. CoreDNS never had a limit before this, it would just OOM if too many queries came in.

Copy link
Member

Choose a reason for hiding this comment

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

ok, thanks for the details.

Copy link
Contributor

Choose a reason for hiding this comment

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

Regarding release notes: CoreDNS 1.7.0 does introduce some backward incompatible changes. Notably, it makes many Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics names. Less critically, 1.7.0 drops support for a couple of kubernetes plugin options which had already been deprecated and ignored by CoreDNS for several releases (i.e. now instead of ignoring them, CoreDNS will exit with an unknown directive error).

Copy link
Member

Choose a reason for hiding this comment

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

i think we should briefly mention that in the k8s release note and even link to the coredns release notes.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I’ll update the release notes.

@neolit123
Copy link
Member

last time i've checked, feature freeze was on the 9th of July.
/milestone v1.19
/approve

@k8s-ci-robot k8s-ci-robot added this to the v1.19 milestone Jun 30, 2020
@neolit123
Copy link
Member

/kind feature

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Jun 30, 2020
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. area/apiserver area/cloudprovider area/kubectl sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/cli Categorizes an issue or PR as relevant to SIG CLI. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jun 30, 2020
@rajansandeep
Copy link
Contributor Author

@neolit123, I updated the release notes with "action required" for the metrics changes.
Would it be appropriate to include the workaround example in coredns/coredns#3671 (comment) in the notes?

@neolit123
Copy link
Member

or just link to the example github comment - e.g. "A workaround can be found here - LINK".
@rosti WDYT?

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 2, 2020
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 6, 2020
@neolit123
Copy link
Member

neolit123 commented Jul 6, 2020

/lgtm
/approve
/retest

i unblocked this PR, but hoping we will not get many user complains about the breaking changes.

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 6, 2020
@neolit123
Copy link
Member

/milestone v1.19
/priority important-soon

@k8s-ci-robot k8s-ci-robot added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. and removed needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 6, 2020
@rajansandeep
Copy link
Contributor Author

/assign @liggitt
/retest

@liggitt
Copy link
Member

liggitt commented Jul 8, 2020

cc @johnbelamaric for coredns breaking changes

/approve
for vendor bump

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: liggitt, neolit123, rajansandeep

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 8, 2020
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
@chrisohaver
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
@rajansandeep
Copy link
Contributor Author

/retest

1 similar comment
@rajansandeep
Copy link
Contributor Author

/retest

@fejta-bot
Copy link

/retest
This bot automatically retries jobs that failed/flaked on approved PRs (send feedback to fejta).

Review the full test history for this PR.

Silence the bot with an /lgtm cancel or /hold comment for consistent failures.

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. area/apiserver area/cloudprovider area/dependency Issues or PRs related to dependency changes area/kubeadm area/kubectl cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/cli Categorizes an issue or PR as relevant to SIG CLI. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants