Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
36 changes: 36 additions & 0 deletions .github/workflows/validate-enterprise-features.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Validate enterprise features registry
# Checks the enterprise features registry (shared/modules/ROOT/partials/
# enterprise-features.yml) against the internal sources of truth: the
# license_required_feature enum and config::enterprise<> properties in
# redpanda core, and the connect enterprise plugin list. A new enterprise
# feature in core fails this check until the registry gets an entry with its
# approved external name.

on:
schedule:
- cron: '0 6 * * 1' # Mondays 06:00 UTC
pull_request:
paths:
- 'shared/modules/ROOT/partials/enterprise-features.yml'
- 'modules/get-started/pages/licensing/**'
- '.github/workflows/validate-enterprise-features.yml'
workflow_dispatch:

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Validate registry against sources of truth
run: |
# TODO: drop --skip-connect once the stale enterprise-components
# list is removed from rp-connect-docs antora.yml. Until then the
# connect comparison reports that known drift on every run.
npx --yes --package @redpanda-data/docs-extensions-and-macros doc-tools \
validate enterprise-features \
--registry shared/modules/ROOT/partials/enterprise-features.yml \
--disable-page modules/get-started/pages/licensing/disable-enterprise-features.adoc \
--skip-connect
5 changes: 5 additions & 0 deletions local-antora-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,13 @@ ui:
snapshot: true
asciidoc:
attributes:
# Report enterprise: macro targets that are missing from the enterprise
# features registry (shared/modules/ROOT/partials/enterprise-features.yml).
# Flip to 'error' once existing usage is clean.
enterprise-validate: warn
extensions:
- '@asciidoctor/tabs'
- '@redpanda-data/docs-extensions-and-macros/macros/enterprise'
- '@redpanda-data/docs-extensions-and-macros/macros/rp-connect-components'
- '@redpanda-data/docs-extensions-and-macros/macros/glossary'
- '@redpanda-data/docs-extensions-and-macros/macros/config-ref'
Expand Down
6 changes: 6 additions & 0 deletions modules/get-started/pages/licensing/check-status/rpk.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ License violation: true
Enterprise features in use: [partition_auto_balancing_continuous]
----

== Feature names in the output

The `Enterprise features in use` list reports internal feature names. The following table maps each reported name to its documented feature:

include::get-started:partial$licensing/feature-name-mapping.adoc[]

== Change the output format

Different output formats can be useful depending on your scenario. For example, if you are writing scripts or automating license monitoring, you may prefer the JSON format, as it's easily parsed by tools like `jq` or integrated into monitoring systems.
Expand Down
158 changes: 4 additions & 154 deletions modules/get-started/pages/licensing/overview.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -100,178 +100,28 @@ The following table lists the enterprise features for Redpanda and how Redpanda
- *After license expiration*: You cannot enable enterprise features without a valid license.

[[redpanda-enterprise-features]]
.Enterprise features in Redpanda
[cols="1a,2a,2a"]
|===
| Feature | Description | Behavior Upon Expiration

| xref:manage:audit-logging.adoc[Audit Logging]
| Records detailed logs of cluster activities for compliance and monitoring.
| Read access to the audit log topic is denied, but logging continues.

| xref:develop:manage-topics/cloud-topics.adoc[Cloud Topics]
| A Redpanda topic type that uses durable object storage as the primary backing store instead of local disk replication.
| New Cloud Topics cannot be created. Existing Cloud Topics cannot be modified, including adding or modifying partitions. Major upgrades are blocked when in a violation state.

| xref:manage:cluster-maintenance/continuous-data-balancing.adoc[Continuous Data Balancing]
| Automatically balances partitions across a cluster to optimize resource use and performance.

Continuous Data Balancing is enabled by default for all new clusters with valid licenses.

| Continuous balancing is disabled, reverting to `node_add` setting that balances partitions only after a broker is added to the cluster.

| xref:manage:cluster-maintenance/cluster-balancing.adoc#intra-broker-partition-balancing[Continuous Intra-Broker Partition Balancing]
(`core_balancing_continuous`)
| Balances partition replicas across CPU cores in an individual broker to optimize disk space usage.

Continuous Intra-Broker Partition Balancing is enabled by default for all new clusters with a valid license.

| Continuous Intra-Broker Partition Balancing is disabled.

| xref:manage:cluster-maintenance/fetch-read-coalescing.adoc[Fetch Read Coalescing]
| Shares one read result across concurrent fetches of the same data, reducing read CPU and fetch-response memory under high consumer fan-out.
| It will switch off automatically, similar to the other balancing features.

| xref:manage:security/fips-compliance.adoc[FIPS Compliance]
| Enables compliance with FIPS security standards for cryptography.
| No change.

| xref:manage:security/authorization/gbac.adoc[Group-Based Access Control (GBAC)]
| Manages permissions using OIDC group memberships for ACLs and role assignments.
| ACLs with `Group:` principals cannot be created. Existing group ACLs continue to be evaluated and can be deleted.

