v1alpha1

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: May 17, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package,register +groupName=edge.kcp.io +k8s:openapi-gen=true

Index

Constants

View Source
const CustomizerAnnotationKey string = "edge.kcp.io/customizer"

CustomizerAnnotationKey is the key of an annotation that identifies the Customizer that applies to the annotated object as it propagates from center to edge. When the annotated object is namespaced, the Customizer object to apply is in the same namespace and the value of this annotation is the name of the Customizer object; otherwise the value of this annotation uses the form "namespace/name" to reference the desired Customizer.

View Source
const ParameterExpansionAnnotationKey string = "edge.kcp.io/expand-parameters"
View Source
const SourcePlacementLabelKey string = "edge.kcp.io/source-placement"

SourcePlacementLabelKey is the key of the label used in a SinglePlacementSlice to reference the EdgePlacement that it is part of the response to. We use a label rather than a field because field selectors do not work on a resource defined by a CRD.

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: edgeapi.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type ClusterScopeDownsyncResource

type ClusterScopeDownsyncResource struct {
	// GroupResource holds the API group and resource name.
	metav1.GroupResource `json:",inline"`

	// `apiVeresion` holds just the version, not the group too.
	// This is the version to use both upstream and downstream.
	APIVersion string `json:"apiVersion"`

	// `objects` holds the names of the objects of this kind to downsync.
	// Empty list means none of them.
	// +optional
	Objects []string `json:"objects,omitempty"`
}

func (*ClusterScopeDownsyncResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterScopeDownsyncResource.

func (*ClusterScopeDownsyncResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Customizer

type Customizer struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// `replacements` defines modifications to do to an object.
	// +listType=map
	// +listMapKey=path
	// +patchMergeKey=path
	// +patchStrategy=merge
	// +optional
	Replacements []Replacement `patchStrategy:"merge" patchMergeKey:"path" json:"replacements,omitempty"`
}

Customizer defines modifications to make to the relevant objects as they propagate from center to edge.

The relevant objects are those with an annotation whose key is "edge.kcp.io/customizer" and whose value refers to this object as explained above.

If this object is marked as being subject to parameter expansion then the parameter-expanded version of this object is what gets applied to a relevant object as it propagates to a destination.

func (*Customizer) DeepCopy

func (in *Customizer) DeepCopy() *Customizer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Customizer.

func (*Customizer) DeepCopyInto

func (in *Customizer) DeepCopyInto(out *Customizer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Customizer) DeepCopyObject

func (in *Customizer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CustomizerList

type CustomizerList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Customizer `json:"items"`
}

CustomizerList is the API type for a list of Customizer +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CustomizerList) DeepCopy

func (in *CustomizerList) DeepCopy() *CustomizerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomizerList.

func (*CustomizerList) DeepCopyInto

func (in *CustomizerList) DeepCopyInto(out *CustomizerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CustomizerList) DeepCopyObject

func (in *CustomizerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EdgePlacement

type EdgePlacement struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// `spec` describes a desired binding between workload and Locations.
	// Unlike a TMC Placement, there is an inherent multiplicity and dynamicity
	// in the set of Locations that will be synced to and this field
	// never shifts into immutability.
	// +optional
	Spec EdgePlacementSpec `json:"spec,omitempty"`

	// `status` describes the status of the process of binding
	// workload to Locations.
	// +optional
	Status EdgePlacementStatus `json:"status,omitempty"`
}

EdgePlacement exists in the center and binds (a) a collection of Locations with (b) both (b1) objects in the center to downsync (propagate desired state from center to edge and return reported state from edge toward center), and (b2) a way of identifying objects (in edge clusters) to upsync (propagate from edge toward center). Both downsyncing and upsyncing are with all of the Locations. This is not entirely unrelated to a TMC Placement, which directs the selected Namespaces to propagate to _one_ of the selected Locations.

The objects to downsync are those in selected namespaces plus selected non-namespaced objects.

For upsync, the matching objects originate in the edge clusters and propagate to the corresponding mailbox workspaces while summaries of them go to the workload management workspace (as prescribed by the summarization API).

Overlap between EdgePlacements is allowed: two different EdgePlacement objects may select intersecting Location sets and/or intersecting Namespace sets. This is not problematic because:

  • propagation _into_ a destination is additive;
  • propagation _from_ a source is additive;
  • two directives to propagate the same object to the same destination are simply redundant (they, by design, can not conflict).

