Documentation
¶
Index ¶
Constants ¶
View Source
const (
PatchTypeRewriteName = "rewriteName"
PatchTypeRewriteLabelKey = "rewriteLabelKey"
PatchTypeRewriteLabelSelector = "rewriteLabelSelector"
PatchTypeRewriteLabelExpressionsSelector = "rewriteLabelExpressionsSelector"
PatchTypeCopyFromObject = "copyFromObject"
PatchTypeAdd = "add"
PatchTypeReplace = "replace"
PatchTypeRemove = "remove"
)
View Source
const Version = "v1beta1"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Version is the config version
Version string `json:"version,omitempty" yaml:"version,omitempty"`
// Exports syncs a resource from the virtual cluster to the host
Exports []*Export `json:"export,omitempty" yaml:"export,omitempty"`
// Imports syncs a resource from the host cluster to virtual cluster
Imports []*Import `json:"import,omitempty" yaml:"import,omitempty"`
// Hooks are hooks that can be used to inject custom patches before syncing
Hooks *Hooks `json:"hooks,omitempty" yaml:"hooks,omitempty"`
}
type Export ¶
type Export struct {
SyncBase `json:",inline" yaml:",inline"`
// Selector is a label selector to select the synced objects in the virtual cluster.
// If empty, all objects will be synced.
Selector *Selector `json:"selector,omitempty" yaml:"selector,omitempty"`
}
type Hook ¶ added in v0.15.3
type Hook struct {
TypeInformation
// Verbs are the verbs that the hook should mutate
Verbs []string `json:"verbs,omitempty" yaml:"verbs,omitempty"`
// Patches are the patches to apply on the object to be synced
Patches []*Patch `json:"patches,omitempty" yaml:"patches,omitempty"`
}
type Hooks ¶ added in v0.15.3
type Hooks struct {
// HostToVirtual is a hook that is executed before syncing from the host to the virtual cluster
HostToVirtual []*Hook `json:"hostToVirtual,omitempty" yaml:"hostToVirtual,omitempty"`
// VirtualToHost is a hook that is executed before syncing from the virtual to the host cluster
VirtualToHost []*Hook `json:"virtualToHost,omitempty" yaml:"virtualToHost,omitempty"`
}
type Patch ¶
type Patch struct {
// Operation is the type of the patch
Operation PatchType `json:"op,omitempty" yaml:"op,omitempty"`
// FromPath is the path from the other object
FromPath string `json:"fromPath,omitempty" yaml:"fromPath,omitempty"`
// Path is the path of the patch
Path string `json:"path,omitempty" yaml:"path,omitempty"`
// NamePath is the path to the name of a child resource within Path
NamePath string `json:"namePath,omitempty" yaml:"namePath,omitempty"`
// NamespacePath is path to the namespace of a child resource within Path
NamespacePath string `json:"namespacePath,omitempty" yaml:"namespacePath,omitempty"`
// Value is the new value to be set to the path
Value interface{} `json:"value,omitempty" yaml:"value,omitempty"`
// Regex - is regular expresion used to identify the Name,
// and optionally Namespace, parts of the field value that
// will be replaced with the rewritten Name and/or Namespace
Regex string `json:"regex,omitempty" yaml:"regex,omitempty"`
ParsedRegex *regexp.Regexp `json:"-" yaml:"-"`
// Conditions are conditions that must be true for
// the patch to get executed
Conditions []*PatchCondition `json:"conditions,omitempty" yaml:"conditions,omitempty"`
// Ignore determines if the path should be ignored if handled as a reverse patch
Ignore *bool `json:"ignore,omitempty" yaml:"ignore,omitempty"`
// Sync defines if a specialized syncer should be initialized using values
// from the rewriteName operation as Secret/Configmap names to be synced
Sync *PatchSync `json:"sync,omitempty" yaml:"sync,omitempty"`
}
type PatchCondition ¶
type PatchCondition struct {
// Path is the path within the object to select
Path string `json:"path,omitempty" yaml:"path,omitempty"`
// SubPath is the path below the selected object to select
SubPath string `json:"subPath,omitempty" yaml:"subPath,omitempty"`
// Equal is the value the path should be equal to
Equal interface{} `json:"equal,omitempty" yaml:"equal,omitempty"`
// NotEqual is the value the path should not be equal to
NotEqual interface{} `json:"notEqual,omitempty" yaml:"notEqual,omitempty"`
// Empty means that the path value should be empty or unset
Empty *bool `json:"empty,omitempty" yaml:"empty,omitempty"`
}
type PatchSync ¶
type PatchSync struct {
Secret *bool `json:"secret,omitempty" yaml:"secret,omitempty"`
ConfigMap *bool `json:"configmap,omitempty" yaml:"configmap,omitempty"`
}
type Selector ¶
type Selector struct {
// LabelSelector are the labels to select the object from
LabelSelector map[string]string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
}
type SyncBase ¶
type SyncBase struct {
TypeInformation `json:",inline" yaml:",inline"`
Optional bool `json:"optional,omitempty" yaml:"optional,omitempty"`
// ReplaceWhenInvalid determines if the controller should try to recreate the object
// if there is a problem applying
ReplaceWhenInvalid bool `json:"replaceOnConflict,omitempty" yaml:"replaceOnConflict,omitempty"`
// Patches are the patches to apply on the virtual cluster objects
// when syncing them from the host cluster
Patches []*Patch `json:"patches,omitempty" yaml:"patches,omitempty"`
// ReversePatches are the patches to apply to host cluster objects
// after it has been synced to the virtual cluster
ReversePatches []*Patch `json:"reversePatches,omitempty" yaml:"reversePatches,omitempty"`
}
type TypeInformation ¶
type TypeInformation struct {
// APIVersion of the object to sync
APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
// Kind of the object to sync
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.