| xref:manage:iceberg/topic-iceberg-integration.adoc[Iceberg Topics]
| Enables Iceberg integration for Redpanda topics.
| Topics cannot be created or modified with the `redpanda.iceberg.mode` property.

| xref:manage:security/authentication.adoc#kerberos[Kerberos Authentication]
| Provides secure Kerberos-based authentication.
| No change.

| xref:develop:produce-data/leader-pinning.adoc[Leader Pinning]
| Specifies the set of availability zones where the leaders of partitions of a given topic should be located.
| Leader Pinning is disabled on all topics.

| xref:manage:security/authentication.adoc#oidc[OAUTHBEARER/OIDC Authentication]
| Allows for OAUTHBEARER and OpenID Connect (OIDC) authentication.
| No change.

| xref:manage:remote-read-replicas.adoc[Remote Read Replicas]
| Enables remote clusters to read data stored in object storage for disaster recovery.
| Remote Read Replica topics cannot be created or modified.

| xref:manage:security/authorization/rbac.adoc[Role-Based Access Control (RBAC)]
| Manages user roles and permissions within the cluster.
| Roles and ACLs associated with roles cannot be created or modified. Role deletion is allowed.

| xref:manage:schema-reg/schema-reg-authorization.adoc[Schema Registry Authorization]
| Manages ACLs for Redpanda Schema Registry resources within the cluster.
| You can no longer enable `schema_registry_enable_authorization`, nor can you create or modify schema ACLs.

| xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation]
| Validates schema IDs server-side to ensure schema compatibility. With schema ID validation, records associated with unregistered schemas are detected and dropped by a broker rather than a consumer.
| Topics with schema validation settings cannot be created or modified.

| xref:deploy:redpanda/manual/disaster-recovery/shadowing/index.adoc[Shadowing]
| Provides enterprise-grade disaster recovery through asynchronous, offset-preserving replication between distinct Redpanda clusters for cross-region data protection.
| New shadow links cannot be created. Existing shadow links continue operating and can be updated.

| Topic Deletion Control (`delete_topic_enable`)
| When set to `false`, prevents all users, including superusers, from deleting topics through the Kafka DeleteTopics API. This property provides a cluster-wide safety guard against accidental topic deletion.
| Topic deletion reverts to enabled (`true`).

| xref:manage:topic-recovery.adoc[Topic Recovery]
| Allows restoring a single topic from Tiered Storage using remote recovery properties.
| You cannot create topics with the `redpanda.remote.recovery=true` property or perform topic recovery operations. To proceed, add a valid license to the target cluster. Without a valid license, topic recovery is blocked.

| xref:manage:tiered-storage.adoc[Tiered Storage]
| Enables data storage in cloud object storage for long-term retention and retrieval.
| Topics cannot be created or modified to enable Tiered Storage features. Additional partitions cannot be added to topics with Tiered Storage properties enabled.

| xref:manage:whole-cluster-restore.adoc[Whole Cluster Restore] (WCR)
| Enables the recovery of cluster data from a source cluster's snapshot.
| If the license is expired, you cannot perform WCR. To proceed, add a valid license to the target cluster. If the source cluster has an expired license, the target cluster inherits the restriction until a valid license is applied.

|===
enterprise_features::redpanda[]

[[console]]
=== Redpanda Console enterprise features

The following enterprise features for Redpanda Console are activated with a valid Enterprise Edition license key:

.Enterprise features in Redpanda Console
[cols="1a,2a,2a"]
|===
| Feature | Description | Restrictions Without Valid License

|xref:console:config/security/authentication.adoc[Authentication for Redpanda Console ]
|Enables authentication for Redpanda Console, including secure login through OIDC and OAuth 2.0 SSO.
|All pages are redirected to the license expiration landing page, and all other access is restricted.

|xref:console:config/security/authorization.adoc[Authorization (RBAC) for Redpanda]
|Manages user roles and permissions for accessing features within Redpanda and Redpanda Console.
|All pages are redirected to the license expiration landing page, and all other access is restricted.

|xref:console:ui/generate-bundle.adoc[Debug bundle generation]
|Enables generating and downloading debug bundles in Redpanda Console for comprehensive cluster diagnostics.
|All pages are redirected to the license expiration landing page, and all other access is restricted.

|Reassign Partitions
|Enables the ability to move partitions between brokers.
|All pages are redirected to the license expiration landing page, and all other access is restricted.
|===
enterprise_features::console[]

[[connect]]
=== Redpanda Connect enterprise features

The following enterprise features are available with a valid Enterprise Edition license.

.Enterprise features in Redpanda Connect
[cols="1a,2a,2a"]
|===
| Feature | Description | Restrictions Without Valid License

