fix host cluster reconcile bug (#2479)

Signed-off-by: Jeff <zw0948@gmail.com>
This commit is contained in:
zryfish
2020-07-19 01:22:32 +08:00
committed by GitHub
parent b7eb64dd95
commit 89f850466d
5 changed files with 112 additions and 36 deletions

View File

@@ -17,7 +17,7 @@ limitations under the License.
package customresourcedefinition
import (
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiextensionsinformers "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions"
"k8s.io/apimachinery/pkg/runtime"
"kubesphere.io/kubesphere/pkg/api"
@@ -35,12 +35,15 @@ func New(informers apiextensionsinformers.SharedInformerFactory) v1alpha3.Interf
}
}
// The reason we are still using v1beta1 instead of stable v1 is v1 is not released yet
// in Kubernetes v1.15.x, while v1.15.x is in our supporting list. Maybe we can change
// it to v1 when v1.15.x is no longer officially supported.
func (c crdGetter) Get(_, name string) (runtime.Object, error) {
return c.informers.Apiextensions().V1().CustomResourceDefinitions().Lister().Get(name)
return c.informers.Apiextensions().V1beta1().CustomResourceDefinitions().Lister().Get(name)
}
func (c crdGetter) List(_ string, query *query.Query) (*api.ListResult, error) {
crds, err := c.informers.Apiextensions().V1().CustomResourceDefinitions().Lister().List(query.Selector())
crds, err := c.informers.Apiextensions().V1beta1().CustomResourceDefinitions().Lister().List(query.Selector())
if err != nil {
return nil, err
}
@@ -54,12 +57,12 @@ func (c crdGetter) List(_ string, query *query.Query) (*api.ListResult, error) {
}
func (c crdGetter) compare(left runtime.Object, right runtime.Object, field query.Field) bool {
leftCRD, ok := left.(*v1.CustomResourceDefinition)
leftCRD, ok := left.(*v1beta1.CustomResourceDefinition)
if !ok {
return false
}
rightCRD, ok := right.(*v1.CustomResourceDefinition)
rightCRD, ok := right.(*v1beta1.CustomResourceDefinition)
if !ok {
return false
}
@@ -68,7 +71,7 @@ func (c crdGetter) compare(left runtime.Object, right runtime.Object, field quer
}
func (c crdGetter) filter(object runtime.Object, filter query.Filter) bool {
crd, ok := object.(*v1.CustomResourceDefinition)
crd, ok := object.(*v1beta1.CustomResourceDefinition)
if !ok {
return false
}

View File

@@ -18,7 +18,7 @@ package customresourcedefinition
import (
"github.com/google/go-cmp/cmp"
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
fakeapiextensions "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake"
apiextensionsinformers "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -28,7 +28,7 @@ import (
"testing"
)
var crds = []*v1.CustomResourceDefinition{
var crds = []*v1beta1.CustomResourceDefinition{
{
ObjectMeta: metav1.ObjectMeta{
Name: "clusters.cluster.kubesphere.io",
@@ -47,7 +47,7 @@ var crds = []*v1.CustomResourceDefinition{
},
}
func crdsToRuntimeObjects(crds ...*v1.CustomResourceDefinition) []runtime.Object {
func crdsToRuntimeObjects(crds ...*v1beta1.CustomResourceDefinition) []runtime.Object {
items := make([]runtime.Object, 0)
for _, crd := range crds {
@@ -57,7 +57,7 @@ func crdsToRuntimeObjects(crds ...*v1.CustomResourceDefinition) []runtime.Object
return items
}
func crdsToInterface(crds ...*v1.CustomResourceDefinition) []interface{} {
func crdsToInterface(crds ...*v1beta1.CustomResourceDefinition) []interface{} {
items := make([]interface{}, 0)
for _, crd := range crds {
@@ -91,7 +91,7 @@ func TestCrdGetterList(t *testing.T) {
informers := apiextensionsinformers.NewSharedInformerFactory(client, 0)
for _, crd := range crds {
informers.Apiextensions().V1().CustomResourceDefinitions().Informer().GetIndexer().Add(crd)
informers.Apiextensions().V1beta1().CustomResourceDefinitions().Informer().GetIndexer().Add(crd)
}
for _, testCase := range testCases {