Skip to content

docs: Add a doc for devworkspace backup feature#3028

Open
Allda wants to merge 5 commits intoeclipse-che:mainfrom
Allda:backup-doc
Open

docs: Add a doc for devworkspace backup feature#3028
Allda wants to merge 5 commits intoeclipse-che:mainfrom
Allda:backup-doc

Conversation

@Allda
Copy link

@Allda Allda commented Feb 19, 2026

What does this pull request change?

The pull request adds documentation for a backup feature introduced in the recent devworkspace operator.

What issues does this pull request fix or reference?

eclipse-che/che#23570

Specify the version of the product this pull request applies to

Pull Request checklist

The author and the reviewers validate the content of this pull request with the following checklist, in addition to the automated tests.

  • Any procedure:
    • Successfully tested.
  • Any page or link rename:
    • The page contains a redirection for the previous URL.
    • Propagate the URL change in:
  • Builds on Eclipse Che hosted by Red Hat.
  • the Validate language on files added or modified step reports no vale warnings.

@Allda Allda requested a review from tolusha February 19, 2026 13:42
@github-actions
Copy link

github-actions bot commented Feb 19, 2026

⚡️ Deploying pull request preview...

@github-actions
Copy link

github-actions bot commented Feb 19, 2026

Click here to review and test in web IDE: Contribute

@Allda Allda force-pushed the backup-doc branch 3 times, most recently from 84931c4 to a7da9ea Compare February 19, 2026 14:04
Signed-off-by: Ales Raszka <araszka@redhat.com>
@Allda
Copy link
Author

Allda commented Feb 19, 2026

@akurinnoy I added a doc for the backup feature. Once you have a dashboard available, could you create another PR with a doc for the dashboard?

[id="devworkspace-backup"]
= Workspace backup for {prod}

