Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
94b014c
updated _ReplicationParams field
geoffrey1330 Jan 21, 2026
07fd7a0
pool list return uuid intead of id
geoffrey1330 Jan 21, 2026
90983fb
lvol list return uuid intead of id
geoffrey1330 Jan 21, 2026
95f7916
lvol list return do_replicate
geoffrey1330 Jan 21, 2026
59980c0
added service snapshot-replication
geoffrey1330 Jan 21, 2026
9f14672
don't fails upon cr patch failure
geoffrey1330 Jan 21, 2026
9a3c7bc
added imagepullpolicy
geoffrey1330 Jan 21, 2026
7f97e68
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 5, 2026
7bdde54
removed csi configmap and secret from spdk-pod
geoffrey1330 Feb 6, 2026
5ee1e11
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 6, 2026
da29bc4
update crs name
geoffrey1330 Feb 6, 2026
542ee39
updated csi hostpath configuration
geoffrey1330 Feb 9, 2026
3e9f2c3
updated csi hostpath configuration
geoffrey1330 Feb 9, 2026
5e67aec
updated rpc_client logger message
geoffrey1330 Feb 9, 2026
7ee3639
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 9, 2026
bc20246
updated env_var file
geoffrey1330 Feb 9, 2026
9ec9628
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 9, 2026
42c1d6e
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 9, 2026
68d28ec
fixed snap param name created_at
geoffrey1330 Feb 9, 2026
a1bc4c5
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 9, 2026
4d32bf0
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 10, 2026
10a7feb
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 10, 2026
f4499d4
updated snapshotreplications crd
geoffrey1330 Feb 11, 2026
777329e
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 11, 2026
2a81a2e
reverted api v2 field to id from uuid
geoffrey1330 Feb 11, 2026
ad8570c
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 13, 2026
141335b
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 13, 2026
50349b1
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 13, 2026
8052038
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 16, 2026
c1ea757
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 16, 2026
e150381
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 16, 2026
c850ba1
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 17, 2026
1f02f11
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 17, 2026
a8d6ca2
Merge branch 'main-sfam-2359' into snapshot_replication_operator_support
geoffrey1330 Feb 17, 2026
ebafe70
updated env_var
geoffrey1330 Feb 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion simplyblock_core/rpc_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ def _request2(self, method, params=None):
if params:
payload['params'] = params
try:
logger.debug("From: %s, Requesting from: %s, method: %s, params: %s",self.ip_address, method, params)
logger.debug("From: %s, Requesting method: %s, params: %s", self.ip_address, method, params)
response = self.session.post(self.url, data=json.dumps(payload), timeout=self.timeout)
except Exception:
raise RPCException("connection error")
Expand Down
1 change: 0 additions & 1 deletion simplyblock_core/scripts/charts/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ dependencies:
- name: prometheus
version: "25.18.0"
repository: "https://prometheus-community.github.io/helm-charts"
condition: monitoring.enabled
- name: ingress-nginx
version: 4.10.1
repository: "https://kubernetes.github.io/ingress-nginx"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
name: simplyblocksnapshotreplications.simplyblock.simplyblock.io
spec:
group: simplyblock.simplyblock.io
names:
kind: SimplyBlockSnapshotReplication
listKind: SimplyBlockSnapshotReplicationList
plural: simplyblocksnapshotreplications
singular: simplyblocksnapshotreplication
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: SimplyBlockSnapshotReplication is the Schema for the simplyblocksnapshotreplications
API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: spec defines the desired state of SimplyBlockSnapshotReplication
properties:
interval:
description: 'snapshot replication interval in seconds (default: 60sec)'
format: int32
type: integer
sourceCluster:
description: Source cluster for the snapshots
type: string
targetCluster:
description: Target cluster for replication
type: string
targetPool:
description: Target cluster pool for replication
type: string
timeout:
description: snapshot replication timeout
format: int32
type: integer
volumeIDs:
description: 'Optional: list of volumes to replicate. Empty means
all volumes'
items:
type: string
type: array
required:
- sourceCluster
- targetCluster
- targetPool
type: object
status:
description: status defines the observed state of SimplyBlockSnapshotReplication
properties:
configured:
type: boolean
volumes:
description: Per-volume replication status
items:
description: VolumeReplicationStatus tracks the replication state
of an individual volume
properties:
errors:
description: 'Optional: list of errors encountered for this
volume'
items:
description: ReplicationError stores timestamped error messages
properties:
message:
type: string
timestamp:
format: date-time
type: string
required:
- message
- timestamp
type: object
type: array
lastReplicationTime:
description: Timestamp of the last successful replication for
this volume
format: date-time
type: string
lastSnapshotID:
description: Last snapshot ID replicated for this volume
type: string
phase:
description: Current phase for this volume
enum:
- Pending
- Running
- Completed
- Failed
- Paused
type: string
replicatedCount:
description: Number of snapshots successfully replicated
format: int32
type: integer
volumeID:
description: Volume ID
type: string
required:
- volumeID
type: object
type: array
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
32 changes: 32 additions & 0 deletions simplyblock_core/scripts/charts/templates/app_k8s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ spec:
- name: storage-node-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/storage_node_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -207,6 +208,7 @@ spec:
- name: mgmt-node-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/mgmt_node_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
env:
- name: BACKEND_TYPE
value: "k8s"
Expand All @@ -221,6 +223,7 @@ spec:
- name: lvol-stats-collector
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/lvol_stat_collector.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -233,6 +236,7 @@ spec:
- name: main-distr-event-collector
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/main_distr_event_collector.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -245,6 +249,7 @@ spec:
- name: capacity-and-stats-collector
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/capacity_and_stats_collector.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -257,6 +262,7 @@ spec:
- name: capacity-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/cap_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -269,6 +275,7 @@ spec:
- name: health-check
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/health_check_service.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -281,6 +288,7 @@ spec:
- name: device-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/device_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -293,6 +301,7 @@ spec:
- name: lvol-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/lvol_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -305,6 +314,7 @@ spec:
- name: snapshot-monitor
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/snapshot_monitor.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand Down Expand Up @@ -368,6 +378,7 @@ spec:
- name: tasks-node-add-runner
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_node_add.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
env:
- name: LVOL_NVMF_PORT_START
value: "{{ .Values.ports.lvolNvmfPortStart }}"
Expand All @@ -382,6 +393,7 @@ spec:
- name: tasks-runner-restart
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_restart.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -394,6 +406,7 @@ spec:
- name: tasks-runner-migration
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_migration.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -406,6 +419,7 @@ spec:
- name: tasks-runner-failed-migration
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_failed_migration.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -418,6 +432,7 @@ spec:
- name: tasks-runner-cluster-status
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_cluster_status.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -430,6 +445,7 @@ spec:
- name: tasks-runner-new-device-migration
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_new_dev_migration.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -442,6 +458,7 @@ spec:
- name: tasks-runner-port-allow
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_port_allow.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -454,6 +471,7 @@ spec:
- name: tasks-runner-jc-comp-resume
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_jc_comp.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand All @@ -466,6 +484,20 @@ spec:
- name: tasks-runner-sync-lvol-del
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/tasks_runner_sync_lvol_del.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
volumeMounts:
{{ toYaml .volumeMounts | nindent 12 }}
resources:
{{ toYaml .resources | nindent 12 }}
{{- end }}

