diff --git a/Makefile b/Makefile index 585c2b8b..56e71b00 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ GO_PATH=$(GOPATH) SRCFILES=cni-genie.go TEST_SRCFILES=$(wildcard *_test.go) +GO_PKG := $(shell go list ./... | grep -v vendor) # Ensure that the dist directory is always created MAKE_SURE_DIST_EXIST := $(shell mkdir -p dist) @@ -66,3 +67,6 @@ endif test: go test ${PRINT} `go list ./${TESTDIR}/... | grep -v vendor | grep -v e2e | grep -v controllers` +.PHONY: fmt +fmt: + @go fmt $(GO_PKG) diff --git a/controllers/logicalnetwork-pkg/apis/alpha/network/register.go b/controllers/logicalnetwork-pkg/apis/alpha/network/register.go index e0d7219e..c9db7e87 100644 --- a/controllers/logicalnetwork-pkg/apis/alpha/network/register.go +++ b/controllers/logicalnetwork-pkg/apis/alpha/network/register.go @@ -15,4 +15,4 @@ package network const ( GroupName = "alpha.network.k8s.io" -) \ No newline at end of file +) diff --git a/controllers/logicalnetwork-pkg/client/clientset/versioned/clientset.go b/controllers/logicalnetwork-pkg/client/clientset/versioned/clientset.go index 97826963..ec582fad 100644 --- a/controllers/logicalnetwork-pkg/client/clientset/versioned/clientset.go +++ b/controllers/logicalnetwork-pkg/client/clientset/versioned/clientset.go @@ -14,10 +14,10 @@ package versioned import ( + alphav1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1" discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" - alphav1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1" ) type Interface interface { diff --git a/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme/register.go b/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme/register.go index e8b20ea1..46d17888 100644 --- a/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme/register.go +++ b/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme/register.go @@ -14,11 +14,11 @@ package scheme import ( + alphav1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - alphav1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" ) var Scheme = runtime.NewScheme() diff --git a/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/logicalnetwork.go b/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/logicalnetwork.go index ff0fb616..6ca56a8c 100644 --- a/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/logicalnetwork.go +++ b/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/logicalnetwork.go @@ -14,12 +14,12 @@ package v1 import ( + scheme "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme" + v1 "github.com/cni-genie/CNI-Genie/utils" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - v1 "github.com/cni-genie/CNI-Genie/utils" - scheme "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme" ) // LogicalNetworksGetter has a method to return a LogicalNetworkInterface. diff --git a/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/network_client.go b/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/network_client.go index 35754e88..6f161380 100644 --- a/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/network_client.go +++ b/controllers/logicalnetwork-pkg/client/clientset/versioned/typed/network/v1/network_client.go @@ -14,10 +14,10 @@ package v1 import ( - serializer "k8s.io/apimachinery/pkg/runtime/serializer" - rest "k8s.io/client-go/rest" v1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned/scheme" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + rest "k8s.io/client-go/rest" ) type AlphaV1Interface interface { diff --git a/controllers/logicalnetwork-pkg/client/informers/externalversions/factory.go b/controllers/logicalnetwork-pkg/client/informers/externalversions/factory.go index d18189e0..dcf61572 100644 --- a/controllers/logicalnetwork-pkg/client/informers/externalversions/factory.go +++ b/controllers/logicalnetwork-pkg/client/informers/externalversions/factory.go @@ -18,13 +18,13 @@ import ( sync "sync" time "time" + versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" + internalinterfaces "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces" + network "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/network" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" - internalinterfaces "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces" - network "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/network" ) // SharedInformerOption defines the functional option type for SharedInformerFactory. diff --git a/controllers/logicalnetwork-pkg/client/informers/externalversions/generic.go b/controllers/logicalnetwork-pkg/client/informers/externalversions/generic.go index dbe1ecb4..59e6b7ac 100644 --- a/controllers/logicalnetwork-pkg/client/informers/externalversions/generic.go +++ b/controllers/logicalnetwork-pkg/client/informers/externalversions/generic.go @@ -16,9 +16,9 @@ package externalversions import ( "fmt" + v1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - v1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" ) // GenericInformer is type of SharedIndexInformer which will locate and delegate to other diff --git a/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go index 80c45062..f829cd60 100644 --- a/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -16,10 +16,10 @@ package internalinterfaces import ( time "time" + versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" - versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" ) type NewInformerFunc func(versioned.Interface, time.Duration) cache.SharedIndexInformer diff --git a/controllers/logicalnetwork-pkg/client/informers/externalversions/network/v1/logicalnetwork.go b/controllers/logicalnetwork-pkg/client/informers/externalversions/network/v1/logicalnetwork.go index 7d735168..9045dda2 100644 --- a/controllers/logicalnetwork-pkg/client/informers/externalversions/network/v1/logicalnetwork.go +++ b/controllers/logicalnetwork-pkg/client/informers/externalversions/network/v1/logicalnetwork.go @@ -16,14 +16,14 @@ package v1 import ( time "time" + versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" + internalinterfaces "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces" + v1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/listers/network/v1" + network_v1 "github.com/cni-genie/CNI-Genie/utils" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - network_v1 "github.com/cni-genie/CNI-Genie/utils" - versioned "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/clientset/versioned" - internalinterfaces "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/informers/externalversions/internalinterfaces" - v1 "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/client/listers/network/v1" ) // LogicalNetworkInformer provides access to a shared informer and lister for diff --git a/controllers/logicalnetwork-pkg/client/listers/network/v1/logicalnetwork.go b/controllers/logicalnetwork-pkg/client/listers/network/v1/logicalnetwork.go index 2b82c728..d3fb6865 100644 --- a/controllers/logicalnetwork-pkg/client/listers/network/v1/logicalnetwork.go +++ b/controllers/logicalnetwork-pkg/client/listers/network/v1/logicalnetwork.go @@ -14,11 +14,11 @@ package v1 import ( + r "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" + v1 "github.com/cni-genie/CNI-Genie/utils" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - v1 "github.com/cni-genie/CNI-Genie/utils" - r "github.com/cni-genie/CNI-Genie/controllers/logicalnetwork-pkg/apis/alpha/network/v1" ) // LogicalNetworkLister helps list LogicalNetworks. diff --git a/controllers/network-admission-controller/config.go b/controllers/network-admission-controller/config.go index bf89427f..3b1bc0ad 100755 --- a/controllers/network-admission-controller/config.go +++ b/controllers/network-admission-controller/config.go @@ -88,7 +88,7 @@ func selfRegistration(clientset *kubernetes.Clientset, caCert []byte) { } webhookConfig := &v1beta1.ValidatingWebhookConfiguration{ ObjectMeta: metav1.ObjectMeta{ - Name: "genie-network-admission-controller-config", + Name: "genie-network-admission-controller-config", Namespace: "kube-system", }, Webhooks: []v1beta1.ValidatingWebhook{ diff --git a/controllers/network-admission-controller/main.go b/controllers/network-admission-controller/main.go index 9c06bf6a..77383523 100755 --- a/controllers/network-admission-controller/main.go +++ b/controllers/network-admission-controller/main.go @@ -22,11 +22,10 @@ import ( "io/ioutil" "net/http" - "github.com/golang/glog" genieUtils "github.com/cni-genie/CNI-Genie/utils" + "github.com/golang/glog" "k8s.io/api/admission/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - ) // only allow logical networks objects to be created only when all input validations are passed diff --git a/controllers/network-admission-controller/network-validator.go b/controllers/network-admission-controller/network-validator.go index 63c94cd2..034b7127 100755 --- a/controllers/network-admission-controller/network-validator.go +++ b/controllers/network-admission-controller/network-validator.go @@ -23,8 +23,8 @@ import ( "flag" "fmt" - "github.com/golang/glog" genieUtils "github.com/cni-genie/CNI-Genie/utils" + "github.com/golang/glog" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "net" @@ -38,14 +38,14 @@ type PluginSubnetUsageData struct { } const ( - ERR_NO_PLUGIN_MENTIONED_IN_LOGICAL_NETWORK = "No plugin mentioned in logical network"; - ERR_NO_PLUGIN_MENTIONED_IN_PHYSICAL_NETWORK = "No plugin mentioned in physical network"; - ERR_PHYSICAL_NW_NOT_FOUND = "Physical network not found"; - ERR_INVALID_INNER_SUBNET = "Invalid inner subnet range"; - ERR_SUBNET_OVERLAP_WITH_OTHER = "Inner subnet overlap with some other logical network subnet"; - ERR_SUBNET_NOT_SPECIFIED = "Subnet not specified for logical network while using shared physical network"; - ERR_INCORRECT_PHYSICALNETWORK_PARAS = "Incorrect physical network parameters"; - ERR_INTERNAL_PROCESSING_FAILED = "Internal processing failure"; + ERR_NO_PLUGIN_MENTIONED_IN_LOGICAL_NETWORK = "No plugin mentioned in logical network" + ERR_NO_PLUGIN_MENTIONED_IN_PHYSICAL_NETWORK = "No plugin mentioned in physical network" + ERR_PHYSICAL_NW_NOT_FOUND = "Physical network not found" + ERR_INVALID_INNER_SUBNET = "Invalid inner subnet range" + ERR_SUBNET_OVERLAP_WITH_OTHER = "Inner subnet overlap with some other logical network subnet" + ERR_SUBNET_NOT_SPECIFIED = "Subnet not specified for logical network while using shared physical network" + ERR_INCORRECT_PHYSICALNETWORK_PARAS = "Incorrect physical network parameters" + ERR_INTERNAL_PROCESSING_FAILED = "Internal processing failure" ) var PluginSubnetUsageDataList []PluginSubnetUsageData @@ -86,8 +86,8 @@ func checkSubnetOverlap(firstSubnetStr, secondSubnetStr string) bool { _, secondSubnet, _ := net.ParseCIDR(secondSubnetStr) for i := range secondSubnet.IP { - if secondSubnet.IP[i]&secondSubnet.Mask[i] != firstSubnet.IP[i]&firstSubnet.Mask[i]&secondSubnet.Mask[i] { - isFirstPartofSecond = false + if secondSubnet.IP[i]&secondSubnet.Mask[i] != firstSubnet.IP[i]&firstSubnet.Mask[i]&secondSubnet.Mask[i] { + isFirstPartofSecond = false } } @@ -96,8 +96,8 @@ func checkSubnetOverlap(firstSubnetStr, secondSubnetStr string) bool { } for i := range firstSubnet.IP { - if firstSubnet.IP[i]&firstSubnet.Mask[i] != secondSubnet.IP[i]&secondSubnet.Mask[i]&firstSubnet.Mask[i] { - isSecondPartofFirst = false + if firstSubnet.IP[i]&firstSubnet.Mask[i] != secondSubnet.IP[i]&secondSubnet.Mask[i]&firstSubnet.Mask[i] { + isSecondPartofFirst = false } } @@ -105,11 +105,10 @@ func checkSubnetOverlap(firstSubnetStr, secondSubnetStr string) bool { return true } - /* This means 2 subnets do not overlap*/ + /* This means 2 subnets do not overlap*/ return false } - /* Function to validate whether the innerSubnetStr is part of outer subnet or not*/ func checkIfValidInnerSubnet(outerSubnetStr, innerSubnetStr string) bool { @@ -117,7 +116,7 @@ func checkIfValidInnerSubnet(outerSubnetStr, innerSubnetStr string) bool { _, innerSubnet, _ := net.ParseCIDR(innerSubnetStr) for i := range outerSubnet.IP { - if outerSubnet.IP[i]&outerSubnet.Mask[i] != innerSubnet.IP[i]&innerSubnet.Mask[i]&outerSubnet.Mask[i] { + if outerSubnet.IP[i]&outerSubnet.Mask[i] != innerSubnet.IP[i]&innerSubnet.Mask[i]&outerSubnet.Mask[i] { return false } } @@ -154,7 +153,6 @@ func validateNetworkParas(logicalNetwork *genieUtils.LogicalNetwork) *v1beta1.Ad physicalNwPath := fmt.Sprintf("/apis/alpha.network.k8s.io/v1/namespaces/%s/physicalnetworks/%s", logicalNetwork.ObjectMeta.Namespace, phyNwName) - physicalNwObj, err := client.ExtensionsV1beta1().RESTClient().Get().AbsPath(physicalNwPath).DoRaw() if err != nil { @@ -177,7 +175,7 @@ func validateNetworkParas(logicalNetwork *genieUtils.LogicalNetwork) *v1beta1.Ad selectedPluginName := physicalNwInfo.Spec.SharedStatus.Plugin - if "" == selectedPluginName { + if "" == selectedPluginName { admissionResponse.Result = &metav1.Status{ Reason: ERR_NO_PLUGIN_MENTIONED_IN_PHYSICAL_NETWORK, } @@ -189,7 +187,7 @@ func validateNetworkParas(logicalNetwork *genieUtils.LogicalNetwork) *v1beta1.Ad outerSubnet := physicalNwInfo.Spec.SharedStatus.Subnet isvalidSubnet := checkIfValidInnerSubnet(outerSubnet, logicalNetwork.Spec.SubSubnet) - if false == isvalidSubnet { + if false == isvalidSubnet { admissionResponse.Result = &metav1.Status{ Reason: ERR_INVALID_INNER_SUBNET, @@ -199,18 +197,18 @@ func validateNetworkParas(logicalNetwork *genieUtils.LogicalNetwork) *v1beta1.Ad selectedSubnet = logicalNetwork.Spec.SubSubnet } else { /* Incase of shared physical network, subnet and plugin must be specified as part of logical network*/ - if "" == logicalNetwork.Spec.Plugin { - admissionResponse.Result = &metav1.Status{ - Reason: ERR_NO_PLUGIN_MENTIONED_IN_LOGICAL_NETWORK, - } - return &admissionResponse + if "" == logicalNetwork.Spec.Plugin { + admissionResponse.Result = &metav1.Status{ + Reason: ERR_NO_PLUGIN_MENTIONED_IN_LOGICAL_NETWORK, + } + return &admissionResponse } - if "" == logicalNetwork.Spec.SubSubnet { - admissionResponse.Result = &metav1.Status{ - Reason: ERR_SUBNET_NOT_SPECIFIED, - } - return &admissionResponse + if "" == logicalNetwork.Spec.SubSubnet { + admissionResponse.Result = &metav1.Status{ + Reason: ERR_SUBNET_NOT_SPECIFIED, + } + return &admissionResponse } @@ -224,13 +222,12 @@ func validateNetworkParas(logicalNetwork *genieUtils.LogicalNetwork) *v1beta1.Ad /* Check whether the subnet is already part of any other logical network*/ if nil != PluginSubnetUsageDataList { for i := range PluginSubnetUsageDataList { - if PluginSubnetUsageDataList[i].PluginName == selectedPluginName { + if PluginSubnetUsageDataList[i].PluginName == selectedPluginName { isPluginFound = true pluginSubnetUsageData = PluginSubnetUsageDataList[i] - break + break } - } } diff --git a/networkcrd/types.go b/networkcrd/types.go index 1034270f..01971e83 100644 --- a/networkcrd/types.go +++ b/networkcrd/types.go @@ -61,4 +61,4 @@ type NetworkStatus struct { Mac string `json:"mac,omitempty"` Default bool `json:"default,omitempty"` DNS types.DNS `json:"dns,omitempty"` -} \ No newline at end of file +} diff --git a/utils/logicalnetwork.deepcopy.go b/utils/logicalnetwork.deepcopy.go index 9e0e6eb2..50ad7bb6 100644 --- a/utils/logicalnetwork.deepcopy.go +++ b/utils/logicalnetwork.deepcopy.go @@ -75,4 +75,4 @@ func (in *LogicalNetworkList) DeepCopyObject() runtime.Object { return c } return nil -} \ No newline at end of file +}