convert

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2022 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Copyright 2022 The KubeZoo Authors.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitConvertors

func InitConvertors(checkGroupKind util.CheckGroupKindFunc, listTenantCRDs ListTenantCRDsFunc) (nativeConvertor, customConvertor common.ObjectConvertor)

InitConvertors initialize native convertor and custom convertor

func NewCRDConvertor

NewCRDConvertor initiates a CRDConvertor which implements the ObjectConvertor interfaces.

func NewCrossReferenceConverter

func NewCrossReferenceConverter(c common.ObjectConvertor, objectTransformer ObjectTransformer) common.ObjectConvertor

convert spec.volumeName field

func NewDefaultConvertor

func NewDefaultConvertor(ort OwnerReferenceTransformer) common.ObjectConvertor

NewDefaultConvertor initiates a DefaultConvertor which implements the ObjectConvertor interfaces.

func NewNativeObjectConvertor

func NewNativeObjectConvertor(defaultConvertor common.ObjectConvertor,
	kindToConvertors map[schema.GroupKind]common.ObjectConvertor) common.ObjectConvertor

NewNativeObjectConvertor initiates a nativeObjectConvertor which implements the ObjectConvertor interfaces.

func NewNopeConvertor

func NewNopeConvertor() common.ObjectConvertor

NewNopeConvertor returns a NopeConvertor to convert nothing.

Types

type CRDConvertor

type CRDConvertor struct {
	// contains filtered or unexported fields
}

CRDConvertor implements the transformation between client and upstream server for CustomResourceDefinition resource.

func (*CRDConvertor) ConvertTenantObjectToUpstreamObject

func (t *CRDConvertor) ConvertTenantObjectToUpstreamObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertTenantObjectToUpstreamObject convert the tenant object to upstream object.

func (*CRDConvertor) ConvertUpstreamObjectToTenantObject

func (t *CRDConvertor) ConvertUpstreamObjectToTenantObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertUpstreamObjectToTenantObject convert the upstream object to tenant object.

type ClusterRoleBindingTransformer

type ClusterRoleBindingTransformer struct{}

ClusterRoleBindingTransformer implements the transformation between client and upstream server for ClusterRoleBinding resource.

func (*ClusterRoleBindingTransformer) Backward

func (t *ClusterRoleBindingTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*ClusterRoleBindingTransformer) Forward

