Skip to content

Commit 0179682

Browse files
authored
Update to k/k v1.21.0 (kubernetes#1440)
1 parent f900e23 commit 0179682

File tree

6 files changed

+250
-254
lines changed

6 files changed

+250
-254
lines changed

cmd/openstack-cloud-controller-manager/main.go

Lines changed: 34 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -23,115 +23,46 @@ import (
2323
goflag "flag"
2424
"fmt"
2525
"math/rand"
26-
"net/http"
2726
"os"
2827
"time"
2928

29+
"github.com/spf13/pflag"
3030
"k8s.io/apimachinery/pkg/util/wait"
31-
"k8s.io/apiserver/pkg/server/healthz"
3231
cloudprovider "k8s.io/cloud-provider"
33-
"k8s.io/cloud-provider-openstack/pkg/openstack"
34-
"k8s.io/cloud-provider-openstack/pkg/version"
3532
"k8s.io/cloud-provider/app"
33+
"k8s.io/cloud-provider/app/config"
3634
"k8s.io/cloud-provider/options"
37-
"k8s.io/component-base/cli/flag"
35+
cliflag "k8s.io/component-base/cli/flag"
3836
"k8s.io/component-base/logs"
3937
_ "k8s.io/component-base/metrics/prometheus/restclient" // for client metric registration
4038
_ "k8s.io/component-base/metrics/prometheus/version" // for version metric registration
4139
"k8s.io/klog/v2"
4240
_ "k8s.io/kubernetes/pkg/features" // add the kubernetes feature gates
4341

44-
"github.com/spf13/cobra"
45-
"github.com/spf13/pflag"
46-
)
47-
48-
func init() {
49-
mux := http.NewServeMux()
50-
healthz.InstallHandler(mux)
51-
}
52-
53-
var (
54-
versionFlag bool
42+
"k8s.io/cloud-provider-openstack/pkg/openstack"
43+
"k8s.io/cloud-provider-openstack/pkg/version"
5544
)
5645

5746
func main() {
58-
rand.Seed(time.Now().UTC().UnixNano())
59-
60-
goflag.CommandLine.Parse([]string{})
61-
controllerList := []string{"cloud-node", "cloud-node-lifecycle", "service", "route"}
47+
rand.Seed(time.Now().UnixNano())
6248

63-
s, err := options.NewCloudControllerManagerOptions()
49+
ccmOptions, err := options.NewCloudControllerManagerOptions()
6450
if err != nil {
6551
klog.Fatalf("unable to initialize command options: %v", err)
6652
}
67-
s.KubeCloudShared.CloudProvider.Name = openstack.ProviderName
68-
69-
command := &cobra.Command{
70-
Use: "openstack-cloud-controller-manager",
71-
Long: `The Cloud controller manager is a daemon that embeds
72-
the cloud specific control loops shipped with Kubernetes.`,
73-
PersistentPreRun: func(cmd *cobra.Command, args []string) {
74-
// Glog requires this otherwise it complains.
75-
goflag.CommandLine.Parse(nil)
76-
77-
// This is a temporary hack to enable proper logging until upstream dependencies
78-
// are migrated to fully utilize klog instead of glog.
79-
klogFlags := goflag.NewFlagSet("klog", goflag.ExitOnError)
80-
klog.InitFlags(klogFlags)
81-
82-
// Sync the glog and klog flags.
83-
cmd.Flags().VisitAll(func(f1 *pflag.Flag) {
84-
f2 := klogFlags.Lookup(f1.Name)
85-
if f2 != nil {
86-
value := f1.Value.String()
87-
f2.Value.Set(value)
88-
}
89-
})
90-
},
91-
Run: func(cmd *cobra.Command, args []string) {
92-
if versionFlag {
93-
version.PrintVersionAndExit()
94-
}
95-
96-
flag.PrintFlags(cmd.Flags())
97-
98-
c, err := s.Config(controllerList, app.ControllersDisabledByDefault.List())
99-
if err != nil {
100-
fmt.Fprintf(os.Stderr, "%v\n", err)
101-
os.Exit(1)
102-
}
103-
104-
cloudconfig := c.Complete().ComponentConfig.KubeCloudShared.CloudProvider
105-
cloud, err := cloudprovider.InitCloudProvider(cloudconfig.Name, cloudconfig.CloudConfigFile)
106-
if err != nil {
107-
klog.Fatalf("Cloud provider could not be initialized: %v", err)
108-
}
109-
if cloud == nil {
110-
klog.Fatalf("cloud provider is nil")
111-
}
112-
113-
if err := app.Run(c.Complete(), app.DefaultControllerInitializers(c.Complete(), cloud), wait.NeverStop); err != nil {
114-
fmt.Fprintf(os.Stderr, "%v\n", err)
115-
os.Exit(1)
116-
}
117-
},
118-
}
11953

120-
fs := command.Flags()
121-
namedFlagSets := s.Flags(controllerList, app.ControllersDisabledByDefault.List())
122-
for _, f := range namedFlagSets.FlagSets {
123-
fs.AddFlagSet(f)
124-
}
125-
126-
fs.BoolVar(&versionFlag, "version", false, "Print version and exit")
54+
fss := cliflag.NamedFlagSets{}
55+
command := app.NewCloudControllerManagerCommand(ccmOptions, cloudInitializer, app.DefaultInitFuncConstructors, fss, wait.NeverStop)
12756

12857
openstack.AddExtraFlags(pflag.CommandLine)
12958

13059
// TODO: once we switch everything over to Cobra commands, we can go back to calling
13160
// utilflag.InitFlags() (by removing its pflag.Parse() call). For now, we have to set the
13261
// normalize func and add the go flag set by hand.
133-
pflag.CommandLine.SetNormalizeFunc(flag.WordSepNormalizeFunc)
62+
// Here is an sample
63+
pflag.CommandLine.SetNormalizeFunc(cliflag.WordSepNormalizeFunc)
13464
pflag.CommandLine.AddGoFlagSet(goflag.CommandLine)
65+
13566
// utilflag.InitFlags()
13667
logs.InitLogs()
13768
defer logs.FlushLogs()
@@ -143,3 +74,25 @@ the cloud specific control loops shipped with Kubernetes.`,
14374
os.Exit(1)
14475
}
14576
}
77+
78+
func cloudInitializer(config *config.CompletedConfig) cloudprovider.Interface {
79+
cloudConfig := config.ComponentConfig.KubeCloudShared.CloudProvider
80+
81+
// initialize cloud provider with the cloud provider name and config file provided
82+
cloud, err := cloudprovider.InitCloudProvider(cloudConfig.Name, cloudConfig.CloudConfigFile)
83+
if err != nil {
84+
klog.Fatalf("Cloud provider could not be initialized: %v", err)
85+
}
86+
if cloud == nil {
87+
klog.Fatalf("Cloud provider is nil")
88+
}
89+
90+
if !cloud.HasClusterID() {
91+
if config.ComponentConfig.KubeCloudShared.AllowUntaggedCloud {
92+
klog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues")
93+
} else {
94+
klog.Fatalf("no ClusterID found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option")
95+
}
96+
}
97+
return cloud
98+
}

go.mod

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.15
44

55
require (
66
github.com/MichaelTJones/walk v0.0.0-20161122175330-4748e29d5718 // indirect
7-
github.com/NYTimes/gziphandler v1.1.1 // indirect
87
github.com/container-storage-interface/spec v1.3.0
98
github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a // indirect
109
github.com/emicklei/go-restful v2.9.6+incompatible // indirect
@@ -25,59 +24,59 @@ require (
2524
github.com/onsi/gomega v1.9.0
2625
github.com/pborman/uuid v1.2.0
2726
github.com/pelletier/go-toml v1.4.0 // indirect
28-
github.com/sirupsen/logrus v1.6.0
27+
github.com/sirupsen/logrus v1.7.0
2928
github.com/spf13/cobra v1.1.1
3029
github.com/spf13/pflag v1.0.5
3130
github.com/spf13/viper v1.7.0
3231
github.com/stretchr/testify v1.6.1
33-
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0
34-
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b
35-
golang.org/x/sys v0.0.0-20201112073958-5cba982894dd
32+
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83
33+
golang.org/x/net v0.0.0-20210224082022-3d97a244fca7
34+
golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073
3635
google.golang.org/grpc v1.27.1
3736
gopkg.in/gcfg.v1 v1.2.3
3837
gopkg.in/godo.v2 v2.0.9
3938
gopkg.in/warnings.v0 v0.1.2 // indirect
40-
gopkg.in/yaml.v2 v2.3.0
41-
k8s.io/api v0.20.0
42-
k8s.io/apimachinery v0.20.0
43-
k8s.io/apiserver v0.20.0
44-
k8s.io/client-go v0.20.0
45-
k8s.io/cloud-provider v0.20.0
46-
k8s.io/component-base v0.20.0
39+
gopkg.in/yaml.v2 v2.4.0
40+
k8s.io/api v0.21.0
41+
k8s.io/apimachinery v0.21.0
42+
k8s.io/apiserver v0.21.0
43+
k8s.io/client-go v0.21.0
44+
k8s.io/cloud-provider v0.21.0
45+
k8s.io/component-base v0.21.0
4746
k8s.io/klog v1.0.0 // indirect
48-
k8s.io/klog/v2 v2.4.0
49-
k8s.io/kubernetes v1.20.0
50-
k8s.io/mount-utils v0.20.0
47+
k8s.io/klog/v2 v2.8.0
48+
k8s.io/kubernetes v1.21.0
49+
k8s.io/mount-utils v0.21.0
5150
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
5251
software.sslmate.com/src/go-pkcs12 v0.0.0-20190209200317-47dd539968c4
5352
)
5453

5554
replace (
5655
github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc9
57-
k8s.io/api => k8s.io/api v0.20.0
58-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.20.0
59-
k8s.io/apimachinery => k8s.io/apimachinery v0.20.0
60-
k8s.io/apiserver => k8s.io/apiserver v0.20.0
61-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.20.0
62-
k8s.io/client-go => k8s.io/client-go v0.20.0
63-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.20.0
64-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.20.0
65-
k8s.io/code-generator => k8s.io/code-generator v0.20.0
66-
k8s.io/component-base => k8s.io/component-base v0.20.0
67-
k8s.io/component-helpers => k8s.io/component-helpers v0.20.0
68-
k8s.io/controller-manager => k8s.io/controller-manager v0.20.0
69-
k8s.io/cri-api => k8s.io/cri-api v0.20.0
70-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.20.0
71-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.20.0
72-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.20.0
73-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.20.0
74-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.20.0
75-
k8s.io/kubectl => k8s.io/kubectl v0.20.0
76-
k8s.io/kubelet => k8s.io/kubelet v0.20.0
77-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.20.0
78-
k8s.io/metrics => k8s.io/metrics v0.20.0
79-
k8s.io/mount-utils => k8s.io/mount-utils v0.20.0
80-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.20.0
81-
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.20.0
82-
k8s.io/sample-controller => k8s.io/sample-controller v0.20.0
56+
k8s.io/api => k8s.io/api v0.21.0
57+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0
58+
k8s.io/apimachinery => k8s.io/apimachinery v0.21.0
59+
k8s.io/apiserver => k8s.io/apiserver v0.21.0
60+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0
61+
k8s.io/client-go => k8s.io/client-go v0.21.0
62+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0
63+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0
64+
k8s.io/code-generator => k8s.io/code-generator v0.21.0
65+
k8s.io/component-base => k8s.io/component-base v0.21.0
66+
k8s.io/component-helpers => k8s.io/component-helpers v0.21.0
67+
k8s.io/controller-manager => k8s.io/controller-manager v0.21.0
68+
k8s.io/cri-api => k8s.io/cri-api v0.21.0
69+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0
70+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0
71+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0
72+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0
73+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0
74+
k8s.io/kubectl => k8s.io/kubectl v0.21.0
75+
k8s.io/kubelet => k8s.io/kubelet v0.21.0
76+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0
77+
k8s.io/metrics => k8s.io/metrics v0.21.0
78+
k8s.io/mount-utils => k8s.io/mount-utils v0.21.0
79+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0
80+
k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.21.0
81+
k8s.io/sample-controller => k8s.io/sample-controller v0.21.0
8382
)

0 commit comments

Comments
 (0)