cloud-provider-azure

module
v1.30.1 Latest Latest
Warning

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

Go to latest
Published: May 1, 2024 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.29.0
  • mcr.microsoft.com/oss/kubernetes/azure-cloud-node-manager:v1.29.0
Version matrix

(Minor release versions match Kubernetes minor release versions since v1.23.0.)

Kubernetes version cloud-provider version cloud-provider branch
master N/A master
v1.y.x v1.y.z release-1.y
v1.29.x v1.29.z release-1.29
v1.28.x v1.28.z release-1.28
v1.27.x v1.27.z release-1.27
v1.26.x v1.26.z release-1.26
v1.25.x v1.25.z release-1.25
v1.24.x v1.24.z release-1.24
v1.23.x v1.23.z release-1.23
v1.22.x v1.1.z release-1.1
AKS version matrix

Below table 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.29.x v1.29.0 v1.29.0
v1.28.x v1.28.5 v1.28.5
v1.27.x v1.27.13 v1.27.13
v1.26.x v1.26.19 v1.26.19
v1.25.x v1.25.24 v1.25.24
v1.24.x v1.24.21 v1.24.20
v1.23.x v1.23.30 v1.23.24
v1.22.x v1.1.26 v1.1.14
v1.21.x v1.0.23 v1.0.18

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
pkg
azureclients
Package azureclients contains a set of Azure ARM clients.
Package azureclients contains a set of Azure ARM clients.
azureclients/armclient
Package armclient implements the client for ARM.
Package armclient implements the client for ARM.
azureclients/armclient/mockarmclient
Package mockarmclient implements the mock client for ARM.
Package mockarmclient implements the mock client for ARM.
azureclients/blobclient
Package blobclient implements the client for blob container.
Package blobclient implements the client for blob container.
azureclients/blobclient/mockblobclient
Package mockblobclient implements the mock client for blob container.
Package mockblobclient implements the mock client for blob container.
azureclients/containerserviceclient
Package containerserviceclient implements the client for azure container service.
Package containerserviceclient implements the client for azure container service.
azureclients/containerserviceclient/mockcontainerserviceclient
Package mockcontainerserviceclient implements the mock client for azure container service.
Package mockcontainerserviceclient implements the mock client for azure container service.
azureclients/deploymentclient
Package deploymentclient implements the client for azure deployments.
Package deploymentclient implements the client for azure deployments.
azureclients/deploymentclient/mockdeploymentclient
Package mockdeploymentclient implements the mock client for azure deployments.
Package mockdeploymentclient implements the mock client for azure deployments.
azureclients/diskclient
Package diskclient implements the client for Disks.
Package diskclient implements the client for Disks.
azureclients/diskclient/mockdiskclient
Package mockdiskclient implements the mock client for Disks.
Package mockdiskclient implements the mock client for Disks.
azureclients/fileclient
Package fileclient implements the client for azure file.
Package fileclient implements the client for azure file.
azureclients/fileclient/mockfileclient
Package mockfileclient implements the mock client for azure file.
Package mockfileclient implements the mock client for azure file.
azureclients/interfaceclient
Package interfaceclient implements the client for network interfaces.
Package interfaceclient implements the client for network interfaces.
azureclients/interfaceclient/mockinterfaceclient
Package mockinterfaceclient implements the mock client for network interfaces.
Package mockinterfaceclient implements the mock client for network interfaces.
azureclients/loadbalancerclient
Package loadbalancerclient implements the client for LoadBalancer.
Package loadbalancerclient implements the client for LoadBalancer.
azureclients/loadbalancerclient/mockloadbalancerclient
Package mockloadbalancerclient implements the mock client for LoadBalancer.
Package mockloadbalancerclient implements the mock client for LoadBalancer.
azureclients/privatednsclient/mockprivatednsclient
Package mockprivatednsclient implements the mock client for PrivateDNS.
Package mockprivatednsclient implements the mock client for PrivateDNS.
azureclients/privatednszonegroupclient/mockprivatednszonegroupclient
Package mockprivatednszonegroupclient implements the mock client for PrivateDNSszonegroup.
Package mockprivatednszonegroupclient implements the mock client for PrivateDNSszonegroup.
azureclients/privateendpointclient
Package privateendpointclient implements the client for Private Endpoint.
Package privateendpointclient implements the client for Private Endpoint.
azureclients/privateendpointclient/mockprivateendpointclient
Package mockprivateendpointclient implements the mock client for PrivateEndpoint.
Package mockprivateendpointclient implements the mock client for PrivateEndpoint.
azureclients/privatelinkserviceclient
Package privatelinkserviceclient implements the client for PrivateLinkService.
Package privatelinkserviceclient implements the client for PrivateLinkService.
azureclients/privatelinkserviceclient/mockprivatelinkserviceclient
Package mockprivatelinkserviceclient implements the mock client for PrivateLinkService.
Package mockprivatelinkserviceclient implements the mock client for PrivateLinkService.
azureclients/publicipclient
Package publicipclient implements the client for PublicIPAddress.
Package publicipclient implements the client for PublicIPAddress.
azureclients/publicipclient/mockpublicipclient
Package mockpublicipclient implements the mock client for PublicIPAddress.
Package mockpublicipclient implements the mock client for PublicIPAddress.
azureclients/routeclient
Package routeclient implements the client for Route.
Package routeclient implements the client for Route.
azureclients/routeclient/mockrouteclient
Package mockrouteclient implements the mock client for Route.
Package mockrouteclient implements the mock client for Route.
azureclients/routetableclient
Package routetableclient implements the client for RouteTable.
Package routetableclient implements the client for RouteTable.
azureclients/routetableclient/mockroutetableclient
Package mockroutetableclient implements the mock client for RouteTable.
Package mockroutetableclient implements the mock client for RouteTable.
azureclients/securitygroupclient
Package securitygroupclient implements the client for SecurityGroups.
Package securitygroupclient implements the client for SecurityGroups.
azureclients/securitygroupclient/mocksecuritygroupclient
Package mocksecuritygroupclient implements the mock client for SecurityGroups.
Package mocksecuritygroupclient implements the mock client for SecurityGroups.
azureclients/snapshotclient
Package snapshotclient implements the client for Snapshots.
Package snapshotclient implements the client for Snapshots.
azureclients/snapshotclient/mocksnapshotclient
Package mocksnapshotclient implements the mock client for Snapshots.
Package mocksnapshotclient implements the mock client for Snapshots.
azureclients/storageaccountclient
Package storageaccountclient implements the client for StorageAccounts.
Package storageaccountclient implements the client for StorageAccounts.
azureclients/storageaccountclient/mockstorageaccountclient
Package mockstorageaccountclient implements the mock client for StorageAccounts.
Package mockstorageaccountclient implements the mock client for StorageAccounts.
azureclients/subnetclient
Package subnetclient implements the client for Subnet.
Package subnetclient implements the client for Subnet.
azureclients/subnetclient/mocksubnetclient
Package mocksubnetclient implements the mock client for Subnet.
Package mocksubnetclient implements the mock client for Subnet.
azureclients/virtualnetworklinksclient
Package virtualnetworklinksclient implements the client for Virtual Network Link.
Package virtualnetworklinksclient implements the client for Virtual Network Link.
azureclients/virtualnetworklinksclient/mockvirtualnetworklinksclient
Package mockvirtualnetworklinksclient implements the mock client for VirtualNetworkLinks.
Package mockvirtualnetworklinksclient implements the mock client for VirtualNetworkLinks.
azureclients/vmasclient
Package vmasclient implements the client for VMAS.
Package vmasclient implements the client for VMAS.
azureclients/vmasclient/mockvmasclient
Package mockvmasclient implements the mock client for VMAS.
Package mockvmasclient implements the mock client for VMAS.
azureclients/vmclient
Package vmclient implements the client for VirtualMachines.
Package vmclient implements the client for VirtualMachines.
azureclients/vmclient/mockvmclient
Package mockvmclient implements the mock client for VirtualMachines.
Package mockvmclient implements the mock client for VirtualMachines.
azureclients/vmsizeclient
Package vmsizeclient implements the client for VirtualMachineSizes.
Package vmsizeclient implements the client for VirtualMachineSizes.
azureclients/vmsizeclient/mockvmsizeclient
Package mockvmsizeclient implements the mock client for VirtualMachineSizes.
Package mockvmsizeclient implements the mock client for VirtualMachineSizes.
azureclients/vmssclient
Package vmssclient implements the client for VMSS.
Package vmssclient implements the client for VMSS.
azureclients/vmssclient/mockvmssclient
Package mockvmssclient implements the mock client for VMSS.
Package mockvmssclient implements the mock client for VMSS.
azureclients/vmssvmclient
Package vmssvmclient implements the client for VirtualMachineScaleSetVM.
Package vmssvmclient implements the client for VirtualMachineScaleSetVM.
azureclients/vmssvmclient/mockvmssvmclient
Package mockvmssvmclient implements the mock client for VirtualMachineScaleSetVM.
Package mockvmssvmclient implements the mock client for VirtualMachineScaleSetVM.
azureclients/zoneclient
Package zoneclient implements the client for ARM.
Package zoneclient implements the client for ARM.
azureclients/zoneclient/mockzoneclient
Package mockzonevmclient implements the mock client for zone
Package mockzonevmclient implements the mock client for zone
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/.
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.
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.
retry
Package retry defines a general library to handle errors and retries for various Azure clients.
Package retry defines a general library to handle errors and retries for various Azure clients.
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
tests

Jump to

Keyboard shortcuts

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