API Reference

Configuration details

Config

Configuration for Kubernetes to Kubernetes synchronization

FieldDescriptionTypeRequired
concurrencyConcurrent processes to be executed to improve performanceintfalse
destinationNameKubernetesCluster name where data will be synchronizedstringtrue
globalSelectorOverrides selectors propertiesKubernetesGlobalSelectorfalse
logLevelLog level to be used by the synchronization Podstringfalse
observabilityObservability configurationObservabilityConfigfalse
optionsSynchronization optionsSynchronizationOptionsfalse
resourcesResources to be assigned to the synchronization PodResourceRequirementsfalse
selectorsSelectors to filter the Kubernetes resources to be synchronized[]KubernetesObjectSelectorfalse
sourceNameKubernetesCluster name from where data will be readstringtrue
transformationsTransform Kubernetes objects before to be written to the destination[]Transformationsfalse
useCachedDataUse cached data instead of get data from Kubernetes clusters on startupboolfalse

KubernetesGlobalSelector

Global selector is used to set the default value on all selectors. All defined selectors are combined using AND logic.

FieldDescriptionTypeRequired
objectSelectorRules to filter Kubernetes objects by ObjectSelectorObjectSelectorfalse
namespaceSelectorRules to filter Kubernetes objects by NamespaceSelectorNamespaceSelectorfalse

ObjectSelector

FieldDescriptionTypeRequired
nameSelectorFilter objects by their nameNameSelectorfalse
labelSelectorFilter objects by their labelsLabelSelectorfalse

NameSelector

Select object by their name

FieldDescriptionTypeRequired
includeRegexInclude names that matches at least one regex[]stringfalse
excludeRegexExlcude names that matches at least one regex[]stringfalse

LabelSelector

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects. +structType=atomic

FieldDescriptionTypeRequired
matchLabelsmatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabelsmap is equivalent to an element of matchExpressions, whose key field is “key”, theoperator is “In”, and the values array contains only “value”. The requirements are ANDed.+optionalmap[string]stringfalse
matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.+optional+listType=atomic[]LabelSelectorRequirementfalse

LabelSelectorRequirement

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

FieldDescriptionTypeRequired
keykey is the label key that the selector applies to.stringtrue
operatoroperator represents a key’s relationship to a set of values.Valid operators are In, NotIn, Exists and DoesNotExist.LabelSelectorOperatortrue
valuesvalues is an array of string values. If the operator is In or NotIn,the values array must be non-empty. If the operator is Exists or DoesNotExist,the values array must be empty. This array is replaced during a strategicmerge patch.+optional+listType=atomic[]stringfalse

LabelSelectorOperator

A label selector operator is the set of operators that can be used in a selector requirement.

FieldDescriptionTypeRequired

NamespaceSelector

FieldDescriptionTypeRequired
nameSelectorFilter Namespaces by their nameNameSelectorfalse
labelSelectorFilter Namespaces by their labelsLabelSelectorfalse

ObservabilityConfig

Configure the synchronization process observability using Prometheus ServiceMonitor

FieldDescriptionTypeRequired
enabledEnable the Observability with a Prometheus ServiceMonitorboolfalse
intervalConfigure the interval in the ServiceMonitor that Prometheus will use to scrape metricsDurationfalse

Duration

Duration is a wrapper around time.Duration which supports correct marshaling to YAML and JSON. In particular, it marshals into strings, which can be used as map keys in json.

FieldDescriptionTypeRequired

SynchronizationOptions

Customize the synchronization process with special options

FieldDescriptionTypeRequired
dryRunSimulate the synchronization process but don’t execute the write operationsboolfalse
forceSyncSynchronize object in the destination even if the object exists in the destination and it doesn’t match the configured selectorsboolfalse
forcePrunePrune object in the destination even if it doesn’t match the configured selectorsboolfalse
showLogIfObjectIsAlreadyInSyncShow a log message if object is already in syncboolfalse
showLogIfObjectHaveBeenAdaptedShow a log message if object have been adapted for the destinationboolfalse

KubernetesObjectSelector

All defined selectors are combined using AND logic.

FieldDescriptionTypeRequired
objectSelectorFilter objects by ObjectSelectorObjectSelectorfalse
namespaceSelectorFilter objects by NamespaceSelectorNamespaceSelectorfalse
targetKubernetes resource to be usedGroupVersionResourcesfalse

GroupVersionResources

Select a set of GroupVersionResource

FieldDescriptionTypeRequired
groupKubernetes resource group. Example: appsstringtrue
versionKubernetes resource version. Example: v1stringtrue
resourcesKubernetes resource names. Example: deployments[]stringfalse

Transformations

Transformations is a list of operations to modifiy the Kubernetes objects matching the given selectors

FieldDescriptionTypeRequired
resourcesSelect the objects to be transfomred by their resource type[]GroupVersionResourcesfalse
namespaceSelectorFilter the objects to be transformed by NamespaceSelectorNamespaceSelectorfalse
objectSelectorFilter the objects to be transformed by ObjectSelectorObjectSelectorfalse
operationsOperations to be executed to transform the objects[]TransformationOperationfalse

TransformationOperation

The operation to execute to transform the objects

FieldDescriptionTypeRequired
envVariableConfigure environment variablesOperationEnvVariablefalse
jsonpatchJSONPatch operationOperationJSONPatchfalse
jsonpointerJSONPointer operationOperationJSONPointerfalse

OperationEnvVariable

EnvVariable operation

FieldDescriptionTypeRequired
opOperation to be executed: delete, set, updateSetEnvOptrue
containerSelectorSelect the containers to transformEnvVariableContainerSelectortrue
regexOptional regex to match and replace valuestringfalse
nameName of the environment variable to transformstringtrue
valueValue to be assigned to the environment variablestringtrue

SetEnvOp

FieldDescriptionTypeRequired

EnvVariableContainerSelector

FieldDescriptionTypeRequired
nameOptional name of the container to be transformedstringfalse
typeType of container to be transformed: Container, InitContainer, AllContainerSelectorTypefalse

ContainerSelectorType

FieldDescriptionTypeRequired

OperationJSONPatch

The JSONPatch operation

FieldDescriptionTypeRequired
skipIfNotFoundOnDeleteSkip if not found on deletebooltrue
operationsList of operations to be executed[]JSONPatchOperationtrue

JSONPatchOperation

JSONPAtch operation

FieldDescriptionTypeRequired
opJSONPatch operation: add, copy, move, remove, replace, teststringtrue
pathExecute the operation to the given pathstringtrue
valueOptional value to be used in the operationinterface{}true

OperationJSONPointer

JSONPointer operation

FieldDescriptionTypeRequired
opOperation to be executed: updateJSONPointerOperationtrue
pathExecute the operation in the given pathstringtrue
regexOptional regex to match and replace valuestringfalse
valueValue to be used in the operationstringtrue

JSONPointerOperation

FieldDescriptionTypeRequired