Documentation ¶
Overview ¶
Definitions for Output Snapshots
Index ¶
- Variables
- func NewBuilder(ctx context.Context, name string) *builder
- type Builder
- type LabeledSecretSet
- type Snapshot
- func NewLabelPartitionedSnapshot(name, labelKey string, secrets v1_sets.SecretSet, clusters ...string) (Snapshot, error)
- func NewSinglePartitionedSnapshot(name string, snapshotLabels map[string]string, secrets v1_sets.SecretSet, ...) (Snapshot, error)
- func NewSnapshot(name string, secrets []LabeledSecretSet, clusters ...string) Snapshot
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: "", Version: "v1", Kind: "Secret", }, }
SnapshotGVKs is a list of the GVKs included in this snapshot
Functions ¶
func NewBuilder ¶
Types ¶
type Builder ¶
type Builder interface { // add Secrets to the collected outputs AddSecrets(secrets ...*v1.Secret) // get the collected Secrets GetSecrets() v1_sets.SecretSet // 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 }
the output Builder uses a builder pattern to allow iteratively collecting outputs before producing a final snapshot
type LabeledSecretSet ¶
type LabeledSecretSet interface { // returns the set of Labels shared by this SecretSet Labels() map[string]string // returns the set of Secretes with the given labels Set() v1_sets.SecretSet // converts the set to a generic format which can be applied by the Snapshot.Apply functions Generic() output.ResourceList }
LabeledSecretSet represents a set of secrets which share a common set of labels. These labels are used to find diffs between SecretSets.
func NewLabeledSecretSet ¶
type Snapshot ¶
type Snapshot interface { // return the set of Secrets with a given set of labels Secrets() []LabeledSecretSet // 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, secrets v1_sets.SecretSet, 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, secrets v1_sets.SecretSet, 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, secrets []LabeledSecretSet, clusters ...string, ) Snapshot