From a1999b7b77eaaaa060f16d3cf3cd8da640f8f1f9 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 14 Dec 2023 10:40:13 +0100 Subject: [PATCH 01/12] ~ --- antora.yml | 12 +++ modules/concepts/pages/authentication.adoc | 4 +- modules/concepts/pages/s3.adoc | 2 +- modules/reference/nav.adoc | 4 +- .../reference/pages/authenticationclass.adoc | 22 ----- modules/reference/pages/index.adoc | 8 +- modules/reference/pages/s3.adoc | 99 ------------------- .../pages/authentication_with_openldap.adoc | 2 +- supplemental-ui/partials/navbar.hbs | 1 + 9 files changed, 24 insertions(+), 130 deletions(-) delete mode 100644 modules/reference/pages/authenticationclass.adoc delete mode 100644 modules/reference/pages/s3.adoc diff --git a/antora.yml b/antora.yml index acba04396..6bf710d42 100644 --- a/antora.yml +++ b/antora.yml @@ -10,4 +10,16 @@ nav: - modules/operators/nav.adoc - modules/contributor/nav.adoc - modules/ROOT/nav2.adoc +# The prerelease setting affects version sorting. +# Set to 'true' for nightly and false otherwise. prerelease: true +# The attributes below are specific to this component and version +# https://docs.antora.org/antora/latest/component-attributes/#hard-set +asciidoc: + attributes: + # Keep this version in line with the 'version' key above + # The versions for the CRD docs are either 'nightly' or + # a full major.minor.patch version like 23.7.1 + crd-docs-version: "nightly" + # use the attribute below to link to the CRD docs + crd-docs: https://crds.stackable.tech/{crd-docs-version} diff --git a/modules/concepts/pages/authentication.adoc b/modules/concepts/pages/authentication.adoc index f24685ff7..4aa2345f5 100644 --- a/modules/concepts/pages/authentication.adoc +++ b/modules/concepts/pages/authentication.adoc @@ -34,7 +34,7 @@ In a diagram it would look like this: image::image$authentication-overview.drawio.svg[] -NOTE: For more details, look at the xref:reference:authenticationclass.adoc[AuthenticationClass reference] as well as the xref:tutorials:authentication_with_openldap.adoc[OpenLDAP tutorial]. +NOTE: Learn more in the xref:tutorials:authentication_with_openldap.adoc[OpenLDAP tutorial] and get a full overview of all the properties in the {crd-docs}/authentication.stackable.tech/authenticationclass/v1alpha1/#spec-provider-ldap[AuthenticationClass LDAP provider CRD reference]. [#tls] === TLS @@ -78,4 +78,4 @@ include::example$authenticationclass-static-secret.yaml[] == Further Reading * xref:tutorials:authentication_with_openldap.adoc[] tutorial -* xref:reference:authenticationclass.adoc[] reference +* {crd-docs}/authentication.stackable.tech/authenticationclass/v1alpha1/[AuthenticationClass CRD reference] diff --git a/modules/concepts/pages/s3.adoc b/modules/concepts/pages/s3.adoc index 07646a780..7ab0c9558 100644 --- a/modules/concepts/pages/s3.adoc +++ b/modules/concepts/pages/s3.adoc @@ -205,4 +205,4 @@ credentials: == What's next -Find details about the options of the S3 resource in the xref:reference:s3.adoc[S3 resources reference]. +Read the {crd-docs}/s3.stackable.tech/s3bucket/v1alpha1/[S3Bucket CRD reference] and the {crd-docs}/s3.stackable.tech/s3connection/v1alpha1/[S3Connection CRD reference]. \ No newline at end of file diff --git a/modules/reference/nav.adoc b/modules/reference/nav.adoc index c31206094..f74eadcee 100644 --- a/modules/reference/nav.adoc +++ b/modules/reference/nav.adoc @@ -1,3 +1 @@ -* xref:index.adoc[] -** xref:authenticationclass.adoc[] -** xref:s3.adoc[] \ No newline at end of file +* xref:index.adoc[] \ No newline at end of file diff --git a/modules/reference/pages/authenticationclass.adoc b/modules/reference/pages/authenticationclass.adoc deleted file mode 100644 index e9e988285..000000000 --- a/modules/reference/pages/authenticationclass.adoc +++ /dev/null @@ -1,22 +0,0 @@ -= AuthenticationClass - -For a conceptual overview of authentication on the Stackable platform, read the xref:concepts:authentication.adoc[authentication concepts page]. - -== LDAP Provider - -The following example shows all possible attributes: - -[source,yaml] ----- -include::example$authenticationclass-ldap-full.yaml[] ----- -<1> The hostname of the LDAP server without any protocol or port -<2> The port of the LDAP server. If TLS is used defaults to `636` otherwise to `389` -<3> The searchBase where the users should be searched -<4> Additional filter that filters the allowed users -<5> The name of the corresponding field names in the LDAP objects -<6> The name of the xref:secret-operator:secretclass.adoc[] providing the bind credentials (username and password) -<7> The xref:secret-operator:scope.adoc[] of the xref:secret-operator:secretclass.adoc[] -<8> xref:concepts:tls_server_verification.adoc[] of the LDAP server - -To learn more, you can follow the xref:tutorials:authentication_with_openldap.adoc[] tutorial. \ No newline at end of file diff --git a/modules/reference/pages/index.adoc b/modules/reference/pages/index.adoc index 91cb6648f..e8ae0555f 100644 --- a/modules/reference/pages/index.adoc +++ b/modules/reference/pages/index.adoc @@ -1,3 +1,7 @@ -# Reference +# CRD reference +:page-aliases: s3.adoc, authenticationclass.adoc -Reference for common objects and configuration fragments across the platform. \ No newline at end of file +// Let's not link individual CRDs etc. here, just point to the landing page of the CRD docs and that's it. +You can find CRD reference documentation at {crd-docs}. + +There you will find documentation on all properties of all the CRDs that are deployed by the Stackable operators. diff --git a/modules/reference/pages/s3.adoc b/modules/reference/pages/s3.adoc deleted file mode 100644 index ab9cf3840..000000000 --- a/modules/reference/pages/s3.adoc +++ /dev/null @@ -1,99 +0,0 @@ -= S3 resources - -This page contains the reference information for the S3Bucket and S3Connection resources. For guidance on usage, see xref:concepts:s3.adoc[S3 resources concept]. - -== S3Bucket - -A bucket consists of a bucket name and the connection to the object store where the bucket is located. - -* `name`: `String`, the name of the Bucket. -* `connection`: can either be `inline` or `reference`. -** `inline`: See the properties below for <>. -** `reference`: `String`, the name of the referenced S3Connection resource, which must be in the same namespace as the S3Bucket resource. - -=== Full Example - -Using an inline connection: - -[source,yaml] ----- ---- -apiVersion: s3.stackable.tech/v1alpha1 -kind: S3Bucket -metadata: - name: my-bucket-resource -spec: - bucketName: my-example-bucket - connection: - inline: - host: s3.example.com ----- - -Using a connection reference (referencing the example connection from the next section below): - -[source,yaml] ----- ---- -apiVersion: s3.stackable.tech/v1alpha1 -kind: S3Bucket -metadata: - name: my-bucket-resource -spec: - bucketName: my-example-bucket - connection: - reference: my-connection-resource ----- - - -== S3Connection - -An S3Connection object specifies how to connect to an S3 provider. - -* `host`: `String`, the domain name of the host of the object store, such as `s3.west.provider.com`. -* `port`: `Integer`, a port such as 80 or 4242. -* `accessStyle`: Optional. Can be either "VirtualHosted" (default) or "Path". -* `credentials`: contains a `secretClass`. -** `secretClass`: a reference to a SecretClass resource. For more information on specifying credentials, see xref:concepts:s3.adoc#_credentials[Credentials] in the S3 concept pages. - -=== Example - -[source,yaml] ----- ---- -apiVersion: s3.stackable.tech/v1alpha1 -kind: S3Connection -metadata: - name: my-connection-resource -spec: - host: s3.example.com - port: 4242 - accessStyle: Path - credentials: - secretClass: s3-credentials-class ----- - -For completeness, the referenced SecretClass and Secret are given below: - -[source,yaml] ----- ---- -apiVersion: secrets.stackable.tech/v1alpha1 -kind: SecretClass -metadata: - name: s3-credentials-class -spec: - backend: - k8sSearch: - searchNamespace: - pod: {} ---- -apiVersion: v1 -kind: Secret -metadata: - name: s3-credentials - labels: - secrets.stackable.tech/class: s3-credentials-class -stringData: - accessKey: YOUR_VALID_ACCESS_KEY_ID_HERE - secretKey: YOUR_SECRET_ACCESS_KEY_THAT_BELONGS_TO_THE_KEY_ID_HERE ----- diff --git a/modules/tutorials/pages/authentication_with_openldap.adoc b/modules/tutorials/pages/authentication_with_openldap.adoc index 5685b5b09..9e679f67f 100644 --- a/modules/tutorials/pages/authentication_with_openldap.adoc +++ b/modules/tutorials/pages/authentication_with_openldap.adoc @@ -351,7 +351,7 @@ The LDAP connection details only need to be written down once, in the Authentica == Further Reading - xref:concepts:authentication.adoc[Authentication concepts page] -- xref:reference:authenticationclass.adoc[AuthenticationClass reference] +* {crd-docs}/authentication.stackable.tech/authenticationclass/v1alpha1/[AuthenticationClass CRD reference] - xref:superset:getting_started/index.adoc[Getting started with the Stackable Operator for Apache Superset] - xref:trino:getting_started/index.adoc[Getting started with the Stackable Operator for Trino] // TODO Operator docs for LDAP diff --git a/supplemental-ui/partials/navbar.hbs b/supplemental-ui/partials/navbar.hbs index 9dd45c73a..b76789801 100644 --- a/supplemental-ui/partials/navbar.hbs +++ b/supplemental-ui/partials/navbar.hbs @@ -6,6 +6,7 @@ Concepts Demos Tutorials + CRD Reference Release Notes From 5a1f881de1346897770241dbd578a7d7bdc5e684 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 14 Dec 2023 11:00:08 +0100 Subject: [PATCH 02/12] updated link on landing page --- modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index d137d487d..09cd4a10d 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -118,7 +118,7 @@ xref:operators:index.adoc[Operator overview] Read the CustomResourceDefinition (CRD) reference for all CRDs that are deployed by any Stackable operator. -https://crds.stackable.tech/[CRD Reference] +{crd-docs}[CRD Reference] ++++ From a9f78571aa666fcddeb329ab86c8efe0f48d8f8e Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 14 Dec 2023 13:15:56 +0100 Subject: [PATCH 03/12] Added release branch script --- modules/concepts/pages/service-discovery.adoc | 4 +- scripts/make-release-branch.sh | 100 ++++++++++++++++++ scripts/version_bump.sh | 48 --------- 3 files changed, 102 insertions(+), 50 deletions(-) create mode 100755 scripts/make-release-branch.sh delete mode 100755 scripts/version_bump.sh diff --git a/modules/concepts/pages/service-discovery.adoc b/modules/concepts/pages/service-discovery.adoc index 7200ed6d0..71841ba7f 100644 --- a/modules/concepts/pages/service-discovery.adoc +++ b/modules/concepts/pages/service-discovery.adoc @@ -2,7 +2,7 @@ :page-aliases: service_discovery.adoc // Abstract -Stackable operators provide a _service discovery ConfigMap_ for each product instance that is deployed. This ConfigMap has the same name as the product instance and contains information about how to connect to the instance. The ConfigMap is used by other Operators to connect products together and can also be used by you, the user, to connect external software to Stackable-operated software. +Stackable operators provide a _service discovery ConfigMap_ for each product instance that is deployed. **This ConfigMap has the same name as the product instance** and contains information about how to connect to the instance. The ConfigMap is used by other Operators to connect products together and can also be used by you, the user, to connect external software to Stackable-operated software. == Motivation @@ -118,7 +118,7 @@ For Stackable managed services the Stackable Operators will take care of this, b Consult discovery ConfigMap documentation for specific products: -* xref:druid:discovery.adoc[Apache Druid] +* xref:druid:reference/discovery.adoc[Apache Druid] * xref:hdfs:discovery.adoc[Apache Hadoop HDFS] * xref:hive:discovery.adoc[Apache Hive] * xref:kafka:discovery.adoc[Apache Kafka] diff --git a/scripts/make-release-branch.sh b/scripts/make-release-branch.sh new file mode 100755 index 000000000..8fb91349b --- /dev/null +++ b/scripts/make-release-branch.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +set -euo pipefail + +# This script takes a major.minor.patch version and +# - updates the antora.yml file accordingly +# - creates a release branch +# - pushes the release branch + +# Check if a version argument is provided +if [ -z "$1" ]; then + echo "Please provide a version as a command-line argument (major.minor.patch)." + exit 1 +fi + +# Validate the version format (major.minor.patch) +if [[ ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Invalid version format. Please use the major.minor.patch format." + exit 1 +fi + +docs_dir="$(dirname "$0")/.." +antora_yaml=$docs_dir/antora.yml + +version="$1" + +# Extract major.minor part of the version +docs_version=$(echo "$version" | cut -d. -f1,2) + +# Ask the user if they have written release notes and merged them into main +echo "Release notes for the new version should already be written and commited to the main branch," +echo "so the show up in both the nightly and future versions, as well as the new release branch" +echo "that is about the be created." +read -p "Did you already write release notes and merge them into main? (yes/no): " release_notes_answer + +# Convert the user input to lowercase for case-insensitive comparison +release_notes_answer_lowercase=$(echo "$release_notes_answer" | tr '[:upper:]' '[:lower:]') + +# Check the user's response +if [ "$release_notes_answer_lowercase" != "yes" ]; then + echo "Please write release notes and merge them into main before running this script." + exit 1 +fi + +# Check if on main branch +current_branch=$(git rev-parse --abbrev-ref HEAD) +if [ "$current_branch" != "main" ]; then + echo "Not on the main branch. Please switch to the main branch." + exit 1 +fi + +# Check if the branch is up to date with the origin +git fetch +if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]; then + echo "Your branch is not up to date with the origin main branch. Please pull the latest changes." + exit 1 +fi + +# Check if the working directory is clean +if [ -n "$(git status --porcelain)" ]; then + echo "Working directory is not clean. Please commit or stash your changes." + exit 1 +fi + +echo "All checks passed. You are on the main branch, up to date with the origin, and the working directory is clean." + +# Set version key to docs_version +sed -i "s/^version:.*/version: \"$docs_version\"/" "$antora_yaml" + +# Set prerelease to false +sed -i "s/^prerelease:.*/prerelease: false/" "$antora_yaml" + +# Set crd-docs-version key to the 'version' variable +sed -i "s/^\(\s*\)crd-docs-version:.*/\1crd-docs-version: \"$version\"/" "$antora_yaml" + +# Display changes using git diff +git diff "$antora_yaml" + +# Ask the user whether to proceed +read -p "Do you want to proceed with these changes? (yes/no): " proceed_answer + +# Convert the user input to lowercase for case-insensitive comparison +proceed_answer_lowercase=$(echo "$proceed_answer" | tr '[:upper:]' '[:lower:]') + +# Check the user's response +if [ "$proceed_answer_lowercase" != "yes" ]; then + echo "Aborted. Nothing was commited." + exit 1 +fi + +# User wants to proceed +# Checkout a new branch +branch_name="release/$docs_version" +git checkout -b "$branch_name" + +# Commit the changes +git add "$antora_yaml" +git commit -m "Update version in antora.yml to $version" + +# Push the branch +git push origin "$branch_name" \ No newline at end of file diff --git a/scripts/version_bump.sh b/scripts/version_bump.sh deleted file mode 100755 index 4c5ac5a05..000000000 --- a/scripts/version_bump.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Creates two commits: -# - the first commit with the new version and tagged -# - the second commit bumped back to nightly - -if [ ! $# -eq 1 ] -then - echo "Version required. I.e.: ./script.sh 22.06" - exit 1 -fi - -if [ ! -z "$(git status --porcelain)" ]; then - echo "There are uncommitted changes, please resolve before running this script." - exit 1 -fi - -export new_version="$1" - -docs_dir="$(dirname "$0")/.." -antora_file=$docs_dir/antora.yml - -branch_name="version-bump-$new_version" - -git checkout -b "$branch_name" - - -echo "Updating $antora_file to version $new_version" -yq eval --inplace '.version = strenv(new_version)' $antora_file -yq eval --inplace '.prerelease = false' $antora_file - -echo "Committing ..." -git add "$antora_file" -git commit -m "Set version $new_version" -git tag -a "docs/$new_version" -m "Documentation for release $new_version" - -echo "Updating $antora_file to nightly" -yq eval --inplace '.version = "nightly"' $antora_file -yq eval --inplace '.prerelease = true' $antora_file - -echo "Committing..." -git add "$antora_file" -git commit -m "Bumped back to nightly" - -echo "" -echo "Done! Please push manually:" -echo "git push --set-upstream origin $branch_name" From 2f9c2603f04109fb23ab2ee4a66e84767419be48 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 14 Dec 2023 13:16:29 +0100 Subject: [PATCH 04/12] added another attribute to antora.yml --- antora.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/antora.yml b/antora.yml index 6bf710d42..01490ea5d 100644 --- a/antora.yml +++ b/antora.yml @@ -21,5 +21,6 @@ asciidoc: # The versions for the CRD docs are either 'nightly' or # a full major.minor.patch version like 23.7.1 crd-docs-version: "nightly" - # use the attribute below to link to the CRD docs - crd-docs: https://crds.stackable.tech/{crd-docs-version} + # use the attributes below to link to the CRD docs + crd-docs-base-url: "https://crds.stackable.tech" + crd-docs: "{crd-docs-base-url}/{crd-docs-version}" From b032e57e779ea0cf6f81ad57735bb888e243ae21 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 14 Dec 2023 13:29:16 +0100 Subject: [PATCH 05/12] Added WIP version of the second release script --- scripts/publish-new-version.sh | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 scripts/publish-new-version.sh diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh new file mode 100755 index 000000000..f93164ffd --- /dev/null +++ b/scripts/publish-new-version.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +set -euo pipefail + +# This script ... TODO + +# Check if a version argument is provided +if [ -z "$1" ]; then + echo "Please provide a version as a command-line argument (major.minor.patch)." + exit 1 +fi + +# Validate the version format (major.minor.patch) +if [[ ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Invalid version format. Please use the major.minor.patch format." + exit 1 +fi + +version="$1" + +# Extract major.minor part of the version +docs_version=$(echo "$version" | cut -d. -f1,2) +release_branch_name="release/$docs_version" + +# Check if the release branch exists upstream +if ! git rev-parse --quiet --verify "$release_branch_name" > /dev/null; then + echo "Release branch '$release_branch_name' is missing upstream." + echo "Please create the $release_branch_name branch first using the make-release-branch.sh script." + echo "Aborting." + exit 1 +fi + +# Ask additional questions +read -p "Did you create all the release branches in the operators? (yes/no): " operators_branches_answer + +# Convert the user input to lowercase for case-insensitive comparison +operators_branches_answer_lowercase=$(echo "$operators_branches_answer" | tr '[:upper:]' '[:lower:]') + +if [ "$operators_branches_answer_lowercase" != "yes" ]; then + echo "Please create all the branches in the operators before proceeding." + exit 1 +fi + +# Check if on main branch +current_branch=$(git rev-parse --abbrev-ref HEAD) +if [ "$current_branch" != "main" ]; then + echo "Not on the main branch. Please switch to the main branch." + exit 1 +fi + +# Check if the branch is up to date with the origin +git fetch +if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]; then + echo "Your branch is not up to date with the origin main branch. Please pull the latest changes." + exit 1 +fi + +# Check if the working directory is clean +if [ -n "$(git status --porcelain)" ]; then + echo "Working directory is not clean. Please commit or stash your changes." + exit 1 +fi + +echo "All checks passed." + +# TODO update playbooks \ No newline at end of file From 8eebf9f6f67b56b7f30e78e7df2537c2be6b82ad Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Mon, 18 Dec 2023 11:53:30 +0100 Subject: [PATCH 06/12] Added WIP version of the second release script --- scripts/publish-new-version.sh | 54 +++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh index f93164ffd..19f0cad88 100755 --- a/scripts/publish-new-version.sh +++ b/scripts/publish-new-version.sh @@ -3,6 +3,13 @@ set -euo pipefail # This script ... TODO +# Check if yq is installed +if ! command -v yq &> /dev/null; then + echo "Error: 'yq' is not installed. It's needed to update yaml files later in the script." + echo "Please install 'yq' from https://github.com/mikefarah/yq and then run the script again." + exit 1 +fi + # Check if a version argument is provided if [ -z "$1" ]; then echo "Please provide a version as a command-line argument (major.minor.patch)." @@ -61,5 +68,50 @@ if [ -n "$(git status --porcelain)" ]; then fi echo "All checks passed." +echo "Updating playbooks." + +# Define the branches to add. The documentation repo uses a '/' while the operators use a '-' +docs_branch="release/$docs_version" +operator_branch="release-$docs_version" +insert_position=1 + +# List of YAML files to modify +playbook_files=("antora-playbook.yml" "local-antora-playbook.yml" "gitpod-antora-playbook.yml") + +# Loop through each playbook file +for yaml_file in "${playbook_files[@]}"; do + # Insert the docs_branch + yq eval ".content.sources[0].branches = .content.sources[0].branches[:$insert_position] + [\"$docs_branch\"] + .content.sources[0].branches[$insert_position:]" -i "$yaml_file" + + # Update all the operator sources + yq eval ".content.sources[2:] |= map(.branches = .branches[:$insert_position] + [\"$operator_branch\"] + .branches[$insert_position:])" -i "$yaml_file" +done + +# Display changes using git diff +git diff + +# Ask the user whether to proceed +read -p "Do you want to proceed with these changes? (yes/no): " proceed_answer + +# Convert the user input to lowercase for case-insensitive comparison +proceed_answer_lowercase=$(echo "$proceed_answer" | tr '[:upper:]' '[:lower:]') + +# Check the user's response +if [ "$proceed_answer_lowercase" != "yes" ]; then + echo "Aborted. Nothing was commited." + exit 1 +fi + +publish_branch="publish-$docs_version" + +git checkout -b "$publish_branch" + +git add . +git commit -m "Add release branches to the playbooks for release $docs_version." + +# Push the branch upstream +git push -u origin "$publish_branch" -# TODO update playbooks \ No newline at end of file +echo "The changes have been pushed to GitHub!" +echo "Click the link above to create the PR in GitHub, and then verify that the build works with Netlify previews." +echo "Once the branch is merged, the changes are live." \ No newline at end of file From e8b88b70ca34ad1b42ae6ce202adb974f5301e49 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Mon, 18 Dec 2023 11:58:25 +0100 Subject: [PATCH 07/12] WIP --- scripts/publish-new-version.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh index 19f0cad88..58b3d2ff3 100755 --- a/scripts/publish-new-version.sh +++ b/scripts/publish-new-version.sh @@ -1,7 +1,8 @@ #!/usr/bin/env bash set -euo pipefail -# This script ... TODO +# This script updates all the playbook files with the new branches for a given version. +# The version should be given as major.minor # Check if yq is installed if ! command -v yq &> /dev/null; then @@ -12,31 +13,30 @@ fi # Check if a version argument is provided if [ -z "$1" ]; then - echo "Please provide a version as a command-line argument (major.minor.patch)." + echo "Please provide a version as a command-line argument (major.minor)." exit 1 fi # Validate the version format (major.minor.patch) -if [[ ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then +if [[ ! "$1" =~ ^[0-9]+\.[0-9]$ ]]; then echo "Invalid version format. Please use the major.minor.patch format." exit 1 fi -version="$1" +docs_version="$1" -# Extract major.minor part of the version -docs_version=$(echo "$version" | cut -d. -f1,2) -release_branch_name="release/$docs_version" +# Define the branches to add. The documentation repo uses a '/' while the operators use a '-' +docs_branch="release/$docs_version" +operator_branch="release-$docs_version" # Check if the release branch exists upstream -if ! git rev-parse --quiet --verify "$release_branch_name" > /dev/null; then - echo "Release branch '$release_branch_name' is missing upstream." - echo "Please create the $release_branch_name branch first using the make-release-branch.sh script." +if ! git rev-parse --quiet --verify "$docs_branch" > /dev/null; then + echo "Release branch '$docs_branch' is missing upstream in the documentation repository." + echo "Please create the $docs_branch branch first using the make-release-branch.sh script." echo "Aborting." exit 1 fi -# Ask additional questions read -p "Did you create all the release branches in the operators? (yes/no): " operators_branches_answer # Convert the user input to lowercase for case-insensitive comparison From 8923c300bef729a13bca05fe31721d9d35ea0ac5 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Mon, 18 Dec 2023 16:16:46 +0100 Subject: [PATCH 08/12] WIP --- gitpod-antora-playbook.yml | 81 ---------------------------------- scripts/publish-new-version.sh | 13 +++--- 2 files changed, 7 insertions(+), 87 deletions(-) delete mode 100644 gitpod-antora-playbook.yml diff --git a/gitpod-antora-playbook.yml b/gitpod-antora-playbook.yml deleted file mode 100644 index 106d406de..000000000 --- a/gitpod-antora-playbook.yml +++ /dev/null @@ -1,81 +0,0 @@ ---- -site: - title: Stackable Documentation - url: https://docs.stackable.tech - robots: allow - keys: - enable_tracking: false - -urls: - # This replaces the component version in the URL of the latest stable version with 'stable' - # i.e. /commons-operator/stable/index.html instead of /commons-operator/0.3/index.html - latest_version_segment: stable - -content: - branches: [release-*, main] - tags: docs/* - sources: - - url: /workspace/documentation - tags: [] - branches: [HEAD, release/*] - # management tools - - url: https://github.com/stackabletech/stackable-cockpit.git - start_path: docs - # demos - - url: https://github.com/stackabletech/demos.git - start_path: docs - # internal operators - - url: https://github.com/stackabletech/commons-operator.git - start_path: docs - - url: https://github.com/stackabletech/secret-operator.git - start_path: docs - - url: https://github.com/stackabletech/listener-operator.git - start_path: docs - # product operators - - url: https://github.com/stackabletech/airflow-operator.git - start_path: docs - - url: https://github.com/stackabletech/druid-operator.git - start_path: docs - - url: https://github.com/stackabletech/hbase-operator.git - start_path: docs - - url: https://github.com/stackabletech/hdfs-operator.git - start_path: docs - - url: https://github.com/stackabletech/hive-operator.git - start_path: docs - - url: https://github.com/stackabletech/kafka-operator.git - start_path: docs - - url: https://github.com/stackabletech/nifi-operator.git - start_path: docs - - url: https://github.com/stackabletech/opa-operator.git - start_path: docs - - url: https://github.com/stackabletech/spark-k8s-operator.git - start_path: docs - - url: https://github.com/stackabletech/superset-operator.git - start_path: docs - - url: https://github.com/stackabletech/trino-operator.git - start_path: docs - - url: https://github.com/stackabletech/zookeeper-operator.git - start_path: docs - -ui: - bundle: - url: ./ui/build/ui-bundle.zip - supplemental_files: ./node_modules/@antora/lunr-extension/supplemental_ui - -antora: - extensions: - - '@antora/lunr-extension' - - asciidoctor-kroki - -asciidoc: - attributes: - base-repo: https://github.com/stackabletech - plantuml-server-url: http://www.plantuml.com/plantuml - extensions: - - asciidoctor-kroki - -# the default caching directory is ./.cache/antora -# Antora caches the git repos, this can sometimes lead to stale content -# use 'make clean' to remove the build and cache directory -runtime: - cache_dir: ./cache diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh index 58b3d2ff3..8f45045e5 100755 --- a/scripts/publish-new-version.sh +++ b/scripts/publish-new-version.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash -set -euo pipefail +set -euox pipefail # This script updates all the playbook files with the new branches for a given version. # The version should be given as major.minor # Check if yq is installed if ! command -v yq &> /dev/null; then - echo "Error: 'yq' is not installed. It's needed to update yaml files later in the script." + echo "Error: 'yq' is not installed. It is needed to update yaml files later in the script." + echo "This script was tested with yq v4.40.5" echo "Please install 'yq' from https://github.com/mikefarah/yq and then run the script again." exit 1 fi @@ -76,15 +77,15 @@ operator_branch="release-$docs_version" insert_position=1 # List of YAML files to modify -playbook_files=("antora-playbook.yml" "local-antora-playbook.yml" "gitpod-antora-playbook.yml") +playbook_files=("antora-playbook.yml" "local-antora-playbook.yml") # Loop through each playbook file for yaml_file in "${playbook_files[@]}"; do # Insert the docs_branch - yq eval ".content.sources[0].branches = .content.sources[0].branches[:$insert_position] + [\"$docs_branch\"] + .content.sources[0].branches[$insert_position:]" -i "$yaml_file" + yq ".content.sources[0].branches |= (.[:$insert_position] + [\"$docs_branch\"] + .[$insert_position:])" -i "$yaml_file" - # Update all the operator sources - yq eval ".content.sources[2:] |= map(.branches = .branches[:$insert_position] + [\"$operator_branch\"] + .branches[$insert_position:])" -i "$yaml_file" + # Update all the operator sources. The first 2 sources are the docs and stackable-cockpit, they are skipped. + yq "with(.content.sources.[]; select(.url == \"*operator*\") | .branches |= .[:$insert_position] + [\"$operator_branch\"] + .[$insert_position:])" -i "$yaml_file" done # Display changes using git diff From 9828d9f4859e994f1b6a4019c11e794a0eccdebf Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Mon, 18 Dec 2023 16:21:20 +0100 Subject: [PATCH 09/12] WIP --- scripts/publish-new-version.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh index 8f45045e5..ae986e769 100755 --- a/scripts/publish-new-version.sh +++ b/scripts/publish-new-version.sh @@ -76,7 +76,6 @@ docs_branch="release/$docs_version" operator_branch="release-$docs_version" insert_position=1 -# List of YAML files to modify playbook_files=("antora-playbook.yml" "local-antora-playbook.yml") # Loop through each playbook file @@ -84,14 +83,12 @@ for yaml_file in "${playbook_files[@]}"; do # Insert the docs_branch yq ".content.sources[0].branches |= (.[:$insert_position] + [\"$docs_branch\"] + .[$insert_position:])" -i "$yaml_file" - # Update all the operator sources. The first 2 sources are the docs and stackable-cockpit, they are skipped. + # Update all the operator sources. yq "with(.content.sources.[]; select(.url == \"*operator*\") | .branches |= .[:$insert_position] + [\"$operator_branch\"] + .[$insert_position:])" -i "$yaml_file" done -# Display changes using git diff +# Display changes and ask for user confirmation git diff - -# Ask the user whether to proceed read -p "Do you want to proceed with these changes? (yes/no): " proceed_answer # Convert the user input to lowercase for case-insensitive comparison From 5743233b132afbc602e2bca00bebc5111e2059e6 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Tue, 19 Dec 2023 13:34:19 +0100 Subject: [PATCH 10/12] merged scripts --- scripts/make-release-branch.sh | 52 ++++++++++++++++++++++++----- scripts/publish-new-version.sh | 61 ++++++++++++++++++++++++++-------- 2 files changed, 91 insertions(+), 22 deletions(-) diff --git a/scripts/make-release-branch.sh b/scripts/make-release-branch.sh index 8fb91349b..f926e5619 100755 --- a/scripts/make-release-branch.sh +++ b/scripts/make-release-branch.sh @@ -6,26 +6,47 @@ set -euo pipefail # - creates a release branch # - pushes the release branch -# Check if a version argument is provided -if [ -z "$1" ]; then - echo "Please provide a version as a command-line argument (major.minor.patch)." - exit 1 +# ------------------------------ +# Args parsing +# ------------------------------ + +version="" +push=false + +while [[ "$#" -gt 0 ]]; do + case $1 in + -v|--version) version="$2"; shift ;; + -p|--push) push=true ;; + *) echo "Unknown parameter passed: $1"; exit 1 ;; + esac + shift +done + +# Check if the required version argument is provided +if [ -z "$version" ]; then +echo "Usage: your_script.sh -v [-p]" +echo "The version needs to be provided as major.minor.patch." +exit 1 fi # Validate the version format (major.minor.patch) -if [[ ! "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then +if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "Invalid version format. Please use the major.minor.patch format." exit 1 fi +echo "Settings: Version: $version, Push: $push" + docs_dir="$(dirname "$0")/.." antora_yaml=$docs_dir/antora.yml -version="$1" - # Extract major.minor part of the version docs_version=$(echo "$version" | cut -d. -f1,2) +# ------------------------------ +# Checking prerequisites +# ------------------------------ + # Ask the user if they have written release notes and merged them into main echo "Release notes for the new version should already be written and commited to the main branch," echo "so the show up in both the nightly and future versions, as well as the new release branch" @@ -63,6 +84,10 @@ fi echo "All checks passed. You are on the main branch, up to date with the origin, and the working directory is clean." +# ------------------------------ +# Updating the antora.yaml +# ------------------------------ + # Set version key to docs_version sed -i "s/^version:.*/version: \"$docs_version\"/" "$antora_yaml" @@ -75,6 +100,10 @@ sed -i "s/^\(\s*\)crd-docs-version:.*/\1crd-docs-version: \"$version\"/" "$antor # Display changes using git diff git diff "$antora_yaml" +# ------------------------------ +# Wrap up: commit and push +# ------------------------------ + # Ask the user whether to proceed read -p "Do you want to proceed with these changes? (yes/no): " proceed_answer @@ -96,5 +125,10 @@ git checkout -b "$branch_name" git add "$antora_yaml" git commit -m "Update version in antora.yml to $version" -# Push the branch -git push origin "$branch_name" \ No newline at end of file +# Push the branch if requested +if [ "$push" = true ]; then + echo "Pushing changes to origin ..." + git push origin "$branch_name" +else + echo "Skipping push to origin." +fi diff --git a/scripts/publish-new-version.sh b/scripts/publish-new-version.sh index ae986e769..2e3c94f1c 100755 --- a/scripts/publish-new-version.sh +++ b/scripts/publish-new-version.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash -set -euox pipefail +set -euo pipefail # This script updates all the playbook files with the new branches for a given version. -# The version should be given as major.minor +# The version should be given as major.minor. +# All the release branches in the operators as well as the docs release branch should already be there. # Check if yq is installed if ! command -v yq &> /dev/null; then @@ -12,24 +13,43 @@ if ! command -v yq &> /dev/null; then exit 1 fi -# Check if a version argument is provided -if [ -z "$1" ]; then - echo "Please provide a version as a command-line argument (major.minor)." - exit 1 +# ------------------------------ +# Args parsing +# ------------------------------ + +docs_version="" +push=false + +while [[ "$#" -gt 0 ]]; do + case $1 in + -v|--version) docs_version="$2"; shift ;; + -p|--push) push=true ;; + *) echo "Unknown parameter passed: $1"; exit 1 ;; + esac + shift +done + +# Check if the required version argument is provided +if [ -z "$docs_version" ]; then +echo "Usage: your_script.sh -v [-p]" +echo "The version needs to be provided as major.minor." +exit 1 fi # Validate the version format (major.minor.patch) -if [[ ! "$1" =~ ^[0-9]+\.[0-9]$ ]]; then - echo "Invalid version format. Please use the major.minor.patch format." +if [[ ! "$docs_version" =~ ^[0-9]+\.[0-9]+$ ]]; then + echo "Invalid version format. Please use the major.minor format." exit 1 fi -docs_version="$1" - # Define the branches to add. The documentation repo uses a '/' while the operators use a '-' docs_branch="release/$docs_version" operator_branch="release-$docs_version" +# ------------------------------ +# Checking prerequisites +# ------------------------------ + # Check if the release branch exists upstream if ! git rev-parse --quiet --verify "$docs_branch" > /dev/null; then echo "Release branch '$docs_branch' is missing upstream in the documentation repository." @@ -69,6 +89,11 @@ if [ -n "$(git status --porcelain)" ]; then fi echo "All checks passed." + +# ------------------------------ +# Updating playbooks +# ------------------------------ + echo "Updating playbooks." # Define the branches to add. The documentation repo uses a '/' while the operators use a '-' @@ -76,7 +101,8 @@ docs_branch="release/$docs_version" operator_branch="release-$docs_version" insert_position=1 -playbook_files=("antora-playbook.yml" "local-antora-playbook.yml") +docs_dir="$(dirname "$0")/.." +playbook_files=("$docs_dir/antora-playbook.yml" "$docs_dir/local-antora-playbook.yml") # Loop through each playbook file for yaml_file in "${playbook_files[@]}"; do @@ -87,6 +113,10 @@ for yaml_file in "${playbook_files[@]}"; do yq "with(.content.sources.[]; select(.url == \"*operator*\") | .branches |= .[:$insert_position] + [\"$operator_branch\"] + .[$insert_position:])" -i "$yaml_file" done +# ------------------------------ +# Wrap up: commit and push +# ------------------------------ + # Display changes and ask for user confirmation git diff read -p "Do you want to proceed with these changes? (yes/no): " proceed_answer @@ -107,8 +137,13 @@ git checkout -b "$publish_branch" git add . git commit -m "Add release branches to the playbooks for release $docs_version." -# Push the branch upstream -git push -u origin "$publish_branch" +# Push the branch if requested +if [ "$push" = true ]; then + echo "Pushing changes to origin ..." + git push -u origin "$publish_branch" +else + echo "Skipping push to origin." +fi echo "The changes have been pushed to GitHub!" echo "Click the link above to create the PR in GitHub, and then verify that the build works with Netlify previews." From 3ede29df85dfde99c4dc587eb7a4d2ba4735cfa6 Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 21 Dec 2023 09:49:33 +0100 Subject: [PATCH 11/12] fixed review --- antora.yml | 5 +- modules/ROOT/pages/index.adoc | 2 +- .../authenticationclass-ldap-full.yaml | 29 --- modules/reference/nav.adoc | 2 +- modules/reference/pages/index.adoc | 7 - netlify.toml | 168 +----------------- supplemental-ui/partials/navbar.hbs | 12 +- 7 files changed, 16 insertions(+), 209 deletions(-) delete mode 100644 modules/reference/examples/authenticationclass-ldap-full.yaml delete mode 100644 modules/reference/pages/index.adoc diff --git a/antora.yml b/antora.yml index 01490ea5d..75de46165 100644 --- a/antora.yml +++ b/antora.yml @@ -6,8 +6,8 @@ nav: - modules/concepts/nav.adoc - modules/demos/nav.adoc - modules/tutorials/nav.adoc - - modules/reference/nav.adoc - modules/operators/nav.adoc + - modules/reference/nav.adoc - modules/contributor/nav.adoc - modules/ROOT/nav2.adoc # The prerelease setting affects version sorting. @@ -24,3 +24,6 @@ asciidoc: # use the attributes below to link to the CRD docs crd-docs-base-url: "https://crds.stackable.tech" crd-docs: "{crd-docs-base-url}/{crd-docs-version}" + # this attribute is an annoying little hack to make the versioned + # link accessible to the UI template. + page-crd-docs: "{crd-docs}" diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 09cd4a10d..20e85f313 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -118,7 +118,7 @@ xref:operators:index.adoc[Operator overview] Read the CustomResourceDefinition (CRD) reference for all CRDs that are deployed by any Stackable operator. -{crd-docs}[CRD Reference] +{crd-docs}[CRD Reference pass:[]] ++++ diff --git a/modules/reference/examples/authenticationclass-ldap-full.yaml b/modules/reference/examples/authenticationclass-ldap-full.yaml deleted file mode 100644 index 746b18f78..000000000 --- a/modules/reference/examples/authenticationclass-ldap-full.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: authentication.stackable.tech/v1alpha1 -kind: AuthenticationClass -metadata: - name: ldap-full -spec: - provider: - ldap: - hostname: my.ldap.server # <1> - port: 389 # <2> - searchBase: ou=users,dc=example,dc=org # <3> - searchFilter: (memberOf=cn=myTeam,ou=teams,dc=example,dc=org) # <4> - ldapFieldNames: # <5> - uid: uid - group: memberof - givenName: givenName - surname: sn - email: mail - bindCredentials: - secretClass: ldap-full-bind # <6> - scope: # <7> - pod: true - node: false - services: - - ldap-full - tls: # <8> - verification: - server: - caCert: - secretClass: ldap-full-ca-cert diff --git a/modules/reference/nav.adoc b/modules/reference/nav.adoc index f74eadcee..42c1255cd 100644 --- a/modules/reference/nav.adoc +++ b/modules/reference/nav.adoc @@ -1 +1 @@ -* xref:index.adoc[] \ No newline at end of file +- {crd-docs}[CRD Reference pass:[]] \ No newline at end of file diff --git a/modules/reference/pages/index.adoc b/modules/reference/pages/index.adoc deleted file mode 100644 index e8ae0555f..000000000 --- a/modules/reference/pages/index.adoc +++ /dev/null @@ -1,7 +0,0 @@ -# CRD reference -:page-aliases: s3.adoc, authenticationclass.adoc - -// Let's not link individual CRDs etc. here, just point to the landing page of the CRD docs and that's it. -You can find CRD reference documentation at {crd-docs}. - -There you will find documentation on all properties of all the CRDs that are deployed by the Stackable operators. diff --git a/netlify.toml b/netlify.toml index acd39ef84..f10f90c59 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,170 +3,6 @@ publish = "build/site" [[redirects]] - from = "/airflow/nightly/*" - to = "/home/nightly/airflow/:splat" + from = "/home/stable/reference/*" + to = "https://crds.stackable.tech/" status = 301 - -[[redirects]] - from = "/druid/nightly/*" - to = "/home/nightly/druid/:splat" - status = 301 - -[[redirects]] - from = "/hbase/nightly/*" - to = "/home/nightly/hbase/:splat" - status = 301 - -[[redirects]] - from = "/hdfs/nightly/*" - to = "/home/nightly/hdfs/:splat" - status = 301 - -[[redirects]] - from = "/hive/nightly/*" - to = "/home/nightly/hive/:splat" - status = 301 - -[[redirects]] - from = "/kafka/nightly/*" - to = "/home/nightly/kafka/:splat" - status = 301 - -[[redirects]] - from = "/nifi/nightly/*" - to = "/home/nightly/nifi/:splat" - status = 301 - -[[redirects]] - from = "/spark-k8s/nightly/*" - to = "/home/nightly/spark-k8s/:splat" - status = 301 - -[[redirects]] - from = "/superset/nightly/*" - to = "/home/nightly/superset/:splat" - status = 301 - -[[redirects]] - from = "/trino/nightly/*" - to = "/home/nightly/trino/:splat" - status = 301 - -[[redirects]] - from = "/zookeeper/nightly/*" - to = "/home/nightly/zookeeper/:splat" - status = 301 - -[[redirects]] - from = "/opa/nightly/*" - to = "/home/nightly/opa/:splat" - status = 301 - -[[redirects]] - from = "/commons-operator/nightly/*" - to = "/home/nightly/commons-operator/:splat" - status = 301 - -[[redirects]] - from = "/secret-operator/nightly/*" - to = "/home/nightly/secret-operator/:splat" - status = 301 - -[[redirects]] - from = "/listener-operator/nightly/*" - to = "/home/nightly/listener-operator/:splat" - status = 301 - -# stable redirects -# force = true --> We're generating a compat page, but redirect it - -[[redirects]] - from = "/airflow/stable/*" - to = "/home/stable/airflow/:splat" - status = 301 - force = true - -[[redirects]] - from = "/druid/stable/*" - to = "/home/stable/druid/:splat" - status = 301 - force = true - -[[redirects]] - from = "/hbase/stable/*" - to = "/home/stable/hbase/:splat" - status = 301 - force = true - -[[redirects]] - from = "/hdfs/stable/*" - to = "/home/stable/hdfs/:splat" - status = 301 - force = true - -[[redirects]] - from = "/hive/stable/*" - to = "/home/stable/hive/:splat" - status = 301 - force = true - -[[redirects]] - from = "/kafka/stable/*" - to = "/home/stable/kafka/:splat" - status = 301 - force = true - -[[redirects]] - from = "/nifi/stable/*" - to = "/home/stable/nifi/:splat" - status = 301 - force = true - -[[redirects]] - from = "/spark-k8s/stable/*" - to = "/home/stable/spark-k8s/:splat" - status = 301 - force = true - -[[redirects]] - from = "/superset/stable/*" - to = "/home/stable/superset/:splat" - status = 301 - force = true - -[[redirects]] - from = "/trino/stable/*" - to = "/home/stable/trino/:splat" - status = 301 - force = true - -[[redirects]] - from = "/zookeeper/stable/*" - to = "/home/stable/zookeeper/:splat" - status = 301 - force = true - -[[redirects]] - from = "/opa/stable/*" - to = "/home/stable/opa/:splat" - status = 301 - force = true - -[[redirects]] - from = "/commons-operator/stable/*" - to = "/home/stable/commons-operator/:splat" - status = 301 - force = true - -[[redirects]] - from = "/secret-operator/stable/*" - to = "/home/stable/secret-operator/:splat" - status = 301 - force = true - -[[redirects]] - from = "/listener-operator/stable/*" - to = "/home/stable/listener-operator/:splat" - status = 301 - force = true - diff --git a/supplemental-ui/partials/navbar.hbs b/supplemental-ui/partials/navbar.hbs index b76789801..b85cf2f18 100644 --- a/supplemental-ui/partials/navbar.hbs +++ b/supplemental-ui/partials/navbar.hbs @@ -6,7 +6,13 @@ Concepts Demos Tutorials + {{#if (or (eq page.version "23.1") (eq page.version "23.4") (eq page.version "23.7") (eq page.version "23.11"))}} CRD Reference + {{else}} + + CRD Reference + + {{/if}} Release Notes @@ -41,11 +47,9 @@ Contribute From c9f0e15856bcac6d9e2c5b16608cca16007dc0fd Mon Sep 17 00:00:00 2001 From: Felix Hennig Date: Thu, 21 Dec 2023 10:29:10 +0100 Subject: [PATCH 12/12] Cleanup for the link icon; use target=_blank --- antora-playbook.yml | 2 ++ local-antora-playbook.yml | 2 ++ modules/ROOT/pages/index.adoc | 2 +- modules/reference/nav.adoc | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/antora-playbook.yml b/antora-playbook.yml index b0e2092a5..95b868138 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -183,6 +183,8 @@ asciidoc: base-repo: https://github.com/stackabletech plantuml-server-url: http://www.plantuml.com/plantuml kroki-fetch-diagram: true + # an external icon. Create a link opening in a new tab like this: http://my-url.com[Text {external-link-icon}^] + external-link-icon: "" extensions: - asciidoctor-kroki diff --git a/local-antora-playbook.yml b/local-antora-playbook.yml index 23a3f27c1..178ef98ee 100644 --- a/local-antora-playbook.yml +++ b/local-antora-playbook.yml @@ -172,6 +172,8 @@ asciidoc: base-repo: https://github.com/stackabletech plantuml-server-url: http://www.plantuml.com/plantuml kroki-fetch-diagram: true + # an external icon. Create a link opening in a new tab like this: http://my-url.com[Text {external-link-icon}^] + external-link-icon: "" extensions: - asciidoctor-kroki diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 20e85f313..94aa1410c 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -118,7 +118,7 @@ xref:operators:index.adoc[Operator overview] Read the CustomResourceDefinition (CRD) reference for all CRDs that are deployed by any Stackable operator. -{crd-docs}[CRD Reference pass:[]] +{crd-docs}[CRD Reference {external-link-icon}^] ++++ diff --git a/modules/reference/nav.adoc b/modules/reference/nav.adoc index 42c1255cd..a3897a721 100644 --- a/modules/reference/nav.adoc +++ b/modules/reference/nav.adoc @@ -1 +1 @@ -- {crd-docs}[CRD Reference pass:[]] \ No newline at end of file +- {crd-docs}[CRD Reference {external-link-icon}^] \ No newline at end of file