<commit_before>#
# Copyright (c) 2012-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
#
# Contributors:
#   Red Hat, Inc. - initial API and implementation
#

### CHE SERVER
# Folder where Che will store internal data objects
che.database=${che.home}/storage

# API service. Browsers initiate REST communications to Che server with this URL
che.api=http://${CHE_HOST}:${CHE_PORT}/api

# Che websocket endpoint. Provides basic communication endpoint
# for websocket interaction/messaging.
che.websocket.endpoint=ws://${CHE_HOST}:${CHE_PORT}/api/websocket

# Your projects are synchronized from the Che server into the machine running each
# workspace. This is the directory in the ws runtime where your projects are mounted.
che.workspace.storage=${che.home}/workspaces

# Your projects are synchronized from the Che server into the machine running each
# workspace. This is the directory in the machine where your projects are placed.
che.workspace.projects.storage=/projects

#Defines the directory inside the machine where all the workspace logs are placed.
#The value of this folder should be provided into machine e.g. like environment variable
#so agents developers can use this directory for backup agents logs.
che.workspace.logs.root_dir=/workspace_logs

# Configures proxies used by runtimes powering workspaces
che.workspace.http_proxy=
che.workspace.https_proxy=
che.workspace.no_proxy=

# Configures dns resolving servers. May contain several values separated by comma sign.
che.dns.resolvers=

# By default, when users access to a workspace with its URL the workspace
# automatically starts if it is stopped. You can set this to false to disable this.
che.workspace.auto_start=true

# Workspace threads pool configuration, this pool is used for workspace related
# operations that require asynchronous execution e.g. starting/stopping

# possible values are 'fixed', 'cached'
che.workspace.pool.type=fixed

# This property is ignored when pool type is different from 'fixed'.
# Configures the exact size of the pool, if it's set multiplier property is ignored.
# If this property is not set(0, < 0, NULL) then pool sized to number of cores,
#it can be modified within multiplier
che.workspace.pool.exact_size=NULL

# This property is ignored when pool type is different from 'fixed' or exact pool size is set.
# If it's set the pool size will be N_CORES * multiplier
che.workspace.pool.cores_multiplier=2

# This property specifies how much threads to use for workspaces servers liveness probes
che.workspace.probe_pool_size=10


# Http proxy setting for workspace JVM
che.workspace.http_proxy_java_options=NULL

# Java command line options to be added to JVM's that running within workspaces.
che.workspace.java_options=-XX:MaxRAM=150m -XX:MaxRAMFraction=2 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom

# Maven command line options added to JVM's that run agents within workspaces.
che.workspace.maven_options=-XX:MaxRAM=150m -XX:MaxRAMFraction=2 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom

# Default java command line options to be added to JVM that run workspace agent.
che.workspace.wsagent_java_options=-XX:MaxRAM=600m -XX:MaxRAMFraction=1 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms50m -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom

# Default java command line options to be added to JVM that run maven server.
che.workspace.maven_server_java_options=-XX:MaxRAM=128m -XX:MaxRAMFraction=1 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom



# Folder that will be a volume mount from your host into your workspace.
che.workspace.volume=

# The location of the Web terminal used within the browser.
# This is copied into the workspace and runs within the workspace.
# Suffix helps differentiate archive for different architectures/OSes
che.workspace.terminal_linux_amd64=${che.home}/lib/linux_amd64/terminal
che.workspace.terminal_linux_arm7=${che.home}/lib/linux_arm7/terminal

che.workspace.exec_linux_amd64=${che.home}/lib/linux_amd64/exec

# RAM limit default for each machine that has no RAM settings in environment.
che.workspace.default_memory_limit_mb=1024

# RAM limit default for each sidecar that has no RAM settings in Che plugin configuration.
che.workspace.sidecar.default_memory_limit_mb=128

# RAM request default for each machine that has no explicit RAM settings in environment.
# this amount will be allocated on workspace container creation
# this property might not be supported by all infrastructure implementations:
# currently it is supported by k8s and openshift
# if default memory request is more than  the memory limit request will be ignored,
# and only limit will be used
che.workspace.default_memory_request_mb=512

# This archive contains the server to run the workspace agent and any custom extensions.
# Che injects this archive into machines when they are booted or started.
# Each machine can have many agents installed, each located in a different location.
che.workspace.agent.dev=${che.home}/lib/ws-agent.tar.gz

# Hosts listed here will be added to /etc/hosts of each workspace.
che.workspace.hosts=NULL

che.installer.registry.remote=NULL

# Period of inactive workspaces suspend job execution.
che.workspace.activity_check_scheduler_period_s=60
#
# Delay before first workspace idleness check job started to avoid
# mass suspend if ws master was unavailable for period close to
# inactivity timeout.
che.workspace.activity_check_scheduler_delay_s=180

# Number of sequential successful pings to server after which it is treated as available.
# Note: the property is common for all servers e.g. workspace agent, terminal, exec etc.
che.workspace.server.ping_success_threshold=1

### TEMPLATES
# Folder that contains JSON files with code templates and samples
che.template.storage=${che.home}/templates


### AUTHENTICATION PARAMETERS
# Che has a single identity implementation, so this does not change the user experience.
# If true, enables user creation at API level
che.auth.user_self_creation=false

che.auth.access_denied_error_page=/error-oauth

# Reserved user names
che.auth.reserved_user_names=

# You can setup GitHub oAuth to automate authentication to remote repositories.
# You need to first register this application with GitHub oAuth.
che.oauth.github.clientid=NULL
che.oauth.github.clientsecret=NULL
che.oauth.github.authuri= https://github.com/login/oauth/authorize
che.oauth.github.tokenuri= https://github.com/login/oauth/access_token
che.oauth.github.redirecturis= http://localhost:${CHE_PORT}/api/oauth/callback