| xref:connect:configuration:allow_and_deny_lists.adoc[Allow or deny lists]
| Limit the Redpanda Connect components that users can run within data pipelines on a Redpanda Connect instance.
| No change.

| https://docs.redpanda.com/redpanda-connect/components/catalog/?support=enterprise[Enterprise connectors]
| Additional inputs, outputs, and processors available only to enterprise customers.
| All enterprise connectors are blocked.

| xref:connect:get-started:quickstarts/rpk.adoc#fips-compliance[FIPS compliance]
| Run Redpanda Connect using a FIPS-compliant version of `rpk`, the Redpanda command-line interface (CLI).
| No change.

| xref:connect:components:redpanda/about.adoc[Redpanda Connect configuration service]
| A configuration block that you can use to send logs and status events to a topic on a Redpanda cluster.
| No change.

| xref:connect:configuration:secrets.adoc#look-up-secrets-on-a-remote-system-at-runtime[Secrets management]
| Retrieve secrets values from a remote system, such as a secret management solution, without setting environment variables.
| No change.

|===
enterprise_features::connect[]

[[operator]]
=== Redpanda Operator enterprise features

The Redpanda Operator gates the following Kubernetes features on a valid Enterprise Edition license. In both cases, the operator reads the license from a Secret referenced by the `enterprise.licenseSecretRef` values in the operator Helm chart.

.Enterprise features in the Redpanda Operator
[cols="1a,2a,2a"]
|===
| Feature | Description | Restrictions Without Valid License

| xref:deploy:redpanda/kubernetes/k-stretch-clusters.adoc[Stretch Clusters] (StretchCluster resource)
| A single logical Redpanda cluster distributed across multiple Kubernetes clusters for multi-region high availability, managed by the multicluster Redpanda Operator.
| The multicluster operator requires a valid license to start, so stretch clusters cannot be deployed or managed without one. On a running stretch cluster, the operator continuously reports license state through the StretchCluster resource's `LicenseValid` status condition and `status.licenseStatus`, including the expiration date and any enterprise features in violation. When the license expires, the stretch cluster keeps running and its brokers' enterprise features follow the restrictions in <<redpanda-enterprise-features, table 1>>.

| xref:manage:kubernetes/k-connect-pipelines.adoc[Redpanda Connect pipelines] (Pipeline resource) badge::[label=beta]
| Run Redpanda Connect pipelines declaratively through the operator's Connect controller. Requires a license that includes the Redpanda Connect product.
| When the license is missing, expired, invalid, or does not include the Redpanda Connect product, the operator stops creating and updating pipeline workloads: new Pipeline resources report `License: False` in their status and are never deployed, and existing pipelines keep running with their last-applied configuration but no longer receive updates. Applying a valid license resumes reconciliation automatically, without recreating any Pipeline resources.

|===
enterprise_features::operator[]

== Manage licenses for Redpanda

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// Generated by `doc-tools validate enterprise-features --write-mapping`. Do not edit.
// Maps the internal feature names reported by `rpk cluster license info`
// (enterprise_features_in_use) to their documented names.
[cols="1m,2a"]
|===
| Reported name | Documented feature

| audit_logging
| xref:manage:audit-logging.adoc[Audit Logging]

| cloud_storage
| xref:manage:remote-read-replicas.adoc[Remote Read Replicas]

xref:manage:topic-recovery.adoc[Topic Recovery]

xref:manage:tiered-storage.adoc[Tiered Storage]

xref:manage:whole-cluster-restore.adoc[Whole Cluster Restore (WCR)]

| partition_auto_balancing_continuous
| xref:manage:cluster-maintenance/continuous-data-balancing.adoc[Continuous Data Balancing]

| core_balancing_continuous
| xref:manage:cluster-maintenance/cluster-balancing.adoc#intra-broker-partition-balancing[Continuous Intra-Broker Partition Balancing]

| gssapi
| xref:manage:security/authentication.adoc#kerberos[Kerberos Authentication]

| oidc
| xref:manage:security/authentication.adoc#oidc[OAUTHBEARER/OIDC Authentication]

| schema_id_validation
| xref:manage:schema-reg/schema-id-validation.adoc[Server-Side Schema ID Validation]

| rbac
| xref:manage:security/authorization/gbac.adoc[Group-Based Access Control (GBAC)]

xref:manage:security/authorization/rbac.adoc[Role-Based Access Control (RBAC)]

| fips
| xref:manage:security/fips-compliance.adoc[FIPS Compliance]

| datalake_iceberg
| xref:manage:iceberg/topic-iceberg-integration.adoc[Iceberg Topics]

| leadership_pinning
| xref:develop:produce-data/leader-pinning.adoc[Leader Pinning]

| shadow_linking
| xref:deploy:redpanda/manual/disaster-recovery/shadowing/index.adoc[Shadowing]

| topic_deletion_disabled
| Topic Deletion Control

|===
Loading
Loading