Distribution System YAML

The Distribution system YAML file contains all the parameters that can be configured. The YAML file is constructed with keys and entities, using the following

The Distribution system YAML file contains all the parameters that can be configured.

The YAML file is constructed with keys and entities, using the following key: [entity] format.

  • Shared configurations specified under the shared section, are used by all micro-services.
  • Microservice specific configuration are set under each microservice section and override similar shared configurations for the specific microservice.

Tip

We recommend that you use the templates available under $JFROG_HOME/distribution/var/etc/

  • system.basic-template.yaml includes most commonly used system configurations
  • system.full-template.yaml includes a list of all available configurations

Distribution System YAML File

The Distribution system YAML is divided into several sections, as described below.

Shared Configurations

## SHARED CONFIGURATIONS
## A shared section for keys across all services in this config
shared:

  ## Java 11 distribution to use
  #javaHome: "JFROG_HOME/distribution/app/third-party/java"

  ## Base URL of the JFrog Platform Deployment (JPD)
  ## This is the URL to the machine where JFrog Artifactory is deployed, or the load balancer pointing to it. It is recommended to use DNS names rather than direct IPs.
  ## Examples: "http://jfrog.acme.com or http://10.20.30.40:8082"
  #jfrogUrl:

  ## Shared security configuration
  security:
    ## Join key value for joining the cluster (takes precedence over 'joinKeyFile')
    #joinKey: "XXX"

    ## Join key file location
    #joinKeyFile: "JFROG_HOME/distribution/var/etc/security/join.key"

    ## Master key file location
    ## Generated by the product on first startup if not provided
    #masterKeyFile: "JFROG_HOME/distribution/var/etc/security/master.key"

    ## Maximum time to wait for key files (master.key and join.key)
    #bootstrapKeysReadTimeoutSecs: 120

  ## Shared logging configuration
  logging:
    consoleLog:
      ## If true, all services' console logs will be redirected to a common console.log
      #enabled: true

    ## Log rotation settings
    rotation:
      ## The max file size at which enforce rotation
      #maxSizeMb: 25

      ## The number of backup files to maintain
      #maxFiles: 10

      ## Whether to compress the backup file
      #compress: true

  ## Shared node settings
  node:
    ## A unique id to identify this node.
    ## Default: auto generated at startup.
    #id: "distribution1"

    ## Default: auto resolved by startup script
    #ip:

    ## Default: auto resolved by startup script
    #name: ""

  ## PostgreSQL database used by distribution
  database:
    #type: postgresql
    #driver: org.postgresql.Driver
    #url: "jdbc:postgresql://localhost:5432/distribution"
    #username: distribution
    #password: password

    ## Max connections to the database the main connection pool can consume
    #maxOpenConnections: 100

    ## Max idle connections to keep in the connection pool
    #maxIdleConnections: 10

  ## Redis server used by distribution services
  redis:
    #connectionString: "redis://localhost:6379"
    #username:
    #password: password
    #socketTimeoutMillis: 120000
    #resourcePoolMaxSize: 200
    #resourcePoolMaxWaitMillis: 60000

  ## Add any custom environment variables to be passed to all the services
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

  ## Run as a given user and group
  ## Note : This is only considered in linux archive installation which is installed as a service
  ## Make sure to change ownership of JFROG_HOME/distribution/app and JFROG_HOME/distribution/var directory, if this is modified after install
  #user: distribution
  #group: distribution

Distribution Template

## Distribution template
distribution:
  #port: 8080

  ## Extra Java options to pass to the JVM. These values add to or override the defaults.
  #extraJavaOpts: "-Xms3g -Xmx4g"

  ## Add any custom environment variables to be passed to this service
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

Distributor Template

