Skip to content

Commit

Permalink
Bring back support for k8s 1.11 (#1008)
Browse files Browse the repository at this point in the history
Signed-off-by: Tamal Saha <tamal@appscode.com>
  • Loading branch information
tamalsaha committed Jan 6, 2020
1 parent d6e0fe4 commit 5bf1e2c
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 12 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
k8s: [v1.12.10, v1.14.6, v1.16.3, v1.17.0]
k8s: [v1.11.10, v1.12.10, v1.14.6, v1.16.3, v1.17.0]
steps:

- name: Set up Go 1.13
Expand Down Expand Up @@ -111,4 +111,5 @@ jobs:
echo "GOOGLE_SERVICE_ACCOUNT_JSON_KEY=$(echo $GOOGLE_SERVICE_ACCOUNT_JSON_KEY)" >> hack/config/.env
make install
echo
sleep 10
make e2e-tests
2 changes: 1 addition & 1 deletion go.mod
Expand Up @@ -37,7 +37,7 @@ require (
k8s.io/kube-aggregator v0.0.0-20191114103820-f023614fb9ea
k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a
k8s.io/kubernetes v1.16.3
kmodules.xyz/client-go v0.0.0-20200101081724-6b136a38d486
kmodules.xyz/client-go v0.0.0-20200105092743-4b797c0c0802
kmodules.xyz/constants v0.0.0-20191024095500-cd4313df4aa6
kmodules.xyz/crd-schema-fuzz v0.0.0-20191129174258-81f984340891
kmodules.xyz/custom-resources v0.0.0-20191130062942-f41b54f62419
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Expand Up @@ -689,8 +689,8 @@ k8s.io/utils v0.0.0-20190801114015-581e00157fb1 h1:+ySTxfHnfzZb9ys375PXNlLhkJPLK
k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
kmodules.xyz/client-go v0.0.0-20191127054604-26981530831d/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/client-go v0.0.0-20191211192817-f1dcd02124ba/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/client-go v0.0.0-20200101081724-6b136a38d486 h1:6Oa0APtijqhcZ1NCjrX0Uegm/GyyAcHopIR0EIORZsc=
kmodules.xyz/client-go v0.0.0-20200101081724-6b136a38d486/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/client-go v0.0.0-20200105092743-4b797c0c0802 h1:INQ3RPEcdLX4m7Ql+eTyDjtRYrQlK/D9hrcDuAijw6c=
kmodules.xyz/client-go v0.0.0-20200105092743-4b797c0c0802/go.mod h1:OFxuKCiVR+MYlR2a08FkfaF+IbXkLe0xBetu2LTUuGI=
kmodules.xyz/constants v0.0.0-20191024095500-cd4313df4aa6 h1:hFv3DzanQJ/bjgahqosmthGLkVgMB2KuQIsltOA02t0=
kmodules.xyz/constants v0.0.0-20191024095500-cd4313df4aa6/go.mod h1:DbiFk1bJ1KEO94t1SlAn7tzc+Zz95rSXgyUKa2nzPmY=
kmodules.xyz/crd-schema-fuzz v0.0.0-20191129174258-81f984340891 h1:2W/fqLbAurvupIZL3TEFrlb7DnOIhlOXpNgzgcFFSmA=
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/controller.go
Expand Up @@ -166,7 +166,7 @@ func (c *StashController) ensureCustomResourceDefinitions() error {

appCatalog.AppBinding{}.CustomResourceDefinition(),
}
return crdutils.RegisterCRDs(c.crdClient, crds)
return crdutils.RegisterCRDs(c.kubeClient.Discovery(), c.crdClient, crds)
}

func (c *StashController) Run(stopCh <-chan struct{}) {
Expand Down
24 changes: 19 additions & 5 deletions vendor/kmodules.xyz/client-go/apiextensions/v1beta1/kubernetes.go
Expand Up @@ -5,20 +5,34 @@ import (
"net/http"
"time"

discovery_util "kmodules.xyz/client-go/discovery"

"github.com/pkg/errors"
crd_api "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
crd_cs "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
kerr "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/discovery"
"k8s.io/client-go/rest"
)

func RegisterCRDs(client crd_cs.ApiextensionsV1beta1Interface, crds []*crd_api.CustomResourceDefinition) error {
func RegisterCRDs(disClient discovery.DiscoveryInterface, apiextClient crd_cs.ApiextensionsV1beta1Interface, crds []*crd_api.CustomResourceDefinition) error {
major, minor, _, _, _, err := discovery_util.GetVersionInfo(disClient)
if err != nil {
return err
}

for _, crd := range crds {
existing, err := client.CustomResourceDefinitions().Get(crd.Name, metav1.GetOptions{})
if major == 1 && minor <= 11 {
// CRD schema must only have "properties", "required" or "description" at the root if the status subresource is enabled
// xref: https://github.com/stashed/stash/issues/1007#issuecomment-570888875
crd.Spec.Validation.OpenAPIV3Schema.Type = ""
}

existing, err := apiextClient.CustomResourceDefinitions().Get(crd.Name, metav1.GetOptions{})
if kerr.IsNotFound(err) {
_, err = client.CustomResourceDefinitions().Create(crd)
_, err = apiextClient.CustomResourceDefinitions().Create(crd)
if err != nil {
return err
}
Expand All @@ -43,13 +57,13 @@ func RegisterCRDs(client crd_cs.ApiextensionsV1beta1Interface, crds []*crd_api.C
} else if crd.Spec.Subresources == nil && existing.Spec.Subresources != nil {
existing.Spec.Subresources = nil
}
_, err = client.CustomResourceDefinitions().Update(existing)
_, err = apiextClient.CustomResourceDefinitions().Update(existing)
if err != nil {
return err
}
}
}
return WaitForCRDReady(client.RESTClient(), crds)
return WaitForCRDReady(apiextClient.RESTClient(), crds)
}

func WaitForCRDReady(restClient rest.Interface, crds []*crd_api.CustomResourceDefinition) error {
Expand Down
15 changes: 14 additions & 1 deletion vendor/kmodules.xyz/client-go/discovery/lib.go
Expand Up @@ -39,6 +39,19 @@ func GetVersion(client discovery.DiscoveryInterface) (string, error) {
return gv.ToMutator().ResetMetadata().ResetPrerelease().String(), nil
}

func GetVersionInfo(client discovery.DiscoveryInterface) (int64, int64, int64, string, string, error) {
info, err := client.ServerVersion()
if err != nil {
return -1, -1, -1, "", "", err
}
gv, err := version.NewVersion(info.GitVersion)
if err != nil {
return -1, -1, -1, "", "", err
}
v := gv.ToMutator().ResetMetadata().ResetPrerelease()
return v.Major(), v.Minor(), v.Patch(), v.Prerelease(), v.Metadata(), nil
}

func GetBaseVersion(client discovery.DiscoveryInterface) (string, error) {
info, err := client.ServerVersion()
if err != nil {
Expand Down Expand Up @@ -97,7 +110,7 @@ var err62649_K1_10 = &KnownBug{URL: "https://github.com/kubernetes/kubernetes/pu
var err83778_K1_16 = &KnownBug{URL: "https://github.com/kubernetes/kubernetes/pull/83787", Fix: "upgrade to Kubernetes 1.16.2 or later."}

var (
DefaultConstraint = ">= 1.9.0"
DefaultConstraint = ">= 1.11.0"
DefaultBlackListedVersions map[string]error
DefaultBlackListedMultiMasterVersions = map[string]error{
"1.9.0": err62649_K1_9,
Expand Down
2 changes: 1 addition & 1 deletion vendor/modules.txt
Expand Up @@ -996,7 +996,7 @@ k8s.io/utils/net
k8s.io/utils/path
k8s.io/utils/pointer
k8s.io/utils/trace
# kmodules.xyz/client-go v0.0.0-20200101081724-6b136a38d486
# kmodules.xyz/client-go v0.0.0-20200105092743-4b797c0c0802
kmodules.xyz/client-go
kmodules.xyz/client-go/admissionregistration/v1beta1
kmodules.xyz/client-go/apiextensions/v1beta1
Expand Down

0 comments on commit 5bf1e2c

Please sign in to comment.