Signed-off-by: Maartje Eyskens <maartje@eyskens.me>
This commit is contained in:
Maartje Eyskens 2020-08-27 12:49:53 +02:00
parent c83ef5ee77
commit b0a80d4ef5
2 changed files with 28 additions and 5 deletions

View File

@ -9,10 +9,14 @@ go_library(
"//pkg/internal/apis/acme/install:go_default_library",
"//pkg/internal/apis/certmanager/install:go_default_library",
"//pkg/internal/apis/meta/install:go_default_library",
"@io_k8s_api//core/v1:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/internalversion:go_default_library",
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_apimachinery//pkg/conversion:go_default_library",
"@io_k8s_apimachinery//pkg/runtime:go_default_library",
"@io_k8s_apimachinery//pkg/runtime/schema:go_default_library",
"@io_k8s_apimachinery//pkg/util/runtime:go_default_library",
"@io_k8s_client_go//kubernetes/scheme:go_default_library",
],
)

View File

@ -17,16 +17,17 @@ limitations under the License.
package ctl
import (
acmeinstall "github.com/jetstack/cert-manager/pkg/internal/apis/acme/install"
cminstall "github.com/jetstack/cert-manager/pkg/internal/apis/certmanager/install"
metainstall "github.com/jetstack/cert-manager/pkg/internal/apis/meta/install"
corev1 "k8s.io/api/core/v1"
metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/conversion"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
kscheme "k8s.io/client-go/kubernetes/scheme"
acmeinstall "github.com/jetstack/cert-manager/pkg/internal/apis/acme/install"
cminstall "github.com/jetstack/cert-manager/pkg/internal/apis/certmanager/install"
metainstall "github.com/jetstack/cert-manager/pkg/internal/apis/meta/install"
)
// Define a Scheme that has all cert-manager API types registered, including
@ -47,7 +48,25 @@ func init() {
// This is used to add the List object type
listGroupVersion := schema.GroupVersionKind{Group: "", Version: runtime.APIVersionInternal, Kind: "List"}
Scheme.AddKnownTypeWithName(listGroupVersion, &metainternalversion.List{})
metav1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"})
utilruntime.Must(kscheme.AddToScheme(Scheme))
utilruntime.Must(metainternalversion.AddToScheme(Scheme))
// Adds the conversion between internalmeta.List and corev1.List
Scheme.AddConversionFunc((*corev1.List)(nil), (*metainternalversion.List)(nil), func(a, b interface{}, scope conversion.Scope) error {
metaList := &metav1.List{}
metaList.Items = a.(*corev1.List).Items
return metainternalversion.Convert_v1_List_To_internalversion_List(metaList, b.(*metainternalversion.List), scope)
})
Scheme.AddConversionFunc((*metainternalversion.List)(nil), (*corev1.List)(nil), func(a, b interface{}, scope conversion.Scope) error {
metaList := &metav1.List{}
err := metainternalversion.Convert_internalversion_List_To_v1_List(a.(*metainternalversion.List), metaList, scope)
if err != nil {
return err
}
b.(*corev1.List).Items = metaList.Items
return nil
})
}