Giter Site home page Giter Site logo

kubernetes-sigs / cluster-api Goto Github PK

View Code? Open in Web Editor NEW
3.4K 90.0 1.3K 198.42 MB

Home for Cluster API, a subproject of sig-cluster-lifecycle

Home Page: https://cluster-api.sigs.k8s.io

License: Apache License 2.0

Python 0.49% Makefile 0.77% Go 97.87% Shell 0.74% Dockerfile 0.13% Smarty 0.01%
k8s-sig-cluster-lifecycle

cluster-api's Introduction

capi

GitHub release (latest SemVer)

Cluster API

๐Ÿ‘‹ Welcome to our project! Our Book can help you get started and provides lots of in-depth information.

Useful links

โœจ What is the Cluster API?

Cluster API is a Kubernetes subproject focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.

Started by the Kubernetes Special Interest Group (SIG) Cluster Lifecycle, the Cluster API project uses Kubernetes-style APIs and patterns to automate cluster lifecycle management for platform operators. The supporting infrastructure, like virtual machines, networks, load balancers, and VPCs, as well as the Kubernetes cluster configuration are all defined in the same way that application developers operate deploying and managing their workloads. This enables consistent and repeatable cluster deployments across a wide variety of infrastructure environments.

โš™๏ธ Providers

Cluster API can be extended to support any infrastructure (AWS, Azure, vSphere, etc.), bootstrap or control plane (kubeadm is built-in) provider. There is a growing list of supported providers available.

๐Ÿค— Community, discussion, contribution, and support

Cluster API is developed in the open, and is constantly being improved by our users, contributors, and maintainers. It is because of you that we are able to automate cluster lifecycle management for the community. Join us!

If you have questions or want to get the latest project news, you can connect with us in the following ways:

  • Chat with us on the Kubernetes Slack in the #cluster-api channel
  • Subscribe to the SIG Cluster Lifecycle Google Group for access to documents and calendars
  • Join our Cluster API working group sessions where we share the latest project news, demos, answer questions, and triage issues

Pull Requests and feedback on issues are very welcome! See the issue tracker if you're unsure where to start, especially the Good first issue and Help wanted tags, and also feel free to reach out to discuss.

See also our contributor guide and the Kubernetes community page for more details on how to get involved.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

cluster-api's People

Contributors

ajitak avatar chrischdi avatar chuckha avatar cpanato avatar dependabot[bot] avatar detiber avatar enxebre avatar fabriziopandini avatar furkatgofurov7 avatar g-gaston avatar jessicaochen avatar joelspeed avatar justinsb avatar k8s-ci-robot avatar karan avatar killianmuldoon avatar luxas avatar medinatiger avatar mikedanese avatar ncdc avatar oscr avatar pipejakob avatar randomvariable avatar roberthbailey avatar sbueringer avatar spew avatar tahsinrahman avatar vincepri avatar willie-yao avatar ykakarap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cluster-api's Issues

MachineSet controller listens for Machine resources.

From @p0lyn0mial on March 8, 2018 14:40

The current implementation of MachineSet controller watches only the desired state of the cluster. This approach is not sufficient as there are other actors in the system that can easily change the current state (e.g. delete/add a Machine) of the cluster. Thus adding event handlers for Machines to our MachineSet along with appropriate handlers (requeue) seems to be valid approach.

See also:
#535
kubernetes-retired/kube-deploy#620 (comment)
https://github.com/kubernetes/community/blob/master/contributors/devel/controllers.md

Copied from original issue: kubernetes-retired/kube-deploy#643

UX: consider renaming "cloud" param to something else

From @rsdcastro on March 2, 2018 15:20

Users select a "cloud" to determine which provider/actuator to use, but some (like Loodse's) can target multiple providers under the covers (like Digital Ocean, AWS). And in their case (see #405), the parameter in the provider specific config is "cloud". This issue is to track renaming the top-level param to select the provider/actuator to something else more general.

cc @karan @mrIncompetent

Copied from original issue: kubernetes-retired/kube-deploy#633

Document how to access extension API server in case of a disaster

From @rsdcastro on February 15, 2018 16:42

Clients should be accessing clusterย API via the main K8s API server. In case of a disaster with the cluster, clients should be able to connect to the ext API server. This issue is to test and document what would be required for that to happen.

(see PR with architecture diagram below to help: https://github.com/kubernetes/kube-deploy/pull/603/files)

Copied from original issue: kubernetes-retired/kube-deploy#608

Document how to access extension API server in case of a disaster

From @rsdcastro on February 15, 2018 16:42

Clients should be accessing clusterย API via the main K8s API server. In case of a disaster with the cluster, clients should be able to connect to the ext API server. This issue is to test and document what would be required for that to happen.

(see PR with architecture diagram below to help: https://github.com/kubernetes/kube-deploy/pull/603/files)

Copied from original issue: kubernetes-retired/kube-deploy#608

Define machines deletion policies.

From @p0lyn0mial on February 28, 2018 16:57

The current implementation of MachineSet chooses the first machine from the list to delete. As this doesn't provide any guarantees of consistency regarding the order of the items. It is random. We would like to identify some strategies that would provide better approaches for deletion.

Copied from original issue: kubernetes-retired/kube-deploy#625

MachineSet controller sets MachineSetStatus

From @p0lyn0mial on March 8, 2018 14:21

The current implementation of MachineSet controller doesn't set MachineSetStatus at all. This item tracks potential implementation.

For reference implementations see:

https://github.com/kubernetes/kubernetes/blob/a0844c17bfb964e3d1709784203e8404f790116c/pkg/controller/replicaset/replica_set_utils.go#L35:1

https://github.com/gardener/machine-controller-manager/blob/master/pkg/controller/machineset.go#L518

See also #535

Copied from original issue: kubernetes-retired/kube-deploy#642

Define validation strategy for provider config

From @rsdcastro on February 22, 2018 21:13

As per comment in #405, "validation is another concern and independent of specifying the cloud provider in the top level object or in the provider specific config. We can't bake provider specific validation logic into the API. That needs to be pluggable somehow through a webhook, admission controller, or some other mechanism. But it's a much larger discussion."

This issue tracks methods we'll allow for validation, including recommendations and examples.

cc @karan

Copied from original issue: kubernetes-retired/kube-deploy#623

Run more automated checks on cluster-api repo

From @krousey on February 15, 2018 19:50

We should run the following checks on PRs and in CI:

  • go vet
  • gofmt
  • verify vendor depencies are correct (this is partially accomplished by build today, but it'd be nice to have better messaging around this)
  • code doesn't need to be regenerated (deepcopy, conversion, clients, ...)
  • BUILD files don't have to be regenerated

Copied from original issue: kubernetes-retired/kube-deploy#613

Import path for the new repository

Traditionally in kubernetes repositories we use the k8s.io domain to redirect to the codes current hosted location.

For instance with github we would have the following redirect in place:

k8s.io/kube-deploy --> github.com/kubernetes/kube-deploy

Do we want to use the following redirect here?

Personally I think we should keep the import paths as literal as possible. The k8s.io redirect can be confusing to a newcomer. Furthermore there is still a bit of magic linking the two together, and if you don't know about it it could be hard to trace.

If we do switch code hosting providers later, we can use tools like sed and grep to update our codebases as needed.

Bot for stale vendored cluster API

From @jessicaochen on January 3, 2018 19:20

Create a robot that will warn when the vendored cluster API is falling behind master.

Context:
On creation of cluster-api-gcp, there was a discussion on whether we were going to vendor the cluster-api or directly reference it. We decided to vendor it so it would be a better example of the right pattern to folks attempting to make their own machine controller. The downside to this is that the vendored cluster-api could fall behind the latest cluster-api. A robot warning about falling behind was the suggested mitigation.

Copied from original issue: kubernetes-retired/kube-deploy#471

Change the type of instance-status

From @karan on January 26, 2018 18:20

Writing the current state of the underlying VM as a machine object within another machine is confusing - https://github.com/kubernetes/kube-deploy/blob/master/cluster-api-gcp/cloud/google/instancestatus.go

Before #482 is closed, we could change the type of instance status to a type that only has the fields we care about. This would make the code a bit more readable, requiresUpdate in machine actuators a bit more explicit, and we wouldn't have to deal with recursive machines.

Copied from original issue: kubernetes-retired/kube-deploy#518

Decide how fault/availability zones should be represented in Cluster API

From @rsdcastro on February 28, 2018 20:52

This issue tracks how fault zones (or availability zones) should be represented in the Cluster API. Should it be a top-level field? Should we be able to specify provider specific config for them (separately from the current provider config)? This is both related to master and nodes that might have some affinity to resources specific to that zone.

@krousey @maisem @justinsb

Copied from original issue: kubernetes-retired/kube-deploy#627

Establish a stronger link between Machines, MachineSets, and MachineDeployments with their Cluster.

From @dgoodwin on February 15, 2018 17:12

On Feb 14 Cluster API working group call, a couple parties indicated we would like to make use of the ability to have multiple clusters to exist in one namespace, which would free up namespaces to be used for other levels of organization. (one customer, one cloud provider account, etc) In this case we would not be able to assume all machines or machine sets in a namespace belong to the single cluster in the namespace, and as such a stronger link between the two could be useful for some adopters of the cluster API.

Copied from original issue: kubernetes-retired/kube-deploy#609

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.