### DOCKER PARAMETERS
# Docker is the default machine implementation within Che. Workspaces are powered by machines
# that are constructed when the workspace is started. The images used to generate containers
# for the machines can come from DockerHub or a private Docker registry.
che.docker.registry=${CHE_REGISTRY_HOST}:5000

# If this is true, then we always pull an image from a registry even if we have an image cached
# locally. If false, Docker only pulls image if it does not exist locally.
che.docker.always_pull_image=true

# If true, then launches all workspace runtime containers with Docker's
# privileged mode. Please use responsibly. This is required if you want Che workspaces
# to be able to launch their own runtimes which are embedded Docker containers.
che.docker.privileged=false

# This parameter allows to specify custom security options for the created docker container.
# seccomp:unconfined is the default for kubernetes, but not for docker. This is needed
# for debugging with gdbserver. See https://github.com/eclipse/che/issues/4284 for details.
# Parameters are passed as an array, so you can add multiple 
# values comma seperated. Please also see https://docs.docker.com/engine/api/v1.21/#2-endpoints,
# in particular the "HostConfig":{"SecurityOpt": []} entry. If this parameter is empty,
# docker blocks certain Syscalls by default https://docs.docker.com/engine/security/seccomp/
# WARNING: if you give incorrect values, docker gives an error and doesn't start the container
# Example: che.docker.securityopt=seccomp:unconfined,apparmor:unconfined
che.docker.securityopt=

# Limits the number of processes that can be forked inside a cgroup. Set -1 for unlimited.
# Since 4.3 kernel.
che.docker.pids_limit=-1

# Sets parent cgroup for cgroups of containers created by workspaces.
# This allows an admin to set custom cgroup limitations to all containers of workspaces by configuring cgroups.
# Example:
# /my_group
# my_another_group
che.docker.parent_cgroup=NULL

# Sets set of CPUs that can be used by each container of started workspace.
# Example:
# 0-3
# 1,4
che.docker.cpuset_cpus=NULL

# Next 2 properties set limits on CPU consumption by containers of started workspaces.
# Period sets amount of units per CPU core.
# Quota sets amount of units available for container per whole CPU.
# Max value of quota could be period * number of CPU cores in a system.
# Example:
# che.docker.cpu_period=5000
# che.docker.cpu_quota=10000
che.docker.cpu_period=0
che.docker.cpu_quota=0

# Adds options when mounting the /projects volume.
che.docker.volumes_projects_options=Z

# Adds options when mounting the /mnt/che/terminal, /mnt/che/ws-agent.tar.gz, /mnt/che/conf volume
che.docker.volumes_agent_options=ro,Z

# If the browser clients that are accessing Che are remote AND the configuration of Docker is an
# internal IP address or using Unix sockets, then remote browser clients will not be able to connect
# to the workspace. Set the Docker configuration so that Docker containers have an external IP
# address and provide that external host or IP address here.
# This is uncommon, and only needed for advanced Docker configurations.
che.docker.ip=NULL

# The hostname that a browser should use to connect to a workspace container.
# Only set this if your workspace containers are not directly pingable.
# This is unusual, but happens for example in Docker for Mac when containers are in a VM.
che.docker.ip.external=NULL

# Provides a Docker network where Che server is running.
# Workspace containers created by Che will be added to this Docker network.
# Communications between the Che server and container occur over this network.
che.docker.network=NULL

# Docker unused containers and networks cleanup period
che.docker.cleanup_period_min=60

# Version number of the Docker API used within the Che implementation
che.docker.api=1.23

# Whether to enable component that detects failures of a machine caused by unexpected container stop
che.docker.enable_container_stop_detector=true

che.docker.network_driver=NULL

che.docker.tcp_connection_timeout_ms=600000
che.docker.tcp_connection_read_timeout_ms=600000

# Docker registry example. Uncomment to add a registry configuration.
# You can configure multiple registries with different names.
#che.docker.registry.auth.<insert-name>.url=https://index.docker.io/v1/
#che.docker.registry.auth.<insert-name>.username=<username>
#che.docker.registry.auth.<insert-name>.password=<password>

# Allows to adjust machine swap memory by multiplying current machnine memory to provided value.
# default is -1 which is unlimited swap. If set, value is multipled by machine memory set by user
# to determine swap size. To disable swap set to 0.
che.docker.swap=-1

### Che docker infrastructure parameters

# This is the API endpoint of the workspace master running within the core Che server.
# This tells the workspace agent how to connect back to the Che server.
# che-host is a hostname entry added to /etc/hosts of the workspace by the Che server.
che.infra.docker.master_api_endpoint=http://che-host:${CHE_PORT}/api

# This is the webscoket base endpoint of the workspace master running within the core Che server.
che.infra.docker.master_websocket_endpoint=ws://che-host:${CHE_PORT}/api/websocket

# Time (in minutes) given for bootstrapping.
# If boostrapping is not finished in time it will be failed and workspace start will fail.
che.infra.docker.bootstrapper.timeout_min=10

# Time (in seconds) given for one installer to complete its installation.
# If installation is not finished in time it will be interrupted.
che.infra.docker.bootstrapper.installer_timeout_sec=180

# Time(in seconds) between servers availability checks.
# Once servers for one installer available - checks stopped.
che.infra.docker.bootstrapper.server_check_period_sec=3

# Number of threads to build or pull docker images
# in parallel on workspace startups.
che.infra.docker.max_pull_threads=10

