Merge pull request #3838 from wallrj/3289-stable-api-versions

Update cainjector to use stable API versions
This commit is contained in:
jetstack-bot 2021-04-06 15:19:57 +01:00 committed by GitHub
commit e7333df106
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 83 additions and 69 deletions

View File

@ -16,14 +16,14 @@ go_library(
"//pkg/apis/certmanager/v1alpha3:go_default_library",
"//pkg/apis/certmanager/v1beta1:go_default_library",
"//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1beta1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
"@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",
"@io_k8s_apimachinery//pkg/runtime/serializer:go_default_library",
"@io_k8s_apimachinery//pkg/util/runtime:go_default_library",
"@io_k8s_client_go//kubernetes/scheme:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1beta1:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1:go_default_library",
],
)

View File

@ -17,14 +17,14 @@ limitations under the License.
package api
import (
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
kscheme "k8s.io/client-go/kubernetes/scheme"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
whapi "github.com/jetstack/cert-manager/pkg/acme/webhook/apis/acme/v1alpha1"
cmacmev1 "github.com/jetstack/cert-manager/pkg/apis/acme/v1"

View File

@ -16,15 +16,15 @@ go_library(
"//pkg/apis/meta/v1:go_default_library",
"//pkg/logs:go_default_library",
"@com_github_go_logr_logr//:go_default_library",
"@io_k8s_api//admissionregistration/v1beta1:go_default_library",
"@io_k8s_api//admissionregistration/v1:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1beta1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:go_default_library",
"@io_k8s_apimachinery//pkg/api/errors:go_default_library",
"@io_k8s_apimachinery//pkg/api/meta:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
"@io_k8s_apimachinery//pkg/types:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1beta1:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1:go_default_library",
"@io_k8s_sigs_controller_runtime//:go_default_library",
"@io_k8s_sigs_controller_runtime//pkg/cache:go_default_library",
"@io_k8s_sigs_controller_runtime//pkg/client:go_default_library",

View File

@ -17,10 +17,10 @@ limitations under the License.
package cainjector
import (
admissionreg "k8s.io/api/admissionregistration/v1beta1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
admissionreg "k8s.io/api/admissionregistration/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/runtime"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
)
// this contains implementations of CertInjector (and dependents)
@ -132,8 +132,11 @@ func (t *crdConversionTarget) SetCA(data []byte) {
if t.obj.Spec.Conversion == nil || t.obj.Spec.Conversion.Strategy != apiext.WebhookConverter {
return
}
if t.obj.Spec.Conversion.WebhookClientConfig == nil {
t.obj.Spec.Conversion.WebhookClientConfig = &apiext.WebhookClientConfig{}
if t.obj.Spec.Conversion.Webhook == nil {
t.obj.Spec.Conversion.Webhook = &apiext.WebhookConversion{}
}
t.obj.Spec.Conversion.WebhookClientConfig.CABundle = data
if t.obj.Spec.Conversion.Webhook.ClientConfig == nil {
t.obj.Spec.Conversion.Webhook.ClientConfig = &apiext.WebhookClientConfig{}
}
t.obj.Spec.Conversion.Webhook.ClientConfig.CABundle = data
}

View File

@ -24,11 +24,11 @@ import (
logf "github.com/jetstack/cert-manager/pkg/logs"
"golang.org/x/sync/errgroup"
admissionreg "k8s.io/api/admissionregistration/v1beta1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
admissionreg "k8s.io/api/admissionregistration/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/client"

View File

@ -27,7 +27,7 @@ go_library(
"@io_k8s_api//authorization/v1:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_api//rbac/v1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1beta1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/client/clientset/clientset:go_default_library",
"@io_k8s_apimachinery//pkg/api/errors:go_default_library",
"@io_k8s_apimachinery//pkg/api/resource:go_default_library",
@ -37,7 +37,7 @@ go_library(
"@io_k8s_client_go//kubernetes:go_default_library",
"@io_k8s_client_go//kubernetes/scheme:go_default_library",
"@io_k8s_client_go//rest:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1beta1:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1:go_default_library",
"@io_k8s_sigs_controller_runtime//pkg/client:go_default_library",
],
)

View File

@ -24,14 +24,14 @@ import (
. "github.com/onsi/gomega"
api "k8s.io/api/core/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextcs "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
kscheme "k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
crclient "sigs.k8s.io/controller-runtime/pkg/client"
v1 "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"

View File

@ -12,12 +12,13 @@ go_library(
"//test/e2e/util:go_default_library",
"@com_github_onsi_ginkgo//:go_default_library",
"@com_github_onsi_gomega//:go_default_library",
"@io_k8s_api//admissionregistration/v1beta1:go_default_library",
"@io_k8s_api//admissionregistration/v1:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1beta1:go_default_library",
"@io_k8s_apiextensions_apiserver//pkg/apis/apiextensions/v1:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
"@io_k8s_apimachinery//pkg/types:go_default_library",
"@io_k8s_kube_aggregator//pkg/apis/apiregistration/v1:go_default_library",
],
)

View File

@ -23,16 +23,18 @@ import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
admissionreg "k8s.io/api/admissionregistration/v1"
corev1 "k8s.io/api/core/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
apireg "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
certmanager "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1"
cmmeta "github.com/jetstack/cert-manager/pkg/apis/meta/v1"
"github.com/jetstack/cert-manager/test/e2e/framework"
"github.com/jetstack/cert-manager/test/e2e/util"
admissionreg "k8s.io/api/admissionregistration/v1beta1"
corev1 "k8s.io/api/core/v1"
apiext "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
)
type injectableTest struct {
@ -155,7 +157,7 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
By("changing the name of the corresponding secret in the cert")
secretName := types.NamespacedName{Name: cert.Spec.SecretName, Namespace: f.Namespace.Name}
cert.Spec.DNSNames = append(cert.Spec.DNSNames, "something.com")
Expect(f.CRClient.Update(context.Background(), &cert)).To(Succeed())
Eventually(func() error { return f.CRClient.Update(context.Background(), &cert) }, "10s", "2s").Should(Succeed())
By("grabbing the new secret")
var secret corev1.Secret
@ -304,6 +306,8 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
})
}
sideEffectsNone := admissionreg.SideEffectClassNone
injectorContext("validating webhook", &injectableTest{
makeInjectable: func(namePrefix string) runtime.Object {
someURL := "https://localhost:8675"
@ -320,6 +324,8 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
ClientConfig: admissionreg.WebhookClientConfig{
URL: &someURL,
},
SideEffects: &sideEffectsNone,
AdmissionReviewVersions: []string{"v1beta1"},
},
{
Name: "hook2.fake.k8s.io",
@ -329,6 +335,8 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
Namespace: f.Namespace.Name,
},
},
SideEffects: &sideEffectsNone,
AdmissionReviewVersions: []string{"v1beta1"},
},
},
}
@ -359,6 +367,8 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
ClientConfig: admissionreg.WebhookClientConfig{
URL: &someURL,
},
SideEffects: &sideEffectsNone,
AdmissionReviewVersions: []string{"v1beta1"},
},
{
Name: "hook2.fake.k8s.io",
@ -368,6 +378,8 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
Namespace: f.Namespace.Name,
},
},
SideEffects: &sideEffectsNone,
AdmissionReviewVersions: []string{"v1beta1"},
},
},
}
@ -395,12 +407,18 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
},
},
Spec: apiext.CustomResourceDefinitionSpec{
Group: namePrefix + ".testing.cert-manager.io",
Version: "v1",
Group: namePrefix + ".testing.cert-manager.io",
Versions: []apiext.CustomResourceDefinitionVersion{
{
Name: "v1",
},
},
Conversion: &apiext.CustomResourceConversion{
Strategy: apiext.WebhookConverter,
WebhookClientConfig: &apiext.WebhookClientConfig{
URL: &someURL,
Webhook: &apiext.WebhookConversion{
ClientConfig: &apiext.WebhookClientConfig{
URL: &someURL,
},
},
},
Names: apiext.CustomResourceDefinitionNames{
@ -412,46 +430,38 @@ var _ = framework.CertManagerDescribe("CA Injector", func() {
},
getCAs: func(obj runtime.Object) [][]byte {
crd := obj.(*apiext.CustomResourceDefinition)
if crd.Spec.Conversion == nil || crd.Spec.Conversion.WebhookClientConfig == nil {
if crd.Spec.Conversion == nil || crd.Spec.Conversion.Webhook == nil || crd.Spec.Conversion.Webhook.ClientConfig == nil {
return nil
}
return [][]byte{crd.Spec.Conversion.WebhookClientConfig.CABundle}
return [][]byte{crd.Spec.Conversion.Webhook.ClientConfig.CABundle}
},
disabled: "ConversionWebhook feature not yet enabled on test infra",
})
// TODO: re-enable this test.
// This test has been disabled in order to reduce flakes on e2e tests
// (hitting around 70% failure rate). This is because when running this test
// will cause tiller install to fail, therefore making other tests to fail
// when running bother at the same time. We should find a way to make this test run in serial.
// https://github.com/jetstack/cert-manager/issues/2353
// https://github.com/jetstack/cert-manager/issues/2354
//injectorContext("api service", &injectableTest{
// makeInjectable: func(namePrefix string) runtime.Object {
// return &apireg.APIService{
// ObjectMeta: metav1.ObjectMeta{
// Name: "corev1." + namePrefix + ".testing.cert-manager.io",
// Annotations: map[string]string{
// certmanager.WantInjectAnnotation: types.NamespacedName{Name: "serving-certs", Namespace: f.Namespace.Name}.String(),
// },
// },
// Spec: apireg.APIServiceSpec{
// Service: &apireg.ServiceReference{
// Name: "does-not-exit",
// Namespace: "default",
// },
// Group: namePrefix + ".testing.cert-manager.io",
// Version: "v1",
// GroupPriorityMinimum: 1,
// VersionPriority: 1,
// },
// }
// },
// getCAs: func(obj runtime.Object) [][]byte {
// apiSvc := obj.(*apireg.APIService)
// return [][]byte{apiSvc.Spec.CABundle}
// },
//})
injectorContext("api service", &injectableTest{
makeInjectable: func(namePrefix string) runtime.Object {
return &apireg.APIService{
ObjectMeta: metav1.ObjectMeta{
Name: "v1." + namePrefix + ".testing.cert-manager.io",
Annotations: map[string]string{
certmanager.WantInjectAnnotation: types.NamespacedName{Name: "serving-certs", Namespace: f.Namespace.Name}.String(),
},
},
Spec: apireg.APIServiceSpec{
Service: &apireg.ServiceReference{
Name: "does-not-exit",
Namespace: "default",
},
Group: namePrefix + ".testing.cert-manager.io",
Version: "v1",
GroupPriorityMinimum: 1,
VersionPriority: 1,
},
}
},
getCAs: func(obj runtime.Object) [][]byte {
apiSvc := obj.(*apireg.APIService)
return [][]byte{apiSvc.Spec.CABundle}
},
})
})