From ce8c29cd6f575d979a7d14234bcf54fd0690e5da Mon Sep 17 00:00:00 2001 From: Sad-polar-bear <942583449@qq.com> Date: Thu, 2 Jun 2022 20:08:16 +0800 Subject: [PATCH 1/2] refactory Signed-off-by: Sad-polar-bear <942583449@qq.com> --- cmd/aeraki/main.go | 6 ++-- docker/Dockerfile | 2 +- pkg/bootstrap/options.go | 2 +- pkg/bootstrap/server.go | 36 ++++++++++--------- pkg/ca/certificate.go | 6 +++- pkg/config/constants/constants.go | 25 +++++++++++++ .../istio}/controller.go | 4 +-- pkg/controller/{ => kube}/dubbo.go | 2 +- .../{controller.go => kube/manager.go} | 2 +- pkg/controller/{ => kube}/metaprotocol.go | 2 +- pkg/controller/{ => kube}/metarouter.go | 2 +- pkg/controller/{ => kube}/namesapce.go | 5 +-- pkg/controller/{ => kube}/redis.go | 2 +- pkg/controller/{ => kube}/serviceentry.go | 7 ++-- .../{ => kube}/serviceetnry_test.go | 2 +- .../sidecar_bootstrap_config.go} | 4 +-- pkg/envoyfilter/controller.go | 22 +++++------- pkg/webhook/validation/configuration.go | 6 ++-- 18 files changed, 84 insertions(+), 53 deletions(-) create mode 100644 pkg/config/constants/constants.go rename pkg/{config => controller/istio}/controller.go (99%) rename pkg/controller/{ => kube}/dubbo.go (99%) rename pkg/controller/{controller.go => kube/manager.go} (98%) rename pkg/controller/{ => kube}/metaprotocol.go (99%) rename pkg/controller/{ => kube}/metarouter.go (99%) rename pkg/controller/{ => kube}/namesapce.go (96%) rename pkg/controller/{ => kube}/redis.go (99%) rename pkg/controller/{ => kube}/serviceentry.go (98%) rename pkg/controller/{ => kube}/serviceetnry_test.go (99%) rename pkg/controller/{bootstrap_config.go => kube/sidecar_bootstrap_config.go} (96%) diff --git a/cmd/aeraki/main.go b/cmd/aeraki/main.go index a908abb25..d8673f52e 100644 --- a/cmd/aeraki/main.go +++ b/cmd/aeraki/main.go @@ -21,6 +21,8 @@ import ( "strings" "syscall" + "github.com/aeraki-mesh/aeraki/pkg/config/constants" + "github.com/google/uuid" "github.com/aeraki-mesh/aeraki/pkg/bootstrap" @@ -36,7 +38,7 @@ import ( const ( defaultIstiodAddr = "istiod.istio-system:15010" - defaultNamespace = "istio-system" + defaultRootNamespace = constants.DefaultRootNamespace defaultXdsAddr = ":15010" defaultElectionID = "aeraki-controller" defaultLogLevel = "all:info" @@ -48,7 +50,7 @@ func main() { args := bootstrap.NewAerakiArgs() flag.BoolVar(&args.Master, "master", true, "Istiod xds server address") flag.StringVar(&args.IstiodAddr, "istiod-address", defaultIstiodAddr, "Istiod xds server address") - flag.StringVar(&args.Namespace, "namespace", defaultNamespace, "The namespace where Aeraki is deployed") + flag.StringVar(&args.RootNamespace, "root-namespace", defaultRootNamespace, "The Root Namespace of Aeraki") flag.StringVar(&args.ClusterID, "cluster-id", "", "The cluster where Aeraki is deployed") flag.StringVar(&args.XdsAddr, "xds-listen-address", defaultXdsAddr, "Istiod xds server port") flag.StringVar(&args.ConfigStoreSecret, "config-store-secret", defaultConfigStoreSecret, diff --git a/docker/Dockerfile b/docker/Dockerfile index e71a56ce8..bcb1500d3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -29,7 +29,7 @@ ENV AERAKI_ENABLE_ENVOY_FILTER_NS_SCOPE="false" COPY aeraki /usr/local/bin/ ENTRYPOINT /usr/local/bin/aeraki \ -istiod-address=$AERAKI_ISTIOD_ADDR \ - -namespace=$AERAKI_NAMESPACE \ + -root-namespace=$AERAKI_NAMESPACE \ -cluster-id=$AERAKI_CLUSTER_ID \ -config-store-secret=$AERAKI_ISTIO_CONFIG_STORE_SECRET \ -xds-listen-address=$AERAKI_XDS_LISTEN_ADDR \ diff --git a/pkg/bootstrap/options.go b/pkg/bootstrap/options.go index ffedcab98..0e6a8c48d 100644 --- a/pkg/bootstrap/options.go +++ b/pkg/bootstrap/options.go @@ -26,7 +26,7 @@ type AerakiArgs struct { XdsAddr string // The listening address for HTTPS (webhooks). HTTPSAddr string - Namespace string + RootNamespace string ClusterID string ConfigStoreSecret string ElectionID string diff --git a/pkg/bootstrap/server.go b/pkg/bootstrap/server.go index 22d9736e1..5c01da8ac 100644 --- a/pkg/bootstrap/server.go +++ b/pkg/bootstrap/server.go @@ -27,8 +27,9 @@ import ( "github.com/aeraki-mesh/aeraki/pkg/leaderelection" aerakischeme "github.com/aeraki-mesh/aeraki/client-go/pkg/clientset/versioned/scheme" - "github.com/aeraki-mesh/aeraki/pkg/config" - "github.com/aeraki-mesh/aeraki/pkg/controller" + "github.com/aeraki-mesh/aeraki/pkg/controller/istio" + "github.com/aeraki-mesh/aeraki/pkg/controller/kube" + "github.com/aeraki-mesh/aeraki/pkg/envoyfilter" "github.com/aeraki-mesh/aeraki/pkg/model/protocol" "github.com/aeraki-mesh/aeraki/pkg/xds" @@ -55,7 +56,7 @@ var ( type Server struct { args *AerakiArgs kubeClient kubernetes.Interface - configController *config.Controller + configController *istio.Controller envoyFilterController *envoyfilter.Controller xdsCacheMgr *xds.CacheMgr xdsServer *xds.Server @@ -83,10 +84,10 @@ func NewServer(args *AerakiArgs) (*Server, error) { } // configController watches Istiod through MCP over xDS to get service entry and virtual service updates - configController := config.NewController(&config.Options{ + configController := istio.NewController(&istio.Options{ ClusterID: args.ClusterID, IstiodAddr: args.IstiodAddr, - NameSpace: args.Namespace, + NameSpace: args.RootNamespace, }) // envoyFilterController watches changes on config and create/update corresponding EnvoyFilters @@ -154,7 +155,7 @@ func NewServer(args *AerakiArgs) (*Server, error) { // These controllers are horizontally scalable, multiple instances can be deployed to share the load func createScalableControllers(args *AerakiArgs, kubeConfig *rest.Config, envoyFilterController *envoyfilter.Controller, xdsCacheMgr *xds.CacheMgr) (manager.Manager, error) { - mgr, err := controller.NewManager(kubeConfig, args.Namespace, false, "") + mgr, err := kube.NewManager(kubeConfig, args.RootNamespace, false, "") if err != nil { return nil, err } @@ -167,23 +168,23 @@ func createScalableControllers(args *AerakiArgs, kubeConfig *rest.Config, xdsCacheMgr.UpdateRoute() return nil } - err = controller.AddRedisServiceController(mgr, updateEnvoyFilter) + err = kube.AddRedisServiceController(mgr, updateEnvoyFilter) if err != nil { aerakiLog.Fatalf("could not add RedisServiceController: %e", err) } - err = controller.AddRedisDestinationController(mgr, updateEnvoyFilter) + err = kube.AddRedisDestinationController(mgr, updateEnvoyFilter) if err != nil { aerakiLog.Fatalf("could not add RedisDestinationController: %e", err) } - err = controller.AddDubboAuthorizationPolicyController(mgr, updateEnvoyFilter) + err = kube.AddDubboAuthorizationPolicyController(mgr, updateEnvoyFilter) if err != nil { aerakiLog.Fatalf("could not add DubboAuthorizationPolicyController: %e", err) } - err = controller.AddApplicationProtocolController(mgr, updateEnvoyFilter) + err = kube.AddApplicationProtocolController(mgr, updateEnvoyFilter) if err != nil { aerakiLog.Fatalf("could not add ApplicationProtocolController: %e", err) } - err = controller.AddMetaRouterController(mgr, func() error { + err = kube.AddMetaRouterController(mgr, func() error { if err := updateEnvoyFilter(); err != nil { //MetaRouter Rate limit config will cause update on EnvoyFilters return err } @@ -210,15 +211,15 @@ func createScalableControllers(args *AerakiArgs, kubeConfig *rest.Config, // Since Aeraki is using the VIP of a serviceEntry as match condition when generating EnvoyFilter, // the VIP must be unique and consistent in the mesh. func createSingletonControllers(args *AerakiArgs, kubeConfig *rest.Config) (manager.Manager, error) { - mgr, err := controller.NewManager(kubeConfig, args.Namespace, true, leaderelection.AllocateVIPController) + mgr, err := kube.NewManager(kubeConfig, args.RootNamespace, true, leaderelection.AllocateVIPController) if err != nil { return nil, err } - err = controller.AddServiceEntryController(mgr) + err = kube.AddServiceEntryController(mgr) if err != nil { aerakiLog.Fatalf("could not add ServiceEntryController: %e", err) } - err = controller.AddNamespaceController(mgr) + err = kube.AddNamespaceController(mgr) if err != nil { aerakiLog.Fatalf("could not add NamespaceController: %e", err) } @@ -239,7 +240,8 @@ func (s *Server) Start(stop <-chan struct{}) { aerakiLog.Infof("aeraki is running as the master") go func() { leaderelection. - NewLeaderElection(s.args.Namespace, s.args.ServerID, leaderelection.EnvoyFilterController, s.kubeClient). + NewLeaderElection(s.args.RootNamespace, s.args.ServerID, leaderelection.EnvoyFilterController, + s.kubeClient). AddRunFunction(func(leaderStop <-chan struct{}) { aerakiLog.Infof("starting EnvoyFilter creation controller") s.envoyFilterController.Run(stop) @@ -330,13 +332,13 @@ func getConfigStoreKubeConfig(args *AerakiArgs) (*rest.Config, error) { // Aeraki allows to use a dedicated API Server as the Istio config store. // The credential to access this dedicated Istio config store should be stored in a secret - if args.Namespace != "" && args.ConfigStoreSecret != "" { + if args.RootNamespace != "" && args.ConfigStoreSecret != "" { client, err := kubernetes.NewForConfig(kubeConfig) if err != nil { err = fmt.Errorf("failed to get Kube client: %v", err) return nil, err } - secret, err := client.CoreV1().Secrets(args.Namespace).Get(context.TODO(), args.ConfigStoreSecret, + secret, err := client.CoreV1().Secrets(args.RootNamespace).Get(context.TODO(), args.ConfigStoreSecret, metav1.GetOptions{}) if err != nil { err = fmt.Errorf("failed to get Istio config store secret: %v", err) diff --git a/pkg/ca/certificate.go b/pkg/ca/certificate.go index f63ccffe6..6fa7d53bc 100644 --- a/pkg/ca/certificate.go +++ b/pkg/ca/certificate.go @@ -23,6 +23,8 @@ import ( "encoding/pem" "math/big" "time" + + "github.com/aeraki-mesh/aeraki/pkg/config/constants" ) // KeyCertBundle stores the cert, private key and root cert for aeraki. @@ -68,7 +70,9 @@ func GenerateKeyCertBundle() (*KeyCertBundle, error) { Bytes: caBytes, }) - dnsNames := []string{"aeraki", "aeraki.istio-system", "aeraki.istio-system.svc"} + dnsNames := []string{"aeraki", + "aeraki." + constants.DefaultRootNamespace, + "aeraki." + constants.DefaultRootNamespace + ".svc"} commonName := "aeraki.default.svc" // server cert config diff --git a/pkg/config/constants/constants.go b/pkg/config/constants/constants.go new file mode 100644 index 000000000..899e11a6c --- /dev/null +++ b/pkg/config/constants/constants.go @@ -0,0 +1,25 @@ +/* + * // Copyright Aeraki Authors + * // + * // Licensed 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 constants + +const ( + // DefaultRootNamespace is the root config namespace + DefaultRootNamespace = "istio-system" + + // AerakiFieldManager is the FileldManager for Aeraki CRDs + AerakiFieldManager = "Aeraki" +) diff --git a/pkg/config/controller.go b/pkg/controller/istio/controller.go similarity index 99% rename from pkg/config/controller.go rename to pkg/controller/istio/controller.go index 2f45e490d..522ea923b 100644 --- a/pkg/config/controller.go +++ b/pkg/controller/istio/controller.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package config +package istio import ( "io/ioutil" @@ -308,4 +308,4 @@ func (c *Controller) newSecretManager() (*cache.SecretManagerClient, error) { } return cache.NewSecretManagerClient(caClient, o) -} \ No newline at end of file +} diff --git a/pkg/controller/dubbo.go b/pkg/controller/kube/dubbo.go similarity index 99% rename from pkg/controller/dubbo.go rename to pkg/controller/kube/dubbo.go index 2789afde4..5bfea8a97 100644 --- a/pkg/controller/dubbo.go +++ b/pkg/controller/kube/dubbo.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" diff --git a/pkg/controller/controller.go b/pkg/controller/kube/manager.go similarity index 98% rename from pkg/controller/controller.go rename to pkg/controller/kube/manager.go index 282d24c7d..5df13e479 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/kube/manager.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "istio.io/pkg/log" diff --git a/pkg/controller/metaprotocol.go b/pkg/controller/kube/metaprotocol.go similarity index 99% rename from pkg/controller/metaprotocol.go rename to pkg/controller/kube/metaprotocol.go index f5a3b8798..7d7ebff58 100644 --- a/pkg/controller/metaprotocol.go +++ b/pkg/controller/kube/metaprotocol.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" diff --git a/pkg/controller/metarouter.go b/pkg/controller/kube/metarouter.go similarity index 99% rename from pkg/controller/metarouter.go rename to pkg/controller/kube/metarouter.go index 77a910209..5173c1e2e 100644 --- a/pkg/controller/metarouter.go +++ b/pkg/controller/kube/metarouter.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" diff --git a/pkg/controller/namesapce.go b/pkg/controller/kube/namesapce.go similarity index 96% rename from pkg/controller/namesapce.go rename to pkg/controller/kube/namesapce.go index 82bc6e775..ade2c1813 100644 --- a/pkg/controller/namesapce.go +++ b/pkg/controller/kube/namesapce.go @@ -12,12 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" "fmt" + "github.com/aeraki-mesh/aeraki/pkg/config/constants" "k8s.io/apimachinery/pkg/api/errors" "istio.io/pkg/log" @@ -100,7 +101,7 @@ func (c *namespaceController) createBootstrapConfigMap(ns string) { "custom_bootstrap.json": bootstrapConfig, } if err := c.Client.Create(context.TODO(), cm, &controllerclient.CreateOptions{ - FieldManager: aerakiFieldManager, + FieldManager: constants.AerakiFieldManager, }); err != nil { namespaceLog.Errorf("failed to create configMap: %v", err) } diff --git a/pkg/controller/redis.go b/pkg/controller/kube/redis.go similarity index 99% rename from pkg/controller/redis.go rename to pkg/controller/kube/redis.go index 0e0b88cd8..f09f160ec 100644 --- a/pkg/controller/redis.go +++ b/pkg/controller/kube/redis.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" diff --git a/pkg/controller/serviceentry.go b/pkg/controller/kube/serviceentry.go similarity index 98% rename from pkg/controller/serviceentry.go rename to pkg/controller/kube/serviceentry.go index 0005bbadf..fc009c24d 100644 --- a/pkg/controller/serviceentry.go +++ b/pkg/controller/kube/serviceentry.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "context" @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" + "github.com/aeraki-mesh/aeraki/pkg/config/constants" "github.com/aeraki-mesh/aeraki/pkg/model" "sigs.k8s.io/controller-runtime/pkg/client" @@ -39,8 +40,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/source" ) -const aerakiFieldManager = "Aeraki" - var serviceEntryLog = log.RegisterScope("service-entry-controller", "service-entry-controller debugging", 0) var ( @@ -161,7 +160,7 @@ func (c *serviceEntryController) autoAllocateIP(key client.ObjectKey, s *network func (c *serviceEntryController) updateServiceEntry(s *networking.ServiceEntry, key client.ObjectKey) { err := c.Client.Update(context.TODO(), s, &controllerclient.UpdateOptions{ - FieldManager: aerakiFieldManager, + FieldManager: constants.AerakiFieldManager, }) if err == nil { c.serviceIPs[s.Spec.Addresses[0]] = key diff --git a/pkg/controller/serviceetnry_test.go b/pkg/controller/kube/serviceetnry_test.go similarity index 99% rename from pkg/controller/serviceetnry_test.go rename to pkg/controller/kube/serviceetnry_test.go index 13a8b4fac..32ee41a31 100644 --- a/pkg/controller/serviceetnry_test.go +++ b/pkg/controller/kube/serviceetnry_test.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube import ( "testing" diff --git a/pkg/controller/bootstrap_config.go b/pkg/controller/kube/sidecar_bootstrap_config.go similarity index 96% rename from pkg/controller/bootstrap_config.go rename to pkg/controller/kube/sidecar_bootstrap_config.go index cf4ebc359..f145a4ccf 100644 --- a/pkg/controller/bootstrap_config.go +++ b/pkg/controller/kube/sidecar_bootstrap_config.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package controller +package kube var bootstrapConfig = ` { @@ -55,7 +55,7 @@ var bootstrapConfig = ` "endpoint":{ "address":{ "socket_address":{ - "address":"aeraki-xds.istio-system", + "address":"aeraki.istio-system", "port_value":15010 } } diff --git a/pkg/envoyfilter/controller.go b/pkg/envoyfilter/controller.go index 5c56fdd07..9a5aa1eb2 100644 --- a/pkg/envoyfilter/controller.go +++ b/pkg/envoyfilter/controller.go @@ -19,6 +19,8 @@ import ( "fmt" "time" + "github.com/aeraki-mesh/aeraki/pkg/config/constants" + "github.com/gogo/protobuf/proto" "sigs.k8s.io/controller-runtime/pkg/client" @@ -44,12 +46,6 @@ const ( // debounceMax is the maximum time to wait for events while debouncing. // Defaults to 10 seconds. If events keep showing up with no break for this time, we'll trigger a push. debounceMax = 10 * time.Second - - // configRootNS is the root config root namespace - configRootNS = "istio-system" - - // aerakiFieldManager is the FileldManager for Aeraki CRDs - aerakiFieldManager = "Aeraki" ) var ( @@ -115,7 +111,7 @@ func (c *Controller) pushEnvoyFilters2APIServer() error { } existingEnvoyFilters, _ := c.istioClientset.NetworkingV1alpha3().EnvoyFilters("").List(context.TODO(), v1.ListOptions{ - LabelSelector: "manager=" + aerakiFieldManager, + LabelSelector: "manager=" + constants.AerakiFieldManager, }) // Deleted envoyFilters @@ -138,7 +134,7 @@ func (c *Controller) pushEnvoyFilters2APIServer() error { newEnvoyFilter.Name, model.Struct2JSON(*newEnvoyFilter.Envoyfilter)) _, err = c.istioClientset.NetworkingV1alpha3().EnvoyFilters(newEnvoyFilter.Namespace).Update(context.TODO(), c.toEnvoyFilterCRD(newEnvoyFilter, &oldEnvoyFilter), - v1.UpdateOptions{FieldManager: aerakiFieldManager}) + v1.UpdateOptions{FieldManager: constants.AerakiFieldManager}) } else { controllerLog.Infof("envoyFilter: namespace: %s name: %s unchanged", oldEnvoyFilter.Namespace, oldEnvoyFilter.Name) @@ -154,7 +150,7 @@ func (c *Controller) pushEnvoyFilters2APIServer() error { _, err = c.istioClientset.NetworkingV1alpha3().EnvoyFilters(wrapper.Namespace).Create(context.TODO(), c.toEnvoyFilterCRD(wrapper, nil), - v1.CreateOptions{FieldManager: aerakiFieldManager}) + v1.CreateOptions{FieldManager: constants.AerakiFieldManager}) } return err } @@ -165,7 +161,7 @@ func (c *Controller) toEnvoyFilterCRD(new *model.EnvoyFilterWrapper, old *v1alph Name: new.Name, Namespace: new.Namespace, Labels: map[string]string{ - "manager": aerakiFieldManager, + "manager": constants.AerakiFieldManager, }, }, Spec: *new.Envoyfilter, @@ -240,7 +236,7 @@ func (c *Controller) generateEnvoyFilters() (map[string]*model.EnvoyFilterWrappe if exportNS == "." { exportNS = context.MetaRouter.Namespace } else if exportNS == "*" { - exportNS = configRootNS + exportNS = constants.DefaultRootNamespace } wrapper.Namespace = exportNS envoyFilters[envoyFilterMapKey(wrapper.Name, exportNS)] = wrapper @@ -259,7 +255,7 @@ func (c *Controller) defaultEnvoyFilterNS(serviceNS string) string { if c.namespaceScoped { return serviceNS } - return configRootNS + return constants.DefaultRootNamespace } func envoyFilterMapKey(name, ns string) string { @@ -313,4 +309,4 @@ func (c *Controller) findRelatedMetaRouter(service *networking.ServiceEntry) (*m // ConfigUpdated sends a config change event to the pushChannel to trigger the generation of envoyfilters func (c *Controller) ConfigUpdated(event istiomodel.Event) { c.pushChannel <- event -} \ No newline at end of file +} diff --git a/pkg/webhook/validation/configuration.go b/pkg/webhook/validation/configuration.go index 5e7cce330..e73da072a 100644 --- a/pkg/webhook/validation/configuration.go +++ b/pkg/webhook/validation/configuration.go @@ -18,6 +18,8 @@ import ( "bytes" "context" + "github.com/aeraki-mesh/aeraki/pkg/config/constants" + "k8s.io/apimachinery/pkg/api/errors" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" @@ -29,8 +31,8 @@ import ( // GenerateWebhookConfig creates ValidationWebhookConfiguration with the Aeraki ca func GenerateWebhookConfig(caCert *bytes.Buffer) error { var ( - webhookNamespace = "istio-system" - webhookCfgName = "aeraki-istio-system" + webhookNamespace = constants.DefaultRootNamespace + webhookCfgName = "aeraki-" + webhookNamespace webhookService = "aeraki" ) From 597c87fb814d506f0f494a75b3ea885345e137b5 Mon Sep 17 00:00:00 2001 From: Sad-polar-bear <942583449@qq.com> Date: Thu, 2 Jun 2022 21:34:34 +0800 Subject: [PATCH 2/2] fix license check Signed-off-by: Sad-polar-bear <942583449@qq.com> --- pkg/config/constants/constants.go | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/pkg/config/constants/constants.go b/pkg/config/constants/constants.go index 899e11a6c..58189812f 100644 --- a/pkg/config/constants/constants.go +++ b/pkg/config/constants/constants.go @@ -1,18 +1,16 @@ -/* - * // Copyright Aeraki Authors - * // - * // Licensed 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. - */ +// Copyright Aeraki Authors +// +// Licensed 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 constants