# Time(in seconds) that limits the docker build process.
# The default value is 8 minutes, after which the build will be considered as failed.
che.infra.docker.build_timeout_sec=480

# Single port mode
che.single.port=false

# URL rewriter. May be overriden in case of single-port mode e.t.c
che.infra.docker.url_rewriter=default

# Enable to perform migration of workpace projects at Che startup.
# Projects, which are stored in directories named after their workspace name,
# will be stored by workspace id instead.
che.workspace.migrate_workspace_projects_on_startup=true

### INTERNAL
# Remove locations where internal message bus events should be propagated to.
# For debugging - set to retrieve internal events from external clients.
notification.server.propagate_events=

# Che extensions can be scheduled executions on a time basis.
# This configures the size of the thread pool allocated to extensions that are launched on
# a recurring schedule.
schedule.core_pool_size=10

# Everrest is a Java Web Services toolkit that manages JAX-RS & web socket communications
# Users should rarely need to configure this.
# Disable asynchronous mechanism that is embedded in everrest.
org.everrest.asynchronous=false
# Quantity of asynchronous requests which may be processed at the same time
org.everrest.asynchronous.pool.size=20
# Size of queue. If asynchronous request can't be processed after consuming it will be added in queue.
org.everrest.asynchronous.queue.size=500
# Timeout in minutes for request. If after timeout request is not done or client did not come yet to get result of request it may be discarded.
org.everrest.asynchronous.job.timeout=10
# Size of cache for waiting, running and ended request.
org.everrest.asynchronous.cache.size=1024
# Path to asynchronous service
org.everrest.asynchronous.service.path=/async/

# DB initialization and migration configuration
db.schema.flyway.baseline.enabled=true
db.schema.flyway.baseline.version=5.0.0.8.1
db.schema.flyway.scripts.prefix=
db.schema.flyway.scripts.suffix=.sql
db.schema.flyway.scripts.version_separator=__
db.schema.flyway.scripts.locations=classpath:che-schema

# Defines whether stacks loaded once or each time server starts.
# If value is 'false' stacks will be loaded once after database is initialized,
# otherwise stacks will be loaded each time server starts.
# Stacks loading overrides existing predefined stacks with new data
# defined in stacks.json.
#     - 'default'   : false
# Note that this property is needed for backward compatibility and will be removed soon.
che.predefined.stacks.reload_on_start=false

### Kubernetes Infra parameters

# Configuration of Kubernetes client that Infra will use
che.infra.kubernetes.master_url=
che.infra.kubernetes.trust_certs=

# Defines the way how servers are exposed to the world in k8s infra.
# List of  strategies implemented in Che: default-host, multi-host, single-host
che.infra.kubernetes.server_strategy=default-host
# Used to generate domain for a server in a workspace in case property `che.infra.kubernetes.server_strategy` is set to `multi-host`
che.infra.kubernetes.ingress.domain=

# Defines Kubernetes namespace in which all workspaces will be created.
# If not set, every workspace will be created in a new namespace, where namespace = workspace id
#
# Ignored for OpenShift infra. Use `che.infra.openshift.project` instead
che.infra.kubernetes.namespace=

# Defines Kubernetes Service Account name which should be specified to be bound to all workspaces pods.
# Note that Kubernetes Infrastructure won't create the service account and it should exist.
# OpenShift infrastructure will check if project is predefined(if `che.infra.openshift.project` is not empty):
#  - if it is predefined then service account must exist there
#  - if it is 'NULL' or empty string then infrastructure will create new OpenShift project per workspace
#    and prepare workspace service account with needed roles there
che.infra.kubernetes.service_account_name=NULL

# Defines time frame that limits the Kubernetes workspace start time
che.infra.kubernetes.workspace_start_timeout_min=8
# Defines the timeout in minutes that limits the period for which Kubernetes Ingress become ready
che.infra.kubernetes.ingress_start_timeout_min=5

# If during workspace startup an unrecoverable event defined in the property occurs,
# terminate workspace immediately instead of waiting until timeout
che.infra.kubernetes.workspace_unrecoverable_events=FailedMount,FailedScheduling,MountVolume.SetUp failed,Failed to pull image

che.infra.kubernetes.bootstrapper.binary_url=http://${CHE_HOST}:${CHE_PORT}/agent-binaries/linux_amd64/bootstrapper/bootstrapper
che.infra.kubernetes.bootstrapper.installer_timeout_sec=180
che.infra.kubernetes.bootstrapper.server_check_period_sec=3

# Defines whether use the Persistent Volume Claim for che workspace needs
# e.g backup projects, logs etc or disable it.
che.infra.kubernetes.pvc.enabled=true

# Defined which strategy will be used while choosing PVC for workspaces.
#
# Supported strategies:
# - 'common'
#        PVC with name that is configured by 'che.infra.kubernetes.pvc.name'
#        property will be used for storing workspaces data of each workspace
#        in an OpenShift project.
#        Existing PVC will be used or new one will be created if it doesn't exist.
#
# - 'unique'
#        PVC with name that is evaluated as '{che.infra.kubernetes.pvc.name} + '-' + {generated_8_chars}'
#        will be used for storing of workspaces data.
#        Existing PVC will be used or a new one will be created if it doesn't exist.
che.infra.kubernetes.pvc.strategy=common

# Defines whether to run a job that creates workspace's subpath directories in persistent volume for the 'common' strategy before launching a workspace.
# Necessary in some versions of OpenShift/Kubernetes as workspace subpath volume mounts are created with root permissions,
# and thus cannot be modified by workspaces running as a user (presents an error importing projects into a workspace in Che).
# The default is "true", but should be set to false if the version of Openshift/Kubernetes creates subdirectories with user permissions.
# Relevant issue: https://github.com/kubernetes/kubernetes/issues/41638
# Note that this property has effect only if the 'common' PVC strategy used.
che.infra.kubernetes.pvc.precreate_subpaths=true