Starting from {prod} version v7.115.0, the {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gtrivedi88 ptal, and recommend how the docs should be downstreamed e.g. 7.115 - > Dev Spaces 3.27

Copy link
Contributor

@gtrivedi88 gtrivedi88 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ibuziuk As for downstreaming, when this is merged and we carve out a 7.115 branch in main. The pipeline watcher which watches for the changes in upstream branch for specific release versions, will create a issue in Gitlab.

At the very begining of every release, in the attributes we have to define the upstream branches (7.114.x, and 7.115.x) which will make downstream (3.27) and then schedule a pipieline, which will keep watching for those branches for content updates.

Let me know if you have questions

Copy link
Member

@ibuziuk ibuziuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Allda LGTM, but we also need to cover the restore process as part of this procedure to have the e2e experience documented

@Allda
Copy link
Author

Allda commented Feb 24, 2026

@Allda LGTM, but we also need to cover the restore process as part of this procedure to have the e2e experience documented

Yep, that is why I pinged @akurinnoy earlier in this PR to address the restore doc once the dashboard is finished #3028 (comment)

Signed-off-by: Ales Raszka <araszka@redhat.com>
@Allda
Copy link
Author

Allda commented Feb 26, 2026

@ibuziuk I addressed your notes. Can this be merged? The restore feature will be documented in a separate PR.

@ibuziuk
Copy link
Member

ibuziuk commented Feb 26, 2026

@Allda I have concern about Starting from {prod} version v7.115.0 which is upstream specific

Signed-off-by: Ales Raszka <araszka@redhat.com>
@Allda
Copy link
Author

Allda commented Feb 27, 2026

@Allda I have concern about Starting from {prod} version v7.115.0 which is upstream specific

@ibuziuk I removed it based on an agreement from yesterday.

Signed-off-by: Ales Raszka <araszka@redhat.com>
[id="devworkspace-backup"]
= Workspace backup for {prod}

The {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
The {devworkspace} backup job provides periodic backups of {devworkspace} data to a specified location. After you enable and configure the job, it runs at defined intervals to create backups of {devworkspace} data. The backup controller requires an OCI-compliant registry, such as the **Red Hat OpenShift** integrated registry or link:https://quay.io[Quay.io], to store backup archives as image artifacts.

= Workspace backup for {prod}

The {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
Once enabled and configured, the backup job will run at defined intervals to create backups of {devworkspace} data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once enabled and configured, the backup job will run at defined intervals to create backups of {devworkspace} data.


The {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
Once enabled and configured, the backup job will run at defined intervals to create backups of {devworkspace} data.
The backup controller depends on an OCI-compatible registry e.g.,https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp4-ver}/html/registry/registry-overview#registry-integrated-openshift-registry_registry-overview[OpenShift build-in registry]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The backup controller depends on an OCI-compatible registry e.g.,https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp4-ver}/html/registry/registry-overview#registry-integrated-openshift-registry_registry-overview[OpenShift build-in registry]

The {devworkspace} backup job allows for periodic backups of {devworkspace} data to a specified backup location.
Once enabled and configured, the backup job will run at defined intervals to create backups of {devworkspace} data.
The backup controller depends on an OCI-compatible registry e.g.,https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp4-ver}/html/registry/registry-overview#registry-integrated-openshift-registry_registry-overview[OpenShift build-in registry]
or https://quay.io[quay.io] used as an image artifact storage for backup archives.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
or https://quay.io[quay.io] used as an image artifact storage for backup archives.

The backup controller depends on an OCI-compatible registry e.g.,https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp4-ver}/html/registry/registry-overview#registry-integrated-openshift-registry_registry-overview[OpenShift build-in registry]
or https://quay.io[quay.io] used as an image artifact storage for backup archives.

The backup makes a snapshot of *stopped* Workspace PVCs and stores them as tar.gz archives in the specified OCI registry.
Copy link
Contributor

@gtrivedi88 gtrivedi88 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The backup makes a snapshot of *stopped* Workspace PVCs and stores them as tar.gz archives in the specified OCI registry.
The backup process takes a snapshot of *stopped* workspace persistent volume claims (PVCs) and stores them as `tar.gz` archives in the specified OCI registry.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gtrivedi88 The stopped workspace is impotant detail to mention. Do you really want it to be removed? The backup won't happen for the running workspace.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, please add. I have updated my comment.


NOTE: By default, the {devworkspace} backup job is disabled.

The backup is configurable using `DevWorkspaceOperatorConfig` with the following fields:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The backup is configurable using `DevWorkspaceOperatorConfig` with the following fields:
You can configure the backup by using the `DevWorkspaceOperatorConfig` resource with the following fields:


The backup is configurable using `DevWorkspaceOperatorConfig` with the following fields:

* *`enable`*: Set to `true` to enable the backup job, `false` to disable it. Default: `false`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* *`enable`*: Set to `true` to enable the backup job, `false` to disable it. Default: `false`.
* `enable`: Set to `true` to enable the backup job or `false` to disable it. The default value is `false`.

The backup is configurable using `DevWorkspaceOperatorConfig` with the following fields:

* *`enable`*: Set to `true` to enable the backup job, `false` to disable it. Default: `false`.
* *`schedule`*: A Cron expression defining how often the backup job runs. Default: `"0 1 * * *"`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* *`schedule`*: A Cron expression defining how often the backup job runs. Default: `"0 1 * * *"`.
* `schedule`: A Cron expression that defines the backup frequency. The default value is `"0 1 * * *"`.


* *`enable`*: Set to `true` to enable the backup job, `false` to disable it. Default: `false`.
* *`schedule`*: A Cron expression defining how often the backup job runs. Default: `"0 1 * * *"`.
* *`registry.path`*: A base registry location where the backup archives will be pushed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* *`registry.path`*: A base registry location where the backup archives will be pushed.
* `registry.path`: The base registry location for backup archives.

* *`schedule`*: A Cron expression defining how often the backup job runs. Default: `"0 1 * * *"`.
* *`registry.path`*: A base registry location where the backup archives will be pushed.
+
The value provided for registry.path is only the first segment of the final location. The full registry path is assembled dynamically, incorporating the name of the workspace and the :latest tag, following this pattern:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The value provided for registry.path is only the first segment of the final location. The full registry path is assembled dynamically, incorporating the name of the workspace and the :latest tag, following this pattern:
The value for `registry.path` is the first segment of the final location. The full path is assembled dynamically by using the workspace name and the `:latest` tag in the following pattern:

+
`<registry.path>/<namespace>/<devworkspace-name>:latest`

* *`registry.authSecret`*: (Optional) The name of the Kubernetes Secret containing credentials to access the OCI registry. If not provided, it is assumed that the registry is public or uses integrated OpenShift registry.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* *`registry.authSecret`*: (Optional) The name of the Kubernetes Secret containing credentials to access the OCI registry. If not provided, it is assumed that the registry is public or uses integrated OpenShift registry.
* `registry.authSecret`: (Optional) The name of the Kubernetes secret that contains credentials for the OCI registry. If you do not provide a secret, the system assumes the registry is public or uses the **Red Hat OpenShift** integrated registry.

`<registry.path>/<namespace>/<devworkspace-name>:latest`

* *`registry.authSecret`*: (Optional) The name of the Kubernetes Secret containing credentials to access the OCI registry. If not provided, it is assumed that the registry is public or uses integrated OpenShift registry.
* *`oras.extraArgs`*: (Optional) Additional arguments to pass to the `oras` CLI tool during push and pull operations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* *`oras.extraArgs`*: (Optional) Additional arguments to pass to the `oras` CLI tool during push and pull operations.
* `oras.extraArgs`: (Optional) Additional arguments for the `oras` CLI tool during push and pull operations.

* *`oras.extraArgs`*: (Optional) Additional arguments to pass to the `oras` CLI tool during push and pull operations.


There are several configuration options to customize the logic:
Copy link
Contributor

@gtrivedi88 gtrivedi88 Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel this is a big topic and we can have multiple .adoc files.
Please see my comment here: #3029 (comment)

I see we have a mix of concept and procedures in one .adoc file.

Signed-off-by: Ales Raszka <araszka@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants