Skip to content

procedures: Update backup registry auth secret documentation#3090

Closed
tolusha wants to merge 1 commit into
mainfrom
update-backup-registry-auth-secret-docs
Closed

procedures: Update backup registry auth secret documentation#3090
tolusha wants to merge 1 commit into
mainfrom
update-backup-registry-auth-secret-docs

Conversation

@tolusha
Copy link
Copy Markdown
Contributor

@tolusha tolusha commented May 8, 2026

What does this pull request change?

Updates the "Configuring backup with a regular OCI-compatible registry" article to reflect the new behavior introduced by devfile/devworkspace-operator#1618.

Key changes:

  • Adds documentation for the new copyOperatorAuthSecret configuration field (defaults to false)
  • Clarifies that authSecret can be any name in the operator namespace
  • Documents that the secret in workspace namespace always uses the canonical name devworkspace-backup-registry-auth
  • Splits the article into two approaches:
    • Automatic copying (when copyOperatorAuthSecret: true)
    • Manual creation in each workspace namespace (when copyOperatorAuthSecret: false)
  • Updates the IMPORTANT note to reflect the non-overwriting behavior
  • Updates YAML example to show the new configuration option

What issues does this pull request fix or reference?

Specify the version of the product this pull request applies to

next

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.

Update the article to reflect the new behavior introduced by
devfile/devworkspace-operator#1618:

- Add the new copyOperatorAuthSecret configuration field
- Clarify that authSecret can be any name in the operator namespace
- Document that the secret in workspace namespace always uses the
  canonical name devworkspace-backup-registry-auth
- Split documentation into two approaches: automatic copying vs manual
  creation
- Update the IMPORTANT note about non-overwriting behavior

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@tolusha tolusha requested a review from amisevsk May 8, 2026 13:26
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

🎊 Navigate the preview: https://6a0137fc2d99e06e2cc1591d--eclipse-che-docs-pr.netlify.app 🎊

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

Click here to review and test in web IDE: Contribute

Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 left a comment

Choose a reason for hiding this comment

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

Documentation Review

Files reviewed: 1 modified procedure file
Issues found: 7 (2 errors, 4 warnings, 1 suggestion)

Category Count
Modular docs structure 2
IBM Style Guide (tense, modal verbs) 2
Red Hat SSG (user-replaced values) 2
JTBD (abstract) 1

🤖 RHAI docs Claude Code review

RBAC policy, the token can be provided via a secret in the Operator {namespace} or in each {devworkspace} {namespace}.
Having the secret in the {devworkspace} {namespace} allows for using different registry accounts per {namespace} with more
granular access control.
To use a regular OCI-compatible registry for backups, you need to provide registry credentials. You can configure the {devworkspace} operator to automatically copy a registry authentication secret from the operator {namespace} to {devworkspace} {namespaces}, or you can manually create secrets in each {devworkspace} {namespace}. Having separate secrets in each {devworkspace} {namespace} allows for using different registry accounts per {namespace} with more granular access control.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[JTBD] Two issues with this intro paragraph:

  1. Missing [role="_abstract"] — every module must have a short description marked with [role="_abstract"]. Add it before this paragraph.

  2. "you need to" → "you must" — IBM Style Guide: use "must" for requirements, not "need to".

  3. Weak WHY — the abstract explains WHAT (provide credentials) but the core benefit (ensuring workspace data is backed up and recoverable) is absent. JTBD-aligned abstract should explain the user's job.

Suggested fix:

[role="_abstract"]
To use a regular OCI-compatible registry for backups, you must provide registry credentials. You can configure the {devworkspace} operator to automatically copy a registry authentication secret from the operator {namespace} to {devworkspace} {namespaces}, or you can manually create secrets in each {devworkspace} {namespace} for more granular access control.

🤖 RHAI docs Claude review

The `authSecret` must be named `devworkspace-backup-registry-auth`. It must reference a {kubernetes} Secret of type `kubernetes.io/dockerconfigjson` that contains credentials to access the registry.
The secret should be created in the installation {namespace} for the {devworkspace} operator.
== Configuring automatic secret copying

Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 May 11, 2026

Choose a reason for hiding this comment

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

[REQUIRED] Custom == subheading == Configuring automatic secret copying is not allowed in a procedure module. Procedure modules only permit .Prerequisites, .Procedure, .Verification, .Troubleshooting, .Next steps, and .Additional resources.

Suggested fix — restructure both approaches as alternatives within the .Procedure section. Remove both == subheadings and present the two paths as numbered steps:

