Skip to content

Commit 22fde8e

Browse files
committed
Prepare v0.10.0 release documentation
Signed-off-by: gracegrimwood <[email protected]>
1 parent 9cc8922 commit 22fde8e

File tree

48 files changed

+3064
-0
lines changed

Some content is hidden

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

48 files changed

+3064
-0
lines changed

_data/kroxylicious.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
versions:
22
- title: 'Development'
33
url: '/kroxylicious'
4+
- title: 'v0.10.0'
5+
url: '/docs/v0.10.0/'
46
- title: 'v0.9.0'
57
url: '/docs/v0.9.0/'
68
- title: 'v0.8.0'
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// AsciiDoc settings
2+
:data-uri!:
3+
:doctype: book
4+
:experimental:
5+
:idprefix:
6+
:imagesdir: images
7+
:numbered:
8+
:sectanchors!:
9+
:sectnums:
10+
:source-highlighter: highlight.js
11+
:toc: left
12+
:linkattrs:
13+
:toclevels: 2
14+
:icons: font
15+
16+
//Latest version
17+
:KroxyliciousVersion: 0.9
18+
:gitRef: releases/tag/v0.10.0
19+
:ApicurioVersion: 2.6.x
20+
21+
//Proxy links
22+
:github: https://github.com/kroxylicious/kroxylicious
23+
:github-releases: https://github.com/kroxylicious/kroxylicious/{gitRef}
24+
:github-issues: https://github.com/kroxylicious/kroxylicious/issues
25+
:api-javadoc: https://javadoc.io/doc/io.kroxylicious/kroxylicious-api/{KroxyliciousVersion}
26+
:kms-api-javadoc: https://javadoc.io/doc/io.kroxylicious/kroxylicious-kms/{KroxyliciousVersion}
27+
:encryption-api-javadoc: https://javadoc.io/doc/io.kroxylicious/kroxylicious-encryption/{KroxyliciousVersion}
28+
:start-script: https://github.com/kroxylicious/kroxylicious/blob/{gitRef}/kroxylicious-app/src/assembly/kroxylicious-start.sh
29+
30+
//Kafka links
31+
:ApacheKafkaSite: https://kafka.apache.org[Apache Kafka website^]
32+
:kafka-protocol: https://kafka.apache.org/protocol.html
33+
34+
//java links
35+
:java-17-javadoc: https://docs.oracle.com/en/java/javase/17/docs/api
36+
:java-17-specs: https://docs.oracle.com/en/java/javase/17/docs/specs
37+
38+
//Vault links
39+
:hashicorp-vault: https://developer.hashicorp.com/vault
40+
41+
//Fortanix DSM links
42+
:fortanix-dsm: https://www.fortanix.com/platform/data-security-manager
43+
:fortanix-support: https://support.fortanix.com/
44+
45+
//AWS links
46+
:aws: https://docs.aws.amazon.com/
47+
48+
// Apicurio links
49+
:apicurio-docs: https://www.apicur.io/registry/docs/apicurio-registry/{ApicurioVersion}/
50+
51+
// Conditional inclusion flags
52+
:include-fortanix-dsm-kms: 1
53+
:include-aws-kms-service-config-identity-ec2-metadata: 1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
= Trademark notice
2+
3+
* Hashicorp Vault is a registered trademark of HashiCorp, Inc.
4+
* AWS Key Management Service is a trademark of Amazon.com, Inc. or its affiliates.
5+
ifdef::include-fortanix-dsm-kms[]
6+
* Fortanix and Data Security Manager are trademarks of Fortanix, Inc.
7+
endif::[]
8+
* Apache Kafka is a registered trademark of The Apache Software Foundation.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// file included in the following:
2+
//
3+
// assembly-record-encryption-filter.adoc
4+
5+
[id='assembly-aws-kms-{context}']
6+
= Setting up AWS KMS
7+
8+
[role="_abstract"]
9+
To use {aws}/kms/latest/developerguide/overview.html[AWS Key Management Service] with the Record Encryption filter, use the following setup:
10+
11+
* Establish an AWS KMS aliasing convention for keys
12+
* Configure the AWS KMS
13+
* Create AWS KMS keys
14+
15+
You'll need a privileged AWS user that is capable of creating users and policies to perform the set-up.
16+
17+
include::../modules/record-encryption/aws-kms/con-aws-kms-setup.adoc[leveloffset=+1]
18+
include::../modules/record-encryption/aws-kms/con-aws-kms-service-config.adoc[leveloffset=+1]
19+
include::../modules/record-encryption/aws-kms/con-aws-kms-key-creation.adoc[leveloffset=+1]
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// file included in the following:
2+
//
3+
// index.adoc
4+
5+
[id='assembly-built-in-filters-{context}']
6+
= Built-in filters
7+
8+
[role="_abstract"]
9+
Kroxylicious comes with a suite of built-in filters designed to enhance the functionality and security of your Kafka clusters.
10+
11+
include::assembly-record-encryption-filter.adoc[leveloffset=+1]
12+
include::assembly-multi-tenancy-filter.adoc[leveloffset=+1]
13+
include::assembly-record-validation-filter.adoc[leveloffset=+1]
14+
include::../modules/oauthbearer/con-oauthbearer.adoc[leveloffset=+1]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[id='assembly-configuring-proxy-{context}']
2+
= Configuring proxies
3+
4+
[role="_abstract"]
5+
Fine-tune your deployment by configuring proxies to include additional features according to your specific requirements.
6+
7+
include::../modules/configuring/con-configuration-outline.adoc[leveloffset=+1]
8+
include::../modules/configuring/con-configuring-filters.adoc[leveloffset=+1]
9+
include::../modules/configuring/con-configuring-virtual-clusters.adoc[leveloffset=+1]
10+
include::../modules/configuring/con-configuring-vc-network-addresses.adoc[leveloffset=+1]
11+
include::../modules/configuring/con-configuring-vc-client-tls.adoc[leveloffset=+1]
12+
include::../modules/configuring/con-configuring-vc-target-tls.adoc[leveloffset=+1]
13+
14+
include::../modules/configuring/con-configuring-vc-other-settings.adoc[leveloffset=+1]
15+
include::../modules/configuring/con-configuring-toplevel-other-settings.adoc[leveloffset=+1]
16+
17+
include::../modules/configuring/ref-configuring-proxy-example.adoc[leveloffset=+1]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// file included in the following:
2+
//
3+
// assembly-record-encryption-filter.adoc
4+
5+
[id='assembly-fortanix-dsm-{context}']
6+
= Setting up Fortanix Data Security Manager (DSM)
7+
8+
[role="_abstract"]
9+
To use Fortanix Data Security Manager (DSM) with the Record Encryption filter, use the following setup:
10+
11+
* Establish a naming convention for keys and decide in which group the keys will live
12+
* Create an application identity, with an API key, for use by the Record Encryption filter.
13+
* Create keys within Fortanix DSM.
14+
15+
include::../modules/record-encryption/fortanix-dsm/con-fortanix-dsm-setup.adoc[leveloffset=+1]
16+
include::../modules/record-encryption/fortanix-dsm/con-fortanix-dsm-service-config.adoc[leveloffset=+1]
17+
include::../modules/record-encryption/fortanix-dsm/con-fortanix-dsm-key-creation.adoc[leveloffset=+1]
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// file included in the following:
2+
//
3+
// assembly-record-encryption-filter.adoc
4+
5+
[id='assembly-hashicorp-vault-{context}']
6+
= Setting up HashiCorp Vault
7+
8+
[role="_abstract"]
9+
To use HashiCorp Vault with the Record Encryption filter, use the following setup:
10+
11+
* Enable the Transit Engine as the Record Encryption filter relies on its APIs.
12+
* Create a Vault policy specifically for the filter with permissions for generating and decrypting Data Encryption Keys (DEKs) for envelope encryption.
13+
* Obtain a Vault token that includes the filter policy.
14+
15+
include::../modules/record-encryption/hashicorp-vault/con-vault-setup.adoc[leveloffset=+1]
16+
include::../modules/record-encryption/hashicorp-vault/con-vault-service-config.adoc[leveloffset=+1]
17+
include::../modules/record-encryption/hashicorp-vault/con-vault-key-creation.adoc[leveloffset=+1]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// file included in the following:
2+
//
3+
// index.adoc
4+
5+
[id='con-operating-{context}']
6+
= Monitoring proxies
7+
8+
[role="_abstract"]
9+
Monitoring data allows you to monitor the performance and health of proxy operations.
10+
You can configure your deployment to capture metrics data for analysis and notifications.
11+
12+
* Introduce custom logging configurations using `log4j2` and set appropriate root log levels.
13+
* Set up an admin HTTP endpoint for Prometheus metrics scraping.
14+
* Integrate Micrometer for enhanced observability.
15+
* Configure common tags and standard binders for JVM and system metrics to ensure comprehensive monitoring and efficient proxy operation.
16+
17+
include::../modules/monitoring/proc-introducing-metrics.adoc[leveloffset=+1]
18+
include::../modules/monitoring/con-setting-logs.adoc[leveloffset=+1]
19+
include::../modules/monitoring/con-integrating-micrometer.adoc[leveloffset=+1]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// file included in the following:
2+
//
3+
// assembly-built-in-filters.adoc
4+
5+
[id='assembly-multi-tenancy-filter-{context}']
6+
= (Preview) Multi-tenancy filter
7+
8+
[role="_abstract"]
9+
Kroxylicious’s Multi-tenancy filter presents a single Kafka cluster to tenants as if it were multiple clusters.
10+
Operations are isolated to a single tenant by prefixing resources with an identifier.
11+
12+
NOTE: This filter is currently in incubation and available as a preview.
13+
We would not recommend using it in a production environment.
14+
15+
The Multi-tenancy filter works by intercepting all Kafka RPCs (remote procedure calls) that reference resources, such as topic names and consumer group names:
16+
17+
Request path:: On the request path, resource names are prefixed with a tenant identifier.
18+
Response path:: On the response path, the prefix is removed.
19+
20+
Kafka RPCs that list resources are filtered so that only resources belonging to the tenant are returned, effectively creating a private cluster experience for each tenant.
21+
22+
To set up the filter, configure it in Kroxylicious.
23+
24+
IMPORTANT: While the Multi-tenancy filter isolates operations on resources, it does not isolate user identities across tenants.
25+
User authentication and ACLs (Access Control Lists) are shared across all tenants, meaning that identity is not scoped to individual tenants.
26+
For more information on open issues related to this filter, see {github-issues}[Kroxylicious issues^].
27+
28+
NOTE: For more information on Kafka's support for multi-tenancy, see the {ApacheKafkaSite}.
29+
30+
//configuring the multi-tenancy filter
31+
include::../modules/multi-tenancy/proc-multi-tenancy.adoc[leveloffset=+1]

0 commit comments

Comments
 (0)