federatedtypes

package
v0.0.0-...-112d741 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2017 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ConfigMapKind           = "configmap"
	ConfigMapControllerName = "configmaps"
)
View Source
const (
	DaemonSetKind           = "daemonset"
	DaemonSetControllerName = "daemonsets"
)
View Source
const (
	DeploymentKind                     = "deployment"
	DeploymentControllerName           = "deployments"
	FedDeploymentPreferencesAnnotation = "federation.kubernetes.io/deployment-preferences"
)
View Source
const (
	ReplicaSetKind                     = "replicaset"
	ReplicaSetControllerName           = "replicasets"
	FedReplicaSetPreferencesAnnotation = "federation.kubernetes.io/replica-set-preferences"
)
View Source
const (
	SecretKind           = "secret"
	SecretControllerName = "secrets"
)

Variables

This section is empty.

Functions

func FederatedTypes

func FederatedTypes() map[string]FederatedType

FederatedTypes returns a mapping of kind (e.g. "secret") to the type information required to configure its federation.

func ObjectKey

func ObjectKey(adapter FederatedTypeAdapter, obj pkgruntime.Object) string

ObjectKey returns a cluster-unique key for the given object

func RegisterFederatedType

func RegisterFederatedType(kind, controllerName string, requiredResources []schema.GroupVersionResource, factory AdapterFactory)

RegisterFederatedType ensures that configuration for the given kind will be returned by the FederatedTypes method.

func SetAnnotation

func SetAnnotation(adapter FederatedTypeAdapter, obj pkgruntime.Object, key, value string)

SetAnnotation sets the given key and value in the given object's ObjectMeta.Annotations map

Types

type AdapterFactory

type AdapterFactory func(client federationclientset.Interface) FederatedTypeAdapter

AdapterFactory defines the function signature for factory methods that create instances of FederatedTypeAdapter. Such methods should be registered with RegisterAdapterFactory to ensure the type adapter is discoverable.

type ConfigMapAdapter

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

func (*ConfigMapAdapter) ClusterCreate

func (*ConfigMapAdapter) ClusterDelete

func (a *ConfigMapAdapter) ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error

func (*ConfigMapAdapter) ClusterGet

func (a *ConfigMapAdapter) ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*ConfigMapAdapter) ClusterList

func (a *ConfigMapAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*ConfigMapAdapter) ClusterUpdate

func (*ConfigMapAdapter) ClusterWatch

func (a *ConfigMapAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*ConfigMapAdapter) Copy

func (*ConfigMapAdapter) Equivalent

func (a *ConfigMapAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool

func (*ConfigMapAdapter) FedCreate

func (*ConfigMapAdapter) FedDelete

func (a *ConfigMapAdapter) FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error

func (*ConfigMapAdapter) FedGet

func (a *ConfigMapAdapter) FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*ConfigMapAdapter) FedList

func (a *ConfigMapAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*ConfigMapAdapter) FedUpdate

func (*ConfigMapAdapter) FedWatch

func (a *ConfigMapAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*ConfigMapAdapter) IsExpectedType

func (a *ConfigMapAdapter) IsExpectedType(obj interface{}) bool

func (*ConfigMapAdapter) IsSchedulingAdapter

func (a *ConfigMapAdapter) IsSchedulingAdapter() bool

func (*ConfigMapAdapter) Kind

func (a *ConfigMapAdapter) Kind() string

func (*ConfigMapAdapter) NamespacedName

func (a *ConfigMapAdapter) NamespacedName(obj pkgruntime.Object) types.NamespacedName

func (*ConfigMapAdapter) NewTestObject

func (a *ConfigMapAdapter) NewTestObject(namespace string) pkgruntime.Object

func (*ConfigMapAdapter) ObjectMeta

func (a *ConfigMapAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

func (*ConfigMapAdapter) ObjectType

func (a *ConfigMapAdapter) ObjectType() pkgruntime.Object

type DaemonSetAdapter

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

func (*DaemonSetAdapter) ClusterCreate

func (*DaemonSetAdapter) ClusterDelete

func (a *DaemonSetAdapter) ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error

func (*DaemonSetAdapter) ClusterGet

func (a *DaemonSetAdapter) ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*DaemonSetAdapter) ClusterList

func (a *DaemonSetAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*DaemonSetAdapter) ClusterUpdate

func (*DaemonSetAdapter) ClusterWatch

func (a *DaemonSetAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*DaemonSetAdapter) Copy

func (*DaemonSetAdapter) Equivalent

func (a *DaemonSetAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool

func (*DaemonSetAdapter) FedCreate

func (*DaemonSetAdapter) FedDelete

func (a *DaemonSetAdapter) FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error

func (*DaemonSetAdapter) FedGet

func (a *DaemonSetAdapter) FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*DaemonSetAdapter) FedList

func (a *DaemonSetAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*DaemonSetAdapter) FedUpdate

func (*DaemonSetAdapter) FedWatch

func (a *DaemonSetAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*DaemonSetAdapter) IsExpectedType

func (a *DaemonSetAdapter) IsExpectedType(obj interface{}) bool