. Configure how the operator provides registry credentials to {devworkspace} {namespaces}:
+
* *Option A: Automatic secret copying* — Set `copyOperatorAuthSecret: true` in the {devworkspace} operator configuration. The operator copies the registry authentication secret from the operator {namespace} to each {devworkspace} {namespace}.
+
Create the secret in the operator {namespace}:
+
...existing code blocks...
+
* *Option B: Manual secret creation* — Leave `copyOperatorAuthSecret` at the default (`false`) and manually create a secret named `devworkspace-backup-registry-auth` in each {devworkspace} {namespace}.
+
...existing code blocks...

(Modular docs: procedure modules — no custom subheadings, only allowed sections.)

🤖 RHAI docs Claude review

{orch-cli} create secret docker-registry devworkspace-backup-registry-auth --from-file=config.json
{orch-cli} create secret docker-registry my-registry-auth \
--namespace $OPERATOR_INSTALL_NAMESPACE \
--from-file=config.json
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[REQUIRED] $OPERATOR_INSTALL_NAMESPACE is not formatted as a user-replaced value. Per Red Hat SSG, user-replaced values must use italic with angle brackets: __<operator_namespace>__.

This issue also occurs on line ~57 in the label command.

Suggested fix:

{orch-cli} create secret docker-registry my-registry-auth \
  --namespace __<operator_namespace>__ \
  --from-file=config.json

(Red Hat SSG Formatting: user-replaced values use __<description>__ syntax.)

🤖 RHAI docs Claude review

The {devworkspace} Operator copies the `devworkspace-backup-registry-auth` secret to each {devworkspace} {namespace} so that backups from user workspaces can be pushed to the registry. If you do not want that secret copied automatically, create a `devworkspace-backup-registry-auth` secret with user-specific credentials in each {devworkspace} {namespace} instead.
====
The operator will copy this secret to each {devworkspace} {namespace} with the canonical name `devworkspace-backup-registry-auth`.

Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 May 11, 2026

Choose a reason for hiding this comment

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

Future tense "will copy" — use present tense per IBM Style Guide.

Suggested fix — replace:

The operator will copy this secret to each {devworkspace} {namespace} with the canonical name devworkspace-backup-registry-auth.

With:

The operator copies this secret to each {devworkspace} {namespace} with the canonical name devworkspace-backup-registry-auth.

(IBM Style Guide: use present tense for describing product behavior.)

🤖 RHAI docs Claude review

----
{orch-cli} create secret docker-registry devworkspace-backup-registry-auth \
--namespace <workspace-namespace> \
--from-file=config.json
Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 May 11, 2026

Choose a reason for hiding this comment

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

<workspace-namespace> is not formatted as a user-replaced value.

Suggested fix — replace:

{orch-cli} create secret docker-registry devworkspace-backup-registry-auth \\
  --namespace <workspace-namespace> \\
  --from-file=config.json

With:

{orch-cli} create secret docker-registry devworkspace-backup-registry-auth \\
  --namespace __<workspace_namespace>__ \\
  --from-file=config.json

(Red Hat SSG Formatting: user-replaced values use __<description>__ syntax with double underscores for italic rendering.)

🤖 RHAI docs Claude review

<1> For Red Hat OpenShift, the default installation namespace for the {devworkspace} operator is `openshift-operators`. See the xref:devworkspace-operator.adoc[{devworkspace} operator overview].
<2> Set to `true` to enable automatic copying of the registry authentication secret from the operator {namespace} to {devworkspace} {namespaces}. The default value is `false`.
<3> The name of the secret in the operator {namespace} that contains registry credentials. This secret will be copied to {devworkspace} {namespaces} with the canonical name `devworkspace-backup-registry-auth`.

Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 May 11, 2026

Choose a reason for hiding this comment

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

[REQUIRED] Callouts <2> and <3> use future tense. Use present tense per IBM Style Guide.

Suggested fix — replace:

<2> Set to `true` to enable automatic copying of the registry authentication secret from the operator {namespace} to {devworkspace} {namespaces}. The default value is `false`.
<3> The name of the secret in the operator {namespace} that contains registry credentials. This secret will be copied to {devworkspace} {namespaces} with the canonical name `devworkspace-backup-registry-auth`.

With:

<2> When set to `true`, the operator copies the registry authentication secret from the operator {namespace} to each {devworkspace} {namespace}. The default is `false`.
<3> The name of the secret in the operator {namespace} that contains registry credentials. The operator copies this secret to each {devworkspace} {namespace} with the canonical name `devworkspace-backup-registry-auth`.

(IBM Style Guide: use present tense for describing product behavior.)

🤖 RHAI docs Claude review

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested fix for callouts <2> and <3>:

Replace the current callouts:

<2> Set to `true` to enable automatic copying of the registry authentication secret from the operator {namespace} to {devworkspace} {namespaces}. The default value is `false`.
<3> The name of the secret in the operator {namespace} that contains registry credentials. This secret will be copied to {devworkspace} {namespaces} with the canonical name `devworkspace-backup-registry-auth`.

With:

<2> When set to `true`, the operator copies the registry authentication secret from the operator {namespace} to each {devworkspace} {namespace}. The default is `false`.
<3> The name of the secret in the operator {namespace} that contains registry credentials. The operator copies this secret to each {devworkspace} {namespace} with the canonical name `devworkspace-backup-registry-auth`.

🤖 RHAI docs Claude review

Copy link
Copy Markdown
Contributor

@gtrivedi88 gtrivedi88 left a comment

Choose a reason for hiding this comment

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

Some more thoughts...

kubectl label secret devworkspace-backup-registry-auth controller.devfile.io/watch-secret=true
{orch-cli} label secret my-registry-auth \
--namespace $OPERATOR_INSTALL_NAMESPACE \
controller.devfile.io/watch-secret=true
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[REQUIRED] $OPERATOR_INSTALL_NAMESPACE is not formatted as a user-replaced value.

Suggested fix — replace:

{orch-cli} label secret my-registry-auth \
  --namespace $OPERATOR_INSTALL_NAMESPACE \
  controller.devfile.io/watch-secret=true

With:

{orch-cli} label secret my-registry-auth \
  --namespace __<operator_namespace>__ \
  controller.devfile.io/watch-secret=true

(Red Hat SSG Formatting: user-replaced values use __<description>__ syntax.)

🤖 RHAI docs Claude review

The operator will copy this secret to each {devworkspace} {namespace} with the canonical name `devworkspace-backup-registry-auth`.

== Manually creating secrets in workspace namespaces

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[REQUIRED] Custom == subheading == Manually creating secrets in workspace namespaces is not allowed in a procedure module.

Suggested fix — remove this == heading and present this as Option B within the .Procedure section (see comment on line 37 for the full restructuring approach).

(Modular docs: procedure modules — no custom subheadings, only allowed sections.)

🤖 RHAI docs Claude review

== Manually creating secrets in workspace namespaces

If `copyOperatorAuthSecret` is set to `false` (the default), the operator will not automatically copy secrets. Instead, you must manually create a secret named `devworkspace-backup-registry-auth` in each {devworkspace} {namespace}.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Future tense "will not" — use present tense per IBM Style Guide.

Suggested fix — replace:

If copyOperatorAuthSecret is set to false (the default), the operator will not automatically copy secrets. Instead, you must manually create a secret named devworkspace-backup-registry-auth in each {devworkspace} {namespace}.

With:

If copyOperatorAuthSecret is set to false (the default), the operator does not automatically copy secrets. Instead, you must manually create a secret named devworkspace-backup-registry-auth in each {devworkspace} {namespace}.

(IBM Style Guide: use present tense for describing product behavior.)

🤖 RHAI docs Claude review

This approach allows you to use different registry credentials for different {devworkspace} {namespaces}.

IMPORTANT: If a secret named `devworkspace-backup-registry-auth` already exists in a {devworkspace} {namespace}, the operator will never overwrite it, even when `copyOperatorAuthSecret` is set to `true`. This ensures that user-provided secrets are always respected.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Future tense "will never overwrite" — use present tense per IBM Style Guide.

Suggested fix — replace:

IMPORTANT: If a secret named devworkspace-backup-registry-auth already exists in a {devworkspace} {namespace}, the operator will never overwrite it, even when copyOperatorAuthSecret is set to true. This ensures that user-provided secrets are always respected.

With:

IMPORTANT: If a secret named devworkspace-backup-registry-auth already exists in a {devworkspace} {namespace}, the operator does not overwrite it, even when copyOperatorAuthSecret is set to true. This ensures that user-provided secrets are always respected.

(IBM Style Guide: use present tense for describing product behavior.)

🤖 RHAI docs Claude review

@tolusha tolusha closed this May 11, 2026
@tolusha tolusha deleted the update-backup-registry-auth-secret-docs branch May 11, 2026 15:35
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.

2 participants