This is the multi-page printable view of this section. Click here to print.
Samples
1 - Kubernetes objects to Kubernetes samples
1.1 - Generic Bucket
Generic Bucket hosted in GCP including Secret with access to it.
apiVersion: assets.astronetes.io/v1alpha1
kind: Bucket
metadata:
name: gcp
spec:
generic:
endpoint: storage.googleapis.com
name: <bucket-name>
useSSL: true
secretName: bucket-credentials
---
apiVersion: v1
kind: Secret
metadata:
name: bucket-credentials
stringData:
accessKeyID: <access_key_id>
secretAccessKey: <secret_access_key>
1.2 - Kubernetes Clusters
KubernetesCluster for source and destination cluster assuming the secrets are set as specified.
apiVersion: assets.astronetes.io/v1alpha1
kind: KubernetesCluster
metadata:
name: source
spec:
secretName: source
---
apiVersion: assets.astronetes.io/v1alpha1
kind: KubernetesCluster
metadata:
name: destination
spec:
secretName: destination
1.3 - Live Synchronization
apiVersion: automation.astronetes.io/v1alpha1
kind: LiveSynchronization
metadata:
name: livesynchronization-sample
spec:
plugin: kubernetes-objects-to-kubernetes
suspend: false
config:
sourceName: source
destinationName: destination
observability:
enabled: false
replication:
resources:
- group: apps
version: v1
resource: deployments
transformation:
patch:
- op: replace
path: /spec/replicas
value: 0
filters:
namespaceSelector:
matchLabels:
env: pre
recoveryProcess:
fromPatch:
- op: replace
path: /spec/replicas
value: 1
- group: apps
version: v1
resource: deployments
transformation:
patch:
- op: replace
path: /spec/replicas
value: 0
filters:
namespaceSelector:
matchLabels:
env: pre-second
recoveryProcess:
fromPatch:
- op: replace
path: /spec/replicas
value: 1
- group: ""
version: v1
resource: services
filters:
namespaceSelector:
matchLabels:
env: pre
- group: ""
version: v1
resource: services
filters:
namespaceSelector:
matchLabels:
env: pre-second
- group: ""
version: v1
resource: secrets
filters:
namespaceSelector:
matchLabels:
env: pre
1.4 - Task
apiVersion: automation.astronetes.io/v1alpha1
kind: Task
metadata:
name: set-test-label
spec:
plugin: kubernetes-objects-transformation
config:
resources:
- identifier:
group: apps
version: v1
resources: deployments
patch:
operations:
- op: replace
path: '/labels/test'
value: 'ok'
1.5 - Task Run
Tasks are already created in the destination cluster when a LiveSynchronization is created in the management cluster.
apiVersion: automation.astronetes.io/v1alpha1
kind: TaskRun
metadata:
name: restore-apps
spec:
taskName: set-test-label
2 - Zookeeper to Zookeeper samples
2.1 - Zookeeper Database
Source and destination Databases should include the host and port of the target Zookeper instances. A Secret containing the user login credentials is required for each Database instance. Databases are mapped to Secrets that have the same name and namespace.
Zookeeper users should have appropiate read permissions if they belong to a source instance and write permissions if they are instead located in a destination location.
apiVersion: v1
kind: Secret
metadata:
name: zookeeper-source
stringData:
user: admin
password: password
---
apiVersion: assets.astronetes.io/v1alpha1
kind: Database
metadata:
name: zookeeper-source
spec:
zookeeper:
client:
servers:
- 172.18.0.4:30181
---
apiVersion: v1
kind: Secret
metadata:
name: zookeeper-destination
stringData:
user: admin
password: password
---
apiVersion: assets.astronetes.io/v1alpha1
kind: Database
metadata:
name: zookeeper-destination
spec:
zookeeper:
client:
servers:
- 172.18.0.5:30181
2.2 - Zookeeper Synchronization
Zookeeper synchronization requires the path to the root endpoint. If can be specified in spec.template.spec.config.rootPath.
---
apiVersion: automation.astronetes.io/v1alpha1
kind: Synchronization
metadata:
generateName: synchronize-zookeeper-
spec:
plugin: zookeeper-to-zookeeper-nodes
config:
sourceName: zookeeper-source
destinationName: zookeeper-destination
rootPath: /test
createRoutePath: true
2.3 - Zookeeper Synchronization Plan
Zookeeper synchronization requires the path to the root endpoint. If can be specified in spec.template.spec.config.rootPath.
---
apiVersion: automation.astronetes.io/v1alpha1
kind: SynchronizationPlan
metadata:
name: synchronize-zookeeper
spec:
schedule: "10 * * * *"
template:
spec:
plugin: zookeeper-to-zookeeper-nodes
config:
sourceName: zookeeper-source
destinationName: zookeeper-destination
rootPath: /test