Documentation ¶
Overview ¶
Definitions for Output Snapshots
Index ¶
Constants ¶
This section is empty.
Variables ¶
var MissingRequiredLabelError = func(labelKey, resourceKind string, obj ezkube.ResourceId) error { return eris.Errorf("expected label %v not on labels of %v %v", labelKey, resourceKind, sets.Key(obj)) }
this error can occur if constructing a Partitioned Snapshot from a resource that is missing the partition label
var SnapshotGVKs = []schema.GroupVersionKind{ schema.GroupVersionKind{ Group: "discovery.mesh.gloo.solo.io", Version: "v1", Kind: "Destination", }, schema.GroupVersionKind{ Group: "discovery.mesh.gloo.solo.io", Version: "v1", Kind: "Workload", }, schema.GroupVersionKind{ Group: "discovery.mesh.gloo.solo.io", Version: "v1", Kind: "Mesh", }, }
SnapshotGVKs is a list of the GVKs included in this snapshot
Functions ¶
func NewBuilder ¶
Types ¶
type Builder ¶
type Builder interface { // add Destinations to the collected outputs AddDestinations(destinations ...*discovery_mesh_gloo_solo_io_v1.Destination) // get the collected Destinations GetDestinations() discovery_mesh_gloo_solo_io_v1_sets.DestinationSet // add Workloads to the collected outputs AddWorkloads(workloads ...*discovery_mesh_gloo_solo_io_v1.Workload) // get the collected Workloads GetWorkloads() discovery_mesh_gloo_solo_io_v1_sets.WorkloadSet // add Meshes to the collected outputs AddMeshes(meshes ...*discovery_mesh_gloo_solo_io_v1.Mesh) // get the collected Meshes GetMeshes() discovery_mesh_gloo_solo_io_v1_sets.MeshSet // build the collected outputs into a label-partitioned snapshot BuildLabelPartitionedSnapshot(labelKey string) (Snapshot, error) // build the collected outputs into a snapshot with a single partition BuildSinglePartitionedSnapshot(snapshotLabels map[string]string) (Snapshot, error) // add a cluster to the collected clusters. // this can be used to collect clusters for use with MultiCluster snapshots. AddCluster(cluster string) // returns the set of clusters currently stored in this builder Clusters() []string // merge all the resources from another Builder into this one Merge(other Builder) // create a clone of this builder (deepcopying all resources) Clone() Builder // convert this snapshot to its generic form Generic() resource.ClusterSnapshot // iterate over the objects contained in the snapshot ForEachObject(handleObject func(cluster string, gvk schema.GroupVersionKind, obj resource.TypedObject)) }
the output Builder uses a builder pattern to allow iteratively collecting outputs before producing a final snapshot
type LabeledDestinationSet ¶ added in v1.0.0
type LabeledDestinationSet interface { // returns the set of Labels shared by this DestinationSet Labels() map[string]string // returns the set of Destinationes with the given labels Set() discovery_mesh_gloo_solo_io_v1_sets.DestinationSet // converts the set to a generic format which can be applied by the Snapshot.Apply functions Generic() output.ResourceList }
LabeledDestinationSet represents a set of destinations which share a common set of labels. These labels are used to find diffs between DestinationSets.
func NewLabeledDestinationSet ¶ added in v1.0.0
func NewLabeledDestinationSet(set discovery_mesh_gloo_solo_io_v1_sets.DestinationSet, labels map[string]string) (LabeledDestinationSet, error)
type LabeledMeshSet ¶
type LabeledMeshSet interface { // returns the set of Labels shared by this MeshSet Labels() map[string]string // returns the set of Meshes with the given labels Set() discovery_mesh_gloo_solo_io_v1_sets.MeshSet // converts the set to a generic format which can be applied by the Snapshot.Apply functions Generic() output.ResourceList }
LabeledMeshSet represents a set of meshes which share a common set of labels. These labels are used to find diffs between MeshSets.
func NewLabeledMeshSet ¶
func NewLabeledMeshSet(set discovery_mesh_gloo_solo_io_v1_sets.MeshSet, labels map[string]string) (LabeledMeshSet, error)
type LabeledWorkloadSet ¶
type LabeledWorkloadSet interface { // returns the set of Labels shared by this WorkloadSet Labels() map[string]string // returns the set of Workloades with the given labels Set() discovery_mesh_gloo_solo_io_v1_sets.WorkloadSet // converts the set to a generic format which can be applied by the Snapshot.Apply functions Generic() output.ResourceList }
LabeledWorkloadSet represents a set of workloads which share a common set of labels. These labels are used to find diffs between WorkloadSets.
func NewLabeledWorkloadSet ¶
func NewLabeledWorkloadSet(set discovery_mesh_gloo_solo_io_v1_sets.WorkloadSet, labels map[string]string) (LabeledWorkloadSet, error)
type Snapshot ¶
type Snapshot interface { // return the set of Destinations with a given set of labels Destinations() []LabeledDestinationSet // return the set of Workloads with a given set of labels Workloads() []LabeledWorkloadSet // return the set of Meshes with a given set of labels Meshes() []LabeledMeshSet // apply the snapshot to the local cluster, garbage collecting stale resources ApplyLocalCluster(ctx context.Context, clusterClient client.Client, errHandler output.ErrorHandler) // apply resources from the snapshot across multiple clusters, garbage collecting stale resources ApplyMultiCluster(ctx context.Context, multiClusterClient multicluster.Client, errHandler output.ErrorHandler) // serialize the entire snapshot as JSON MarshalJSON() ([]byte, error) // convert this snapshot to its generic form Generic() resource.ClusterSnapshot // iterate over the objects contained in the snapshot ForEachObject(handleObject func(cluster string, gvk schema.GroupVersionKind, obj resource.TypedObject)) }
the snapshot of output resources produced by a translation
func NewLabelPartitionedSnapshot ¶
func NewLabelPartitionedSnapshot( name, labelKey string, destinations discovery_mesh_gloo_solo_io_v1_sets.DestinationSet, workloads discovery_mesh_gloo_solo_io_v1_sets.WorkloadSet, meshes discovery_mesh_gloo_solo_io_v1_sets.MeshSet, clusters ...string, ) (Snapshot, error)
automatically partitions the input resources by the presence of the provided label.
func NewSinglePartitionedSnapshot ¶
func NewSinglePartitionedSnapshot( name string, snapshotLabels map[string]string, destinations discovery_mesh_gloo_solo_io_v1_sets.DestinationSet, workloads discovery_mesh_gloo_solo_io_v1_sets.WorkloadSet, meshes discovery_mesh_gloo_solo_io_v1_sets.MeshSet, clusters ...string, ) (Snapshot, error)
simplified constructor for a snapshot with a single label partition (i.e. all resources share a single set of labels).
func NewSnapshot ¶
func NewSnapshot( name string, destinations []LabeledDestinationSet, workloads []LabeledWorkloadSet, meshes []LabeledMeshSet, clusters ...string, ) Snapshot