func (*DaemonSetAdapter) IsSchedulingAdapter

func (a *DaemonSetAdapter) IsSchedulingAdapter() bool

func (*DaemonSetAdapter) Kind

func (a *DaemonSetAdapter) Kind() string

func (*DaemonSetAdapter) NamespacedName

func (a *DaemonSetAdapter) NamespacedName(obj pkgruntime.Object) types.NamespacedName

func (*DaemonSetAdapter) NewTestObject

func (a *DaemonSetAdapter) NewTestObject(namespace string) pkgruntime.Object

func (*DaemonSetAdapter) ObjectMeta

func (a *DaemonSetAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

func (*DaemonSetAdapter) ObjectType

func (a *DaemonSetAdapter) ObjectType() pkgruntime.Object

type DeploymentAdapter

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

func (*DeploymentAdapter) ClusterCreate

func (*DeploymentAdapter) ClusterDelete

func (a *DeploymentAdapter) ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error

func (*DeploymentAdapter) ClusterGet

func (a *DeploymentAdapter) ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*DeploymentAdapter) ClusterList

func (a *DeploymentAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*DeploymentAdapter) ClusterUpdate

func (*DeploymentAdapter) ClusterWatch

func (a *DeploymentAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*DeploymentAdapter) Copy

func (*DeploymentAdapter) Equivalent

func (a *DeploymentAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool

func (*DeploymentAdapter) EquivalentIgnoringSchedule

func (a *DeploymentAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool

func (*DeploymentAdapter) FedCreate

func (*DeploymentAdapter) FedDelete

func (a *DeploymentAdapter) FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error

func (*DeploymentAdapter) FedGet

func (a *DeploymentAdapter) FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*DeploymentAdapter) FedList

func (a *DeploymentAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*DeploymentAdapter) FedUpdate

func (*DeploymentAdapter) FedWatch

func (a *DeploymentAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

func (DeploymentAdapter) GetSchedule

func (a DeploymentAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (*SchedulingInfo, error)

func (*DeploymentAdapter) IsExpectedType

func (a *DeploymentAdapter) IsExpectedType(obj interface{}) bool

func (DeploymentAdapter) IsSchedulingAdapter

func (a DeploymentAdapter) IsSchedulingAdapter() bool

func (*DeploymentAdapter) Kind

func (a *DeploymentAdapter) Kind() string

func (*DeploymentAdapter) NamespacedName

func (a *DeploymentAdapter) NamespacedName(obj pkgruntime.Object) types.NamespacedName

func (*DeploymentAdapter) NewTestObject

func (a *DeploymentAdapter) NewTestObject(namespace string) pkgruntime.Object

func (*DeploymentAdapter) ObjectMeta

func (a *DeploymentAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

func (*DeploymentAdapter) ObjectType

func (a *DeploymentAdapter) ObjectType() pkgruntime.Object

func (DeploymentAdapter) ScheduleObject

func (a DeploymentAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo *SchedulingInfo) (pkgruntime.Object, bool, error)

func (DeploymentAdapter) UpdateFederatedStatus

func (a DeploymentAdapter) UpdateFederatedStatus(obj pkgruntime.Object, status SchedulingStatus) error

type FederatedType

type FederatedType struct {
	Kind              string
	ControllerName    string
	RequiredResources []schema.GroupVersionResource
	AdapterFactory    AdapterFactory
}

FederatedType configures federation for a kubernetes type

type FederatedTypeAdapter

type FederatedTypeAdapter interface {
	Kind() string
	ObjectType() pkgruntime.Object
	IsExpectedType(obj interface{}) bool
	Copy(obj pkgruntime.Object) pkgruntime.Object
	Equivalent(obj1, obj2 pkgruntime.Object) bool
	NamespacedName(obj pkgruntime.Object) types.NamespacedName
	ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

	// Fed* operations target the federation control plane
	FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error)
	FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error
	FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)
	FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)
	FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error)
	FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

	// The following operations are intended to target a cluster that is a member of a federation
	ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error)
	ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error
	ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)
	ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)
	ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error)
	ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

	IsSchedulingAdapter() bool

	NewTestObject(namespace string) pkgruntime.Object
}

FederatedTypeAdapter defines operations for interacting with a federated type. Code written to this interface can then target any type for which an implementation of this interface exists.

type ReplicaSetAdapter

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

func (*ReplicaSetAdapter) ClusterCreate

func (*ReplicaSetAdapter) ClusterDelete

func (a *ReplicaSetAdapter) ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error

func (*ReplicaSetAdapter) ClusterGet

func (a *ReplicaSetAdapter) ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*ReplicaSetAdapter) ClusterList

func (a *ReplicaSetAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*ReplicaSetAdapter) ClusterUpdate

func (*ReplicaSetAdapter) ClusterWatch

func (a *ReplicaSetAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*ReplicaSetAdapter) Copy

func (*ReplicaSetAdapter) Equivalent

