/scaleway-cloud-controller-manager

Kubernetes Cloud Controller Manager for Scaleway

Primary LanguageGoApache License 2.0Apache-2.0

Kubernetes Cloud Controller Manager for Scaleway

scaleway-cloud-controller-manager is the Kubernetes cloud controller manager implementation (or out-of-tree cloud-provider) for Scaleway.

External cloud providers were introduced as an Alpha feature in Kubernetes 1.6. They are Kubernetes (master) controllers that implement the cloud-provider specific control loops required for Kubernetes to function. Read more about kubernetes cloud controller managers in the kubernetes documentation.

WARNING: this project is under active development and should be considered alpha.

Features

Currently scaleway-cloud-controller-manager currently implements:

  • Instances interface - updates nodes with cloud provider specific labels and addresses, also deletes kubernetes nodes when deleted from the cloud-provider.
  • LoadBalancer interface - responsible for creating load balancers when a service of type: LoadBalancer is created in Kubernetes.
  • Zone interface - makes Kubernetes aware of the failure domain of each node.

Compatibility matrix

K8S 1.17 K8S 1.18 K8S 1.19 K8S 1.20
v0.1.x ~ ~ ~
v0.18.x ~ ~ ~
v0.19.x ~ ~ ~
v0.20.x ~ ~ ~
  • fully supported
  • ~ some features may not be supported (usually a Kubernetes version mismatch)

Branches and releases

There is two types of branches:

  • matser which is the main branch
  • release-x.y which are the release branches. Each branch is built againt Kubernetes 1.y

Most of the PRs on master will be backported to the supported release-x.y branches.

Each release will be cut from the release-x.y branch, and will be in the form of x.y.z where z will be the Scaleway Cloud Controller patch version.

Getting Started

Learn more about running scaleway-cloud-controller-manager here!

WARNING: This cloud controller manager is installed by default on Scaleway Kapsule (Scaleway Managed Kubernetes), you don't have to do it yourself or it might cause conflicts.

Quick start

Build

You can build the CCM executable using the following commands:

make build

You can build a local docker image named scaleway-cloud-controller for your current architecture using the following command:

make docker-build

Test

You need to have a kubernetes cluster that is NOT a Kapsule cluster to launch the tests. If you want to follow a tutorial about bootstrapping your own Kubernetes cluster on Scaleway follow the getting starting documentation here

Once this is done, run the tests using

make test

Development

If you are looking for a way to contribute please read CONTRIBUTING.

Code of conduct

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

Reach us

We love feedback. Feel free to reach us on Scaleway Slack community, we are waiting for you on #k8s.

You can also join the official Kubernetes slack on #scaleway-k8s channel

You can also raise an issue if you think you've found a bug.