Documentation ¶
Overview ¶
+k8s:deepcopy-gen=package,register +groupName=edge.kcp.io +k8s:openapi-gen=true
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type ClusterScopeDownsyncResource
- type Customizer
- type CustomizerList
- type EdgePlacement
- type EdgePlacementList
- type EdgePlacementSpec
- type EdgePlacementStatus
- type EdgeSynConversion
- type EdgeSyncConfig
- type EdgeSyncConfigList
- type EdgeSyncConfigResource
- type EdgeSyncConfigSpec
- type EdgeSyncConfigStatus
- type NamespaceScopeDownsyncResource
- type NamespaceScopeDownsyncs
- type NonNamespacedObjectReferenceSet
- type Replacement
- type SinglePlacement
- type SinglePlacementSlice
- type SinglePlacementSliceList
- type SyncerConfig
- type SyncerConfigList
- type SyncerConfigSpec
- type SyncerConfigStatus
- type UpsyncSet
Constants ¶
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.
const ParameterExpansionAnnotationKey string = "edge.kcp.io/expand-parameters"
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 ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: edgeapi.GroupName, Version: "v1alpha1"}
SchemeGroupVersion is group version used to register these objects
Functions ¶
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 ¶
func (in *ClusterScopeDownsyncResource) DeepCopy() *ClusterScopeDownsyncResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterScopeDownsyncResource.
func (*ClusterScopeDownsyncResource) DeepCopyInto ¶
func (in *ClusterScopeDownsyncResource) DeepCopyInto(out *ClusterScopeDownsyncResource)
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 ¶
func (in *EdgeSyncConfigResource) DeepCopy() *EdgeSyncConfigResource
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 ¶
func (in *EdgeSyncConfigStatus) DeepCopy() *EdgeSyncConfigStatus
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 ¶
func (in *NamespaceScopeDownsyncResource) DeepCopy() *NamespaceScopeDownsyncResource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceScopeDownsyncResource.
func (*NamespaceScopeDownsyncResource) DeepCopyInto ¶
func (in *NamespaceScopeDownsyncResource) DeepCopyInto(out *NamespaceScopeDownsyncResource)
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 ¶
func (in *NamespaceScopeDownsyncs) DeepCopy() *NamespaceScopeDownsyncs
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 ¶
func (in *NonNamespacedObjectReferenceSet) DeepCopy() *NonNamespacedObjectReferenceSet
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonNamespacedObjectReferenceSet.
func (*NonNamespacedObjectReferenceSet) DeepCopyInto ¶
func (in *NonNamespacedObjectReferenceSet) DeepCopyInto(out *NonNamespacedObjectReferenceSet)
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 ¶
func (in *SinglePlacementSlice) DeepCopy() *SinglePlacementSlice
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 ¶
func (in *SinglePlacementSliceList) DeepCopy() *SinglePlacementSliceList
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpsyncSet.
func (*UpsyncSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.