# Defines the name of Persistent Volume Claim for che workspaces.
che.infra.kubernetes.pvc.name=claim-che-workspace

# Defines the size of Persistent Volume Claim of che workspace.
# Format described here:
# https://docs.openshift.com/container-platform/latest/dev_guide/compute_resources.html#dev-compute-resources
che.infra.kubernetes.pvc.quantity=10Gi

# Pod that is launched when performing persistent volume claim maintenance jobs on OpenShift
che.infra.kubernetes.pvc.jobs.image=centos:centos7

# Defines pod memory limit for persistent volume claim maintenance jobs
che.infra.kubernetes.pvc.jobs.memorylimit=250Mi

# Defines Persistent Volume Claim access mode.
# Note that for common PVC strategy changing of access mode affects the number of simultaneously running workspaces.
# If OpenShift flavor where che running is using PVs with RWX access mode then a limit of running workspaces at the same time
# bounded only by che limits configuration like(RAM, CPU etc).
# Detailed information about access mode is described here:
# https://docs.openshift.com/container-platform/latest/architecture/additional_concepts/storage.html#pv-access-modes
che.infra.kubernetes.pvc.access_mode=ReadWriteOnce

# Defined range of ports for installers servers
#
# By default, installer will use own port, but if it conflicts with another installer servers
# then OpenShift infrastructure will reconfigure installer to use first available from this range
che.infra.kubernetes.installer_server_min_port=10000
che.infra.kubernetes.installer_server_max_port=20000

# Defines annotations for ingresses which are used for servers exposing. Value depends on ingress controller.
# For example for nginx ingress controller 0.9.0-beta17 the following value is recommended:
# {"ingress.kubernetes.io/rewrite-target": "/","ingress.kubernetes.io/ssl-redirect": "false",\
#     "ingress.kubernetes.io/proxy-connect-timeout": "3600","ingress.kubernetes.io/proxy-read-timeout": "3600"}
#
# OpenShift infrastructure ignores this property because it uses Routes instead of ingresses.
che.infra.kubernetes.ingress.annotations_json=NULL

# Defines security context for pods that will be created by Kubernetes Infra
#
# This is ignored by OpenShift infra
che.infra.kubernetes.pod.security_context.run_as_user=NULL
che.infra.kubernetes.pod.security_context.fs_group=NULL

# Defines grace termination period for pods that will be created by Kubernetes / OpenShift infrastructures
#
# Grace termination period of Kubernetes / OpenShift workspace's pods defaults '0', which allows to terminate
# pods almost instantly and significantly decrease the time required for stopping a workspace.
# Note: if `terminationGracePeriodSeconds` have been explicitly set in Kubernetes / OpenShift recipe it will not be overridden.
che.infra.kubernetes.pod.termination_grace_period_sec=0

# Number of maximum concurrent async web requests
# (http requests or ongoing  web socket calls)
# supported in the underlying shared http client
# of the `KubernetesClient` instances.
# Default values are 64, and 5 per-host, which 
# doesn't seem correct for multi-user scenarios
# knowing that Che keeps a number of connections
# opened (e.g. for command or ws-agent logs)
che.infra.kubernetes.client.http.async_requests.max=1000
che.infra.kubernetes.client.http.async_requests.max_per_host=1000

# Max number of idle connections in the connection pool
# of the Kubernetes-client shared http client 
che.infra.kubernetes.client.http.connection_pool.max_idle=5

# Keep-alive timeout of the connection pool
# of the Kubernetes-client shared http client
# in minutes
che.infra.kubernetes.client.http.connection_pool.keep_alive_min=5

# Creates Ingresses with Transport Layer Security (TLS) enabled
# In OpenShift infrastructure, Routes will be TLS-enabled
che.infra.kubernetes.tls_enabled=false

# Name of a secret that should be used when creating workspace ingresses with TLS
# Ignored by OpenShift infrastructure
che.infra.kubernetes.tls_secret=

### OpenShift Infra parameters
#
# Since OpenShift infrastructure reuse Kubernetes infrastructure components
# OpenShift infrastructure reuse most of the Kubernetes configuration attributes.
#

# Defines OpenShift namespace in which all workspaces will be created.
# If not set, every workspace will be created in a new project, where project name = workspace id
che.infra.openshift.project=

# Single port mode wildcard domain host & port. nip.io is used by default
che.singleport.wildcard_domain.host=NULL
che.singleport.wildcard_domain.port=NULL

# Enable single port custom DNS without inserting the IP
che.singleport.wildcard_domain.ipless=false

### Experimental properties
# Next properties are subject to changes and removal, so do not rely on them in a stable Che assembly

# Docker image of Che plugin broker app that resolves workspace tooling configuration and copies
# plugins dependencies to a workspace
che.workspace.plugin_broker.image=eclipse/che-plugin-broker:latest

# Docker image of Che plugin broker app that resolves workspace tooling configuration and copies
# plugins dependencies to a workspace
che.workspace.plugin_broker.pull_policy=Always

