package
0.33.0-alpha.1
Repository: https://github.com/kubernetes/cloud-provider.git
Documentation: pkg.go.dev
# README
cloud-provider/sample
This directory provides sample code about how all cloud providers should leverage CCM begin at 1.20.
Purpose
Begin with 1.20, all cloud providers should not copy over or vendor in k8s.io/kubernetes/cmd/cloud-controller-manager
. Inside this directory, some sample code will be provided to demonstrate how cloud providers should leverage cloud-controller-manager.
Steps cloud providers should follow
- Have your external repo under k8s.io. e.g.
k8s.io/cloud-provider-<provider>
- Create
main.go
file under your external repo CCM directory. Please refer tobasic_main.go
for a minimum working sample. Note: If you have a requirement of adding/deleting controllers within CCM, please refer tok8s.io/kubernetes/cmd/cloud-controller-manager/main.go
for extra details. - Build/release CCM from your external repo. For existing cloud providers, the option to import legacy providers from
k8s.io/legacy-cloud-provider/<provider>
is not available since 1.31.
Things you should NOT do
- Vendor in
k8s.io/cmd/cloud-controller-manager
. - Directly modify anything under
vendor/k8s.io/cloud-provider/sample
in this repo. Those are driven fromk8s.io/kubernetes/staging/src/k8s.io/cloud-provider/sample
. - Make specific cloud provider changes in sample files.