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: bucket-to-kubernetes
config:
...
Required configuration
Source and destination
The source bucket and the destination cluster 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: bucket-to-kubernetes
config:
sourceName: bucket-1
destinationName: cluster-1
...
Selectors
The resources that should be synchronized can be configured using the .spec.config.selectors property.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: bucket-to-kubernetes
config:
...
selectors:
- target:
version: v1
resources:
- namespaces
objectSelector:
labelSelector:
matchLabels:
env: pro
Optional configuration
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: bucket-to-kubernetes
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: bucket-to-kubernetes
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: bucket-to-kubernetes
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: bucket-to-kubernetes
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: bucket-to-kubernetes
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: bucket-to-kubernetes
config:
...
concurrency: 200
Transformations
Objects from the source bucket can be transformed before being synchronized into the destination cluster.
Example:
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
name: example
spec:
plugin: bucket-to-kubernetes
config:
...
transformations:
resources:
- version: v1
resources:
- namespaces
operations:
- jsonpatch:
operations:
- op: add
path: /metadata/labels/test-astrosync
value: ok
API Reference
| Name | Description | Type | Required |
|---|---|---|---|
| sourceName | Bucket name | string | yes |
| destinationName | KubernetesCluster name | string | yes |
| selectors | The Kubernetes resources to be syncrhonized | []KubernetesObjectSelector | yes |
| globalSelector | Global selectors to be applied to all selectors | KubernetesGlobalSelector | yes |