Production-Grade Container Scheduling and Management
Go to file
Lubomir I. Ivanov 6cf3e36c37 kubeadm: statically default the "from cluster" InitConfiguration
During operations such as "upgrade", kubeadm fetches the
ClusterConfiguration object from the kubeadm ConfigMap.
However, due to requiring node specifics it wraps it in an
InitConfiguration object. The function responsible for that is:
  app/util/config#FetchInitConfigurationFromCluster().

A problem with this function (and sub-calls) is that it ignores
the static defaults applied from versioned types
(e.g. v1beta3/defaults.go) and only applies dynamic defaults for:
- API endpoints
- node registration
- etc...

The introduction of Init|JoinConfiguration.ImagePullPolicy now
has static defaulting of the NodeRegistration object with a default
policy of "PullIfNotPresent". Respect this defaulting by constructing
a defaulted internal InitConfiguration from
FetchInitConfigurationFromCluster() and only then apply the dynamic
defaults over it.

This fixes a bug where "kubeadm upgrade ..." fails when pulling images
due to an empty ("") ImagePullPolicy. We could assume that empty
string means default policy on runtime in:
cmd/kubeadm/app/preflight/checks.go#ImagePullCheck()

but that might actually not be the user intent during "init" and "join",
due to e.g. a typo. Similarly, we don't allow empty tokens
on runtime and error out.
2021-07-08 02:52:11 +03:00
.github .github: update enhancement issue template to point to KEPs 2021-02-24 16:03:40 +05:30
api Merge pull request #103276 from NetApp/data-source-ref 2021-07-07 08:56:44 -07:00
build Merge pull request #103142 from serathius/etcd-3.5.0 2021-07-07 12:40:22 -07:00
CHANGELOG Merge pull request #101834 from pmmalinov01/remove_todo_rel_notes_team 2021-07-05 02:15:06 -07:00
cluster Merge pull request #103142 from serathius/etcd-3.5.0 2021-07-07 12:40:22 -07:00
cmd kubeadm: statically default the "from cluster" InitConfiguration 2021-07-08 02:52:11 +03:00
docs hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
hack Merge pull request #103142 from serathius/etcd-3.5.0 2021-07-07 12:40:22 -07:00
LICENSES Revert "Update runc to 1.0.0" 2021-07-05 14:03:04 +02:00
logo
pkg Merge pull request #103550 from tkashem/apf-bootstrap-log-message 2021-07-07 14:20:36 -07:00
plugin Move pod-security-admission to an external Attributes interface 2021-07-06 15:15:15 -07:00
staging Merge pull request #103543 from liggitt/implement-check_dropCapabilities.go 2021-07-07 14:20:23 -07:00
test Merge pull request #103414 from ravisantoshgudimetla/fix-pdb-status 2021-07-07 12:40:35 -07:00
third_party remove unused third_party/intemp 2021-03-08 21:17:37 -08:00
vendor Merge pull request #103390 from ironyman/validators 2021-07-07 08:56:56 -07:00
.generated_files
.gitattributes
.gitignore
CHANGELOG.md
code-of-conduct.md
CONTRIBUTING.md
go.mod Merge pull request #103390 from ironyman/validators 2021-07-07 08:56:56 -07:00
go.sum Merge pull request #103390 from ironyman/validators 2021-07-07 08:56:56 -07:00
LICENSE
Makefile
Makefile.generated_files
OWNERS
OWNERS_ALIASES Add lilic as Instrumentation reviewer 2021-06-23 12:08:11 -07:00
README.md
SECURITY_CONTACTS
SUPPORT.md

Kubernetes (K8s)

GoPkg Widget CII Best Practices


Kubernetes, also known as K8s, is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.

Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF). If your company wants to help shape the evolution of technologies that are container-packaged, dynamically scheduled, and microservices-oriented, consider joining the CNCF. For details about who's involved and how Kubernetes plays a role, read the CNCF announcement.


To start using K8s

See our documentation on kubernetes.io.

Try our interactive tutorial.

Take a free course on Scalable Microservices with Kubernetes.

To use Kubernetes code as a library in other applications, see the list of published components. Use of the k8s.io/kubernetes module or k8s.io/kubernetes/... packages as libraries is not supported.

To start developing K8s

The community repository hosts all information about building Kubernetes from source, how to contribute code and documentation, who to contact about what, etc.

If you want to build Kubernetes right away there are two options:

You have a working Go environment.
mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make
You have a working Docker environment.
git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make quick-release

For the full story, head over to the developer's documentation.

Support

If you need support, start with the troubleshooting guide, and work your way through the process that we've outlined.

That said, if you have questions, reach out to us one way or another.