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

Add Kubernetes 1.16 #919

Merged
merged 6 commits into from
May 8, 2020
Merged

Add Kubernetes 1.16 #919

merged 6 commits into from
May 8, 2020

Conversation

tjkirch
Copy link
Contributor

@tjkirch tjkirch commented Apr 30, 2020

This adds a Kubernetes 1.16 package and a new aws-k8s-1.16 variant that uses it.

Notes for reviewers:

  • It would probably help to review the commits in order rather than the full diff.
  • The contents of packages/kubernetes-1.16 are identical to 1.15 save for:
    • the version number
    • the removal of patch 0005 that's no longer needed to build
    • the clarify.toml changes mentioned in the commit message - don't be scared by all the green files, they're just copies
    • the patch updating aws-sdk-go for IMDSv2 support
commit 3951d35795b3b9bda04b040fb0b4a088772453ac
Author: Tom Kirchner <tjk@amazon.com>
Date:   Wed Apr 29 16:38:08 2020 -0700

Allow overriding package name in packages/*/Cargo.toml

Cargo doesn't allow some common characters like "." in a package name, which
would normally prevent you from naming package artifacts with those characters.
With this change, if you specify `package.metadata.build-package.package-name`
in Cargo.toml, you can override the package name and tell the build system to
look at your preferred name for the package directory, spec file, etc.
commit 3c37c20ebbbf138d31d157fbee07e42d18a7a6a1
Author: Tom Kirchner <tjk@amazon.com>
Date:   Wed Apr 29 16:41:26 2020 -0700

Rename Kubernetes package to 1.15 to make way for new versions

The main change is adding a version to the name of the kubelet package so that
the variant can pick the relevant Kubernetes version.
commit b33daa132027c9ab67bac59256935676cbbb0ef0
Author: Tom Kirchner <tjk@amazon.com>
Date:   Wed Apr 29 16:43:28 2020 -0700

Add Kubernetes 1.16

There are only minor changes from 1.15 packaging:
* We no longer need the patch related to go module building.
* The source of the go-bindata dependency changed, so clarify.toml is updated.
* The new go-tools dependency needed a clarify.toml entry.
commit 851d2368ff7eaf603d68e01b6ac16e68ae70ca51
Author: Tom Kirchner <tjk@amazon.com>
Date:   Wed Apr 29 16:45:24 2020 -0700

Add aws-k8s-1.16 variant

No model changes are required from aws-k8s-1.15, so the model is a symlink.
The only differences from aws-k8s-1.15 are the name and the kubelet version.
commit b60a8daaef266d9183721e137c6b4e0453ab8e63
Author: Tom Kirchner <tjk@amazon.com>
Date:   Wed May 6 16:51:09 2020 -0700

Add patch updating k8s 1.16's aws-sdk-go for IMDSv2 support

Testing done:

Built an aws-k8s-1.15 AMI, still works fine.

Built an aws-k8s-1.16 AMI, it joins my cluster and shows the new version:

$ kubectl get nodes
NAME                                          STATUS   ROLES    AGE     VERSION
ip-192-168-15-23.us-west-2.compute.internal   Ready    <none>   4m40s   v1.16.9

A pod runs fine. System services running. API settings look OK.

I diffed the kubelet service log between 1.15 and 1.16 and found no substantive changes, just minor bits: a number of lines were reordered, some source filenames changed, some old debug lines were removed, there's a new "fake_topology_manager", and a new (presumably related) ExperimentalTopologyManagerPolicy:none in the node config (which becomes not-experimental in a later k8s release).

The 1.16 AMI passes Sonobuoy testing with conformance version 1.16.8 (matching EKS) in a 1.16 cluster:

Plugin: e2e
Status: passed
Total: 4731
Passed: 276
Failed: 0
Skipped: 4455

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

@tjkirch tjkirch requested a review from bcressey April 30, 2020 00:02
tools/buildsys/src/manifest.rs Outdated Show resolved Hide resolved
@zmrow zmrow mentioned this pull request May 2, 2020
@tjkirch tjkirch linked an issue May 4, 2020 that may be closed by this pull request
Cargo doesn't allow some common characters like "." in a package name, which
would normally prevent you from naming package artifacts with those characters.
With this change, if you specify `package.metadata.build-package.package-name`
in Cargo.toml, you can override the package name and tell the build system to
look at your preferred name for the package directory, spec file, etc.
The main change is adding a version to the name of the kubelet package so that
the variant can pick the relevant Kubernetes version.
There are only minor changes from 1.15 packaging:
* We no longer need the patch related to go module building.
* The source of the go-bindata dependency changed, so clarify.toml is updated.
* The new go-tools dependency needed a clarify.toml entry.
No model changes are required from aws-k8s-1.15, so the model is a symlink.
The only differences from aws-k8s-1.15 are the name and the kubelet version.
@tjkirch
Copy link
Contributor Author

tjkirch commented May 7, 2020

This push addresses @bcressey's concern, and adds a commit with a patch updating aws-sdk-go for IMDSv2 support. I also updated the Testing Done to show sonobuoy conformance.

@tjkirch
Copy link
Contributor Author

tjkirch commented May 7, 2020

I added a commit that updates documentation to reference the new aws-k8s-1.16 variant. I was going to put it in a separate PR, but because this won't be our default variant yet, the updates were minimal and I figured it was simpler to include it here.

aws-k8s-1.15 is still the supported variant, so the documentation changes are minimal for now.
@tjkirch
Copy link
Contributor Author

tjkirch commented May 8, 2020

This push simplifies the documentation update, per discussion with @bcressey.

Copy link
Contributor

@zmrow zmrow left a comment

Choose a reason for hiding this comment

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

🍶

@tjkirch tjkirch merged commit f31447b into bottlerocket-os:develop May 8, 2020
@tjkirch tjkirch deleted the k8s-1.16 branch May 8, 2020 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support kubernetes 1.16
4 participants