# Defines the timeout in minutes that limits the max period of result waiting for plugin broker.
che.workspace.plugin_broker.wait_timeout_min=3
<commit_msg>Make Che Server depending on plugin broker image tag instead of latest version (#11422)<commit_after>#
# Copyright (c) 2012-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
#
# Contributors:
#   Red Hat, Inc. - initial API and implementation
#

### CHE SERVER
# Folder where Che will store internal data objects
che.database=${che.home}/storage

# API service. Browsers initiate REST communications to Che server with this URL
che.api=http://${CHE_HOST}:${CHE_PORT}/api

# Che websocket endpoint. Provides basic communication endpoint
# for websocket interaction/messaging.
che.websocket.endpoint=ws://${CHE_HOST}:${CHE_PORT}/api/websocket

# Your projects are synchronized from the Che server into the machine running each
# workspace. This is the directory in the ws runtime where your projects are mounted.
che.workspace.storage=${che.home}/workspaces

# Your projects are synchronized from the Che server into the machine running each
# workspace. This is the directory in the machine where your projects are placed.
che.workspace.projects.storage=/projects

#Defines the directory inside the machine where all the workspace logs are placed.
#The value of this folder should be provided into machine e.g. like environment variable
#so agents developers can use this directory for backup agents logs.
che.workspace.logs.root_dir=/workspace_logs

# Configures proxies used by runtimes powering workspaces
che.workspace.http_proxy=
che.workspace.https_proxy=
che.workspace.no_proxy=

# Configures dns resolving servers. May contain several values separated by comma sign.
che.dns.resolvers=

# By default, when users access to a workspace with its URL the workspace
# automatically starts if it is stopped. You can set this to false to disable this.
che.workspace.auto_start=true

# Workspace threads pool configuration, this pool is used for workspace related
# operations that require asynchronous execution e.g. starting/stopping

# possible values are 'fixed', 'cached'
che.workspace.pool.type=fixed

# This property is ignored when pool type is different from 'fixed'.
# Configures the exact size of the pool, if it's set multiplier property is ignored.
# If this property is not set(0, < 0, NULL) then pool sized to number of cores,
#it can be modified within multiplier
che.workspace.pool.exact_size=NULL

# This property is ignored when pool type is different from 'fixed' or exact pool size is set.
# If it's set the pool size will be N_CORES * multiplier
che.workspace.pool.cores_multiplier=2

# This property specifies how much threads to use for workspaces servers liveness probes
che.workspace.probe_pool_size=10


# Http proxy setting for workspace JVM
che.workspace.http_proxy_java_options=NULL

# Java command line options to be added to JVM's that running within workspaces.
che.workspace.java_options=-XX:MaxRAM=150m -XX:MaxRAMFraction=2 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom

# Maven command line options added to JVM's that run agents within workspaces.
che.workspace.maven_options=-XX:MaxRAM=150m -XX:MaxRAMFraction=2 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom

# Default java command line options to be added to JVM that run workspace agent.
che.workspace.wsagent_java_options=-XX:MaxRAM=600m -XX:MaxRAMFraction=1 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms50m -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom

# Default java command line options to be added to JVM that run maven server.
che.workspace.maven_server_java_options=-XX:MaxRAM=128m -XX:MaxRAMFraction=1 -XX:+UseParallelGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xms20m -Djava.security.egd=file:/dev/./urandom



# Folder that will be a volume mount from your host into your workspace.
che.workspace.volume=

# The location of the Web terminal used within the browser.
# This is copied into the workspace and runs within the workspace.
# Suffix helps differentiate archive for different architectures/OSes
che.workspace.terminal_linux_amd64=${che.home}/lib/linux_amd64/terminal
che.workspace.terminal_linux_arm7=${che.home}/lib/linux_arm7/terminal

che.workspace.exec_linux_amd64=${che.home}/lib/linux_amd64/exec

# RAM limit default for each machine that has no RAM settings in environment.
che.workspace.default_memory_limit_mb=1024

# RAM limit default for each sidecar that has no RAM settings in Che plugin configuration.
che.workspace.sidecar.default_memory_limit_mb=128

# RAM request default for each machine that has no explicit RAM settings in environment.
# this amount will be allocated on workspace container creation
# this property might not be supported by all infrastructure implementations:
# currently it is supported by k8s and openshift
# if default memory request is more than  the memory limit request will be ignored,
# and only limit will be used
che.workspace.default_memory_request_mb=512

# This archive contains the server to run the workspace agent and any custom extensions.
# Che injects this archive into machines when they are booted or started.
# Each machine can have many agents installed, each located in a different location.
che.workspace.agent.dev=${che.home}/lib/ws-agent.tar.gz

# Hosts listed here will be added to /etc/hosts of each workspace.
che.workspace.hosts=NULL

che.installer.registry.remote=NULL

# Period of inactive workspaces suspend job execution.
che.workspace.activity_check_scheduler_period_s=60
#
# Delay before first workspace idleness check job started to avoid
# mass suspend if ws master was unavailable for period close to
# inactivity timeout.
che.workspace.activity_check_scheduler_delay_s=180

# Number of sequential successful pings to server after which it is treated as available.
# Note: the property is common for all servers e.g. workspace agent, terminal, exec etc.
che.workspace.server.ping_success_threshold=1

### TEMPLATES
# Folder that contains JSON files with code templates and samples
che.template.storage=${che.home}/templates


### AUTHENTICATION PARAMETERS
# Che has a single identity implementation, so this does not change the user experience.
# If true, enables user creation at API level
che.auth.user_self_creation=false

che.auth.access_denied_error_page=/error-oauth

# Reserved user names
che.auth.reserved_user_names=

# You can setup GitHub oAuth to automate authentication to remote repositories.
# You need to first register this application with GitHub oAuth.
che.oauth.github.clientid=NULL
che.oauth.github.clientsecret=NULL
che.oauth.github.authuri= https://github.com/login/oauth/authorize
che.oauth.github.tokenuri= https://github.com/login/oauth/access_token
che.oauth.github.redirecturis= http://localhost:${CHE_PORT}/api/oauth/callback


### DOCKER PARAMETERS
# Docker is the default machine implementation within Che. Workspaces are powered by machines
# that are constructed when the workspace is started. The images used to generate containers
# for the machines can come from DockerHub or a private Docker registry.
che.docker.registry=${CHE_REGISTRY_HOST}:5000

# If this is true, then we always pull an image from a registry even if we have an image cached
# locally. If false, Docker only pulls image if it does not exist locally.
che.docker.always_pull_image=true

# If true, then launches all workspace runtime containers with Docker's
# privileged mode. Please use responsibly. This is required if you want Che workspaces
# to be able to launch their own runtimes which are embedded Docker containers.
che.docker.privileged=false

# This parameter allows to specify custom security options for the created docker container.
# seccomp:unconfined is the default for kubernetes, but not for docker. This is needed
# for debugging with gdbserver. See https://github.com/eclipse/che/issues/4284 for details.
# Parameters are passed as an array, so you can add multiple 
# values comma seperated. Please also see https://docs.docker.com/engine/api/v1.21/#2-endpoints,
# in particular the "HostConfig":{"SecurityOpt": []} entry. If this parameter is empty,
# docker blocks certain Syscalls by default https://docs.docker.com/engine/security/seccomp/
# WARNING: if you give incorrect values, docker gives an error and doesn't start the container
# Example: che.docker.securityopt=seccomp:unconfined,apparmor:unconfined
che.docker.securityopt=

# Limits the number of processes that can be forked inside a cgroup. Set -1 for unlimited.
# Since 4.3 kernel.
che.docker.pids_limit=-1

# Sets parent cgroup for cgroups of containers created by workspaces.
# This allows an admin to set custom cgroup limitations to all containers of workspaces by configuring cgroups.
# Example:
# /my_group
# my_another_group
che.docker.parent_cgroup=NULL

# Sets set of CPUs that can be used by each container of started workspace.
# Example:
# 0-3
# 1,4
che.docker.cpuset_cpus=NULL

# Next 2 properties set limits on CPU consumption by containers of started workspaces.
# Period sets amount of units per CPU core.
# Quota sets amount of units available for container per whole CPU.
# Max value of quota could be period * number of CPU cores in a system.
# Example:
# che.docker.cpu_period=5000
# che.docker.cpu_quota=10000
che.docker.cpu_period=0
che.docker.cpu_quota=0

# Adds options when mounting the /projects volume.
che.docker.volumes_projects_options=Z

# Adds options when mounting the /mnt/che/terminal, /mnt/che/ws-agent.tar.gz, /mnt/che/conf volume
che.docker.volumes_agent_options=ro,Z

# If the browser clients that are accessing Che are remote AND the configuration of Docker is an
# internal IP address or using Unix sockets, then remote browser clients will not be able to connect
# to the workspace. Set the Docker configuration so that Docker containers have an external IP
# address and provide that external host or IP address here.
# This is uncommon, and only needed for advanced Docker configurations.
che.docker.ip=NULL

# The hostname that a browser should use to connect to a workspace container.
# Only set this if your workspace containers are not directly pingable.
# This is unusual, but happens for example in Docker for Mac when containers are in a VM.
che.docker.ip.external=NULL

# Provides a Docker network where Che server is running.
# Workspace containers created by Che will be added to this Docker network.
# Communications between the Che server and container occur over this network.
che.docker.network=NULL

# Docker unused containers and networks cleanup period
che.docker.cleanup_period_min=60

# Version number of the Docker API used within the Che implementation
che.docker.api=1.23

# Whether to enable component that detects failures of a machine caused by unexpected container stop
che.docker.enable_container_stop_detector=true

che.docker.network_driver=NULL

che.docker.tcp_connection_timeout_ms=600000
che.docker.tcp_connection_read_timeout_ms=600000

# Docker registry example. Uncomment to add a registry configuration.
# You can configure multiple registries with different names.
#che.docker.registry.auth.<insert-name>.url=https://index.docker.io/v1/
#che.docker.registry.auth.<insert-name>.username=<username>
#che.docker.registry.auth.<insert-name>.password=<password>

# Allows to adjust machine swap memory by multiplying current machnine memory to provided value.
# default is -1 which is unlimited swap. If set, value is multipled by machine memory set by user
# to determine swap size. To disable swap set to 0.
che.docker.swap=-1

### Che docker infrastructure parameters

# This is the API endpoint of the workspace master running within the core Che server.
# This tells the workspace agent how to connect back to the Che server.
# che-host is a hostname entry added to /etc/hosts of the workspace by the Che server.
che.infra.docker.master_api_endpoint=http://che-host:${CHE_PORT}/api

# This is the webscoket base endpoint of the workspace master running within the core Che server.
che.infra.docker.master_websocket_endpoint=ws://che-host:${CHE_PORT}/api/websocket

# Time (in minutes) given for bootstrapping.
# If boostrapping is not finished in time it will be failed and workspace start will fail.
che.infra.docker.bootstrapper.timeout_min=10

# Time (in seconds) given for one installer to complete its installation.
# If installation is not finished in time it will be interrupted.
che.infra.docker.bootstrapper.installer_timeout_sec=180

# Time(in seconds) between servers availability checks.
# Once servers for one installer available - checks stopped.
che.infra.docker.bootstrapper.server_check_period_sec=3

# Number of threads to build or pull docker images
# in parallel on workspace startups.
che.infra.docker.max_pull_threads=10

# Time(in seconds) that limits the docker build process.
# The default value is 8 minutes, after which the build will be considered as failed.
che.infra.docker.build_timeout_sec=480

# Single port mode
che.single.port=false

# URL rewriter. May be overriden in case of single-port mode e.t.c
che.infra.docker.url_rewriter=default

# Enable to perform migration of workpace projects at Che startup.
# Projects, which are stored in directories named after their workspace name,
# will be stored by workspace id instead.
che.workspace.migrate_workspace_projects_on_startup=true

### INTERNAL
# Remove locations where internal message bus events should be propagated to.
# For debugging - set to retrieve internal events from external clients.
notification.server.propagate_events=

# Che extensions can be scheduled executions on a time basis.
# This configures the size of the thread pool allocated to extensions that are launched on
# a recurring schedule.
schedule.core_pool_size=10

# Everrest is a Java Web Services toolkit that manages JAX-RS & web socket communications
# Users should rarely need to configure this.
# Disable asynchronous mechanism that is embedded in everrest.
org.everrest.asynchronous=false
# Quantity of asynchronous requests which may be processed at the same time
org.everrest.asynchronous.pool.size=20
# Size of queue. If asynchronous request can't be processed after consuming it will be added in queue.
org.everrest.asynchronous.queue.size=500
# Timeout in minutes for request. If after timeout request is not done or client did not come yet to get result of request it may be discarded.
org.everrest.asynchronous.job.timeout=10
# Size of cache for waiting, running and ended request.
org.everrest.asynchronous.cache.size=1024
# Path to asynchronous service
org.everrest.asynchronous.service.path=/async/

# DB initialization and migration configuration
db.schema.flyway.baseline.enabled=true
db.schema.flyway.baseline.version=5.0.0.8.1
db.schema.flyway.scripts.prefix=
db.schema.flyway.scripts.suffix=.sql
db.schema.flyway.scripts.version_separator=__
db.schema.flyway.scripts.locations=classpath:che-schema

# Defines whether stacks loaded once or each time server starts.
# If value is 'false' stacks will be loaded once after database is initialized,
# otherwise stacks will be loaded each time server starts.
# Stacks loading overrides existing predefined stacks with new data
# defined in stacks.json.
#     - 'default'   : false
# Note that this property is needed for backward compatibility and will be removed soon.
che.predefined.stacks.reload_on_start=false

### Kubernetes Infra parameters

# Configuration of Kubernetes client that Infra will use
che.infra.kubernetes.master_url=
che.infra.kubernetes.trust_certs=

# Defines the way how servers are exposed to the world in k8s infra.
# List of  strategies implemented in Che: default-host, multi-host, single-host
che.infra.kubernetes.server_strategy=default-host
# Used to generate domain for a server in a workspace in case property `che.infra.kubernetes.server_strategy` is set to `multi-host`
che.infra.kubernetes.ingress.domain=

# Defines Kubernetes namespace in which all workspaces will be created.
# If not set, every workspace will be created in a new namespace, where namespace = workspace id
#
# Ignored for OpenShift infra. Use `che.infra.openshift.project` instead
che.infra.kubernetes.namespace=

# Defines Kubernetes Service Account name which should be specified to be bound to all workspaces pods.
# Note that Kubernetes Infrastructure won't create the service account and it should exist.
# OpenShift infrastructure will check if project is predefined(if `che.infra.openshift.project` is not empty):
#  - if it is predefined then service account must exist there
#  - if it is 'NULL' or empty string then infrastructure will create new OpenShift project per workspace
#    and prepare workspace service account with needed roles there
che.infra.kubernetes.service_account_name=NULL

# Defines time frame that limits the Kubernetes workspace start time
che.infra.kubernetes.workspace_start_timeout_min=8
# Defines the timeout in minutes that limits the period for which Kubernetes Ingress become ready
che.infra.kubernetes.ingress_start_timeout_min=5

# If during workspace startup an unrecoverable event defined in the property occurs,
# terminate workspace immediately instead of waiting until timeout
che.infra.kubernetes.workspace_unrecoverable_events=FailedMount,FailedScheduling,MountVolume.SetUp failed,Failed to pull image

che.infra.kubernetes.bootstrapper.binary_url=http://${CHE_HOST}:${CHE_PORT}/agent-binaries/linux_amd64/bootstrapper/bootstrapper
che.infra.kubernetes.bootstrapper.installer_timeout_sec=180
che.infra.kubernetes.bootstrapper.server_check_period_sec=3

# Defines whether use the Persistent Volume Claim for che workspace needs
# e.g backup projects, logs etc or disable it.
che.infra.kubernetes.pvc.enabled=true

# Defined which strategy will be used while choosing PVC for workspaces.
#
# Supported strategies:
# - 'common'
#        PVC with name that is configured by 'che.infra.kubernetes.pvc.name'
#        property will be used for storing workspaces data of each workspace
#        in an OpenShift project.
#        Existing PVC will be used or new one will be created if it doesn't exist.
#
# - 'unique'
#        PVC with name that is evaluated as '{che.infra.kubernetes.pvc.name} + '-' + {generated_8_chars}'
#        will be used for storing of workspaces data.
#        Existing PVC will be used or a new one will be created if it doesn't exist.
che.infra.kubernetes.pvc.strategy=common

# Defines whether to run a job that creates workspace's subpath directories in persistent volume for the 'common' strategy before launching a workspace.
# Necessary in some versions of OpenShift/Kubernetes as workspace subpath volume mounts are created with root permissions,
# and thus cannot be modified by workspaces running as a user (presents an error importing projects into a workspace in Che).
# The default is "true", but should be set to false if the version of Openshift/Kubernetes creates subdirectories with user permissions.
# Relevant issue: https://github.com/kubernetes/kubernetes/issues/41638
# Note that this property has effect only if the 'common' PVC strategy used.
che.infra.kubernetes.pvc.precreate_subpaths=true

# Defines the name of Persistent Volume Claim for che workspaces.
che.infra.kubernetes.pvc.name=claim-che-workspace

# Defines the size of Persistent Volume Claim of che workspace.
# Format described here:
# https://docs.openshift.com/container-platform/latest/dev_guide/compute_resources.html#dev-compute-resources
che.infra.kubernetes.pvc.quantity=10Gi

# Pod that is launched when performing persistent volume claim maintenance jobs on OpenShift
che.infra.kubernetes.pvc.jobs.image=centos:centos7

# Defines pod memory limit for persistent volume claim maintenance jobs
che.infra.kubernetes.pvc.jobs.memorylimit=250Mi

# Defines Persistent Volume Claim access mode.
# Note that for common PVC strategy changing of access mode affects the number of simultaneously running workspaces.
# If OpenShift flavor where che running is using PVs with RWX access mode then a limit of running workspaces at the same time
# bounded only by che limits configuration like(RAM, CPU etc).
# Detailed information about access mode is described here:
# https://docs.openshift.com/container-platform/latest/architecture/additional_concepts/storage.html#pv-access-modes
che.infra.kubernetes.pvc.access_mode=ReadWriteOnce

# Defined range of ports for installers servers
#
# By default, installer will use own port, but if it conflicts with another installer servers
# then OpenShift infrastructure will reconfigure installer to use first available from this range
che.infra.kubernetes.installer_server_min_port=10000
che.infra.kubernetes.installer_server_max_port=20000

# Defines annotations for ingresses which are used for servers exposing. Value depends on ingress controller.
# For example for nginx ingress controller 0.9.0-beta17 the following value is recommended:
# {"ingress.kubernetes.io/rewrite-target": "/","ingress.kubernetes.io/ssl-redirect": "false",\
#     "ingress.kubernetes.io/proxy-connect-timeout": "3600","ingress.kubernetes.io/proxy-read-timeout": "3600"}
#
# OpenShift infrastructure ignores this property because it uses Routes instead of ingresses.
che.infra.kubernetes.ingress.annotations_json=NULL

# Defines security context for pods that will be created by Kubernetes Infra
#
# This is ignored by OpenShift infra
che.infra.kubernetes.pod.security_context.run_as_user=NULL
che.infra.kubernetes.pod.security_context.fs_group=NULL

# Defines grace termination period for pods that will be created by Kubernetes / OpenShift infrastructures
#
# Grace termination period of Kubernetes / OpenShift workspace's pods defaults '0', which allows to terminate
# pods almost instantly and significantly decrease the time required for stopping a workspace.
# Note: if `terminationGracePeriodSeconds` have been explicitly set in Kubernetes / OpenShift recipe it will not be overridden.
che.infra.kubernetes.pod.termination_grace_period_sec=0

# Number of maximum concurrent async web requests
# (http requests or ongoing  web socket calls)
# supported in the underlying shared http client
# of the `KubernetesClient` instances.
# Default values are 64, and 5 per-host, which 
# doesn't seem correct for multi-user scenarios
# knowing that Che keeps a number of connections
# opened (e.g. for command or ws-agent logs)
che.infra.kubernetes.client.http.async_requests.max=1000
che.infra.kubernetes.client.http.async_requests.max_per_host=1000

# Max number of idle connections in the connection pool
# of the Kubernetes-client shared http client 
che.infra.kubernetes.client.http.connection_pool.max_idle=5

# Keep-alive timeout of the connection pool
# of the Kubernetes-client shared http client
# in minutes
che.infra.kubernetes.client.http.connection_pool.keep_alive_min=5

# Creates Ingresses with Transport Layer Security (TLS) enabled
# In OpenShift infrastructure, Routes will be TLS-enabled
che.infra.kubernetes.tls_enabled=false

# Name of a secret that should be used when creating workspace ingresses with TLS
# Ignored by OpenShift infrastructure
che.infra.kubernetes.tls_secret=

### OpenShift Infra parameters
#
# Since OpenShift infrastructure reuse Kubernetes infrastructure components
# OpenShift infrastructure reuse most of the Kubernetes configuration attributes.
#

# Defines OpenShift namespace in which all workspaces will be created.
# If not set, every workspace will be created in a new project, where project name = workspace id
che.infra.openshift.project=

# Single port mode wildcard domain host & port. nip.io is used by default
che.singleport.wildcard_domain.host=NULL
che.singleport.wildcard_domain.port=NULL

# Enable single port custom DNS without inserting the IP
che.singleport.wildcard_domain.ipless=false

### Experimental properties
# Next properties are subject to changes and removal, so do not rely on them in a stable Che assembly

# Docker image of Che plugin broker app that resolves workspace tooling configuration and copies
# plugins dependencies to a workspace
che.workspace.plugin_broker.image=eclipse/che-plugin-broker:v0.1.0

# Docker image of Che plugin broker app that resolves workspace tooling configuration and copies
# plugins dependencies to a workspace
che.workspace.plugin_broker.pull_policy=Always

# Defines the timeout in minutes that limits the max period of result waiting for plugin broker.
che.workspace.plugin_broker.wait_timeout_min=3

{'fraction_non_alphanumeric': 0.06735699407146291, 'fraction_numerical': 0.009854190033648454, 'mean_word_length': 5.069657184536834, 'pattern_counts': {'":': 12, '<': 15, '<?xml version=': 0, '>': 13, 'https://': 20, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2147277', 'n_tokens_mistral': 14322, 'n_tokens_neox': 13292, 'n_words': 5517}