func (t *ClusterRoleBindingTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type ClusterRoleTransformer

type ClusterRoleTransformer struct {
	// contains filtered or unexported fields
}

ClusterRoleTransformer implements the transformation between client and upstream server for ClusterRole resource.

func (*ClusterRoleTransformer) Backward

func (t *ClusterRoleTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*ClusterRoleTransformer) Forward

func (t *ClusterRoleTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type CrossReferenceConvertor

type CrossReferenceConvertor struct {
	// contains filtered or unexported fields
}

CrossReferenceConvertor implements the interfaces of ObjectConvertor and ObjectTransformer to support the cross references cases such as PersistenceVolume and PersistenceVolumeClaim.

func (*CrossReferenceConvertor) ConvertTenantObjectToUpstreamObject

func (c *CrossReferenceConvertor) ConvertTenantObjectToUpstreamObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertTenantObjectToUpstreamObject convert the tenant object to upstream object.

func (*CrossReferenceConvertor) ConvertUpstreamObjectToTenantObject

func (c *CrossReferenceConvertor) ConvertUpstreamObjectToTenantObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertUpstreamObjectToTenantObject convert the upstream object to tenant object.

type CustomResourceTransformer

type CustomResourceTransformer struct{}

CustomResourceTransformer implements the transformation between client and upstream server for custom resource.

func (*CustomResourceTransformer) Backward

func (t *CustomResourceTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*CustomResourceTransformer) Forward

func (t *CustomResourceTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type DefaultConvertor

type DefaultConvertor struct {
	// contains filtered or unexported fields
}

DefaultConvertor implements the transformation between client and upstream server for generic default resource.

func (*DefaultConvertor) ConvertTenantObjectToUpstreamObject

func (c *DefaultConvertor) ConvertTenantObjectToUpstreamObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertTenantObjectToUpstreamObject convert the tenant object to upstream object.

func (*DefaultConvertor) ConvertUpstreamObjectToTenantObject

func (c *DefaultConvertor) ConvertUpstreamObjectToTenantObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertUpstreamObjectToTenantObject convert the upstream object to tenant object.

type EndpointSliceTransformer

type EndpointSliceTransformer struct {
	// contains filtered or unexported fields
}

EndpointSliceTransformer implements the transformation between client and upstream server for EndpointSlice resource.

func (*EndpointSliceTransformer) Backward

func (t *EndpointSliceTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*EndpointSliceTransformer) Forward

func (t *EndpointSliceTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type EndpointsTransformer

type EndpointsTransformer struct {
	// contains filtered or unexported fields
}

EndpointsTransformer implements the transformation between client and upstream server for Endpoints resource.

func (*EndpointsTransformer) Backward

func (t *EndpointsTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*EndpointsTransformer) Forward

func (t *EndpointsTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type EventTransformer

type EventTransformer struct {
	// contains filtered or unexported fields
}

EventTransformer implements the transformation between client and upstream server for Event resource.

func (*EventTransformer) Backward

func (t *EventTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*EventTransformer) Forward

func (t *EventTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type ListTenantCRDsFunc

type ListTenantCRDsFunc func(tenantID string) ([]*v1.CustomResourceDefinition, error)

ListTenantCRDsFunc lists crds for tenant

type NamespaceTransformer

type NamespaceTransformer struct {
}

func NewNamespaceTransformer

func NewNamespaceTransformer() *NamespaceTransformer

func (*NamespaceTransformer) Backward

func (t *NamespaceTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

func (*NamespaceTransformer) Forward

func (t *NamespaceTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

type NopeConvertor

type NopeConvertor struct{}

NopeConvertor converts nothing

func (*NopeConvertor) ConvertTenantObjectToUpstreamObject

func (c *NopeConvertor) ConvertTenantObjectToUpstreamObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertTenantObjectToUpstreamObject of NopeConvertor does nothing.

func (*NopeConvertor) ConvertUpstreamObjectToTenantObject

func (c *NopeConvertor) ConvertUpstreamObjectToTenantObject(obj runtime.Object, tenantID string, isNamespaceScoped bool) error

ConvertUpstreamObjectToTenantObject of NopeConvertor does nothing.

type ObjectReferenceTransformer

type ObjectReferenceTransformer interface {
	// Forward transforms tenant object reference to upstream object reference
	Forward(or *internal.ObjectReference, tenantID string) (*internal.ObjectReference, error)
	// Backward transforms upstream object reference to tenant object reference
	Backward(or *internal.ObjectReference, tenantID string) (*internal.ObjectReference, error)
}

ObjectReferenceTransformer transforms tenant object reference to/from upstream object reference

func NewObjectReferenceTransformer

func NewObjectReferenceTransformer(checkGroupKind util.CheckGroupKindFunc) ObjectReferenceTransformer

NewObjectReferenceTransformer returns a new ObjectReferenceTransformer

type ObjectTransformer

type ObjectTransformer interface {
	// Forward transforms the tenant object to the upstream object.
	Forward(obj runtime.Object, tenantID string) (runtime.Object, error)
	// Backward transforms the upstream object to the tenant object.
	Backward(obj runtime.Object, tenantID string) (runtime.Object, error)
}

ObjectTransformer transforms tenant object to/from upstream object NOTE for both Forward and Backward, the first input and ouput are either unstructured or internal object.

func NewClusterRoleBindingTransformer

func NewClusterRoleBindingTransformer() ObjectTransformer

NewClusterRoleBindingTransformer initiates a ClusterRoleBindingTransformer which implements the ObjectTransformer interfaces.

func NewClusterRoleTransformer

func NewClusterRoleTransformer(listTenantCRDs ListTenantCRDsFunc) ObjectTransformer

NewClusterRoleTransformer initiates a ClusterRoleTransformer which implements the ObjectTransformer interfaces.

func NewCustomResourceTransformer

func NewCustomResourceTransformer() ObjectTransformer

NewCustomResourceTransformer initiates a CustomResourceTransformer which implements the ObjectTransformer interfaces.

func NewEndpointSliceTransformer

func NewEndpointSliceTransformer(ort ObjectReferenceTransformer) ObjectTransformer

NewEndpointSliceTransformer initiates a EndpointSliceTransformer which implements the ObjectTransformer interfaces.

func NewEndpointsTransformer

func NewEndpointsTransformer(ort ObjectReferenceTransformer) ObjectTransformer

NewEndpointsTransformer initiates a EndpointsTransformer which implements the ObjectTransformer interfaces.

func NewEventTransformer

func NewEventTransformer(ort ObjectReferenceTransformer) ObjectTransformer

NewEventTransformer initiates a EventTransformer which implements the ObjectTransformer interfaces.

func NewPVCTransformer

func NewPVCTransformer() ObjectTransformer

NewPVCTransformer initiates a PVCTranformer which implements the ObjectTransformer interfaces.

func NewPVTransformer

func NewPVTransformer() ObjectTransformer

NewPVTransformer initiates a PVTranformer which implements the ObjectTransformer interfaces.

func NewRoleBindingTransformer

func NewRoleBindingTransformer() ObjectTransformer

NewRoleBindingTransformer initiates a RoleBindingTransformer which implements the ObjectTransformer interfaces.

func NewRoleTransformer

func NewRoleTransformer(listTenantCRDs ListTenantCRDsFunc) ObjectTransformer

NewRoleTransformer initiates a RoleTransformer which implements the ObjectTransformer interfaces.

func NewTokenReviewTransformer

func NewTokenReviewTransformer() ObjectTransformer

NewTokenReviewTransformer initiates a TokenReviewTransformer which implements the ObjectTransformer interfaces.

func NewVolumeAttachmentTransformer

func NewVolumeAttachmentTransformer() ObjectTransformer

NewVolumeAttachmentTransformer initiates a VolumeAttachmentTransformer which implements the ObjectTransformer interfaces.

type OwnerReferenceTransformer

type OwnerReferenceTransformer interface {
	// Forward transforms tenant owner reference to upstream owner reference
	Forward(or *metav1.OwnerReference, tenantID string) (*metav1.OwnerReference, error)
	// Backward transforms upstream owner reference to tenant owner reference
	Backward(or *metav1.OwnerReference, tenantID string) (*metav1.OwnerReference, error)
}

OwnerReferenceTransformer transforms tenant owner reference to/from upstream owner reference

func NewOwnerReferenceTransformer

func NewOwnerReferenceTransformer(checkGroupKind util.CheckGroupKindFunc) OwnerReferenceTransformer

NewOwnerReferenceTransformer returns a new OwnerReferenceTransformer

type PVCTranformer

type PVCTranformer struct{}

PVCTranformer implements the transformation between client and upstream server for PersistenceVolumeClaim resource.

func (*PVCTranformer) Backward

func (v *PVCTranformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*PVCTranformer) Forward

func (v *PVCTranformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type PVTranformer

type PVTranformer struct{}

PVTranformer implements the transformation between client and upstream server for PersistenceVolume resource.

func (*PVTranformer) Backward

func (v *PVTranformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*PVTranformer) Forward

func (v *PVTranformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type RoleBindingTransformer

type RoleBindingTransformer struct{}

RoleBindingTransformer implements the transformation between client and upstream server for RoleBinding resource.

func (*RoleBindingTransformer) Backward

func (t *RoleBindingTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*RoleBindingTransformer) Forward

func (t *RoleBindingTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type RoleTransformer

type RoleTransformer struct {
	// contains filtered or unexported fields
}

RoleTransformer implements the transformation between client and upstream server for Role resource.

func (*RoleTransformer) Backward

func (t *RoleTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*RoleTransformer) Forward

func (t *RoleTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type TokenReviewTransformer

type TokenReviewTransformer struct{}

TokenReviewTransformer implements the transformation between client and upstream server for TokenReview resource.

func (*TokenReviewTransformer) Backward

func (t *TokenReviewTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*TokenReviewTransformer) Forward

func (t *TokenReviewTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

type VolumeAttachmentTransformer

type VolumeAttachmentTransformer struct{}

VolumeAttachmentTransformer implements the transformation between client and upstream server for VolumeAttachment resource.

func (*VolumeAttachmentTransformer) Backward

func (v *VolumeAttachmentTransformer) Backward(obj runtime.Object, tenantID string) (runtime.Object, error)

Backward transforms upstream object reference to tenant object reference.

func (*VolumeAttachmentTransformer) Forward

func (v *VolumeAttachmentTransformer) Forward(obj runtime.Object, tenantID string) (runtime.Object, error)

Forward transforms tenant object reference to upstream object reference.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL