Projects
Eulaceura:Mainline
eggo
_service:obs_scm:0023-add-golang-static-code-ch...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0023-add-golang-static-code-check.patch of Package eggo
From 61a4eb8d90ac24ad09b82b2d1578c99ed6a2d5b7 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu <zhangxiaoyu58@huawei.com> Date: Tue, 29 Mar 2022 21:34:38 +0800 Subject: [PATCH 23/24] add golang static code check Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com> --- .golangci.yaml | 54 +++++++++++++++---- cmd/checker.go | 5 +- cmd/checker_test.go | 4 +- cmd/configs.go | 33 ++++++------ cmd/configs_test.go | 1 + cmd/delete.go | 2 +- cmd/eggo.go | 4 +- cmd/filetools.go | 6 ++- cmd/list.go | 1 + cmd/opts.go | 4 +- pkg/api/tools.go | 7 +-- pkg/api/types.go | 10 ++-- .../binary/addons/runner_addons.go | 4 +- .../binary/bootstrap/bootstrap.go | 5 +- .../binary/bootstrap/bootstrap_test.go | 9 ++-- .../binary/cleanupcluster/cleanupetcd.go | 1 + .../binary/commontools/copycacerts.go | 1 + .../binary/commontools/runshell.go | 1 + .../binary/commontools/systemdservices.go | 5 +- .../binary/controlplane/controlplane.go | 9 ++-- .../binary/controlplane/controlplane_test.go | 1 + .../binary/coredns/binarycoredns.go | 11 ++-- .../binary/coredns/podcoredns.go | 6 ++- .../binary/etcdcluster/etcdcluster.go | 10 ++-- .../binary/etcdcluster/etcdcluster_test.go | 1 + .../binary/etcdcluster/etcdjoin.go | 4 +- .../binary/etcdcluster/etcdreconfig.go | 5 +- .../binary/infrastructure/firewall.go | 1 + .../infrastructure/infrastructure_test.go | 1 + .../binary/loadbalance/loadbalance.go | 1 + .../binary/network/network.go | 5 +- pkg/clusterdeployment/clusterdeploy.go | 36 ++++++++----- pkg/clusterdeployment/runtime/runtime.go | 1 + pkg/constants/constants.go | 14 ++++- pkg/utils/certs/approvecsr.go | 10 ++-- pkg/utils/certs/certs.go | 1 + pkg/utils/certs/localcerts.go | 9 +++- pkg/utils/certs/tools.go | 6 ++- pkg/utils/dependency/cmdhooks.go | 3 +- pkg/utils/dependency/dependency.go | 1 + pkg/utils/dependency/dependency_test.go | 1 + pkg/utils/dependency/install.go | 9 ++-- pkg/utils/endpoint/endpoint.go | 13 +++-- pkg/utils/infra/infra.go | 2 +- pkg/utils/kubectl/kubectl.go | 10 ++-- pkg/utils/kubectl/taint.go | 5 +- pkg/utils/nodemanager/node.go | 14 +++-- pkg/utils/nodemanager/nodemanager.go | 5 +- pkg/utils/nodemanager/nodemanager_test.go | 1 + pkg/utils/runner/runner.go | 1 + 50 files changed, 244 insertions(+), 110 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index ea8515f..e3051db 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,18 +1,54 @@ -linters-settings: - golint: - min-confidence: 0 - misspell: - locale: US +run: + deadline: 10m + issues-exit-code: 1 + tests: true + + skip-dirs: + - vendor + + skip-files: + - ".*\\.pb\\.go$" + - ".*\\.dbx\\.go$" + + linters: disable-all: true enable: - - typecheck + - gomnd + - govet - goimports + - revive + - gofmt + - gosimple + - typecheck - misspell - - govet - ineffassign - - gosimple - deadcode - structcheck - unused - - errcheck \ No newline at end of file + - errcheck + +linters-settings: + gomnd: + settings: + mnd: + checks: argument, case, condition, operation, return, assign + ignored-numbers: 2 + govet: + check-shadowing: true + use-installed-packages: false + goimports: + local-prefixes: isula.org/eggo + revive: + min-confidence: 0.8 + rules: + - name: exported + disabled: true + gofmt: + simplify: true + misspell: + locale: US + errcheck: + check-type-assertions: false + check-blank: false + ignore: fmt:.*,io/ioutil:^Read.* diff --git a/cmd/checker.go b/cmd/checker.go index 2f99a0c..54136a2 100644 --- a/cmd/checker.go +++ b/cmd/checker.go @@ -26,12 +26,13 @@ import ( "strings" "time" + "k8s.io/apimachinery/pkg/util/validation" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/endpoint" chain "isula.org/eggo/pkg/utils/responsibilitychain" - "k8s.io/apimachinery/pkg/util/validation" ) type ClusterConfigResponsibility struct { @@ -414,7 +415,7 @@ func checkHookFile(fileName string) error { if !file.Mode().IsRegular() { return fmt.Errorf("%s is not regular file", file.Name()) } - if file.Mode().Perm() != os.FileMode(constants.HookFileMode) { + if file.Mode().Perm() != constants.HookFileMode { return fmt.Errorf("file mode of %s is incorrect", file.Name()) } if file.Size() > constants.MaxHookFileSize || file.Size() == 0 { diff --git a/cmd/checker_test.go b/cmd/checker_test.go index 57babf9..1abf20d 100644 --- a/cmd/checker_test.go +++ b/cmd/checker_test.go @@ -53,8 +53,8 @@ func TestRunChecker(t *testing.T) { } for _, fn := range conf.InstallConfig.PackageSrc.SrcPath { - if err := os.MkdirAll(fn, 0755); err != nil { - t.Fatalf("mkdir failed: %v", err) + if terr := os.MkdirAll(fn, 0755); terr != nil { + t.Fatalf("mkdir failed: %v", terr) } defer os.RemoveAll(fn) } diff --git a/cmd/configs.go b/cmd/configs.go index 4d7a4b9..0a35b57 100644 --- a/cmd/configs.go +++ b/cmd/configs.go @@ -25,9 +25,9 @@ import ( "strconv" "strings" + "github.com/sirupsen/logrus" "gopkg.in/yaml.v1" - "github.com/sirupsen/logrus" "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/coredns" "isula.org/eggo/pkg/constants" @@ -40,6 +40,9 @@ const ( WorkerRole string = "worker" ETCDRole string = "etcd" LoadBalanceRole string = "loadbalance" + + parseBase = 10 + parseBitSize = 32 ) var ( @@ -81,7 +84,7 @@ func init() { return } - if err := os.Mkdir(utils.GetEggoDir(), 0700); err != nil { + if err := os.Mkdir(utils.GetEggoDir(), constants.EggoDirMode); err != nil { logrus.Errorf("mkdir eggo directory %v failed", utils.GetEggoDir()) } } @@ -109,11 +112,11 @@ func saveDeployConfig(cc *DeployConfig, filePath string) error { return fmt.Errorf("invalid config file path %v", filePath) } - if err = os.MkdirAll(filepath.Dir(cleanPath), 0750); err != nil { + if err = os.MkdirAll(filepath.Dir(cleanPath), constants.EggoHomeDirMode); err != nil { return fmt.Errorf("create dir %v to save deploy config failed: %v", filepath.Dir(cleanPath), err) } - if err = ioutil.WriteFile(filePath, d, 0640); err != nil { + if err = ioutil.WriteFile(filePath, d, constants.DeployConfigFileMode); err != nil { return fmt.Errorf("write user deploy config file failed: %v", err) } @@ -162,14 +165,14 @@ func getDefaultClusterdeploymentConfig() *api.ClusterConfig { PluginArgs: make(map[string]string), }, ControlPlane: api.ControlPlaneConfig{ - ApiConf: &api.ApiServer{ + APIConf: &api.APIServer{ Timeout: "120s", }, }, WorkerConfig: api.WorkerConfig{ KubeletConf: &api.Kubelet{ - DnsVip: "10.32.0.10", - DnsDomain: "cluster.local", + DNSVip: "10.32.0.10", + DNSDomain: "cluster.local", PauseImage: "k8s.gcr.io/pause:3.2", NetworkPlugin: "cni", CniBinDir: "/usr/libexec/cni,/opt/cni/bin", @@ -283,7 +286,7 @@ func fillPackageConfig(ccfg *api.ClusterConfig, icfg *InstallConfig) { } if coredns.IsTypeBinary(ccfg.ServiceCluster.DNS.CorednsType) { - ccfg.RoleInfra[api.Master].Softwares = appendSoftware(ccfg.RoleInfra[api.Master].Softwares, ToEggoPackageConfig(icfg.Dns), infra.DnsPackages) + ccfg.RoleInfra[api.Master].Softwares = appendSoftware(ccfg.RoleInfra[api.Master].Softwares, ToEggoPackageConfig(icfg.Dns), infra.DNSPackages) } if len(icfg.Addition) == 0 { @@ -527,7 +530,7 @@ func fillAPIEndPoint(APIEndpoint *api.APIEndpoint, conf *DeployConfig) { return } - iport, err := strconv.ParseInt(port, 10, 32) + iport, err := strconv.ParseInt(port, parseBase, parseBitSize) if err != nil { logrus.Errorf("invalid port %s: %v", port, err) return @@ -576,9 +579,9 @@ func toClusterdeploymentConfig(conf *DeployConfig, hooks []*api.ClusterHookConf) setIfStrConfigNotEmpty(&ccfg.Network.PodCIDR, conf.NetWork.PodCIDR) setIfStrConfigNotEmpty(&ccfg.Network.Plugin, conf.NetWork.Plugin) setStrStrMap(ccfg.Network.PluginArgs, conf.NetWork.PluginArgs) - setStrArray(&ccfg.ControlPlane.ApiConf.CertSans.DNSNames, conf.ApiServerCertSans.DNSNames) - setStrArray(&ccfg.ControlPlane.ApiConf.CertSans.IPs, conf.ApiServerCertSans.IPs) - setIfStrConfigNotEmpty(&ccfg.ControlPlane.ApiConf.Timeout, conf.ApiServerTimeout) + setStrArray(&ccfg.ControlPlane.APIConf.CertSans.DNSNames, conf.ApiServerCertSans.DNSNames) + setStrArray(&ccfg.ControlPlane.APIConf.CertSans.IPs, conf.ApiServerCertSans.IPs) + setIfStrConfigNotEmpty(&ccfg.ControlPlane.APIConf.Timeout, conf.ApiServerTimeout) ccfg.EtcdCluster.External = conf.EtcdExternal for _, node := range ccfg.Nodes { if (node.Type & api.ETCD) != 0 { @@ -586,8 +589,8 @@ func toClusterdeploymentConfig(conf *DeployConfig, hooks []*api.ClusterHookConf) } } setIfStrConfigNotEmpty(&ccfg.EtcdCluster.Token, conf.EtcdToken) - setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.DnsVip, conf.DnsVip) - setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.DnsDomain, conf.DnsDomain) + setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.DNSVip, conf.DnsVip) + setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.DNSDomain, conf.DnsDomain) setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.PauseImage, conf.PauseImage) setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.NetworkPlugin, conf.NetworkPlugin) setIfStrConfigNotEmpty(&ccfg.WorkerConfig.KubeletConf.CniBinDir, conf.CniBinDir) @@ -938,7 +941,7 @@ func createDeployConfigTemplate(file string) error { return fmt.Errorf("marshal template config failed: %v", err) } - if err := ioutil.WriteFile(file, d, 0640); err != nil { + if err := ioutil.WriteFile(file, d, constants.DeployConfigFileMode); err != nil { return fmt.Errorf("write template config file failed: %v", err) } diff --git a/cmd/configs_test.go b/cmd/configs_test.go index 04afc51..3b72481 100644 --- a/cmd/configs_test.go +++ b/cmd/configs_test.go @@ -23,6 +23,7 @@ import ( "testing" "gopkg.in/yaml.v1" + "isula.org/eggo/pkg/api" ) diff --git a/cmd/delete.go b/cmd/delete.go index 05a1dee..2e537aa 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -89,7 +89,7 @@ func deleteCluster(cmd *cobra.Command, args []string) error { return fmt.Errorf("load saved deploy config failed: %v", err) } - if err := checkCmdHooksParameter(opts.prehook, opts.posthook); err != nil { + if err = checkCmdHooksParameter(opts.prehook, opts.posthook); err != nil { return err } // check saved deploy config diff --git a/cmd/eggo.go b/cmd/eggo.go index 36a3f9e..77c8a0f 100644 --- a/cmd/eggo.go +++ b/cmd/eggo.go @@ -68,7 +68,9 @@ func preCheck() { sb.WriteString("Maybe cause to failure!!!\n") sb.WriteString("Shutdown current operator!!!\n") fmt.Println(sb.String()) - time.Sleep(time.Second * 10) + + const preCheckSecond = 10 + time.Sleep(time.Second * preCheckSecond) } } diff --git a/cmd/filetools.go b/cmd/filetools.go index dff2a01..9b67b71 100644 --- a/cmd/filetools.go +++ b/cmd/filetools.go @@ -21,6 +21,8 @@ import ( "path/filepath" "strconv" "strings" + + "isula.org/eggo/pkg/constants" ) func checkProcessRunning(pid int) bool { @@ -53,11 +55,11 @@ func NewProcessPlaceHolder(path string) (*ProcessPlaceHolder, error) { if err := checkProcessInFile(path); err != nil && !os.IsNotExist(err) { return nil, err } - if err := os.MkdirAll(filepath.Dir(path), os.FileMode(0750)); err != nil { + if err := os.MkdirAll(filepath.Dir(path), constants.EggoHomeDirMode); err != nil { return nil, err } pid := strconv.Itoa(os.Getpid()) - if err := ioutil.WriteFile(path, []byte(pid), 0640); err != nil { + if err := ioutil.WriteFile(path, []byte(pid), constants.ProcessFileMode); err != nil { return nil, err } return &ProcessPlaceHolder{path}, nil diff --git a/cmd/list.go b/cmd/list.go index 27729ba..60e43bf 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -22,6 +22,7 @@ import ( "github.com/sirupsen/logrus" "github.com/spf13/cobra" + "isula.org/eggo/pkg/api" ) diff --git a/cmd/opts.go b/cmd/opts.go index d0235fe..c2ffed4 100644 --- a/cmd/opts.go +++ b/cmd/opts.go @@ -20,6 +20,8 @@ import ( "github.com/sirupsen/logrus" "github.com/spf13/cobra" + + "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" ) @@ -56,7 +58,7 @@ func init() { return } - if err := os.Mkdir(utils.GetEggoDir(), 0700); err != nil { + if err := os.Mkdir(utils.GetEggoDir(), constants.EggoDirMode); err != nil { logrus.Errorf("mkdir eggo directory %v failed", utils.GetEggoDir()) } } diff --git a/pkg/api/tools.go b/pkg/api/tools.go index 4c65dc2..77ee1bc 100644 --- a/pkg/api/tools.go +++ b/pkg/api/tools.go @@ -6,8 +6,9 @@ import ( "strings" "github.com/sirupsen/logrus" - "isula.org/eggo/pkg/constants" "k8s.io/apimachinery/pkg/util/json" + + "isula.org/eggo/pkg/constants" ) var ( @@ -55,7 +56,7 @@ func (p PackageSrcConfig) GetPkgDstPath() string { return p.DstPath } -func (ep APIEndpoint) GetUrl() string { +func (ep APIEndpoint) GetURL() string { return fmt.Sprintf("%s/%v", ep.AdvertiseAddress, ep.BindPort) } @@ -141,7 +142,7 @@ func WithEtcdExtrArgs(eargs map[string]string) ClusterConfigOption { func WithAPIServerExtrArgs(eargs map[string]string) ClusterConfigOption { return func(conf *ClusterConfig) *ClusterConfig { - conf.ControlPlane.ApiConf.ExtraArgs = eargs + conf.ControlPlane.APIConf.ExtraArgs = eargs return conf } } diff --git a/pkg/api/types.go b/pkg/api/types.go index 5cb7121..972ec82 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -55,7 +55,7 @@ const ( type HookRunConfig struct { ClusterID string - ClusterApiEndpoint string + ClusterAPIEndpoint string ClusterConfigDir string HookType HookType @@ -115,7 +115,7 @@ type Sans struct { DNSNames []string `json:"dns-names"` IPs []string `json:"ips"` } -type ApiServer struct { +type APIServer struct { CertSans Sans `json:"cert-sans,omitempty"` Timeout string `json:"timeout,omitempty"` ExtraArgs map[string]string `json:"extra-args,omitempty"` @@ -136,8 +136,8 @@ type WorkerConfig struct { } type Kubelet struct { - DnsVip string `json:"dns-vip,omitempty"` - DnsDomain string `json:"dns-domain"` + DNSVip string `json:"dns-vip,omitempty"` + DNSDomain string `json:"dns-domain"` PauseImage string `json:"pause-image"` NetworkPlugin string `json:"network-plugin"` CniBinDir string `json:"cni-bin-dir"` @@ -163,7 +163,7 @@ type APIEndpoint struct { BindPort int32 `json:"bind-port,omitempty"` } type ControlPlaneConfig struct { - ApiConf *ApiServer `json:"apiconf,omitempty"` + APIConf *APIServer `json:"apiconf,omitempty"` ManagerConf *ControlManager `json:"managerconf,omitempty"` SchedulerConf *Scheduler `json:"schedulerconf,omitempty"` } diff --git a/pkg/clusterdeployment/binary/addons/runner_addons.go b/pkg/clusterdeployment/binary/addons/runner_addons.go index e5bc0ad..27347fd 100644 --- a/pkg/clusterdeployment/binary/addons/runner_addons.go +++ b/pkg/clusterdeployment/binary/addons/runner_addons.go @@ -6,6 +6,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils/dependency" @@ -77,7 +78,8 @@ func setupAddons(cluster *api.ClusterConfig) error { if err != nil { return err } - err = nodemanager.WaitNodesFinish([]string{useMaster}, 5*time.Minute) + + err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes) if err != nil { return err } diff --git a/pkg/clusterdeployment/binary/bootstrap/bootstrap.go b/pkg/clusterdeployment/binary/bootstrap/bootstrap.go index 46870d7..e7b0c63 100644 --- a/pkg/clusterdeployment/binary/bootstrap/bootstrap.go +++ b/pkg/clusterdeployment/binary/bootstrap/bootstrap.go @@ -24,6 +24,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" "isula.org/eggo/pkg/clusterdeployment/binary/controlplane" @@ -245,8 +246,8 @@ serverTLSBootstrap: true ` datastore := make(map[string]interface{}) - datastore["DnsVip"] = ccfg.WorkerConfig.KubeletConf.DnsVip - datastore["DnsDomain"] = ccfg.WorkerConfig.KubeletConf.DnsDomain + datastore["DnsVip"] = ccfg.WorkerConfig.KubeletConf.DNSVip + datastore["DnsDomain"] = ccfg.WorkerConfig.KubeletConf.DNSDomain datastore["EnableServer"] = ccfg.WorkerConfig.KubeletConf.EnableServer config, err := template.TemplateRender(kubeletConfig, datastore) diff --git a/pkg/clusterdeployment/binary/bootstrap/bootstrap_test.go b/pkg/clusterdeployment/binary/bootstrap/bootstrap_test.go index 7b3c1ff..522af37 100644 --- a/pkg/clusterdeployment/binary/bootstrap/bootstrap_test.go +++ b/pkg/clusterdeployment/binary/bootstrap/bootstrap_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/nodemanager" "isula.org/eggo/pkg/utils/runner" @@ -71,8 +72,8 @@ func TestJoinMaster(t *testing.T) { }, WorkerConfig: api.WorkerConfig{ KubeletConf: &api.Kubelet{ - DnsVip: "10.32.0.10", - DnsDomain: "cluster.local", + DNSVip: "10.32.0.10", + DNSDomain: "cluster.local", CniBinDir: "/opt/cni/bin", }, ContainerEngineConf: &api.ContainerEngine{ @@ -146,8 +147,8 @@ func TestJoinWorker(t *testing.T) { }, WorkerConfig: api.WorkerConfig{ KubeletConf: &api.Kubelet{ - DnsVip: "10.32.0.10", - DnsDomain: "cluster.local", + DNSVip: "10.32.0.10", + DNSDomain: "cluster.local", CniBinDir: "/opt/cni/bin", }, ContainerEngineConf: &api.ContainerEngine{ diff --git a/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go b/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go index 59005a7..07922b0 100644 --- a/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go +++ b/pkg/clusterdeployment/binary/cleanupcluster/cleanupetcd.go @@ -21,6 +21,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/etcdcluster" "isula.org/eggo/pkg/utils" diff --git a/pkg/clusterdeployment/binary/commontools/copycacerts.go b/pkg/clusterdeployment/binary/commontools/copycacerts.go index d9f992d..0ef2815 100644 --- a/pkg/clusterdeployment/binary/commontools/copycacerts.go +++ b/pkg/clusterdeployment/binary/commontools/copycacerts.go @@ -20,6 +20,7 @@ import ( "path/filepath" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" ) diff --git a/pkg/clusterdeployment/binary/commontools/runshell.go b/pkg/clusterdeployment/binary/commontools/runshell.go index 266c488..92122ef 100644 --- a/pkg/clusterdeployment/binary/commontools/runshell.go +++ b/pkg/clusterdeployment/binary/commontools/runshell.go @@ -16,6 +16,7 @@ package commontools import ( "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" ) diff --git a/pkg/clusterdeployment/binary/commontools/systemdservices.go b/pkg/clusterdeployment/binary/commontools/systemdservices.go index 3b32e22..00ed557 100644 --- a/pkg/clusterdeployment/binary/commontools/systemdservices.go +++ b/pkg/clusterdeployment/binary/commontools/systemdservices.go @@ -19,6 +19,7 @@ import ( "fmt" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/runner" @@ -60,8 +61,8 @@ func SetupAPIServerService(r runner.Runner, ccfg *api.ClusterConfig, hcf *api.Ho "--requestheader-username-headers": "X-Remote-User", "--encryption-provider-config": "/etc/kubernetes/encryption-config.yaml", } - if ccfg.ControlPlane.ApiConf != nil { - for k, v := range ccfg.ControlPlane.ApiConf.ExtraArgs { + if ccfg.ControlPlane.APIConf != nil { + for k, v := range ccfg.ControlPlane.APIConf.ExtraArgs { defaultArgs[k] = v } } diff --git a/pkg/clusterdeployment/binary/controlplane/controlplane.go b/pkg/clusterdeployment/binary/controlplane/controlplane.go index 1f93e5e..31bdcef 100644 --- a/pkg/clusterdeployment/binary/controlplane/controlplane.go +++ b/pkg/clusterdeployment/binary/controlplane/controlplane.go @@ -26,6 +26,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" "isula.org/eggo/pkg/constants" @@ -193,9 +194,9 @@ func generateApiServerCertificate(savePath string, cg certs.CertGenerator, ccfg if ccfg.ServiceCluster.Gateway != "" { ips = append(ips, ccfg.ServiceCluster.Gateway) } - if ccfg.ControlPlane.ApiConf != nil { - ips = append(ips, ccfg.ControlPlane.ApiConf.CertSans.IPs...) - dnsnames = append(dnsnames, ccfg.ControlPlane.ApiConf.CertSans.DNSNames...) + if ccfg.ControlPlane.APIConf != nil { + ips = append(ips, ccfg.ControlPlane.APIConf.CertSans.IPs...) + dnsnames = append(dnsnames, ccfg.ControlPlane.APIConf.CertSans.DNSNames...) } if ccfg.LoadBalancer.IP != "" { ips = append(ips, ccfg.LoadBalancer.IP) @@ -435,7 +436,7 @@ resources: } fname := filepath.Join(savePath, constants.EncryptionConfigName) - return ioutil.WriteFile(fname, []byte(encryStr), 0600) + return ioutil.WriteFile(fname, []byte(encryStr), constants.EncryptionConfigFileMode) } func generateCertsAndKubeConfigs(r runner.Runner, ccfg *api.ClusterConfig, hcf *api.HostConfig) (err error) { diff --git a/pkg/clusterdeployment/binary/controlplane/controlplane_test.go b/pkg/clusterdeployment/binary/controlplane/controlplane_test.go index c4e6ab7..0a73c71 100644 --- a/pkg/clusterdeployment/binary/controlplane/controlplane_test.go +++ b/pkg/clusterdeployment/binary/controlplane/controlplane_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/nodemanager" diff --git a/pkg/clusterdeployment/binary/coredns/binarycoredns.go b/pkg/clusterdeployment/binary/coredns/binarycoredns.go index 411dba2..aa3fada 100644 --- a/pkg/clusterdeployment/binary/coredns/binarycoredns.go +++ b/pkg/clusterdeployment/binary/coredns/binarycoredns.go @@ -22,6 +22,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" "isula.org/eggo/pkg/constants" @@ -292,7 +293,7 @@ func (bc *BinaryCoredns) Setup(cluster *api.ClusterConfig) error { return err } - if err = nodemanager.WaitNodesFinish(masterIPs, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish(masterIPs, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Errorf("coredns setup failed: %v", err) return err } @@ -375,7 +376,7 @@ func (bc *BinaryCoredns) Cleanup(cluster *api.ClusterConfig) error { return nil } - if err = nodemanager.WaitNodesFinish(masterIPs, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish(masterIPs, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("wait to coredns cleanup failed: %v", err) return nil } @@ -414,7 +415,7 @@ func (bc *BinaryCoredns) JoinNode(nodeAddr string, cluster *api.ClusterConfig) e return err } - if err = nodemanager.WaitNodesFinish([]string{nodeAddr}, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish([]string{nodeAddr}, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Errorf("wait to coredns service running failed: %v", err) return err } @@ -431,7 +432,7 @@ func (bc *BinaryCoredns) JoinNode(nodeAddr string, cluster *api.ClusterConfig) e return err } - if err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Errorf("wait to join new coredns node failed: %v", err) return err } @@ -453,7 +454,7 @@ func (bc *BinaryCoredns) CleanNode(nodeAddr string, cluster *api.ClusterConfig) return nil } - if err = nodemanager.WaitNodesFinish([]string{nodeAddr}, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish([]string{nodeAddr}, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("wait to coredns cleanup failed: %v", err) return nil } diff --git a/pkg/clusterdeployment/binary/coredns/podcoredns.go b/pkg/clusterdeployment/binary/coredns/podcoredns.go index 28ae908..8b509bc 100644 --- a/pkg/clusterdeployment/binary/coredns/podcoredns.go +++ b/pkg/clusterdeployment/binary/coredns/podcoredns.go @@ -22,7 +22,9 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" + "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils/kubectl" "isula.org/eggo/pkg/utils/nodemanager" "isula.org/eggo/pkg/utils/runner" @@ -137,7 +139,7 @@ func (pc *PodCoredns) Setup(cluster *api.ClusterConfig) error { if err != nil { return err } - err = nodemanager.WaitNodesFinish([]string{useMaster}, 5*time.Minute) + err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes) if err != nil { return err } @@ -162,7 +164,7 @@ func (pc *PodCoredns) Cleanup(cluster *api.ClusterConfig) error { if err != nil { return err } - err = nodemanager.WaitNodesFinish([]string{useMaster}, 5*time.Minute) + err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes) if err != nil { return err } diff --git a/pkg/clusterdeployment/binary/etcdcluster/etcdcluster.go b/pkg/clusterdeployment/binary/etcdcluster/etcdcluster.go index 5444e77..d7d2f41 100644 --- a/pkg/clusterdeployment/binary/etcdcluster/etcdcluster.go +++ b/pkg/clusterdeployment/binary/etcdcluster/etcdcluster.go @@ -23,8 +23,10 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" + "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/nodemanager" "isula.org/eggo/pkg/utils/runner" @@ -155,7 +157,9 @@ func (t *EtcdPostDeployEtcdsTask) Run(r runner.Runner, hostConfig *api.HostConfi return nil } retry-- - time.Sleep(3 * time.Second) + + const etcdRetrySecond = 3 + time.Sleep(time.Second * etcdRetrySecond) } return fmt.Errorf("etcd %v healthcheck failed: %v", hostConfig.Name, err) @@ -244,7 +248,7 @@ func Init(conf *api.ClusterConfig) error { return fmt.Errorf("run task on nodes failed: %v", err) } - if err := nodemanager.WaitNodesFinish(nodes, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinish(nodes, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return fmt.Errorf("wait for deploy etcds task finish failed: %v", err) } @@ -258,7 +262,7 @@ func Init(conf *api.ClusterConfig) error { return fmt.Errorf("run task on nodes failed: %v", err) } - if err := nodemanager.WaitNodesFinish(nodes, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinish(nodes, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return fmt.Errorf("wait for post deploy etcds task finish failed: %v", err) } diff --git a/pkg/clusterdeployment/binary/etcdcluster/etcdcluster_test.go b/pkg/clusterdeployment/binary/etcdcluster/etcdcluster_test.go index f19394a..74ced0f 100644 --- a/pkg/clusterdeployment/binary/etcdcluster/etcdcluster_test.go +++ b/pkg/clusterdeployment/binary/etcdcluster/etcdcluster_test.go @@ -24,6 +24,7 @@ import ( "testing" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/nodemanager" diff --git a/pkg/clusterdeployment/binary/etcdcluster/etcdjoin.go b/pkg/clusterdeployment/binary/etcdcluster/etcdjoin.go index 97be436..f86499f 100644 --- a/pkg/clusterdeployment/binary/etcdcluster/etcdjoin.go +++ b/pkg/clusterdeployment/binary/etcdcluster/etcdjoin.go @@ -20,6 +20,7 @@ import ( "time" "isula.org/eggo/pkg/api" + "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils/nodemanager" "isula.org/eggo/pkg/utils/task" ) @@ -48,7 +49,8 @@ func AddMember(conf *api.ClusterConfig, hostconfig *api.HostConfig) error { return fmt.Errorf("run task on nodes failed: %v", err) } - if err := nodemanager.WaitNodesFinish([]string{hostconfig.Address}, 5*time.Minute); err != nil { + if err := nodemanager.WaitNodesFinish([]string{hostconfig.Address}, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return fmt.Errorf("wait for post deploy etcds task finish failed: %v", err) } diff --git a/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go b/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go index 9757997..df2cf5c 100644 --- a/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go +++ b/pkg/clusterdeployment/binary/etcdcluster/etcdreconfig.go @@ -21,6 +21,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/nodemanager" @@ -229,7 +230,9 @@ func addEtcd(r runner.Runner, certDir string, name string, ip string) (string, e return output, nil } retry-- - time.Sleep(3 * time.Second) + + const etcdRetrySecond = 3 + time.Sleep(time.Second * etcdRetrySecond) } logrus.Errorf("add etcd %v failed: %v\noutput: %v", name, err, output) return "", err diff --git a/pkg/clusterdeployment/binary/infrastructure/firewall.go b/pkg/clusterdeployment/binary/infrastructure/firewall.go index 81bf7c5..4660cab 100644 --- a/pkg/clusterdeployment/binary/infrastructure/firewall.go +++ b/pkg/clusterdeployment/binary/infrastructure/firewall.go @@ -21,6 +21,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/runner" diff --git a/pkg/clusterdeployment/binary/infrastructure/infrastructure_test.go b/pkg/clusterdeployment/binary/infrastructure/infrastructure_test.go index c9e0946..4ffa7a9 100644 --- a/pkg/clusterdeployment/binary/infrastructure/infrastructure_test.go +++ b/pkg/clusterdeployment/binary/infrastructure/infrastructure_test.go @@ -20,6 +20,7 @@ import ( "testing" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/dependency" "isula.org/eggo/pkg/utils/nodemanager" diff --git a/pkg/clusterdeployment/binary/loadbalance/loadbalance.go b/pkg/clusterdeployment/binary/loadbalance/loadbalance.go index 34c25bd..f059372 100644 --- a/pkg/clusterdeployment/binary/loadbalance/loadbalance.go +++ b/pkg/clusterdeployment/binary/loadbalance/loadbalance.go @@ -22,6 +22,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" "isula.org/eggo/pkg/utils" diff --git a/pkg/clusterdeployment/binary/network/network.go b/pkg/clusterdeployment/binary/network/network.go index 0c35a9c..c88f28a 100644 --- a/pkg/clusterdeployment/binary/network/network.go +++ b/pkg/clusterdeployment/binary/network/network.go @@ -20,6 +20,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils/kubectl" @@ -79,7 +80,7 @@ func SetupNetwork(cluster *api.ClusterConfig) error { if err != nil { return err } - err = nodemanager.WaitNodesFinish([]string{useMaster}, 5*time.Minute) + err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes) if err != nil { return err } @@ -133,7 +134,7 @@ func CleanupNetwork(cluster *api.ClusterConfig) error { if err != nil { return err } - err = nodemanager.WaitNodesFinish([]string{useMaster}, 5*time.Minute) + err = nodemanager.WaitNodesFinish([]string{useMaster}, time.Minute*constants.DefaultTaskWaitMinutes) if err != nil { return err } diff --git a/pkg/clusterdeployment/clusterdeploy.go b/pkg/clusterdeployment/clusterdeploy.go index fde1fde..1ecf46f 100644 --- a/pkg/clusterdeployment/clusterdeploy.go +++ b/pkg/clusterdeployment/clusterdeploy.go @@ -22,9 +22,11 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" _ "isula.org/eggo/pkg/clusterdeployment/binary" "isula.org/eggo/pkg/clusterdeployment/manager" + "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" "isula.org/eggo/pkg/utils/certs" "isula.org/eggo/pkg/utils/nodemanager" @@ -98,7 +100,8 @@ func doJoinNodeOfCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig joinedNodeIDs = append(joinedNodeIDs, node.Address) } // wait all nodes ready - if err := nodemanager.WaitNodesFinishWithProgress(joinedNodeIDs, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinishWithProgress(joinedNodeIDs, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { tFailedNodes, successNodes := nodemanager.CheckNodesStatus(joinedNodeIDs) // update joined and failed nodes failedNodes = append(failedNodes, tFailedNodes...) @@ -149,7 +152,8 @@ func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, cs // Step3: setup etcd cluster // wait infrastructure task success on nodes of etcd cluster - if err = nodemanager.WaitNodesFinishWithProgress(etcdNodes, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinishWithProgress(etcdNodes, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return nil, err } if err = handler.EtcdClusterSetup(); err != nil { @@ -166,7 +170,8 @@ func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, cs return nil, err } // wait controlplane setup task success - if err = nodemanager.WaitNodesFinish([]string{controlPlaneNode.Address}, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish([]string{controlPlaneNode.Address}, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return nil, err } if utils.IsType(controlPlaneNode.Type, api.Worker) { @@ -195,7 +200,8 @@ func doCreateCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, cs return nil, err } - if err = nodemanager.WaitNodesFinishWithProgress(append(joinedNodeIDs, controlPlaneNode.Address), time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinishWithProgress(append(joinedNodeIDs, controlPlaneNode.Address), + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return nil, err } @@ -229,7 +235,8 @@ func rollbackFailedNoeds(handler api.ClusterDeploymentAPI, nodes []*api.HostConf rollIDs = append(rollIDs, n.Address) } - if err := nodemanager.WaitNodesFinishWithProgress(rollIDs, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinishWithProgress(rollIDs, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("rollback failed: %v", err) } } @@ -255,7 +262,7 @@ func CreateCluster(cc *api.ClusterConfig, deployEnableRollback bool) (api.Cluste defer handler.Finish() // prepare eggo config directory - if err := os.MkdirAll(api.GetClusterHomePath(cc.Name), 0750); err != nil { + if err = os.MkdirAll(api.GetClusterHomePath(cc.Name), constants.EggoHomeDirMode); err != nil { return cstatus, err } @@ -302,7 +309,8 @@ func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostcon } // wait infrastructure task success on node - if err := nodemanager.WaitNodesFinish([]string{hostconfig.Address}, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinish([]string{hostconfig.Address}, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return err } @@ -325,7 +333,8 @@ func doJoinNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, hostcon } // wait node ready - if err := nodemanager.WaitNodesFinishWithProgress([]string{hostconfig.Address}, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinishWithProgress([]string{hostconfig.Address}, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { return err } @@ -471,7 +480,8 @@ func doDeleteNode(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig, h *ap return err } - if err := nodemanager.WaitNodesFinishWithProgress([]string{h.Address}, time.Minute*5); err != nil { + if err := nodemanager.WaitNodesFinishWithProgress([]string{h.Address}, + time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("wait cleanup finish failed: %v", err) } @@ -511,7 +521,7 @@ func DeleteNodes(cc *api.ClusterConfig, hostconfigs []*api.HostConfig) error { for _, h := range nodes { go func(hostconfig *api.HostConfig) { defer wg.Done() - if err := doDeleteNode(handler, cc, hostconfig); err != nil { + if terr := doDeleteNode(handler, cc, hostconfig); terr != nil { logrus.Errorf("[cluster] delete '%s' from cluster failed", hostconfig.Name) return } @@ -522,7 +532,7 @@ func DeleteNodes(cc *api.ClusterConfig, hostconfigs []*api.HostConfig) error { // delete node with etcds for _, h := range etcds { - if err := doDeleteNode(handler, cc, h); err != nil { + if err = doDeleteNode(handler, cc, h); err != nil { logrus.Errorf("[cluster] delete '%s' with etcd from cluster failed", h.Name) return err } @@ -543,7 +553,7 @@ func doRemoveCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) { } allNodes := utils.GetAllIPs(cc.Nodes) - if err = nodemanager.WaitNodesFinish(allNodes, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinish(allNodes, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("[cluster] wait cleanup addons failed: %v", err) } @@ -603,7 +613,7 @@ func doRemoveCluster(handler api.ClusterDeploymentAPI, cc *api.ClusterConfig) { } } - if err = nodemanager.WaitNodesFinishWithProgress(allNodes, time.Minute*5); err != nil { + if err = nodemanager.WaitNodesFinishWithProgress(allNodes, time.Minute*constants.DefaultTaskWaitMinutes); err != nil { logrus.Warnf("[cluster] wait all cleanup finish failed: %v", err) } } diff --git a/pkg/clusterdeployment/runtime/runtime.go b/pkg/clusterdeployment/runtime/runtime.go index e996dae..f8cc424 100644 --- a/pkg/clusterdeployment/runtime/runtime.go +++ b/pkg/clusterdeployment/runtime/runtime.go @@ -6,6 +6,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/clusterdeployment/binary/commontools" "isula.org/eggo/pkg/utils/dependency" diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index c60d061..0ab75cc 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -1,5 +1,7 @@ package constants +import "os" + const ( // certificates relate constants DefaultK8SRootDir = "/etc/kubernetes" @@ -30,6 +32,14 @@ const ( NetworkPluginArgKeyYamlPath = "NetworkYamlPath" MaxHookFileSize = int64(1 << 20) - // 750: rwxr-x--- - HookFileMode = uint32(0750) + + HookFileMode os.FileMode = 0750 + EggoHomeDirMode os.FileMode = 0750 + EggoDirMode os.FileMode = 0700 + DeployConfigFileMode os.FileMode = 0640 + ProcessFileMode os.FileMode = 0640 + EncryptionConfigFileMode os.FileMode = 0600 + + // default task wait time in minute + DefaultTaskWaitMinutes = 5 ) diff --git a/pkg/utils/certs/approvecsr.go b/pkg/utils/certs/approvecsr.go index dfebbee..d4f81a4 100644 --- a/pkg/utils/certs/approvecsr.go +++ b/pkg/utils/certs/approvecsr.go @@ -24,15 +24,16 @@ import ( "time" "github.com/sirupsen/logrus" - "isula.org/eggo/pkg/api" - "isula.org/eggo/pkg/constants" - "isula.org/eggo/pkg/utils/kubectl" certificatesv1 "k8s.io/api/certificates/v1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/util/cert" + + "isula.org/eggo/pkg/api" + "isula.org/eggo/pkg/constants" + "isula.org/eggo/pkg/utils/kubectl" ) type ServingCSR interface { @@ -309,7 +310,8 @@ func ApproveCsr(cluster string, workers []*api.HostConfig) error { } // maybe the serving csr hasn't received - time.Sleep(time.Duration(10) * time.Second) + const approvedIntervalSeconds = 3 + time.Sleep(time.Second * approvedIntervalSeconds) } if !approved { diff --git a/pkg/utils/certs/certs.go b/pkg/utils/certs/certs.go index e57cfe8..0772679 100644 --- a/pkg/utils/certs/certs.go +++ b/pkg/utils/certs/certs.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/template" ) diff --git a/pkg/utils/certs/localcerts.go b/pkg/utils/certs/localcerts.go index d613ea9..c6b2fc1 100644 --- a/pkg/utils/certs/localcerts.go +++ b/pkg/utils/certs/localcerts.go @@ -14,11 +14,16 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" - "isula.org/eggo/pkg/utils/runner" "k8s.io/client-go/tools/clientcmd" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" certutil "k8s.io/client-go/util/cert" keyutil "k8s.io/client-go/util/keyutil" + + "isula.org/eggo/pkg/utils/runner" +) + +const ( + certExpiryHour = 24 * 36500 ) type LocalCertGenerator struct { @@ -151,7 +156,7 @@ func (l *LocalCertGenerator) CreateCertAndKey(caCertPath, caKeyPath string, conf KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageKeyEncipherment | x509.KeyUsageDataEncipherment, ExtKeyUsage: config.Usages, NotBefore: caCert.NotBefore, - NotAfter: time.Now().Add(time.Hour * 24 * 36500).UTC(), + NotAfter: time.Now().Add(time.Hour * certExpiryHour).UTC(), } certBytes, err := x509.CreateCertificate(rand.Reader, &certConf, caCert, signer.Public(), caKey) diff --git a/pkg/utils/certs/tools.go b/pkg/utils/certs/tools.go index 24cbc04..d18b7fd 100644 --- a/pkg/utils/certs/tools.go +++ b/pkg/utils/certs/tools.go @@ -16,6 +16,10 @@ import ( keyutil "k8s.io/client-go/util/keyutil" ) +const ( + keyBits = 4096 +) + func GetCertName(name string) string { return fmt.Sprintf("%s.crt", name) } @@ -29,7 +33,7 @@ func GetKeySigner(alg x509.PublicKeyAlgorithm) (crypto.Signer, error) { return ecdsa.GenerateKey(elliptic.P256(), rand.Reader) } - return rsa.GenerateKey(rand.Reader, 4096) + return rsa.GenerateKey(rand.Reader, keyBits) } func ParseIPsFromString(ipStrs []string) ([]net.IP, error) { diff --git a/pkg/utils/dependency/cmdhooks.go b/pkg/utils/dependency/cmdhooks.go index e6fd9af..b1f93ad 100644 --- a/pkg/utils/dependency/cmdhooks.go +++ b/pkg/utils/dependency/cmdhooks.go @@ -20,6 +20,7 @@ import ( "path" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" @@ -75,7 +76,7 @@ func ExecuteCmdHooks(ccfg *api.ClusterConfig, nodes []*api.HostConfig, op api.Ho func executeCmdHooks(ccfg *api.ClusterConfig, hooks *api.ClusterHookConf, hcf *api.HostConfig, shell []*api.PackageConfig) error { hookConf := &api.HookRunConfig{ ClusterID: ccfg.Name, - ClusterApiEndpoint: ccfg.APIEndpoint.GetUrl(), + ClusterAPIEndpoint: ccfg.APIEndpoint.GetURL(), ClusterConfigDir: ccfg.ConfigDir, HookType: hooks.Type, Operator: hooks.Operator, diff --git a/pkg/utils/dependency/dependency.go b/pkg/utils/dependency/dependency.go index 9b464dd..ce4a7ca 100644 --- a/pkg/utils/dependency/dependency.go +++ b/pkg/utils/dependency/dependency.go @@ -20,6 +20,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/template" diff --git a/pkg/utils/dependency/dependency_test.go b/pkg/utils/dependency/dependency_test.go index 58ea756..c50a6fc 100644 --- a/pkg/utils/dependency/dependency_test.go +++ b/pkg/utils/dependency/dependency_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" ) diff --git a/pkg/utils/dependency/install.go b/pkg/utils/dependency/install.go index 35c3521..62437b7 100644 --- a/pkg/utils/dependency/install.go +++ b/pkg/utils/dependency/install.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils" @@ -176,9 +177,11 @@ func ExecuteHooks(hookConf *api.HookRunConfig) error { srcPath: hookConf.HookDir, shell: hookConf.Hooks, } - envs := make([]string, 9) + + const envsSize = 9 + envs := make([]string, envsSize) envs[0] = fmt.Sprintf("EGGO_CLUSTER_ID=%s", hookConf.ClusterID) - envs[1] = fmt.Sprintf("EGGO_CLUSTER_API_ENDPOINT=%s", hookConf.ClusterApiEndpoint) + envs[1] = fmt.Sprintf("EGGO_CLUSTER_API_ENDPOINT=%s", hookConf.ClusterAPIEndpoint) envs[2] = fmt.Sprintf("EGGO_CLUSTER_CONFIG_DIR=%s", hookConf.ClusterConfigDir) envs[3] = fmt.Sprintf("EGGO_NODE_IP=%s", hookConf.Node.Address) envs[4] = fmt.Sprintf("EGGO_NODE_NAME=%s", hookConf.Node.Name) @@ -220,7 +223,7 @@ func executeShell(ccfg *api.ClusterConfig, role uint16, hcf *api.HostConfig, sch hookConf := &api.HookRunConfig{ ClusterID: ccfg.Name, - ClusterApiEndpoint: ccfg.APIEndpoint.GetUrl(), + ClusterAPIEndpoint: ccfg.APIEndpoint.GetURL(), ClusterConfigDir: ccfg.ConfigDir, HookType: htype, Operator: oper, diff --git a/pkg/utils/endpoint/endpoint.go b/pkg/utils/endpoint/endpoint.go index a2b82d3..17c4dcc 100644 --- a/pkg/utils/endpoint/endpoint.go +++ b/pkg/utils/endpoint/endpoint.go @@ -27,13 +27,16 @@ import ( ) const ( - DefaultEndpointPort = 6443 + defaultEndpointPort = 6443 + + parseBase = 10 + parsebitSize = 16 ) func GetEndpoint(advertiseAddr string, bindPort int) (string, error) { if !ValidPort(bindPort) { - bindPort = DefaultEndpointPort - logrus.Warnf("ignore invalid bindport: %d, use default: %d", bindPort, DefaultEndpointPort) + bindPort = defaultEndpointPort + logrus.Warnf("ignore invalid bindport: %d, use default: %d", bindPort, defaultEndpointPort) } if ip := net.ParseIP(advertiseAddr); ip == nil { @@ -52,7 +55,7 @@ func ValidPort(port int) bool { } func ParsePort(port string) (int, error) { - tport, err := strconv.ParseUint(port, 10, 16) + tport, err := strconv.ParseUint(port, parseBase, parsebitSize) if err != nil { return 0, err } @@ -77,7 +80,7 @@ func GetAPIServerEndpoint(ccfg *api.ClusterConfig) (string, error) { return "", fmt.Errorf("invalid host") } if sport == "" { - sport = strconv.Itoa(DefaultEndpointPort) + sport = strconv.Itoa(defaultEndpointPort) } port, err := ParsePort(sport) diff --git a/pkg/utils/infra/infra.go b/pkg/utils/infra/infra.go index 2b36e2a..0addf5d 100644 --- a/pkg/utils/infra/infra.go +++ b/pkg/utils/infra/infra.go @@ -110,7 +110,7 @@ var ( } // coredns - DnsPackages = []*api.PackageConfig{ + DNSPackages = []*api.PackageConfig{ { Name: "coredns", Type: "repo", diff --git a/pkg/utils/kubectl/kubectl.go b/pkg/utils/kubectl/kubectl.go index b299a2a..057815a 100644 --- a/pkg/utils/kubectl/kubectl.go +++ b/pkg/utils/kubectl/kubectl.go @@ -22,13 +22,14 @@ import ( "time" "github.com/sirupsen/logrus" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/constants" "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/template" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/clientcmd" ) var ops map[string]string @@ -109,7 +110,8 @@ func WaitNodeRegister(name string, cluster string) error { return err } - finish := time.After(time.Second * 120) + const timeout = 120 + finish := time.After(time.Second * timeout) for { select { case t := <-finish: diff --git a/pkg/utils/kubectl/taint.go b/pkg/utils/kubectl/taint.go index a6af75b..fc9521e 100644 --- a/pkg/utils/kubectl/taint.go +++ b/pkg/utils/kubectl/taint.go @@ -6,12 +6,13 @@ import ( "path/filepath" "github.com/sirupsen/logrus" - "isula.org/eggo/pkg/api" - "isula.org/eggo/pkg/constants" k8scorev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/strategicpatch" + + "isula.org/eggo/pkg/api" + "isula.org/eggo/pkg/constants" ) type Taint struct { diff --git a/pkg/utils/nodemanager/node.go b/pkg/utils/nodemanager/node.go index 08af098..5474719 100644 --- a/pkg/utils/nodemanager/node.go +++ b/pkg/utils/nodemanager/node.go @@ -22,18 +22,26 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/task" ) const ( + // status WorkingStatus = iota FinishStatus IgnoreStatus ErrorStatus ) +const ( + nodeQueueCapability = 16 + runTaskTimeOutSecond = 300 + waitTaskMillisecond = 200 +) + type NodeStatus struct { Status int Message string @@ -115,7 +123,7 @@ func (n *Node) WaitNodeTasksFinish(timeout time.Duration) error { msg := s.Message n.lock.RUnlock() if !s.TasksFinished() { - time.Sleep(time.Millisecond * 200) + time.Sleep(time.Millisecond * waitTaskMillisecond) continue } if s.HasError() { @@ -177,7 +185,7 @@ func doRunTask(n *Node, t task.Task) { go func(ec chan error) { select { // TODO: maybe we need get timeout from task - case <-time.After(time.Second * 300): + case <-time.After(time.Second * runTaskTimeOutSecond): ec <- fmt.Errorf("timeout to run task") case ec <- t.Run(n.r, n.host): } @@ -212,7 +220,7 @@ func NewNode(hcf *api.HostConfig, r runner.Runner) (*Node, error) { host: hcf, r: r, stop: make(chan bool), - queue: make(chan task.Task, 16), + queue: make(chan task.Task, nodeQueueCapability), } go func(n *Node) { diff --git a/pkg/utils/nodemanager/nodemanager.go b/pkg/utils/nodemanager/nodemanager.go index 5fff50e..b3a80e7 100644 --- a/pkg/utils/nodemanager/nodemanager.go +++ b/pkg/utils/nodemanager/nodemanager.go @@ -22,6 +22,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/task" @@ -148,6 +149,8 @@ func RunTaskOnAll(t task.Task) error { } func RunTasksOnNode(tasks []task.Task, node string) error { + const pushTaskInterval = 6 + manager.lock.Lock() defer manager.lock.Unlock() @@ -158,7 +161,7 @@ func RunTasksOnNode(tasks []task.Task, node string) error { if n.PushTask(t) { break } - time.Sleep(time.Second * 6) + time.Sleep(time.Second * pushTaskInterval) } if i == 5 { logrus.Errorf("node: %s work with too much tasks, will retry it", node) diff --git a/pkg/utils/nodemanager/nodemanager_test.go b/pkg/utils/nodemanager/nodemanager_test.go index 52ad91c..cbd46db 100644 --- a/pkg/utils/nodemanager/nodemanager_test.go +++ b/pkg/utils/nodemanager/nodemanager_test.go @@ -22,6 +22,7 @@ import ( "time" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" "isula.org/eggo/pkg/utils/runner" "isula.org/eggo/pkg/utils/task" diff --git a/pkg/utils/runner/runner.go b/pkg/utils/runner/runner.go index 09c9e1d..7b54730 100644 --- a/pkg/utils/runner/runner.go +++ b/pkg/utils/runner/runner.go @@ -29,6 +29,7 @@ import ( kkv1alpha1 "github.com/kubesphere/kubekey/apis/kubekey/v1alpha1" "github.com/kubesphere/kubekey/pkg/util/ssh" "github.com/sirupsen/logrus" + "isula.org/eggo/pkg/api" ) -- 2.25.1
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2