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
Functions ¶
func NewBuilder ¶
Types ¶
type Builder ¶
type Builder interface { // add TrafficTargets to the collected outputs AddTrafficTargets(trafficTargets ...*discovery_mesh_gloo_solo_io_v1alpha2.TrafficTarget) // get the collected TrafficTargets GetTrafficTargets() discovery_mesh_gloo_solo_io_v1alpha2_sets.TrafficTargetSet // add Workloads to the collected outputs AddWorkloads(workloads ...*discovery_mesh_gloo_solo_io_v1alpha2.Workload) // get the collected Workloads GetWorkloads() discovery_mesh_gloo_solo_io_v1alpha2_sets.WorkloadSet // add Meshes to the collected outputs AddMeshes(meshes ...*discovery_mesh_gloo_solo_io_v1alpha2.Mesh) // get the collected Meshes GetMeshes() discovery_mesh_gloo_solo_io_v1alpha2_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 // return the difference between the snapshot in this builder's and another Delta(newSnap Builder) output.SnapshotDelta }
the output Builder uses a builder pattern to allow iteratively collecting outputs before producing a final snapshot
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_v1alpha2_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_v1alpha2_sets.MeshSet, labels map[string]string) (LabeledMeshSet, error)
type LabeledTrafficTargetSet ¶
type LabeledTrafficTargetSet interface { // returns the set of Labels shared by this TrafficTargetSet Labels() map[string]string // returns the set of TrafficTargetes with the given labels Set() discovery_mesh_gloo_solo_io_v1alpha2_sets.TrafficTargetSet // converts the set to a generic format which can be applied by the Snapshot.Apply functions Generic() output.ResourceList }
LabeledTrafficTargetSet represents a set of trafficTargets which share a common set of labels. These labels are used to find diffs between TrafficTargetSets.
func NewLabeledTrafficTargetSet ¶
func NewLabeledTrafficTargetSet(set discovery_mesh_gloo_solo_io_v1alpha2_sets.TrafficTargetSet, labels map[string]string) (LabeledTrafficTargetSet, 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_v1alpha2_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_v1alpha2_sets.WorkloadSet, labels map[string]string) (LabeledWorkloadSet, error)
type Snapshot ¶
type Snapshot interface { // return the set of TrafficTargets with a given set of labels TrafficTargets() []LabeledTrafficTargetSet // 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) }
the snapshot of output resources produced by a translation
func NewLabelPartitionedSnapshot ¶
func NewLabelPartitionedSnapshot( name, labelKey string, trafficTargets discovery_mesh_gloo_solo_io_v1alpha2_sets.TrafficTargetSet, workloads discovery_mesh_gloo_solo_io_v1alpha2_sets.WorkloadSet, meshes discovery_mesh_gloo_solo_io_v1alpha2_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, trafficTargets discovery_mesh_gloo_solo_io_v1alpha2_sets.TrafficTargetSet, workloads discovery_mesh_gloo_solo_io_v1alpha2_sets.WorkloadSet, meshes discovery_mesh_gloo_solo_io_v1alpha2_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, trafficTargets []LabeledTrafficTargetSet, workloads []LabeledWorkloadSet, meshes []LabeledMeshSet, clusters ...string, ) Snapshot