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

Update debian/ubuntu build definitions #720

Merged
merged 3 commits into from
May 31, 2019

Conversation

justaugustus
Copy link
Member

@justaugustus justaugustus commented May 18, 2019

  • Update symlinks for all debian-like package definitions
  • Update debian/ubuntu versions to use a single distro variable
  • Remove build definitions for unsupported versions of Debian & Ubuntu

Signed-off-by: Stephen Augustus [email protected]

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. approved Indicates a PR has been approved by an approver from all required OWNERS files. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. area/release-eng Issues or PRs related to the Release Engineering subproject sig/release Categorizes an issue or PR as relevant to SIG Release. labels May 18, 2019
@k8s-ci-robot k8s-ci-robot requested review from spiffxp and tpepper May 18, 2019 00:28
@spiffxp
Copy link
Member

spiffxp commented May 18, 2019

/hold
this looks sane, but merits some explanation

when we say EOL, what are we referring to here? EOL according to this project's policies, or the distro's policies? is there a link for this decision? etc.

would like someone from patch release team to review (ie: @tpepper who is assigned) and /hold cancel at their discretion

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 18, 2019
@spiffxp
Copy link
Member

spiffxp commented May 18, 2019

/assign @tpepper
I mean, is assigned now

@justaugustus
Copy link
Member Author

@spiffxp -- I'm thinking OS EOL here.
I think that we should only build for distro versions that are in support.
I'm not sure that we have a policy around that currently, but you're right, AFAIK, this hasn't been discussed widely or documented, so let's consider this the start of that discussion.

The addition of bionic to the list (#719) was the inspiration for this.
My only additional thought here is that it'd be nice to get this in before we cut the 1.15.0 release.

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels May 29, 2019
@justaugustus justaugustus changed the title Prune EOL debian/ubuntu build definitions Update debian/ubuntu build definitions May 29, 2019
@justaugustus
Copy link
Member Author

Updated this PR to include collapsing debian-like allDistros, serverDistros var into distros (allows building all artifacts for all supported debian-like distros).

/assign @sumitranr

@justaugustus
Copy link
Member Author

@tpepper
Copy link
Member

tpepper commented May 30, 2019

In general I think I'm ok with this, but I really need to see commit messages.

I'm inferring from the three commits that they do something sensible to me, but even with the context in this PR's conversation I can't validate what I'm reviewing versus the author's intent.

Please amend the three commits with a commit message body as per https://chris.beams.io/posts/git-commit/

@tpepper
Copy link
Member

tpepper commented May 30, 2019

/hold

@justaugustus
Copy link
Member Author

@tpepper -- updated the commit messages!

@spiffxp
Copy link
Member

spiffxp commented May 30, 2019

@justaugustus

I think that we should only build for distro versions that are in support.
I'm not sure that we have a policy around that currently, but you're right, AFAIK, this hasn't been discussed widely or documented, so let's consider this the start of that discussion.

As far as documenting a policy or whatever, I'm not sure if this repo or someplace else is more appropriate. As a start, can you leave a comment to this effect next to the distro list, to explain why the default value is what it is?

@tpepper
Copy link
Member

tpepper commented May 31, 2019

Looks good to me, but I want to hold this until after 1.13.7 and 1.14.3 next week, which are loaded with content. But then I'd also like to see if we can even get in more of this type of cleaning in June though ahead of 1.15.

@tpepper
Copy link
Member

tpepper commented May 31, 2019

/retest

Several build definitions for unsupported versions of debian and ubuntu
remained in the repo; this commit cleans them up.
"Unsupported" in this context refers to versions which fall outside of
the distros support policy.

Signed-off-by: Stephen Augustus <[email protected]>
Prior to this commit, two variables (allDistros, serverDistros)
existed for defining the distros on which certain binaries should
be built. As there is no delineation between "server" and "non-server"
distros for the binaries we build, there is no need for separate
variables to describe them. This commit collapses the variables
into a single `distro` variable.

Signed-off-by: Stephen Augustus <[email protected]>
We currently use a single build definition (for bionic) and symlink
folders for each debian-like distro to it. Previously, several of these
build definitions only contained a symlink for the kubectl binary.
This commit updates the symlinks so that all kubernetes binaries are
built for all debian-like distros that we have defined.

Signed-off-by: Stephen Augustus <[email protected]>
@justaugustus
Copy link
Member Author

@tpepper -- SGTM.

@spiffxp -- Added a comment about the distros variable:

release/debian/build.go

Lines 71 to 74 in 66ff86d

// distros describes the Debian and Ubuntu versions that binaries will be built for.
// Each distro build definition is currently symlinked to the most recent ubuntu build definition in the repo.
// Build definitions should be kept up to date across release cycles, removing Debian/Ubuntu versions
// that are no longer supported from the perspective of the OS distribution maintainers.

// distros describes the Debian and Ubuntu versions that binaries will be built for.
// Each distro build definition is currently symlinked to the most recent ubuntu build definition in the repo.
// Build definitions should be kept up to date across release cycles, removing Debian/Ubuntu versions
// that are no longer supported from the perspective of the OS distribution maintainers.

@@ -1 +0,0 @@
../bionic/kubectl

Choose a reason for hiding this comment

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

Can you clarify why this is deleted?

Copy link
Member Author

Choose a reason for hiding this comment

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

@sumitranr -- previously, only the kubectl definitions were symlinked. This PR symlinks the full directory, so all binaries are built for each deb distro flavor.

See here: https://github.com/kubernetes/release/pull/720/files#diff-e3f51e32c56fc68e9e81fd19c758c774

Choose a reason for hiding this comment

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

ah! i should have read your change description more thoroughly. you have already described it there. thanks for clarifying.

@sumitranr
Copy link

/lgtm thanks for fixing the script.

@sumitranr
Copy link

/lgtm
@tpepper i know you had mentioned that we should hold until 1.13.7 goes out. But i had to do a similar fix to get 1.12.9 out as we weren't able to publish the artifacts for xenial. i believe we might have to submit this even for building those patches

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 31, 2019
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: justaugustus, sumitranr

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

@justaugustus
Copy link
Member Author

@tpepper -- turns out we'll need this merged before the 1.13.7/1.14.3 cuts.

I spoke with @sumitranr and he had to make similar changes to what's in the PR locally to be able to publish 1.12.9.

@tpepper
Copy link
Member

tpepper commented May 31, 2019

/lgtm
@tpepper i know you had mentioned that we should hold until 1.13.7 goes out. But i had to do a similar fix to get 1.12.9 out as we weren't able to publish the artifacts for xenial. i believe we might have to submit this even for building those patches

Ok if we merge this today, could you run (@sumitranr) a test build today or Monday just to triple check the output debs look 100% as expected?

@sumitranr
Copy link

/lgtm
@tpepper i know you had mentioned that we should hold until 1.13.7 goes out. But i had to do a similar fix to get 1.12.9 out as we weren't able to publish the artifacts for xenial. i believe we might have to submit this even for building those patches

Ok if we merge this today, could you run (@sumitranr) a test build today or Monday just to triple check the output debs look 100% as expected?

yes. i will double check and do a test build

@tpepper
Copy link
Member

tpepper commented May 31, 2019

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 31, 2019
@k8s-ci-robot k8s-ci-robot merged commit 39bd5cf into kubernetes:master May 31, 2019
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/release-eng Issues or PRs related to the Release Engineering subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/release Categorizes an issue or PR as relevant to SIG Release. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants