Production-Grade Container Scheduling and Management
Go to file
Stephen Kitt b0ce65df9b
Generify fake clientsets
This adds a generic implementation of a fake clientset, and uses it to
replace the template code in generated fake clientsets for the default
methods. The templates are preserved as-is (or as close as they can
be) for use in extensions, whether for resources or subresources.

Fake clientsets with no extensions are reduced to their main getter,
their specific struct, and their constructor. All method
implementations are provided by the generic implementation. The
dedicated struct is preserved to allow extensions and expansions to be
defined where necessary.

Instead of handling the variants (with/without list, apply) with a
complex sequence of if statements, build up an index into an array
containing the various declarations.

Similarly, instead of calling different action constructors for
namespaced and non-namespaced clientsets, assume the current behaviour
of non-namespaced action creation (equivalent to creating a namespaced
action with an empty namespace) and document that assumption in the
action implementation.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2024-11-08 09:33:28 +01:00
.github
api Merge pull request #128407 from ndixita/pod-level-resources 2024-11-08 07:10:50 +00:00
build Split scheduler_perf config into subdirectories 2024-11-04 08:45:34 +00:00
CHANGELOG CHANGELOG: Update directory for v1.32.0-beta.0 release 2024-11-06 14:51:32 +00:00
cluster Merge pull request #126798 from borg-land/easy-rsa-patch 2024-10-28 19:02:53 +00:00
cmd Merge pull request #127857 from Jefftree/cle-v1alpha2 2024-11-08 07:10:43 +00:00
docs
hack Merge pull request #127857 from Jefftree/cle-v1alpha2 2024-11-08 07:10:43 +00:00
LICENSES kubelet/kuberuntime: switch to runc/libct 2024-11-07 13:04:56 -08:00
logo
pkg Merge pull request #128407 from ndixita/pod-level-resources 2024-11-08 07:10:50 +00:00
plugin Merge pull request #128407 from ndixita/pod-level-resources 2024-11-08 07:10:50 +00:00
staging Generify fake clientsets 2024-11-08 09:33:28 +01:00
test Merge pull request #128407 from ndixita/pod-level-resources 2024-11-08 07:10:50 +00:00
third_party Merge pull request #128506 from kolyshkin/cgroups-nit 2024-11-08 02:21:34 +00:00
vendor update opencontainers/selinux/go-selinux to v1.11.1 2024-11-07 08:22:25 +00:00
.generated_files
.gitattributes Mark api/openapi-spec/**/*.json as generated files 2024-10-28 13:33:50 -07:00
.gitignore
.go-version bump golang to 1.23.2 2024-10-15 18:43:50 -07:00
CHANGELOG.md
code-of-conduct.md
CONTRIBUTING.md
go.mod update opencontainers/selinux/go-selinux to v1.11.1 2024-11-07 08:22:25 +00:00
go.sum update opencontainers/selinux/go-selinux to v1.11.1 2024-11-07 08:22:25 +00:00
go.work Add plugin and key-cache for ExternalJWTSigner integration 2024-11-07 03:16:23 +00:00
go.work.sum hack/pin-dependency.sh github.com/google/cel-go v0.22.0 2024-11-06 15:53:17 -05:00
LICENSE
Makefile
OWNERS
OWNERS_ALIASES Merge pull request #128127 from macsko/add_macsko_to_sig_scheduling_reviewers 2024-10-24 03:34:52 +01:00
README.md
SECURITY_CONTACTS
SUPPORT.md

Kubernetes (K8s)

CII Best Practices Go Report Card GitHub release (latest SemVer)


Kubernetes, also known as K8s, is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for the 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.

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.
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.

Community Meetings

The Calendar has the list of all the meetings in the Kubernetes community in a single location.

Adopters

The User Case Studies website has real-world use cases of organizations across industries that are deploying/migrating to Kubernetes.

Governance

Kubernetes project is governed by a framework of principles, values, policies and processes to help our community and constituents towards our shared goals.

The Kubernetes Community is the launching point for learning about how we organize ourselves.

The Kubernetes Steering community repo is used by the Kubernetes Steering Committee, which oversees governance of the Kubernetes project.

Roadmap

The Kubernetes Enhancements repo provides information about Kubernetes releases, as well as feature tracking and backlogs.