multicluster-controller: admiralty.io/multicluster-controller/pkg/patterns/gc Index | Files

package gc

import "admiralty.io/multicluster-controller/pkg/patterns/gc"

Index

Package Files

errors.go gc.go

Variables

var (
    LabelParentUID = "multicluster.admiralty.io/parent-uid"
)

func IsChildNotFoundErr Uses

func IsChildNotFoundErr(err error) bool

func IsDuplicateChildErr Uses

func IsDuplicateChildErr(err error) bool

func NewController Uses

func NewController(ctx context.Context, parentClusters []*cluster.Cluster, childClusters []*cluster.Cluster, o Options) (*controller.Controller, error)

type Applier Uses

type Applier interface {
    ChildClusterName(parent interface{}) (string, error)
    MakeChild(parent interface{}, expectedChild interface{}) error
    MutateChild(parent interface{}, child interface{}, expectedChild interface{}) (needUpdate bool, err error)
    MutateParent(parent interface{}, childFound bool, child interface{}) (needUpdate bool, needStatusUpdate bool, err error)
}

type Options Uses

type Options struct {
    ParentPrototype               runtime.Object
    ChildPrototype                runtime.Object
    ParentWatchOptions            controller.WatchOptions
    ChildNamespace                string // optional, can optimize List operations vs. it only be set in MakeChild
    Applier                       Applier
    CopyLabels                    bool
    MakeSelector                  func(parent interface{}) labels.Set // optional
    MakeExpectedChildWhenFound    bool
    GetImpersonatorForChildWriter func(clusterName string) string
}

Package gc imports 15 packages (graph). Updated 2020-06-07. Refresh now. Tools for package owners.