cloud-provider-azure

module
v1.32.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2025 License: Apache-2.0

README

Cloud provider for Azure

Go Report Card Coverage Status GitHub stars GitHub stars

Introduction

This repository provides the Azure implementation of the Kubernetes cloud provider interface.

This is the "external" or "out-of-tree" cloud provider for Azure. The "in-tree" cloud provider has been deprecated since v1.20 and only bug fixes are allowed in its Kubernetes repository directory.

Current status

cloud-provider-azure has been GA since v1.0.0. Releases are available from the Microsoft Container Registry (MCR).

The latest release of azure-cloud-controller-manager and azure-cloud-node-manager can be found at

  • mcr.microsoft.com/oss/kubernetes/azure-cloud-controller-manager:v1.31.0
  • mcr.microsoft.com/oss/kubernetes/azure-cloud-node-manager:v1.31.0
Version matrix

(Minor release versions match Kubernetes minor release versions.)

Kubernetes version cloud-provider version cloud-provider branch
master N/A master
v1.y.x v1.y.z release-1.y
v1.31.x v1.31.z release-1.31
v1.30.x v1.30.z release-1.30
v1.29.x v1.29.z release-1.29
v1.28.x v1.28.z release-1.28
AKS version matrix

The table below shows the cloud-controller-manager and cloud-node-manager versions supported in Azure Kubernetes Service (AKS).

AKS version cloud-controller-manager version cloud-node-manager version
v1.30.x v1.30.4 v1.30.5
v1.29.x v1.29.8 v1.29.9
v1.28.x v1.28.10 v1.28.11
v1.27.x v1.27.18 v1.27.19

Build

To build the binary for azure-cloud-controller-manager:

make all

To build the Docker image for azure-cloud-controller-manager:

IMAGE_REGISTRY=<registry> make image

For detailed directions on image building, please read here.

Run

To run azure-cloud-controller-manager locally:

azure-cloud-controller-manager \
    --cloud-provider=azure \
    --cluster-name=kubernetes \
    --controllers=*,-cloud-node \
    --cloud-config=/etc/kubernetes/cloud-config/azure.json \
    --kubeconfig=/etc/kubernetes/kubeconfig \
    --allocate-node-cidrs=true \
    --configure-cloud-routes=true \
    --cluster-cidr=10.240.0.0/16 \
    --route-reconciliation-period=10s \
    --leader-elect=true \
    --secure-port=10267 \
    --v=2

To run azure-cloud-node-manager locally:

azure-cloud-node-manager \
    --node-name=$(hostname) \
    --wait-routes=true

It is recommended to run azure-cloud-controller-manager as a Deployment with multiple replicas, or directly with kubelet as static Pods on each control plane Node. See here for an example.

Get more detail at Deploy Cloud Controller Manager.

E2E tests

Please read the following documents for e2e test information:

Documentation

Refer https://cloud-provider-azure.sigs.k8s.io/ for the documentation of Cloud Provider Azure (documents are hosted in documentation branch).

Contributing

Please see CONTRIBUTING.md for instructions on how to contribute.

Code of conduct

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

License

Apache License 2.0.

Directories

Path Synopsis
cmd
cloud-controller-manager/app
Package app implements a server that runs a set of active components.
Package app implements a server that runs a set of active components.
hack
internal
pkg
cache
Package cache is an implementation of Azure caches.
Package cache is an implementation of Azure caches.
consts
Package consts stages all the consts under pkg/.
Package consts stages all the consts under pkg/.
log
metrics
Package metrics is an implementation of Azure CloudProvider metrics.
Package metrics is an implementation of Azure CloudProvider metrics.
nodeipam
Package nodeipam contains code for syncing cloud instances with node registry
Package nodeipam contains code for syncing cloud instances with node registry
nodeipam/ipam
Package ipam provides different allocators for assigning IP ranges to nodes.
Package ipam provides different allocators for assigning IP ranges to nodes.
nodemanager/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
provider
Package provider is a generated GoMock package.
Package provider is a generated GoMock package.
provider/config
Package auth provides a general library to authorize Azure ARM clients.
Package auth provides a general library to authorize Azure ARM clients.
provider/privatelinkservice
Code generated by MockGen.
Code generated by MockGen.
provider/routetable
Code generated by MockGen.
Code generated by MockGen.
provider/securitygroup
Package securitygroup is a generated GoMock package.
Package securitygroup is a generated GoMock package.
provider/storage/fileservice/mock_fileservice
Package mock_fileservice is a generated GoMock package.
Package mock_fileservice is a generated GoMock package.
provider/subnet
Package subnet is a generated GoMock package.
Package subnet is a generated GoMock package.
provider/zone
Code generated by MockGen.
Code generated by MockGen.
version
Package version supplies version information collected at build time to kubernetes components.
Package version supplies version information collected at build time to kubernetes components.
version/verflag
Package verflag defines utility functions to handle command line flags related to version of Kubernetes.
Package verflag defines utility functions to handle command line flags related to version of Kubernetes.
azclient Module
azureclients Module
tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL