Skip to content

Commit f191648

Browse files
authored
docs(release): prepare 0.3.0 docs and notes (#494)
Signed-off-by: Roel de Cort <roel.decort@adfinis.com>
1 parent 15a1013 commit f191648

144 files changed

Lines changed: 27825 additions & 33 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/v1alpha1/openbaocluster_types.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,10 @@ type UpgradeConfig struct {
703703
// The role must bind to the upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount),
704704
// which is automatically created by the operator.
705705
//
706-
// If OIDC is enabled in SelfInit and this field is empty, a default role
707-
// named "openbao-operator-upgrade" will be assumed/created.
706+
// If OIDC is enabled during initial SelfInit bootstrap and this field is
707+
// empty, a default role named "openbao-operator-upgrade" will be created.
708+
// For already-initialized clusters, configure this role explicitly or keep
709+
// the default role created during initial bootstrap.
708710
//
709711
// This is the supported authentication mechanism for built-in upgrade orchestration.
710712
// +optional
@@ -713,9 +715,9 @@ type UpgradeConfig struct {
713715
// token for future non-JWT upgrade authentication flows.
714716
//
715717
// Built-in rolling and blue/green upgrade orchestration does not support
716-
// token-based authentication. Configure spec.upgrade.jwtAuthRole or enable
717-
// spec.selfInit.oidc.enabled instead.
718-
// +kubebuilder:validation:XValidation:rule="self == null",message="spec.upgrade.tokenSecretRef is not supported; configure spec.upgrade.jwtAuthRole or enable spec.selfInit.oidc.enabled"
718+
// token-based authentication. Configure spec.upgrade.jwtAuthRole, or use the
719+
// default role created during initial spec.selfInit.oidc bootstrap.
720+
// +kubebuilder:validation:XValidation:rule="self == null",message="spec.upgrade.tokenSecretRef is not supported; configure spec.upgrade.jwtAuthRole or use the default role created during initial spec.selfInit.oidc bootstrap"
719721
// +optional
720722
TokenSecretRef *corev1.LocalObjectReference `json:"tokenSecretRef,omitempty"`
721723

@@ -2081,9 +2083,10 @@ type OpenBaoClusterSpec struct {
20812083
//
20822084
// Built-in upgrade executor Jobs authenticate with JWT auth using the
20832085
// upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount). If
2084-
// spec.selfInit.oidc.enabled is true and spec.upgrade.jwtAuthRole is empty,
2085-
// the operator assumes or bootstraps the default "openbao-operator-upgrade"
2086-
// role.
2086+
// spec.selfInit.oidc.enabled is true during initial SelfInit bootstrap and
2087+
// spec.upgrade.jwtAuthRole is empty, the operator creates the default
2088+
// "openbao-operator-upgrade" role. Already-initialized clusters must keep
2089+
// that role or configure spec.upgrade.jwtAuthRole explicitly.
20872090
//
20882091
// Pre-upgrade snapshots use spec.backup configuration and backup
20892092
// authentication rather than spec.upgrade credentials.

charts/openbao-operator/crds/openbao.org_openbaoclusters.yaml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4579,9 +4579,10 @@ spec:
45794579
45804580
Built-in upgrade executor Jobs authenticate with JWT auth using the
45814581
upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount). If
4582-
spec.selfInit.oidc.enabled is true and spec.upgrade.jwtAuthRole is empty,
4583-
the operator assumes or bootstraps the default "openbao-operator-upgrade"
4584-
role.
4582+
spec.selfInit.oidc.enabled is true during initial SelfInit bootstrap and
4583+
spec.upgrade.jwtAuthRole is empty, the operator creates the default
4584+
"openbao-operator-upgrade" role. Already-initialized clusters must keep
4585+
that role or configure spec.upgrade.jwtAuthRole explicitly.
45854586
45864587
Pre-upgrade snapshots use spec.backup configuration and backup
45874588
authentication rather than spec.upgrade credentials.
@@ -4708,8 +4709,10 @@ spec:
47084709
The role must bind to the upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount),
47094710
which is automatically created by the operator.
47104711
4711-
If OIDC is enabled in SelfInit and this field is empty, a default role
4712-
named "openbao-operator-upgrade" will be assumed/created.
4712+
If OIDC is enabled during initial SelfInit bootstrap and this field is
4713+
empty, a default role named "openbao-operator-upgrade" will be created.
4714+
For already-initialized clusters, configure this role explicitly or keep
4715+
the default role created during initial bootstrap.
47134716
47144717
This is the supported authentication mechanism for built-in upgrade orchestration.
47154718
type: string
@@ -4775,8 +4778,8 @@ spec:
47754778
token for future non-JWT upgrade authentication flows.
47764779
47774780
Built-in rolling and blue/green upgrade orchestration does not support
4778-
token-based authentication. Configure spec.upgrade.jwtAuthRole or enable
4779-
spec.selfInit.oidc.enabled instead.
4781+
token-based authentication. Configure spec.upgrade.jwtAuthRole, or use the
4782+
default role created during initial spec.selfInit.oidc bootstrap.
47804783
properties:
47814784
name:
47824785
default: ""
@@ -4791,7 +4794,8 @@ spec:
47914794
x-kubernetes-map-type: atomic
47924795
x-kubernetes-validations:
47934796
- message: spec.upgrade.tokenSecretRef is not supported; configure
4794-
spec.upgrade.jwtAuthRole or enable spec.selfInit.oidc.enabled
4797+
spec.upgrade.jwtAuthRole or use the default role created during
4798+
initial spec.selfInit.oidc bootstrap
47954799
rule: self == null
47964800
type: object
47974801
version:

config/crd/bases/openbao.org_openbaoclusters.yaml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4578,9 +4578,10 @@ spec:
45784578
45794579
Built-in upgrade executor Jobs authenticate with JWT auth using the
45804580
upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount). If
4581-
spec.selfInit.oidc.enabled is true and spec.upgrade.jwtAuthRole is empty,
4582-
the operator assumes or bootstraps the default "openbao-operator-upgrade"
4583-
role.
4581+
spec.selfInit.oidc.enabled is true during initial SelfInit bootstrap and
4582+
spec.upgrade.jwtAuthRole is empty, the operator creates the default
4583+
"openbao-operator-upgrade" role. Already-initialized clusters must keep
4584+
that role or configure spec.upgrade.jwtAuthRole explicitly.
45844585
45854586
Pre-upgrade snapshots use spec.backup configuration and backup
45864587
authentication rather than spec.upgrade credentials.
@@ -4707,8 +4708,10 @@ spec:
47074708
The role must bind to the upgrade ServiceAccount (<cluster-name>-upgrade-serviceaccount),
47084709
which is automatically created by the operator.
47094710
4710-
If OIDC is enabled in SelfInit and this field is empty, a default role
4711-
named "openbao-operator-upgrade" will be assumed/created.
4711+
If OIDC is enabled during initial SelfInit bootstrap and this field is
4712+
empty, a default role named "openbao-operator-upgrade" will be created.
4713+
For already-initialized clusters, configure this role explicitly or keep
4714+
the default role created during initial bootstrap.
47124715
47134716
This is the supported authentication mechanism for built-in upgrade orchestration.
47144717
type: string
@@ -4774,8 +4777,8 @@ spec:
47744777
token for future non-JWT upgrade authentication flows.
47754778
47764779
Built-in rolling and blue/green upgrade orchestration does not support
4777-
token-based authentication. Configure spec.upgrade.jwtAuthRole or enable
4778-
spec.selfInit.oidc.enabled instead.
4780+
token-based authentication. Configure spec.upgrade.jwtAuthRole, or use the
4781+
default role created during initial spec.selfInit.oidc bootstrap.
47794782
properties:
47804783
name:
47814784
default: ""
@@ -4790,7 +4793,8 @@ spec:
47904793
x-kubernetes-map-type: atomic
47914794
x-kubernetes-validations:
47924795
- message: spec.upgrade.tokenSecretRef is not supported; configure
4793-
spec.upgrade.jwtAuthRole or enable spec.selfInit.oidc.enabled
4796+
spec.upgrade.jwtAuthRole or use the default role created during
4797+
initial spec.selfInit.oidc bootstrap
47944798
rule: self == null
47954799
type: object
47964800
version:

docs/reference/api.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,7 +1038,7 @@ _Appears in:_
10381038
| `auditFileStorage` _[AuditFileStorageConfig](#auditfilestorageconfig)_ | AuditFileStorage configures a shared filesystem integration point for file audit devices.<br />When configured, file audit device paths must be under auditFileStorage.mountPath. | | Optional: \{\} <br /> |
10391039
| `plugins` _[Plugin](#plugin) array_ | Plugins configures declarative plugins for the OpenBao cluster.<br />See: https://openbao.org/docs/configuration/plugins/ | | Optional: \{\} <br /> |
10401040
| `telemetry` _[TelemetryConfig](#telemetryconfig)_ | Telemetry configures telemetry reporting for the OpenBao cluster.<br />See: https://openbao.org/docs/configuration/telemetry/ | | Optional: \{\} <br /> |
1041-
| `upgrade` _[UpgradeConfig](#upgradeconfig)_ | Upgrade configures upgrade operations.<br />Built-in upgrade executor Jobs authenticate with JWT auth using the<br />upgrade ServiceAccount (&lt;cluster-name&gt;-upgrade-serviceaccount). If<br />spec.selfInit.oidc.enabled is true and spec.upgrade.jwtAuthRole is empty,<br />the operator assumes or bootstraps the default "openbao-operator-upgrade"<br />role.<br />Pre-upgrade snapshots use spec.backup configuration and backup<br />authentication rather than spec.upgrade credentials. | | Optional: \{\} <br /> |
1041+
| `upgrade` _[UpgradeConfig](#upgradeconfig)_ | Upgrade configures upgrade operations.<br />Built-in upgrade executor Jobs authenticate with JWT auth using the<br />upgrade ServiceAccount (&lt;cluster-name&gt;-upgrade-serviceaccount). If<br />spec.selfInit.oidc.enabled is true during initial SelfInit bootstrap and<br />spec.upgrade.jwtAuthRole is empty, the operator creates the default<br />"openbao-operator-upgrade" role. Already-initialized clusters must keep<br />that role or configure spec.upgrade.jwtAuthRole explicitly.<br />Pre-upgrade snapshots use spec.backup configuration and backup<br />authentication rather than spec.upgrade credentials. | | Optional: \{\} <br /> |
10421042
| `unseal` _[UnsealConfig](#unsealconfig)_ | Unseal defines the auto-unseal configuration.<br />If omitted, defaults to "static" mode managed by the operator. | | Optional: \{\} <br /> |
10431043
| `imageVerification` _[ImageVerificationConfig](#imageverificationconfig)_ | ImageVerification configures supply chain security checks. | | Optional: \{\} <br /> |
10441044
| `operatorImageVerification` _[ImageVerificationConfig](#imageverificationconfig)_ | OperatorImageVerification configures supply chain security checks for operator-managed helper images<br />(init container, backup/upgrade/restore executors). These images are typically signed<br />by the operator project (e.g., dc-tec/openbao-operator) rather than the OpenBao upstream project.<br />If omitted, helper image verification does not fall back to ImageVerification.<br />In Development, omitted means disabled. In Hardened, omitted means enabled. | | Optional: \{\} <br /> |
@@ -2026,8 +2026,8 @@ _Appears in:_
20262026
| --- | --- | --- | --- |
20272027
| `image` _string_ | Image is the container image to use for upgrade operations.<br />This image is used by Kubernetes Jobs created during upgrades (for example, blue/green<br />cluster orchestration actions). The executor runs inside the tenant namespace and<br />authenticates to OpenBao using a projected ServiceAccount token (JWT auth).<br />If not specified, defaults to "&lt;repo&gt;:X.Y.Z" where &lt;repo&gt; is derived from OPERATOR_UPGRADE_IMAGE_REPOSITORY<br />(default: "ghcr.io/dc-tec/openbao-upgrade") and the tag matches OPERATOR_VERSION. | | Optional: \{\} <br /> |
20282028
| `preUpgradeSnapshot` _boolean_ | PreUpgradeSnapshot, when true, triggers a backup before any upgrade.<br />When enabled, the upgrade manager will create a backup using the backup<br />configuration (spec.backup.target, spec.backup.image, etc.) and<br />wait for it to complete before proceeding with the upgrade.<br />If the backup fails, the upgrade will be blocked and a Degraded condition<br />will be set with Reason=PreUpgradeBackupFailed.<br />Requires spec.backup to be configured with target, image, and<br />authentication (jwtAuthRole or tokenSecretRef). | | Optional: \{\} <br /> |
2029-
| `jwtAuthRole` _string_ | JWTAuthRole is the name of the JWT Auth role configured in OpenBao<br />for upgrade executor Jobs. The executor authenticates with a projected<br />ServiceAccount token from &lt;cluster-name&gt;-upgrade-serviceaccount.<br />The role must be configured in OpenBao and must grant the permissions<br />required by the selected upgrade strategy, including:<br />- "read" capability on sys/health<br />- "sudo" and "update" capability on sys/step-down<br />- "read" capability on sys/storage/raft/autopilot/state<br />- for Blue/Green, raft join/configuration/remove-peer/promote/demote operations<br />The role must bind to the upgrade ServiceAccount (&lt;cluster-name&gt;-upgrade-serviceaccount),<br />which is automatically created by the operator.<br />If OIDC is enabled in SelfInit and this field is empty, a default role<br />named "openbao-operator-upgrade" will be assumed/created.<br />This is the supported authentication mechanism for built-in upgrade orchestration. | | Optional: \{\} <br /> |
2030-
| `tokenSecretRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core)_ | TokenSecretRef optionally references a Secret containing an OpenBao API<br />token for future non-JWT upgrade authentication flows.<br />Built-in rolling and blue/green upgrade orchestration does not support<br />token-based authentication. Configure spec.upgrade.jwtAuthRole or enable<br />spec.selfInit.oidc.enabled instead. | | Optional: \{\} <br /> |
2029+
| `jwtAuthRole` _string_ | JWTAuthRole is the name of the JWT Auth role configured in OpenBao<br />for upgrade executor Jobs. The executor authenticates with a projected<br />ServiceAccount token from &lt;cluster-name&gt;-upgrade-serviceaccount.<br />The role must be configured in OpenBao and must grant the permissions<br />required by the selected upgrade strategy, including:<br />- "read" capability on sys/health<br />- "sudo" and "update" capability on sys/step-down<br />- "read" capability on sys/storage/raft/autopilot/state<br />- for Blue/Green, raft join/configuration/remove-peer/promote/demote operations<br />The role must bind to the upgrade ServiceAccount (&lt;cluster-name&gt;-upgrade-serviceaccount),<br />which is automatically created by the operator.<br />If OIDC is enabled during initial SelfInit bootstrap and this field is<br />empty, a default role named "openbao-operator-upgrade" will be created.<br />For already-initialized clusters, configure this role explicitly or keep<br />the default role created during initial bootstrap.<br />This is the supported authentication mechanism for built-in upgrade orchestration. | | Optional: \{\} <br /> |
2030+
| `tokenSecretRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core)_ | TokenSecretRef optionally references a Secret containing an OpenBao API<br />token for future non-JWT upgrade authentication flows.<br />Built-in rolling and blue/green upgrade orchestration does not support<br />token-based authentication. Configure spec.upgrade.jwtAuthRole, or use the<br />default role created during initial spec.selfInit.oidc bootstrap. | | Optional: \{\} <br /> |
20312031
| `strategy` _[UpdateStrategyType](#updatestrategytype)_ | Strategy defines the update strategy to use. | RollingUpdate | Enum: [RollingUpdate BlueGreen] <br /> |
20322032
| `requests` _[UpgradeRequestConfig](#upgraderequestconfig)_ | Requests defines explicit one-shot operator requests for the current<br />upgrade workflow. The operator acts only when a request value changes. | | Optional: \{\} <br /> |
20332033
| `blueGreen` _[BlueGreenConfig](#bluegreenconfig)_ | BlueGreen configures the behavior when Strategy is BlueGreen. | | Optional: \{\} <br /> |

docs/reference/compatibility.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The current stable release line is intended for real deployments, but it remains
4141
emphasis: 'caution',
4242
},
4343
{
44-
cells: ['v1.33', 'Not validated for the current release line', 'May work but is not release-gated for 0.2.0', 'Validate in staging before carrying this version into the current pre-GA line'],
44+
cells: ['v1.33', 'Not validated for the current release line', 'May work but is not release-gated for the current line', 'Validate in staging before carrying this version into the current pre-GA line'],
4545
emphasis: 'caution',
4646
},
4747
{

docs/reference/known-limitations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ journey: reference
3535
cells: ['Helm CRD lifecycle', 'Helm does not automatically upgrade or delete CRDs.', 'Use release `crds.yaml` assets for CRD lifecycle operations.'],
3636
},
3737
{
38-
cells: ['Built-in upgrade authentication', 'Built-in rolling and blue/green upgrade orchestration do not support `spec.upgrade.tokenSecretRef`; upgrade Jobs use JWT authentication only.', 'Configure `spec.upgrade.jwtAuthRole` or enable `spec.selfInit.oidc.enabled` so the operator can bootstrap the upgrade auth path.'],
38+
cells: ['Built-in upgrade authentication', 'Built-in rolling and blue/green upgrade orchestration do not support `spec.upgrade.tokenSecretRef`; upgrade Jobs use JWT authentication only.', 'Configure `spec.upgrade.jwtAuthRole`, or use the default role created during initial `selfInit.oidc` bootstrap.'],
3939
},
4040
{
4141
cells: ['Audit file storage archival', '`spec.auditFileStorage` provides a PVC-backed collector handoff and replay buffer; it does not provide rotation, pruning, tamper-proof retention, or a collector.', 'Mount the audit PVC read-only into a collector and ship records to external retention-controlled storage.'],

0 commit comments

Comments
 (0)