## Distributor template
distributor:

  ## Max open http connection allowed from the distributor to the distribution
  #maxHttpConnections: 1000

  ## Foreman configuration
  foreman:
    ## Use redis or in-memory foreman task management the default is false
    #useRedis: false
    ## Max number of threads to use for each cpu
    #executorFactor: 2
    ## Snooze time for a task that is already running
    #snoozeTimeMillis: 10000
    ## Time to wait before new tasks are eligible for execution (in seconds)
    #quietPeriodSecs: 0
    ## Time to wait before inactive task is eligible for recovery (in seconds)
    #inactivityThresholdSecs: 60
    ## Number of task retries before a warning is logged
    #taskExecutionRetriesWarningThreshold: 5
    ## Maximum number of task retries
    #maxTaskExecutionRetries: 5
    #recoveryBatchSize: 10000
    ## Interval between reviver runs (in milliseconds)
    #taskReviverCycleMillis: 1000

  ## Add any custom environment variables to be passed to this service
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

Router Template

## Router template
router:
  ## Profiling related settings
  profiling:
    ## Enable profiling endpoints
    #enabled: true

  ## Corporate proxy related settings
  proxy:
    ## Proxy url for all outgoing http requests
    #httpUrl: ""

    ## Proxy url for all outgoing https requests
    #httpsUrl: ""

    ## List of target hosts to communicate with directly, bypassing the proxy.
    ## "localhost" will always be added to this list automatically.
    #ignoredHosts:
    #- "ignore.me.com"
    #- "ignore.me2.com"

  ## Router entry points
  entrypoints:
    ## The internal port, used by local services to communicate with the router and any other service (local and external)
    #internalPort: 8046

    ## The external port, registered in the service registry, used by external services to communicate with services in this node
    #externalPort: 8082

    ## An internal port used for internal Traefik (and Router) REST API
    #traefikApiPort: 8049

    ## An internal port used for Router's gRPC API
    #grpcPort: 8047

  ## Service registry (Access) communication settings
  serviceRegistry:

    ## Service registry (Access) TLS verification skipped if enabled
    #insecure: false

    ## Service registry (Access) request timeout
    #requestTimeout: 15s

  ## Topology related settings
  topology:
    ## Local topology settings
    local:
      #requiredServiceTypes: "jfds"

      ## Settings for checking the health of local services
      healthCheck:
        ## Duration between health checks
        #interval: 5s

        ## Health check request timeout
        #requestTimeout: 5s

        ## The number of consecutive successful health checks that must occur before declaring an instance healthy
        #healthyThreshold: 2

        ## The number of consecutive failed health checks that must occur before declaring an instance unhealthy
        #unhealthyThreshold: 2

    ## External topology settings
    external:
      ## Settings for refreshing the router with external topology from the service registry
      refresh:
        ## Refresh interval
        #interval: 3s

        ## The maximum duration a service can be considered as healthy since its last heartbeat
        #maxStaleHeartbeat: 30s

  ## Support bundle aggregation settings
  supportBundle:
    ## The maximum duration support bundle aggregation is allowed before it is automatically cancelled
    #aggregationTimeout: 1h

  ## Logging settings
  logging:
    ## Router log settings
    application:
      ## The log level: error, warning, info, debug, trace
      #level: "info"

      ## The log format: jftext, json
      #format: "jftext"

      ## Whether to include the caller information (runtime frame)
      #caller: false

      ## Whether to print the log also to stdout
      #console: true

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

    ## Traefik log settings
    traefik:
      ## The log level: error, warning, info, debug, trace
      #level: "info"

      ## The log format: jftext, json
      #format: "jftext"

      ## Whether to include the caller information (runtime frame)
      #caller: false

      ## Whether to print the log also to stdout
      #console: true

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 25
        #maxAgeDays: 0
        #maxFiles: 10

    ## Request log settings
    request:
      ## If true, request log will contain additional information
      ## This may result in a slight performance overhead
      #verbose: false

      ## Log rotation settings
      rotation:
        #compress: true
        #maxSizeMb: 100
        #maxAgeDays: 0
        #maxFiles: 10

  ## Add any custom environment variables to be passed to this service
  ## Environment variables starting with JF_ are not allowed, will be ignored with a warning if it is added
  env:
    #EXAMPLE_VAR: example-value
    #LD_LIBRARY_PATH: /usr/lib64

  ## Retry configuration
  retry:
  ## Enable retry sending request in case of network error
  #enabled: true