Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

One AsciiDoc reference file per parameter #19637

Closed
wants to merge 2 commits into from
Closed
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/bin/bash
#
# Copyright (c) 2018 Red Hat, Inc.
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
set -o pipefail
# set -ex

fetch_conf_files_content() {
RAW_CONTENT=$(cat che.properties multiuser.properties)
}

parse_content() {
while read -r LINE
do
if [[ $LINE == '##'* ]]; then # line starting with two or more #s means new topic is started

TOPIC="${LINE//#}" # read topic, stripping #s

elif [[ $LINE == '#'* ]] && [[ -n $TOPIC ]]; then # line starting with single # means property description (can be multi-line)
TRIM_LINE=${LINE/\#} # read description, stripping first #
DESCR_BUFF="$DESCR_BUFF${TRIM_LINE}" # collect all description lines into buffer
elif [[ -z $LINE ]] && [[ -n $TOPIC ]]; then
DESCR_BUFF="" # empty line is a separator -> cleanup description and property name + value
KEY=""
VALUE=""
elif [[ -n $TOPIC ]]; then # non-empty line after any topic that doesn't start with # -> treat as property line
IFS=$'=' read -r KEY VALUE <<< "$LINE" # property split into key and value
ENV="${KEY//_/__}" # replace single underscores with double
ENV=${ENV//./_} # replace dots with single underscore
FILENAME="ref_${ENV}.adoc"
IDLINE="[id=\"${ENV}_{context}\"]"
ENV="\`+${ENV}+\`" # replace single underscores with double
ENV="${ENV^^}"
TITLE="= ${ENV}"
VALUE="${VALUE/ }" # trim first space
# VALUE="\`+${VALUE}+\`" # make sure asciidoc doesn't mix it up with attributes
VALUE="${VALUE/\`++\`}" # remove empty value `++`

DESCR_BUFF="$(sed 's|\${\([^}]*\)}|$++{\1}++|g' <<< $DESCR_BUFF)" # make sure asciidoc doesn't mix it up with attributes

DESCR_BUFF="${DESCR_BUFF/ }" # trim first space
echo -e "$IDLINE\n$TITLE\n\n$DESCR_BUFF\n\n
.Default value for $ENV
====
----
$VALUE
----
====
" > "topics/$FILENAME" # flush buffer into file
fi
done <<< "$RAW_CONTENT"
}


fetch_conf_files_content
parse_content
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
:parent-context-of-assembly_che-server-environment-variables-reference: {context}

[id=assembly_{prod-id-short}-server-environment-variables-reference_{context}]
= {prod-short} server environment variables reference

:context: assembly_che-server-environment-variables-reference


== {prod-short} server

include::ref_che_api.adoc[leveloffset=+2]
include::ref_che_api_internal.adoc[leveloffset=+2]
include::ref_che_database.adoc[leveloffset=+2]
include::ref_che_devworkspaces_enabled.adoc[leveloffset=+2]
include::ref_che_websocket_endpoint.adoc[leveloffset=+2]
include::ref_che_workspace_activity__check__scheduler__delay__s.adoc[leveloffset=+2]
include::ref_che_workspace_activity__check__scheduler__period__s.adoc[leveloffset=+2]
include::ref_che_workspace_activity__cleanup__scheduler__initial__delay__s.adoc[leveloffset=+2]
include::ref_che_workspace_activity__cleanup__scheduler__period__s.adoc[leveloffset=+2]
include::ref_che_workspace_auto__start.adoc[leveloffset=+2]
include::ref_che_workspace_cleanup__temporary__initial__delay__min.adoc[leveloffset=+2]
include::ref_che_workspace_cleanup__temporary__period__min.adoc[leveloffset=+2]
include::ref_che_workspace_default__cpu__limit__cores.adoc[leveloffset=+2]
include::ref_che_workspace_default__cpu__request__cores.adoc[leveloffset=+2]
include::ref_che_workspace_default__memory__limit__mb.adoc[leveloffset=+2]
include::ref_che_workspace_default__memory__request__mb.adoc[leveloffset=+2]
include::ref_che_workspace_devfile_async_storage_plugin.adoc[leveloffset=+2]
include::ref_che_workspace_devfile_default__editor.adoc[leveloffset=+2]
include::ref_che_workspace_devfile_default__editor_plugins.adoc[leveloffset=+2]
include::ref_che_workspace_devfile__registry__internal__url.adoc[leveloffset=+2]
include::ref_che_workspace_devfile__registry__url.adoc[leveloffset=+2]
include::ref_che_workspace_http__proxy.adoc[leveloffset=+2]
include::ref_che_workspace_http__proxy__java__options.adoc[leveloffset=+2]
include::ref_che_workspace_https__proxy.adoc[leveloffset=+2]
include::ref_che_workspace_java__options.adoc[leveloffset=+2]
include::ref_che_workspace_logs_root__dir.adoc[leveloffset=+2]
include::ref_che_workspace_maven__options.adoc[leveloffset=+2]
include::ref_che_workspace_no__proxy.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__broker_artifacts_image.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__broker_default__merge__plugins.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__broker_metadata_image.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__broker_pull__policy.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__broker_wait__timeout__min.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__registry__internal__url.adoc[leveloffset=+2]
include::ref_che_workspace_plugin__registry__url.adoc[leveloffset=+2]
include::ref_che_workspace_pod_node__selector.adoc[leveloffset=+2]
include::ref_che_workspace_pod_tolerations__json.adoc[leveloffset=+2]
include::ref_che_workspace_pool_cores__multiplier.adoc[leveloffset=+2]
include::ref_che_workspace_pool_exact__size.adoc[leveloffset=+2]
include::ref_che_workspace_pool_type.adoc[leveloffset=+2]
include::ref_che_workspace_probe__pool__size.adoc[leveloffset=+2]
include::ref_che_workspace_projects_storage.adoc[leveloffset=+2]
include::ref_che_workspace_projects_storage_default_size.adoc[leveloffset=+2]
include::ref_che_workspace_provision_secret_labels.adoc[leveloffset=+2]
include::ref_che_workspace_server_liveness__probes.adoc[leveloffset=+2]
include::ref_che_workspace_server_ping__interval__milliseconds.adoc[leveloffset=+2]
include::ref_che_workspace_server_ping__success__threshold.adoc[leveloffset=+2]
include::ref_che_workspace_sidecar_default__cpu__limit__cores.adoc[leveloffset=+2]
include::ref_che_workspace_sidecar_default__cpu__request__cores.adoc[leveloffset=+2]
include::ref_che_workspace_sidecar_default__memory__limit__mb.adoc[leveloffset=+2]
include::ref_che_workspace_sidecar_default__memory__request__mb.adoc[leveloffset=+2]
include::ref_che_workspace_sidecar_image__pull__policy.adoc[leveloffset=+2]
include::ref_che_workspace_startup__debug__log__limit__bytes.adoc[leveloffset=+2]
include::ref_che_workspace_stop_role_enabled.adoc[leveloffset=+2]
include::ref_che_workspace_storage_available__types.adoc[leveloffset=+2]
include::ref_che_workspace_storage_preferred__type.adoc[leveloffset=+2]

== Authentication parameters


include::ref_che_auth_access__denied__error__page.adoc[leveloffset=+2]
include::ref_che_auth_reserved__user__names.adoc[leveloffset=+2]
include::ref_che_auth_user__self__creation.adoc[leveloffset=+2]
include::ref_che_oauth1_bitbucket_consumerkeypath.adoc[leveloffset=+2]
include::ref_che_oauth1_bitbucket_endpoint.adoc[leveloffset=+2]
include::ref_che_oauth1_bitbucket_privatekeypath.adoc[leveloffset=+2]
include::ref_che_oauth_github_authuri.adoc[leveloffset=+2]
include::ref_che_oauth_github_clientid.adoc[leveloffset=+2]
include::ref_che_oauth_github_clientsecret.adoc[leveloffset=+2]
include::ref_che_oauth_github_redirecturis.adoc[leveloffset=+2]
include::ref_che_oauth_github_tokenuri.adoc[leveloffset=+2]
include::ref_che_oauth_openshift_clientid.adoc[leveloffset=+2]
include::ref_che_oauth_openshift_clientsecret.adoc[leveloffset=+2]
include::ref_che_oauth_openshift_oauth__endpoint.adoc[leveloffset=+2]
include::ref_che_oauth_openshift_verify__token__url.adoc[leveloffset=+2]
include::ref_che_oauth_service__mode.adoc[leveloffset=+2]


== Internal parameters

include::ref_db_schema_flyway_baseline_enabled.adoc[leveloffset=+2]
include::ref_db_schema_flyway_baseline_version.adoc[leveloffset=+2]
include::ref_db_schema_flyway_scripts_locations.adoc[leveloffset=+2]
include::ref_db_schema_flyway_scripts_prefix.adoc[leveloffset=+2]
include::ref_db_schema_flyway_scripts_suffix.adoc[leveloffset=+2]
include::ref_db_schema_flyway_scripts_version__separator.adoc[leveloffset=+2]
include::ref_schedule_core__pool__size.adoc[leveloffset=+2]


== Kubernetes Infra parameters

include::ref_che_infra_kubernetes_async_storage_image.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_async_storage_shutdown__check__period__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_async_storage_shutdown__timeout__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_client_http_async__requests_max.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_client_http_async__requests_max__per__host.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_client_http_connection__pool_keep__alive__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_client_http_connection__pool_max__idle.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_ingress_annotations__json.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_ingress_domain.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_ingress_labels.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_ingress_path__transform.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_ingress__start__timeout__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_master__url.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_allow__user__defined.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_annotations.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_creation__allowed.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_default.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_label.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_namespace_labels.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pod_security__context_fs__group.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pod_security__context_run__as__user.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pod_termination__grace__period__sec.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_access__mode.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_enabled.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_jobs_image.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_jobs_image_pull__policy.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_jobs_memorylimit.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_name.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_precreate__subpaths.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_quantity.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_storage__class__name.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_strategy.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_pvc_wait__bound.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_runtimes__consistency__check__period__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_server__strategy.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_service__account__name.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_singlehost_gateway_configmap__labels.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_singlehost_workspace_devfile__endpoint__exposure.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_singlehost_workspace_exposure.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_tls__cert.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_tls__enabled.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_tls__key.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_tls__secret.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_trust__certs.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_trusted__ca_dest__configmap.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_trusted__ca_dest__configmap__labels.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_trusted__ca_mount__path.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_trusted__ca_src__configmap.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_workspace__sa__cluster__roles.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_workspace__start__timeout__min.adoc[leveloffset=+2]
include::ref_che_infra_kubernetes_workspace__unrecoverable__events.adoc[leveloffset=+2]


== OpenShift Infra parameters

include::ref_che_infra_openshift_oauth__identity__provider.adoc[leveloffset=+2]
include::ref_che_infra_openshift_project.adoc[leveloffset=+2]
include::ref_che_infra_openshift_route_host_domain__suffix.adoc[leveloffset=+2]
include::ref_che_infra_openshift_route_labels.adoc[leveloffset=+2]
include::ref_che_infra_openshift_trusted__ca_dest__configmap__labels.adoc[leveloffset=+2]


== Configuration of the major WebSocket endpoint

include::ref_che_core_jsonrpc_processor__core__pool__size.adoc[leveloffset=+2]
include::ref_che_core_jsonrpc_processor__max__pool__size.adoc[leveloffset=+2]
include::ref_che_core_jsonrpc_processor__queue__capacity.adoc[leveloffset=+2]
include::ref_che_metrics_port.adoc[leveloffset=+2]


== CORS parameters

include::ref_che_cors_allow__credentials.adoc[leveloffset=+2]
include::ref_che_cors_allowed__origins.adoc[leveloffset=+2]

== Factory defaults parameters

include::ref_che_factory_default__devfile__filenames.adoc[leveloffset=+2]
include::ref_che_factory_default__plugins.adoc[leveloffset=+2]

== Devfile defaults parameters

include::ref_che_factory_default__editor.adoc[leveloffset=+2]

== Integration parameters

include::ref_che_integration_bitbucket_server__endpoints.adoc[leveloffset=+2]
include::ref_che_integration_gitlab_server__endpoints.adoc[leveloffset=+2]


== Keycloak parameters

include::ref_che_keycloak_admin__password.adoc[leveloffset=+2]
include::ref_che_keycloak_admin__username.adoc[leveloffset=+2]
include::ref_che_keycloak_allowed__clock__skew__sec.adoc[leveloffset=+2]
include::ref_che_keycloak_auth__internal__server__url.adoc[leveloffset=+2]
include::ref_che_keycloak_auth__server__url.adoc[leveloffset=+2]
include::ref_che_keycloak_cascade__user__removal__enabled.adoc[leveloffset=+2]
include::ref_che_keycloak_client__id.adoc[leveloffset=+2]
include::ref_che_keycloak_github_endpoint.adoc[leveloffset=+2]
include::ref_che_keycloak_js__adapter__url.adoc[leveloffset=+2]
include::ref_che_keycloak_oidc__provider.adoc[leveloffset=+2]
include::ref_che_keycloak_oso_endpoint.adoc[leveloffset=+2]
include::ref_che_keycloak_realm.adoc[leveloffset=+2]
include::ref_che_keycloak_use__fixed__redirect__urls.adoc[leveloffset=+2]
include::ref_che_keycloak_use__nonce.adoc[leveloffset=+2]
include::ref_che_keycloak_username__claim.adoc[leveloffset=+2]
include::ref_che_keycloak_username_replacement__patterns.adoc[leveloffset=+2]


== Organizations workspace limits parameters

include::ref_che_limits_organization_workspaces_count.adoc[leveloffset=+2]
include::ref_che_limits_organization_workspaces_ram.adoc[leveloffset=+2]
include::ref_che_limits_organization_workspaces_run_count.adoc[leveloffset=+2]


== Users workspace limits parameters

include::ref_che_limits_user_workspaces_count.adoc[leveloffset=+2]
include::ref_che_limits_user_workspaces_ram.adoc[leveloffset=+2]
include::ref_che_limits_user_workspaces_run_count.adoc[leveloffset=+2]


== Workspace limits parameters

include::ref_che_limits_workspace_env_ram.adoc[leveloffset=+2]
include::ref_che_limits_workspace_idle_timeout.adoc[leveloffset=+2]
include::ref_che_limits_workspace_run_timeout.adoc[leveloffset=+2]


== {prod-short} system parameters

include::ref_che_system_admin__name.adoc[leveloffset=+2]
include::ref_che_system_super__privileged__mode.adoc[leveloffset=+2]


== Experimental properties

include::ref_che_server_secure__exposer.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_auth_loader_path.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_cpu__limit.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_cpu__request.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_image.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_memory__limit.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_memory__request.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_token_issuer.adoc[leveloffset=+2]
include::ref_che_server_secure__exposer_jwtproxy_token_ttl.adoc[leveloffset=+2]


:context: {parent-context-of-assembly_che-server-environment-variables-reference}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_api_{context}"]
= `+CHE_API+`

API service. Browsers initiate REST communications to {prod-short} server with this URL.


.Default value for `+CHE_API+`
====
----
http://${CHE_HOST}:${CHE_PORT}/api
----
====

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_api_internal_{context}"]
= `+CHE_API_INTERNAL+`

API service internal network URL. Back-end services should initiate REST communications to {prod-short} server with this URL


.Default value for `+CHE_API_INTERNAL+`
====
----
http://${CHE_HOST}:${CHE_PORT}/api
----
====

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_auth_access__denied__error__page_{context}"]
= `+CHE_AUTH_ACCESS__DENIED__ERROR__PAGE+`

Authentication error page address


.Default value for `+CHE_AUTH_ACCESS__DENIED__ERROR__PAGE+`
====
----
/error-oauth
----
====

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_auth_reserved__user__names_{context}"]
= `+CHE_AUTH_RESERVED__USER__NAMES+`

Reserved user names


.Default value for `+CHE_AUTH_RESERVED__USER__NAMES+`
====
----

----
====

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_auth_user__self__creation_{context}"]
= `+CHE_AUTH_USER__SELF__CREATION+`

{prod-short} has a single identity implementation, so this does not change the user experience. If true, enables user creation at API level


.Default value for `+CHE_AUTH_USER__SELF__CREATION+`
====
----
false
----
====

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[id="che_core_jsonrpc_processor__core__pool__size_{context}"]
= `+CHE_CORE_JSONRPC_PROCESSOR__CORE__POOL__SIZE+`

Initial JSON processing pool. Minimum number of threads that used to process major JSON RPC messages.


.Default value for `+CHE_CORE_JSONRPC_PROCESSOR__CORE__POOL__SIZE+`
====
----
5
----
====

Loading