This is an automated email from the ASF dual-hosted git repository. membphis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
The following commit(s) were added to refs/heads/master by this push: new d43c510 ci: add lint-checker-ci, `gofmt` (#93) d43c510 is described below commit d43c510357c804b93cc057cd13114dcfb595c245 Author: Alex Zhang <zchao1...@gmail.com> AuthorDate: Mon Dec 14 17:42:33 2020 +0800 ci: add lint-checker-ci, `gofmt` (#93) --- .github/workflows/lint-checker.yml | 28 ++++++++++++ Makefile | 4 ++ conf/errno.go | 36 ++++++++-------- conf/init.go | 81 +++++++++++++++++------------------ log/log.go | 4 +- main.go | 6 +-- pkg/ingress/apisix/annotation.go | 4 +- pkg/ingress/apisix/plugin.go | 12 +++--- pkg/ingress/apisix/route.go | 2 +- pkg/ingress/apisix/service.go | 2 +- pkg/ingress/apisix/upstream.go | 6 +-- pkg/ingress/controller/controller.go | 12 +++--- pkg/ingress/controller/endpoint.go | 2 +- pkg/ingress/controller/store/store.go | 1 - pkg/ingress/controller/watch.go | 42 +++++++++--------- pkg/route.go | 18 ++++---- 16 files changed, 145 insertions(+), 115 deletions(-) diff --git a/.github/workflows/lint-checker.yml b/.github/workflows/lint-checker.yml new file mode 100644 index 0000000..c03cc19 --- /dev/null +++ b/.github/workflows/lint-checker.yml @@ -0,0 +1,28 @@ +name: lint-checker-ci + +on: + push: + branches: + - master + - chore/gofmt + pull_request: + branches: + - master +jobs: + run-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: setup go + uses: actions/setup-go@v1 + with: + go-version: '1.13' + - name: run gofmt + working-directory: ./ + run: | + diffs=`gofmt -l .` + if [[ -n $diffs ]]; then + echo "Files are not formatted by gofmt:" + echo $diffs + exit 1 + fi diff --git a/Makefile b/Makefile index 8df39d0..b1d54e1 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,10 @@ build: lint: golangci-lint run +### gofmt: Format all go codes +gofmt: + find . -type f -name "*.go" | xargs gofmt -w -s + ### unit-test: Run unit test cases unit-test: go test -cover -coverprofile=coverage.txt ./... diff --git a/conf/errno.go b/conf/errno.go index 2a01cef..92f2bdb 100644 --- a/conf/errno.go +++ b/conf/errno.go @@ -1,17 +1,17 @@ - // Licensed to the Apache Software Foundation (ASF) under one or more - // contributor license agreements. See the NOTICE file distributed with - // this work for additional information regarding copyright ownership. - // The ASF licenses this file to You under the Apache License, Version 2.0 - // (the "License"); you may not use this file except in compliance with - // the License. You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package conf import "fmt" @@ -29,10 +29,10 @@ var ( //BB 01表示更新失败 UpdateUpstreamNodesError = Message{"010101", "服务%s节点更新失败"} AddUpstreamError = Message{"010102", "增加upstream %s失败"} - AddUpstreamJsonError = Message{"010103", "upstream %s json trans error"} + AddUpstreamJsonError = Message{"010103", "upstream %s json trans error"} ) -func (m Message) ToString(params ...interface{}) string{ +func (m Message) ToString(params ...interface{}) string { params = append(params, m.Code) - return fmt.Sprintf(m.Msg + " error_code:%s", params...) -} \ No newline at end of file + return fmt.Sprintf(m.Msg+" error_code:%s", params...) +} diff --git a/conf/init.go b/conf/init.go index b088872..6105b48 100644 --- a/conf/init.go +++ b/conf/init.go @@ -1,52 +1,53 @@ - // Licensed to the Apache Software Foundation (ASF) under one or more - // contributor license agreements. See the NOTICE file distributed with - // this work for additional information regarding copyright ownership. - // The ASF licenses this file to You under the Apache License, Version 2.0 - // (the "License"); you may not use this file except in compliance with - // the License. You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package conf import ( - coreinformers "k8s.io/client-go/informers/core/v1" - restclient "k8s.io/client-go/rest" + "fmt" clientSet "github.com/gxthrj/apisix-ingress-types/pkg/client/clientset/versioned" seven "github.com/gxthrj/seven/conf" - "k8s.io/client-go/tools/clientcmd" - "k8s.io/client-go/kubernetes" + "github.com/tidwall/gjson" + "io/ioutil" "k8s.io/client-go/informers" + coreinformers "k8s.io/client-go/informers/core/v1" + "k8s.io/client-go/kubernetes" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "os" "path/filepath" - "io/ioutil" - "fmt" - "github.com/tidwall/gjson" "runtime" ) var ( - ENV string - basePath string - ADMIN_URL = os.Getenv("APISIX_ADMIN_INTERNAL") - HOSTNAME = os.Getenv("HOSTNAME") - LOCAL_ADMIN_URL = "" - podInformer coreinformers.PodInformer - svcInformer coreinformers.ServiceInformer - nsInformer coreinformers.NamespaceInformer + ENV string + basePath string + ADMIN_URL = os.Getenv("APISIX_ADMIN_INTERNAL") + HOSTNAME = os.Getenv("HOSTNAME") + LOCAL_ADMIN_URL = "" + podInformer coreinformers.PodInformer + svcInformer coreinformers.ServiceInformer + nsInformer coreinformers.NamespaceInformer EndpointsInformer coreinformers.EndpointsInformer - IsLeader = false + IsLeader = false //etcdClient client.Client - kubeClient kubernetes.Interface + kubeClient kubernetes.Interface CoreSharedInformerFactory informers.SharedInformerFactory injectedConfPath string ) + const PROD = "prod" const HBPROD = "hb-prod" const BETA = "beta" @@ -130,8 +131,7 @@ type syslog struct { // return client.NewKeysAPI(etcdClient) //} - -func GetURL() string{ +func GetURL() string { if ADMIN_URL != "" { return ADMIN_URL } else { @@ -139,19 +139,19 @@ func GetURL() string{ } } -func GetPodInformer() coreinformers.PodInformer{ +func GetPodInformer() coreinformers.PodInformer { return podInformer } -func GetSvcInformer() coreinformers.ServiceInformer{ +func GetSvcInformer() coreinformers.ServiceInformer { return svcInformer } -func GetNsInformer() coreinformers.NamespaceInformer{ +func GetNsInformer() coreinformers.NamespaceInformer { return nsInformer } -func GetKubeClient() kubernetes.Interface{ +func GetKubeClient() kubernetes.Interface { return kubeClient } @@ -173,8 +173,8 @@ func InitKubeClient() kubernetes.Interface { return k8sClient } -func InitApisixClient() clientSet.Interface{ - apisixRouteClientset, err:= clientSet.NewForConfig(config) +func InitApisixClient() clientSet.Interface { + apisixRouteClientset, err := clientSet.NewForConfig(config) ExceptNilErr(err) return apisixRouteClientset } @@ -210,7 +210,7 @@ func InitInformer() { //return podInformer, svcInformer, nsInformer } -func ExceptNilErr(err error) { +func ExceptNilErr(err error) { if err != nil { panic(err) } @@ -260,4 +260,3 @@ func ExceptNilErr(err error) { //type LevelSpec struct { // Pod []string `json:"pod"` //} - diff --git a/log/log.go b/log/log.go index 2ac2801..d4a9e57 100644 --- a/log/log.go +++ b/log/log.go @@ -17,12 +17,12 @@ package log import ( "bufio" "fmt" + "github.com/api7/ingress-controller/conf" "github.com/sirupsen/logrus" "log/syslog" "os" "runtime" "strings" - "github.com/api7/ingress-controller/conf" ) var logEntry *logrus.Entry @@ -122,7 +122,7 @@ func (hook *SysLogHook) Fire(entry *logrus.Entry) error { } func localPrint(line string) { - if conf.ENV != conf.BETA && conf.ENV != conf.PROD && conf.ENV != conf.HBPROD{ + if conf.ENV != conf.BETA && conf.ENV != conf.PROD && conf.ENV != conf.HBPROD { fmt.Print(line) } } diff --git a/main.go b/main.go index 2ab11ec..1633471 100644 --- a/main.go +++ b/main.go @@ -14,9 +14,9 @@ // limitations under the License. package main - import ( - "fmt" - "os" +import ( + "fmt" + "os" "github.com/api7/ingress-controller/cmd" "github.com/api7/ingress-controller/conf" diff --git a/pkg/ingress/apisix/annotation.go b/pkg/ingress/apisix/annotation.go index c6c434f..cead443 100644 --- a/pkg/ingress/apisix/annotation.go +++ b/pkg/ingress/apisix/annotation.go @@ -15,13 +15,13 @@ package apisix import ( - "strconv" apisix "github.com/gxthrj/apisix-types/pkg/apis/apisix/v1" seven "github.com/gxthrj/seven/apisix" + "strconv" ) // BuildAnnotation return plugins and group -func BuildAnnotation(annotations map[string]string) (apisix.Plugins, string){ +func BuildAnnotation(annotations map[string]string) (apisix.Plugins, string) { plugins := make(apisix.Plugins) cors := &CorsYaml{} // ingress.class diff --git a/pkg/ingress/apisix/plugin.go b/pkg/ingress/apisix/plugin.go index ce4220c..4feb097 100644 --- a/pkg/ingress/apisix/plugin.go +++ b/pkg/ingress/apisix/plugin.go @@ -15,8 +15,8 @@ package apisix import ( - "strconv" "github.com/gxthrj/seven/apisix" + "strconv" ) type CorsYaml struct { @@ -26,7 +26,7 @@ type CorsYaml struct { AllowMethods string `json:"allow_methods,omitempty"` } -func (c *CorsYaml) SetEnable(enable string){ +func (c *CorsYaml) SetEnable(enable string) { if b, err := strconv.ParseBool(enable); err != nil { c.Enable = false } else { @@ -34,18 +34,18 @@ func (c *CorsYaml) SetEnable(enable string){ } } -func (c *CorsYaml) SetOrigin(origin string){ +func (c *CorsYaml) SetOrigin(origin string) { c.AllowOrigin = origin } -func (c *CorsYaml) SetHeaders(headers string){ +func (c *CorsYaml) SetHeaders(headers string) { c.AllowHeaders = headers } -func (c *CorsYaml) SetMethods(methods string){ +func (c *CorsYaml) SetMethods(methods string) { c.AllowMethods = methods } -func (c *CorsYaml) Build() *apisix.Cors{ +func (c *CorsYaml) Build() *apisix.Cors { maxAge := int64(3600) return apisix.BuildCors(c.Enable, &c.AllowOrigin, &c.AllowHeaders, &c.AllowMethods, &maxAge) } diff --git a/pkg/ingress/apisix/route.go b/pkg/ingress/apisix/route.go index 15f9ab2..fe4d0aa 100644 --- a/pkg/ingress/apisix/route.go +++ b/pkg/ingress/apisix/route.go @@ -15,10 +15,10 @@ package apisix import ( + "github.com/api7/ingress-controller/pkg/ingress/endpoint" ingress "github.com/gxthrj/apisix-ingress-types/pkg/apis/config/v1" apisix "github.com/gxthrj/apisix-types/pkg/apis/apisix/v1" "github.com/gxthrj/seven/conf" - "github.com/api7/ingress-controller/pkg/ingress/endpoint" "strconv" ) diff --git a/pkg/ingress/apisix/service.go b/pkg/ingress/apisix/service.go index 389f131..b3e00b9 100644 --- a/pkg/ingress/apisix/service.go +++ b/pkg/ingress/apisix/service.go @@ -15,10 +15,10 @@ package apisix import ( + "github.com/api7/ingress-controller/pkg/ingress/endpoint" ingress "github.com/gxthrj/apisix-ingress-types/pkg/apis/config/v1" apisix "github.com/gxthrj/apisix-types/pkg/apis/apisix/v1" "github.com/gxthrj/seven/conf" - "github.com/api7/ingress-controller/pkg/ingress/endpoint" "strconv" ) diff --git a/pkg/ingress/apisix/upstream.go b/pkg/ingress/apisix/upstream.go index cd39452..c5c08e6 100644 --- a/pkg/ingress/apisix/upstream.go +++ b/pkg/ingress/apisix/upstream.go @@ -15,10 +15,10 @@ package apisix import ( + "github.com/api7/ingress-controller/pkg/ingress/endpoint" ingress "github.com/gxthrj/apisix-ingress-types/pkg/apis/config/v1" apisix "github.com/gxthrj/apisix-types/pkg/apis/apisix/v1" "github.com/gxthrj/seven/conf" - "github.com/api7/ingress-controller/pkg/ingress/endpoint" "strconv" ) @@ -30,9 +30,9 @@ const ( //type ApisixUpstreamCRD ingress.ApisixUpstream -type ApisixUpstreamBuilder struct{ +type ApisixUpstreamBuilder struct { CRD *ingress.ApisixUpstream - Ep endpoint.Endpoint + Ep endpoint.Endpoint } // Convert convert to apisix.Route from ingress.ApisixRoute CRD diff --git a/pkg/ingress/controller/controller.go b/pkg/ingress/controller/controller.go index af9a1d9..ecaee5e 100644 --- a/pkg/ingress/controller/controller.go +++ b/pkg/ingress/controller/controller.go @@ -15,12 +15,12 @@ package controller import ( + "github.com/api7/ingress-controller/log" "github.com/golang/glog" clientSet "github.com/gxthrj/apisix-ingress-types/pkg/client/clientset/versioned" "github.com/gxthrj/apisix-ingress-types/pkg/client/informers/externalversions" - "github.com/api7/ingress-controller/log" - "k8s.io/client-go/kubernetes" "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes" ) var logger = log.GetLogger() @@ -33,11 +33,11 @@ func recoverException() { } type Api6Controller struct { - KubeClientSet kubernetes.Interface - Api6ClientSet clientSet.Interface - SharedInformerFactory externalversions.SharedInformerFactory + KubeClientSet kubernetes.Interface + Api6ClientSet clientSet.Interface + SharedInformerFactory externalversions.SharedInformerFactory CoreSharedInformerFactory informers.SharedInformerFactory - Stop chan struct{} + Stop chan struct{} } func (api6 *Api6Controller) ApisixRoute() { diff --git a/pkg/ingress/controller/endpoint.go b/pkg/ingress/controller/endpoint.go index ff96da2..07de1eb 100644 --- a/pkg/ingress/controller/endpoint.go +++ b/pkg/ingress/controller/endpoint.go @@ -142,7 +142,7 @@ func (c *EndpointController) process(ep *CoreV1.Endpoints) { // default syncWithGroup("", upstreamName, ips, port) // sync with all apisix group - for g, _ := range sevenConf.UrlGroup { + for g := range sevenConf.UrlGroup { syncWithGroup(g, upstreamName, ips, port) //upstreams, err := apisix.ListUpstream(k) //if err == nil { diff --git a/pkg/ingress/controller/store/store.go b/pkg/ingress/controller/store/store.go index 918157a..6d7a394 100644 --- a/pkg/ingress/controller/store/store.go +++ b/pkg/ingress/controller/store/store.go @@ -13,4 +13,3 @@ // See the License for the specific language governing permissions and // limitations under the License. package store - diff --git a/pkg/ingress/controller/watch.go b/pkg/ingress/controller/watch.go index b4ebc41..e4ea9f4 100644 --- a/pkg/ingress/controller/watch.go +++ b/pkg/ingress/controller/watch.go @@ -16,32 +16,32 @@ package controller import ( "github.com/api7/ingress-controller/conf" - "k8s.io/api/core/v1" - "strconv" - "github.com/gxthrj/seven/apisix" + "github.com/golang/glog" apisixType "github.com/gxthrj/apisix-types/pkg/apis/apisix/v1" - "github.com/gxthrj/seven/state" + "github.com/gxthrj/seven/apisix" sevenConf "github.com/gxthrj/seven/conf" - "github.com/golang/glog" + "github.com/gxthrj/seven/state" + "k8s.io/api/core/v1" + "strconv" ) const ( - ADD = "ADD" - UPDATE = "UPDATE" - DELETE = "DELETE" + ADD = "ADD" + UPDATE = "UPDATE" + DELETE = "DELETE" WatchFromKind = "watch" ) -func Watch(){ +func Watch() { c := &controller{ queue: make(chan interface{}, 100), } - conf.EndpointsInformer.Informer().AddEventHandler(&QueueEventHandler{c:c}) + conf.EndpointsInformer.Informer().AddEventHandler(&QueueEventHandler{c: c}) go c.run() } -func (c *controller) pop() interface{}{ - e := <- c.queue +func (c *controller) pop() interface{} { + e := <-c.queue return e } @@ -55,21 +55,21 @@ func (c *controller) run() { func (c *controller) process(obj interface{}) { qo, _ := obj.(*queueObj) ep, _ := qo.Obj.(*v1.Endpoints) - if ep.Namespace != "kube-system"{ // todo here is some ignore namespaces - for _, s := range ep.Subsets{ + if ep.Namespace != "kube-system" { // todo here is some ignore namespaces + for _, s := range ep.Subsets { // if upstream need to watch // ips ips := make([]string, 0) - for _, address := range s.Addresses{ + for _, address := range s.Addresses { ips = append(ips, address.IP) } // ports - for _, port := range s.Ports{ + for _, port := range s.Ports { upstreamName := ep.Namespace + "_" + ep.Name + "_" + strconv.Itoa(int(port.Port)) // find upstreamName is in apisix // sync with all apisix group - for k, _ := range sevenConf.UrlGroup { - upstreams, err := apisix.ListUpstream(k) + for k := range sevenConf.UrlGroup { + upstreams, err := apisix.ListUpstream(k) if err == nil { for _, upstream := range upstreams { if *(upstream.Name) == upstreamName { @@ -106,8 +106,8 @@ type controller struct { } type queueObj struct { - OpeType string `json:"ope_type"` - Obj interface{} `json:"obj"` + OpeType string `json:"ope_type"` + Obj interface{} `json:"obj"` } type QueueEventHandler struct { @@ -123,5 +123,5 @@ func (h *QueueEventHandler) OnDelete(obj interface{}) { } func (h *QueueEventHandler) OnUpdate(old, update interface{}) { - h.c.queue <- &queueObj{ UPDATE, update} + h.c.queue <- &queueObj{UPDATE, update} } diff --git a/pkg/route.go b/pkg/route.go index b149cb1..009b48a 100644 --- a/pkg/route.go +++ b/pkg/route.go @@ -15,17 +15,17 @@ package pkg import ( + "encoding/json" + "github.com/api7/ingress-controller/log" "github.com/julienschmidt/httprouter" - "net/http" "io" - "encoding/json" "io/ioutil" - "github.com/api7/ingress-controller/log" + "net/http" ) var logger = log.GetLogger() -func Route() *httprouter.Router{ +func Route() *httprouter.Router { router := httprouter.New() router.GET("/healthz", Healthz) router.GET("/apisix/healthz", Healthz) @@ -33,20 +33,20 @@ func Route() *httprouter.Router{ return router } -func Healthz(w http.ResponseWriter, req *http.Request, _ httprouter.Params){ +func Healthz(w http.ResponseWriter, req *http.Request, _ httprouter.Params) { io.WriteString(w, "ok") } -type CheckResponse struct{ +type CheckResponse struct { Ok bool `json:"ok"` } -type WriteResponse struct{ +type WriteResponse struct { Status string `json:"status"` - Msg string `json:"msg"` + Msg string `json:"msg"` } -func populateMode(w http.ResponseWriter, r *http.Request, params httprouter.Params, model interface{}) error{ +func populateMode(w http.ResponseWriter, r *http.Request, params httprouter.Params, model interface{}) error { body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048576)) if err != nil { return err