- name: tasks-runner-snapshot-replication
image: "{{ .Values.image.simplyblock.repository }}:{{ .Values.image.simplyblock.tag }}"
command: ["python", "simplyblock_core/services/snapshot_replication.py"]
imagePullPolicy: "{{ .Values.image.simplyblock.pullPolicy }}"
{{- with (include "simplyblock.commonContainer" . | fromYaml) }}
env:
{{ toYaml .env | nindent 12 }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ spec:
# No attacher needed.
attachRequired: false
storageCapacity: false
# Kubernetes may use fsGroup to change permissions and ownership
# Kubernetes may use fsGroup to change permissions and ownership
# of the volume to match user requested fsGroup in the pod's SecurityPolicy
fsGroupPolicy: File

Original file line number Diff line number Diff line change
Expand Up @@ -229,3 +229,4 @@ spec:
path: /dev
type: Directory
name: dev-dir

Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
fsGroup: 65532
serviceAccountName: simplyblock-manager
containers:
- image: simplyblock/simplyblock-manager:main
- image: simplyblock/simplyblock-manager:snapshot_replication
imagePullPolicy: Always
name: manager
env:
Expand Down Expand Up @@ -145,6 +145,7 @@ rules:
- simplyblockstoragenodes
- simplyblockdevices
- simplyblocktasks
- simplyblocksnapshotreplications
verbs:
- create
- delete
Expand All @@ -162,6 +163,7 @@ rules:
- simplyblockstoragenodes/finalizers
- simplyblockdevices/finalizers
- simplyblocktasks/finalizers
- simplyblocksnapshotreplications/finalizers
verbs:
- update
- delete
Expand All @@ -174,6 +176,7 @@ rules:
- simplyblockstoragenodes/status
- simplyblockdevices/status
- simplyblocktasks/status
- simplyblocksnapshotreplications/status
verbs:
- get
- patch
Expand Down
Loading
Loading