func (a *ReplicaSetAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool

func (*ReplicaSetAdapter) EquivalentIgnoringSchedule

func (a *ReplicaSetAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool

func (*ReplicaSetAdapter) FedCreate

func (*ReplicaSetAdapter) FedDelete

func (a *ReplicaSetAdapter) FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error

func (*ReplicaSetAdapter) FedGet

func (a *ReplicaSetAdapter) FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*ReplicaSetAdapter) FedList

func (a *ReplicaSetAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*ReplicaSetAdapter) FedUpdate

func (*ReplicaSetAdapter) FedWatch

func (a *ReplicaSetAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

func (ReplicaSetAdapter) GetSchedule

func (a ReplicaSetAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (*SchedulingInfo, error)

func (*ReplicaSetAdapter) IsExpectedType

func (a *ReplicaSetAdapter) IsExpectedType(obj interface{}) bool

func (ReplicaSetAdapter) IsSchedulingAdapter

func (a ReplicaSetAdapter) IsSchedulingAdapter() bool

func (*ReplicaSetAdapter) Kind

func (a *ReplicaSetAdapter) Kind() string

func (*ReplicaSetAdapter) NamespacedName

func (a *ReplicaSetAdapter) NamespacedName(obj pkgruntime.Object) types.NamespacedName

func (*ReplicaSetAdapter) NewTestObject

func (a *ReplicaSetAdapter) NewTestObject(namespace string) pkgruntime.Object

func (*ReplicaSetAdapter) ObjectMeta

func (a *ReplicaSetAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

func (*ReplicaSetAdapter) ObjectType

func (a *ReplicaSetAdapter) ObjectType() pkgruntime.Object

func (ReplicaSetAdapter) ScheduleObject

func (a ReplicaSetAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo *SchedulingInfo) (pkgruntime.Object, bool, error)

func (ReplicaSetAdapter) UpdateFederatedStatus

func (a ReplicaSetAdapter) UpdateFederatedStatus(obj pkgruntime.Object, status SchedulingStatus) error

type SchedulingAdapter

type SchedulingAdapter interface {
	GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (*SchedulingInfo, error)
	ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo *SchedulingInfo) (pkgruntime.Object, bool, error)
	UpdateFederatedStatus(obj pkgruntime.Object, status SchedulingStatus) error

	// EquivalentIgnoringSchedule returns whether obj1 and obj2 are
	// equivalent ignoring differences due to scheduling.
	EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool
}

SchedulingAdapter defines operations for interacting with a federated type that requires more complex synchronization logic.

type SchedulingInfo

type SchedulingInfo struct {
	Schedule map[string]int64
	Status   SchedulingStatus
}

SchedulingInfo wraps the information that a SchedulingAdapter needs to update objects per a schedule.

type SchedulingStatus

type SchedulingStatus struct {
	Replicas             int32
	UpdatedReplicas      int32
	FullyLabeledReplicas int32
	ReadyReplicas        int32
	AvailableReplicas    int32
}

SchedulingStatus contains the status of the objects that are being scheduled into joined clusters.

type SecretAdapter

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

func (*SecretAdapter) ClusterCreate

func (a *SecretAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error)

func (*SecretAdapter) ClusterDelete

func (a *SecretAdapter) ClusterDelete(client kubeclientset.Interface, nsName types.NamespacedName, options *metav1.DeleteOptions) error

func (*SecretAdapter) ClusterGet

func (a *SecretAdapter) ClusterGet(client kubeclientset.Interface, namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*SecretAdapter) ClusterList

func (a *SecretAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*SecretAdapter) ClusterUpdate

func (a *SecretAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error)

func (*SecretAdapter) ClusterWatch

func (a *SecretAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*SecretAdapter) Copy

func (*SecretAdapter) Equivalent

func (a *SecretAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool

func (*SecretAdapter) FedCreate

func (a *SecretAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error)

func (*SecretAdapter) FedDelete

func (a *SecretAdapter) FedDelete(namespacedName types.NamespacedName, options *metav1.DeleteOptions) error

func (*SecretAdapter) FedGet

func (a *SecretAdapter) FedGet(namespacedName types.NamespacedName) (pkgruntime.Object, error)

func (*SecretAdapter) FedList

func (a *SecretAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error)

func (*SecretAdapter) FedUpdate

func (a *SecretAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error)

func (*SecretAdapter) FedWatch

func (a *SecretAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error)

func (*SecretAdapter) IsExpectedType

func (a *SecretAdapter) IsExpectedType(obj interface{}) bool

func (*SecretAdapter) IsSchedulingAdapter

func (a *SecretAdapter) IsSchedulingAdapter() bool

func (*SecretAdapter) Kind

func (a *SecretAdapter) Kind() string

func (*SecretAdapter) NamespacedName

func (a *SecretAdapter) NamespacedName(obj pkgruntime.Object) types.NamespacedName

func (*SecretAdapter) NewTestObject

func (a *SecretAdapter) NewTestObject(namespace string) pkgruntime.Object

func (*SecretAdapter) ObjectMeta

func (a *SecretAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta

func (*SecretAdapter) ObjectType

func (a *SecretAdapter) ObjectType() pkgruntime.Object

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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