Configuration
Introduction
The synchronization process can be configured with some specific parameters using the .spec.config attribute.
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
Required configuration
Source and destination
The source cluster and the destination bucket can be specified using the .spec.config.sourceName and .spec.config.destinationName properties. Both the KubernetesCluster and the bucket objects should exists in the same Namespace where the synchronization is being created.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
sourceName: cluster-1
destinationName: bucket-1
...
Optional configuration
Selectors
The resources that should be synchronized can be configured using the .spec.config.selectors property. If not configured, all resources will be included in the synchronization.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
selectors:
- target:
version: v1
resources:
- namespaces
objectSelector:
labelSelector:
matchLabels:
disaster-recovery: "true"
Global selectors
Global selectors are used to set the default value on all selectors defined in .spec.config.selectors. They can be configured with the .spec.config.globalSelector property.
There are two options allowed, that can be configured at the same time:
namespaceSelector: to set e dafult namespace selector for namespaced resourcesobjectSelector: to set a default object selector for all resources
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
globalSelector:
namespaceSelector:
labelSelector:
matchLabels:
env: pro
objectSelector:
labelSelector:
matchLabels:
env: pro
Path prefix
The Kubernetes objects can be written in a subdirectory of the destination Bucket. The property .spec.config.pathPrefix allows this configuration.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
pathPrefix: prefix-path
Log level
The log level of the Pod deployed to execute the synchronization, can be configured with the .spec.config.logLevel parameter.
info.
Accepted values: debug, info, warn, error.Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
logLevel: warn
Observability
Observability can be enaled using the specific .spec.config.observability parameter. For more information check the Observability page.
Default value:
enabled: false
interval: 60s
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
observability:
enabled: true
interval: 2m
Limit assigned resources
For each synchronization, a new Pod is deployed inside the same Namespace. The limit and requests resources can be set using the .spec.config.resources field.
{}.Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
resources:
requests:
cpu: 1
memory: 2Gi
limits:
cpu: 2
memory: 2Gi
Concurrency
The concurrency parameter can be used to improve the peformance of the synchronization process with .spec.config.concurrency`.
100.Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
concurrency: 200
Transformations
Kubernetes obejcts from the source cluster can be transformed before being synchronized into the destination bucket.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: kubernetes-to-bucket
config:
...
transformations:
resources:
- version: v1
resources:
- namespaces
operations:
- jsonpatch:
operations:
- op: add
path: /metadata/labels/test-astrosync
value: ok