+crd +genclient +genclient:nonNamespaced +kubebuilder:resource:scope=Cluster,shortName=epl +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*EdgePlacement) DeepCopy

func (in *EdgePlacement) DeepCopy() *EdgePlacement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgePlacement.

func (*EdgePlacement) DeepCopyInto

func (in *EdgePlacement) DeepCopyInto(out *EdgePlacement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EdgePlacement) DeepCopyObject

func (in *EdgePlacement) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EdgePlacementList

type EdgePlacementList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EdgePlacement `json:"items"`
}

EdgePlacementList is the API type for a list of EdgePlacement

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*EdgePlacementList) DeepCopy

func (in *EdgePlacementList) DeepCopy() *EdgePlacementList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgePlacementList.

func (*EdgePlacementList) DeepCopyInto

func (in *EdgePlacementList) DeepCopyInto(out *EdgePlacementList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EdgePlacementList) DeepCopyObject

func (in *EdgePlacementList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EdgePlacementSpec

type EdgePlacementSpec struct {
	// `locationSelectors` identifies the relevant Location objects in terms of their labels.
	// A Location is relevant if and only if it passes any of the LabelSelectors in this field.
	LocationSelectors []metav1.LabelSelector `json:"locationSelectors,omitempty"`

	// `namespaceSelector` identifies the relevant Namespace objects in terms of their labels.
	NamespaceSelector metav1.LabelSelector `json:"namespaceSelector,omitempty"`

	// `nonNamespacedObjects` defines the non-namespaced objects to bind with the selected Locations.
	// +optional
	NonNamespacedObjects []NonNamespacedObjectReferenceSet `json:"nonNamespacedObjects,omitempty"`

	// `upsync` identifies objects to upsync.
	// An object matches `upsync` if and only if it matches at least one member of `upsync`.
	// +optional
	Upsync []UpsyncSet `json:"upsync,omitempty"`
}

EdgePlacementSpec holds a desired binding between (a) a set of Locations and (b) a set of objects to downsync and a way of identifying objects to upsync.

func (*EdgePlacementSpec) DeepCopy

func (in *EdgePlacementSpec) DeepCopy() *EdgePlacementSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgePlacementSpec.

func (*EdgePlacementSpec) DeepCopyInto

func (in *EdgePlacementSpec) DeepCopyInto(out *EdgePlacementSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EdgePlacementStatus

type EdgePlacementStatus struct {
	// `specGeneration` identifies the generation of the spec that this
	// is the status for.
	// Zero means that no status has yet been written here.
	// +optional
	SpecGeneration int32 `json:"specGeneration,omitempty"`

	// `matchingLocationCount` is the number of Locations that satisfy the spec's
	// `locationSelectors`.
	MatchingLocationCount int32 `json:"matchingLocationCount"`
}

func (*EdgePlacementStatus) DeepCopy

func (in *EdgePlacementStatus) DeepCopy() *EdgePlacementStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgePlacementStatus.

func (*EdgePlacementStatus) DeepCopyInto

func (in *EdgePlacementStatus) DeepCopyInto(out *EdgePlacementStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EdgeSynConversion

type EdgeSynConversion struct {
	// Resource representation in upstream
	Upstream EdgeSyncConfigResource `json:"upstream,omitempty"`
	// Resource representation in downstream
	Downstream EdgeSyncConfigResource `json:"downstream,omitempty"`
}

Resource to be renatured

func (*EdgeSynConversion) DeepCopy

func (in *EdgeSynConversion) DeepCopy() *EdgeSynConversion

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSynConversion.

func (*EdgeSynConversion) DeepCopyInto

func (in *EdgeSynConversion) DeepCopyInto(out *EdgeSynConversion)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EdgeSyncConfig

type EdgeSyncConfig struct {
	/*
	 */
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   EdgeSyncConfigSpec   `json:"spec,omitempty"`
	Status EdgeSyncConfigStatus `json:"status,omitempty"`
}

+crd +genclient +genclient:nonNamespaced +kubebuilder:resource:scope=Cluster,shortName=esc +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*EdgeSyncConfig) DeepCopy

func (in *EdgeSyncConfig) DeepCopy() *EdgeSyncConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSyncConfig.

func (*EdgeSyncConfig) DeepCopyInto

func (in *EdgeSyncConfig) DeepCopyInto(out *EdgeSyncConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EdgeSyncConfig) DeepCopyObject

func (in *EdgeSyncConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EdgeSyncConfigList

type EdgeSyncConfigList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []EdgeSyncConfig `json:"items"`
}

EdgePlacementList is the API type for a list of EdgePlacement

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*EdgeSyncConfigList) DeepCopy

func (in *EdgeSyncConfigList) DeepCopy() *EdgeSyncConfigList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSyncConfigList.

func (*EdgeSyncConfigList) DeepCopyInto

func (in *EdgeSyncConfigList) DeepCopyInto(out *EdgeSyncConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EdgeSyncConfigList) DeepCopyObject

func (in *EdgeSyncConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type EdgeSyncConfigResource

type EdgeSyncConfigResource struct {
	// Kind of down/up synced resource
	Kind string `json:"kind,omitempty"`

	// Group of down/up synced resource
	Group string `json:"group,omitempty"`

	// Version of down/up synced resource
	Version string `json:"version,omitempty"`

	// Name of down/up synced resource
	Name string `json:"name,omitempty"`

	// Namespace of down/up synced resource if it's not cluster scoped resource
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

Resource specifies down/up synced resource with exact GVK and name (and namespace if not cluster scoped resource)

func (*EdgeSyncConfigResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSyncConfigResource.

func (*EdgeSyncConfigResource) DeepCopyInto

func (in *EdgeSyncConfigResource) DeepCopyInto(out *EdgeSyncConfigResource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EdgeSyncConfigSpec

type EdgeSyncConfigSpec struct {
	// Downsncyed resource list
	DownSyncedResources []EdgeSyncConfigResource `json:"downSyncedResources,omitempty"`

	// Upsncyed resource list
	UpSyncedResources []EdgeSyncConfigResource `json:"upSyncedResources,omitempty"`

	// Conversions
	Conversions []EdgeSynConversion `json:"conversions,omitempty"`
}

EdgeSyncConfigSpec defines the desired state of EdgeSyncConfig

func (*EdgeSyncConfigSpec) DeepCopy

func (in *EdgeSyncConfigSpec) DeepCopy() *EdgeSyncConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSyncConfigSpec.

func (*EdgeSyncConfigSpec) DeepCopyInto

func (in *EdgeSyncConfigSpec) DeepCopyInto(out *EdgeSyncConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EdgeSyncConfigStatus

type EdgeSyncConfigStatus struct {
	// A timestamp indicating when the syncer last reported status.
	// +optional
	LastSyncerHeartbeatTime *metav1.Time `json:"lastSyncerHeartbeatTime,omitempty"`
}

EdgeSyncConfigStatus defines the observed state of EdgeSyncConfig

func (*EdgeSyncConfigStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EdgeSyncConfigStatus.

func (*EdgeSyncConfigStatus) DeepCopyInto

func (in *EdgeSyncConfigStatus) DeepCopyInto(out *EdgeSyncConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceScopeDownsyncResource

type NamespaceScopeDownsyncResource struct {
	// GroupResource holds the API group and resource name.
	metav1.GroupResource `json:",inline"`

	// `apiVeresion` holds just the version, not the group too.
	// This is the version to use both upstream and downstream.
	APIVersion string `json:"apiVersion"`
}

func (*NamespaceScopeDownsyncResource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceScopeDownsyncResource.

func (*NamespaceScopeDownsyncResource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NamespaceScopeDownsyncs

type NamespaceScopeDownsyncs struct {
	// `namespaces` is the names of the namespaces to downsync.
	// Empty list means to downsync no namespace contents.
	// Whether the particulars of the Namespace object itself
	// are to be downsynced are controlled by the `clusterScope`;
	// if not then downsync will ensure that the namespace exists
	// but take no further care to make it match upstream.
	// +optional
	Namespaces []string `json:"namespaces,omitempty"`

	// `resources` lists the namespace-scoped resources to downsync.
	// Empty list means none of them.
	// +optional
	Resources []NamespaceScopeDownsyncResource `json:"resources,omitempty"`
}

NamespaceScopeDownsyncs describes what namespace-scoped objects to downsync. Note that it is factored into two orthogonal parts, one identifying namespaces and one identifying resources. An object is to be downsynced iff it matches both parts.

func (*NamespaceScopeDownsyncs) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceScopeDownsyncs.

func (*NamespaceScopeDownsyncs) DeepCopyInto

func (in *NamespaceScopeDownsyncs) DeepCopyInto(out *NamespaceScopeDownsyncs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NonNamespacedObjectReferenceSet

type NonNamespacedObjectReferenceSet struct {
	// `apiGroup` is the API group of the referenced object, empty string for the core API group.
	APIGroup string `json:"apiGroup,omitempty"`

	// `resources` is a list of lowercase plural names for the sorts of objects to match.
	// An entry of `"*"` means that all match.
	// Empty list means nothing matches.
	Resources []string `json:"resources"`

	// `resourceNames` is a list of objects that match by name.
	// An entry of `"*"` means that all match.
	// Empty list means nothing matches.
	ResourceNames []string `json:"resourceNames,omitempty"`

	// `labelSelectors` allows matching objects by a rule rather than listing individuals.
	LabelSelectors []metav1.LabelSelector `json:"labelSelectors,omitempty"`
}

NonNamespacedObjectReferenceSet specifies a set of non-namespaced objects from one particular API group. An object is in this set if: - its API group is the one listed; - its resource (lowercase plural form of object type) is one of those listed; and - EITHER its name is listed OR its labels match one of the label selectors.

func (*NonNamespacedObjectReferenceSet) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonNamespacedObjectReferenceSet.

func (*NonNamespacedObjectReferenceSet) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Replacement

type Replacement struct {
	// `path` is a JSON Path identifying the part of the object to replace/inject.
	Path string `json:"path"`

	// `value` supplies the new value to put where the path points, in JSON.
	Value string `json:"value"`
}

Replacement represents one modification to an object. Such a replacement is conceptually done on the JSON representation of that object.

func (*Replacement) DeepCopy

func (in *Replacement) DeepCopy() *Replacement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Replacement.

func (*Replacement) DeepCopyInto

func (in *Replacement) DeepCopyInto(out *Replacement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SinglePlacement

type SinglePlacement struct {
	// Cluster is the logicacluster.Name of the logical cluster that contains
	// both the Location and the SyncTarget.
	Cluster string `json:"cluster"`

	LocationName string `json:"locationName"`

	// `syncTargetName` identifies the relevant SyncTarget at the Location
	SyncTargetName string `json:"syncTargetName"`

	SyncTargetUID apimachtypes.UID `json:"syncTargetUID"`
}

SinglePlacement describes one Location that matches the relevant EdgePlacement.

func (*SinglePlacement) DeepCopy

func (in *SinglePlacement) DeepCopy() *SinglePlacement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SinglePlacement.

func (*SinglePlacement) DeepCopyInto

func (in *SinglePlacement) DeepCopyInto(out *SinglePlacement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SinglePlacementSlice

type SinglePlacementSlice struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// `destinations` holds some of the results of scheduling.
	Destinations []SinglePlacement `json:"destinations"`
}

SinglePlacementSlice is the interface between "scheduling" and syncing. For a given EdgePlacement object, the scheduler figures out which Locations match that EdgePlacement and selects the SyncTarget to use within that Location, then puts these results into some SinglePlacementSlice API objects. We use potentially multiple API objects so that no one of them has to get very big.

+crd +genclient +genclient:nonNamespaced +kubebuilder:resource:scope=Cluster,shortName=sps,path=singleplacementslices +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SinglePlacementSlice) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SinglePlacementSlice.

func (*SinglePlacementSlice) DeepCopyInto

func (in *SinglePlacementSlice) DeepCopyInto(out *SinglePlacementSlice)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SinglePlacementSlice) DeepCopyObject

func (in *SinglePlacementSlice) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SinglePlacementSliceList

type SinglePlacementSliceList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SinglePlacementSlice `json:"items"`
}

SinglePlacementSliceList is the API type for a list of SinglePlacementSlice

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SinglePlacementSliceList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SinglePlacementSliceList.

func (*SinglePlacementSliceList) DeepCopyInto

func (in *SinglePlacementSliceList) DeepCopyInto(out *SinglePlacementSliceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SinglePlacementSliceList) DeepCopyObject

func (in *SinglePlacementSliceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SyncerConfig

type SyncerConfig struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec SyncerConfigSpec `json:"spec,omitempty"`

	// +optional
	Status SyncerConfigStatus `json:"status,omitempty"`
}

SyncerConfig tells a syncer what to sync down and up. There is a 1:1:1:1 relation between: - edge cluster - mailbox workspace - syncer - syncer config.

+crd +genclient +genclient:nonNamespaced +kubebuilder:resource:scope=Cluster,shortName=escfg +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SyncerConfig) DeepCopy

func (in *SyncerConfig) DeepCopy() *SyncerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncerConfig.

func (*SyncerConfig) DeepCopyInto

func (in *SyncerConfig) DeepCopyInto(out *SyncerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SyncerConfig) DeepCopyObject

func (in *SyncerConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SyncerConfigList

type SyncerConfigList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SyncerConfig `json:"items"`
}

SyncerConfigList is the API type for a list of SyncerConfig

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*SyncerConfigList) DeepCopy

func (in *SyncerConfigList) DeepCopy() *SyncerConfigList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncerConfigList.

func (*SyncerConfigList) DeepCopyInto

func (in *SyncerConfigList) DeepCopyInto(out *SyncerConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SyncerConfigList) DeepCopyObject

func (in *SyncerConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SyncerConfigSpec

type SyncerConfigSpec struct {
	// +optional
	NamespaceScope NamespaceScopeDownsyncs `json:"namespaceScope,omitempty"`

	// `clusterScope` holds a list of individual cluster-scoped objects
	// to downsync, organized by resource.
	// Remember that a "resource" is a kind/type/sort of objects,
	// not an individual object.
	// +optional
	ClusterScope []ClusterScopeDownsyncResource `json:"clusterScope,omitempty"`

	// `upsync` identifies objects to upsync.
	// An object matches `upsync` if and only if it matches at least one member of `upsync`.
	// The syncer identifies matching objects in the edge cluster.
	// The syncer reads and writese the matching objects using the
	// API version preferred in the edge cluster.
	// +optional
	Upsync []UpsyncSet `json:"upsync,omitempty"`
}

SyncerConfigSpec is instructions to the syncer

func (*SyncerConfigSpec) DeepCopy

func (in *SyncerConfigSpec) DeepCopy() *SyncerConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncerConfigSpec.

func (*SyncerConfigSpec) DeepCopyInto

func (in *SyncerConfigSpec) DeepCopyInto(out *SyncerConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SyncerConfigStatus

type SyncerConfigStatus struct {
	// A timestamp indicating when the syncer last reported status.
	// +optional
	LastSyncerHeartbeatTime *metav1.Time `json:"lastSyncerHeartbeatTime,omitempty"`
}

func (*SyncerConfigStatus) DeepCopy

func (in *SyncerConfigStatus) DeepCopy() *SyncerConfigStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncerConfigStatus.

func (*SyncerConfigStatus) DeepCopyInto

func (in *SyncerConfigStatus) DeepCopyInto(out *SyncerConfigStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpsyncSet

type UpsyncSet struct {
	// `apiGroup` is the API group of the referenced object, empty string for the core API group.
	APIGroup string `json:"apiGroup,omitempty"`

	// `resources` is a list of lowercase plural names for the sorts of objects to match.
	// An entry of `"*"` means that all match.
	// Empty list means nothing matches.
	Resources []string `json:"resources"`

	// `namespaces` is a list of acceptable namespaces.
	// An entry of `"*"` means that all match.
	// Empty list means nothing matches (you probably do not want this
	// for namespaced resources).
	Namespaces []string `json:"namespaces,omitempty"`

	// `Names` is a list of objects that match by name.
	// An entry of `"*"` means that all match.
	// Empty list means nothing matches (you probably never want an empty list).
	Names []string `json:"names,omitempty"`
}

UpsyncSet specifies a set of objects, which may be namespaced or cluster-scoped, from one particular API group. An object is in this set if: - its API group is the one listed; - its resource (lowercase plural form of object type) is one of those listed; - EITHER the resource is cluster-scoped OR the object's namespace matches `namespaces`; and - the object's name matches `names`.

func (*UpsyncSet) DeepCopy

func (in *UpsyncSet) DeepCopy() *UpsyncSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpsyncSet.

func (*UpsyncSet) DeepCopyInto

func (in *UpsyncSet) DeepCopyInto(out *UpsyncSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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