Accept TypedReference in AsOwner and AsController

This updates the AsOwner and AsController to use TypedReference, which
is a more scoped version of ObjectReference that still contains all
necessary fields to create a controller or owner reference for an
object.

Signed-off-by: hasheddan <georgedanielmangum@gmail.com>
This commit is contained in:
hasheddan 2020-09-08 10:13:15 -05:00
parent adb65bc635
commit 1d97e32d05
No known key found for this signature in database
GPG Key ID: BD68BC686A14C271
4 changed files with 10 additions and 13 deletions

View File

@ -81,7 +81,7 @@ func TypedReferenceTo(o metav1.Object, of schema.GroupVersionKind) *v1alpha1.Typ
}
// AsOwner converts the supplied object reference to an owner reference.
func AsOwner(r *corev1.ObjectReference) metav1.OwnerReference {
func AsOwner(r *v1alpha1.TypedReference) metav1.OwnerReference {
return metav1.OwnerReference{
APIVersion: r.APIVersion,
Kind: r.Kind,
@ -92,7 +92,7 @@ func AsOwner(r *corev1.ObjectReference) metav1.OwnerReference {
// AsController converts the supplied object reference to a controller
// reference. You may also consider using metav1.NewControllerRef.
func AsController(r *corev1.ObjectReference) metav1.OwnerReference {
func AsController(r *v1alpha1.TypedReference) metav1.OwnerReference {
c := true
ref := AsOwner(r)
ref.Controller = &c

View File

@ -131,14 +131,13 @@ func TestTypedReferenceTo(t *testing.T) {
func TestAsOwner(t *testing.T) {
tests := map[string]struct {
r *corev1.ObjectReference
r *v1alpha1.TypedReference
want metav1.OwnerReference
}{
"Successful": {
r: &corev1.ObjectReference{
r: &v1alpha1.TypedReference{
APIVersion: groupVersion,
Kind: kind,
Namespace: name,
Name: name,
UID: uid,
},
@ -165,14 +164,13 @@ func TestAsController(t *testing.T) {
controller := true
tests := map[string]struct {
r *corev1.ObjectReference
r *v1alpha1.TypedReference
want metav1.OwnerReference
}{
"Successful": {
r: &corev1.ObjectReference{
r: &v1alpha1.TypedReference{
APIVersion: groupVersion,
Kind: kind,
Namespace: name,
Name: name,
UID: uid,
},

View File

@ -23,7 +23,6 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
@ -77,7 +76,7 @@ func TestResolve(t *testing.T) {
controlled := &fake.Managed{}
controlled.SetName(value)
meta.SetExternalName(controlled, value)
meta.AddControllerReference(controlled, meta.AsController(&corev1.ObjectReference{UID: types.UID("very-unique")}))
meta.AddControllerReference(controlled, meta.AsController(&v1alpha1.TypedReference{UID: types.UID("very-unique")}))
type args struct {
ctx context.Context
@ -268,7 +267,7 @@ func TestResolveMultiple(t *testing.T) {
controlled := &fake.Managed{}
controlled.SetName(value)
meta.SetExternalName(controlled, value)
meta.AddControllerReference(controlled, meta.AsController(&corev1.ObjectReference{UID: types.UID("very-unique")}))
meta.AddControllerReference(controlled, meta.AsController(&v1alpha1.TypedReference{UID: types.UID("very-unique")}))
type args struct {
ctx context.Context

View File

@ -116,7 +116,7 @@ func LocalConnectionSecretFor(o LocalConnectionSecretOwner, kind schema.GroupVer
ObjectMeta: metav1.ObjectMeta{
Namespace: o.GetNamespace(),
Name: o.GetWriteConnectionSecretToReference().Name,
OwnerReferences: []metav1.OwnerReference{meta.AsController(meta.ReferenceTo(o, kind))},
OwnerReferences: []metav1.OwnerReference{meta.AsController(meta.TypedReferenceTo(o, kind))},
},
Type: SecretTypeConnection,
Data: make(map[string][]byte),
@ -141,7 +141,7 @@ func ConnectionSecretFor(o ConnectionSecretOwner, kind schema.GroupVersionKind)
ObjectMeta: metav1.ObjectMeta{
Namespace: o.GetWriteConnectionSecretToReference().Namespace,
Name: o.GetWriteConnectionSecretToReference().Name,
OwnerReferences: []metav1.OwnerReference{meta.AsController(meta.ReferenceTo(o, kind))},
OwnerReferences: []metav1.OwnerReference{meta.AsController(meta.TypedReferenceTo(o, kind))},
},
Type: SecretTypeConnection,
Data: make(map[string][]byte),