diff --git a/go.mod b/go.mod index 8b278287..4d48a600 100644 --- a/go.mod +++ b/go.mod @@ -11,13 +11,13 @@ require ( github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 - k8s.io/api v0.0.0-20240920202009-71385f038c10 - k8s.io/apimachinery v0.0.0-20240926041705-dc03077c038e - k8s.io/apiserver v0.0.0-20240928084133-42502d245d51 - k8s.io/client-go v0.0.0-20240928082459-2d7a47c42bfc + k8s.io/api v0.0.0-20241001061456-5c8e0b961397 + k8s.io/apimachinery v0.0.0-20240929035808-0db5dbf03048 + k8s.io/apiserver v0.0.0-20241001073733-d7cbe7a5f28d + k8s.io/client-go v0.0.0-20240929082523-46093399c4de k8s.io/component-base v0.0.0-20240928083227-66de10e147bc k8s.io/component-helpers v0.0.0-20240928083404-d763e5df641d - k8s.io/controller-manager v0.0.0-20240928091200-68bb4e3e3504 + k8s.io/controller-manager v0.0.0-20241001095331-1f9a5ffcb425 k8s.io/klog/v2 v2.130.1 k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 ) diff --git a/go.sum b/go.sum index 404ceb98..c847eabe 100644 --- a/go.sum +++ b/go.sum @@ -276,20 +276,20 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.0.0-20240920202009-71385f038c10 h1:shjQe98Co9zBlDzQkxb5IJEWtReSl7qunr56C4Jgc70= -k8s.io/api v0.0.0-20240920202009-71385f038c10/go.mod h1:KCEt6+W/Yn1Vc48pYXeLf0mGK52kJhvt+rcaUVsIaKQ= -k8s.io/apimachinery v0.0.0-20240926041705-dc03077c038e h1:/N2qUkIcQ8VaZbmy28grdhVBbNXO6KLZRdz6F2siNeY= -k8s.io/apimachinery v0.0.0-20240926041705-dc03077c038e/go.mod h1:5rKPDwwN9qm//xASFCZ83nyYEanHxxhc7pZ8AC4lukY= -k8s.io/apiserver v0.0.0-20240928084133-42502d245d51 h1:AtNRp1f6HLd/89cf2EB+RKgajQCwmZ0Q1HNllyz05Y8= -k8s.io/apiserver v0.0.0-20240928084133-42502d245d51/go.mod h1:bY2LPWrrW674ESG4dH0xg+yNxjOl2MKzMBq0GSuzZ8M= -k8s.io/client-go v0.0.0-20240928082459-2d7a47c42bfc h1:vXIj/gsKtCPO4OTLbXWOrKOoIAaqZi3sDjniQfcFuPs= -k8s.io/client-go v0.0.0-20240928082459-2d7a47c42bfc/go.mod h1:+LjOIsTEpEsaW4dpOAa5PueCf6hTShgzbB0+c+KT4K0= +k8s.io/api v0.0.0-20241001061456-5c8e0b961397 h1:nAgFHPXbGIAyhn+LgjFlp3/MpOW8m7TQyO933fTEuH8= +k8s.io/api v0.0.0-20241001061456-5c8e0b961397/go.mod h1:P4IhnNCi/5FdQLo54CpHGU7xr10vOGPd2loe31c00vM= +k8s.io/apimachinery v0.0.0-20240929035808-0db5dbf03048 h1:EWQWppfphUSBwuhuNA4weJ9vJtfHhjVwizTYjZb8ikw= +k8s.io/apimachinery v0.0.0-20240929035808-0db5dbf03048/go.mod h1:5rKPDwwN9qm//xASFCZ83nyYEanHxxhc7pZ8AC4lukY= +k8s.io/apiserver v0.0.0-20241001073733-d7cbe7a5f28d h1:J/ZNwAWvfemNQ91XPFT0ei9u5++/cknKYfHhTqQ/OkA= +k8s.io/apiserver v0.0.0-20241001073733-d7cbe7a5f28d/go.mod h1:fEMmcPgJjv/TBTvxkPPhhDdPqHeX1YBebjTmxcDD/CU= +k8s.io/client-go v0.0.0-20240929082523-46093399c4de h1:a/AoWBaxo6kjvY29p3PUxc7PDUfyTHQCBb3zoA7L7gw= +k8s.io/client-go v0.0.0-20240929082523-46093399c4de/go.mod h1:rV8uxwGX3sOvz0lP3/B/bLL2+dtQ7QmA4iU+d7u8snk= k8s.io/component-base v0.0.0-20240928083227-66de10e147bc h1:rcpUSxWdWOVlC4auITDsLVD8mkDwKoO5ngGUEW1GARg= k8s.io/component-base v0.0.0-20240928083227-66de10e147bc/go.mod h1:y3+nKeFC4lXl3nEHGAXUtoRopMfxd7um7GOQzZWcdi8= k8s.io/component-helpers v0.0.0-20240928083404-d763e5df641d h1:Tw+xa+jU6X73uZhtzAoj4wmbKssmcsDiaQNcFBfgJPI= k8s.io/component-helpers v0.0.0-20240928083404-d763e5df641d/go.mod h1:/gg6Mvn3qY9XUOia0hHgqqy9vDWMJi8KmadhnsHNy6k= -k8s.io/controller-manager v0.0.0-20240928091200-68bb4e3e3504 h1:uPHcczRZVuZS4vED96e8qsLwJE+XaDZAXIU28W8uug8= -k8s.io/controller-manager v0.0.0-20240928091200-68bb4e3e3504/go.mod h1:Ulf84tN7siYj2JEudREfKBc4tyY+c88lQ5Y36z7xbwQ= +k8s.io/controller-manager v0.0.0-20241001095331-1f9a5ffcb425 h1:m9asM6cx9DwI81mT7TPGyBqt/cSfPIbXth8AgTtLfbw= +k8s.io/controller-manager v0.0.0-20241001095331-1f9a5ffcb425/go.mod h1:B1VBA9JmAf/j5UGGo2jWPllauZUT4BAOIWKdKGiarxw= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kms v0.0.0-20240912041232-273c893e4e51 h1:mbESnbnzpJyRVv9XDJ7eV+F33qap+hKv/kPEkzVPCoE= diff --git a/plugins.go b/plugins.go index 458fff69..8ef778b1 100644 --- a/plugins.go +++ b/plugins.go @@ -33,13 +33,8 @@ type Factory func(config io.Reader) (Interface, error) // All registered cloud providers. var ( - providersMutex sync.Mutex - providers = make(map[string]Factory) - deprecatedCloudProviders = []struct { - name string - external bool - detail string - }{} + providersMutex sync.Mutex + providers = make(map[string]Factory) ) const externalCloudProvider = "external" @@ -85,47 +80,19 @@ func IsExternal(name string) bool { return name == externalCloudProvider } -// IsDeprecatedInternal is responsible for preventing cloud.Interface -// from being initialized in kubelet, kube-controller-manager or kube-api-server -func IsDeprecatedInternal(name string) bool { - for _, provider := range deprecatedCloudProviders { - if provider.name == name { - return true - } - } - - return false -} - // DisableWarningForProvider logs information about disabled cloud provider state func DisableWarningForProvider(providerName string) { - for _, provider := range deprecatedCloudProviders { - if provider.name == providerName { - klog.Infof("INFO: Please make sure you are running external cloud controller manager binary for provider %q."+ - "In-tree cloud providers are currently disabled. Refer to https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cloud-provider/sample"+ - "for example implementation.", providerName) - detail := fmt.Sprintf("Please reach to sig-cloud-provider and use 'external' cloud provider for %q: %s", providerName, provider.detail) - klog.Warningf("WARNING: %q built-in cloud provider is now disabled. %s", providerName, detail) - break - } + if !IsExternal(providerName) { + klog.Infof("INFO: Please make sure you are running an external cloud controller manager binary for provider %q."+ + "In-tree cloud providers are disabled. Refer to https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cloud-provider/sample "+ + "for an example implementation.", providerName) + klog.Warningf("WARNING: built-in cloud providers are disabled. Please set \"--cloud-provider=external\" and migrate to an external cloud controller manager for provider %q", providerName) } } -// DeprecationWarningForProvider logs information about deprecated cloud provider state -func DeprecationWarningForProvider(providerName string) { - for _, provider := range deprecatedCloudProviders { - if provider.name != providerName { - continue - } - - detail := provider.detail - if provider.external { - detail = fmt.Sprintf("Please use 'external' cloud provider for %s: %s", providerName, provider.detail) - } - - klog.Warningf("WARNING: %s built-in cloud provider is now deprecated. %s", providerName, detail) - break - } +// ErrorForDisabledProvider returns an error formatted with the supplied provider name +func ErrorForDisabledProvider(providerName string) error { + return fmt.Errorf("cloud provider %q was specified, but built-in cloud providers are disabled. Please set --cloud-provider=external and migrate to an external cloud provider", providerName) } // InitCloudProvider creates an instance of the named cloud provider.