supermarket.rb Settings
The supermarket.rb file contains all of the non-default configuration
settings used by the Chef Supermarket. The default settings are built-in
to the Chef Supermarket configuration, and should only be added to the
supermarket.rb file to apply non-default values. These configuration
settings are processed when the supermarket-ctl reconfigure command is
run. The supermarket.rb file is a Ruby file, which means that
conditional statements can be used in the configuration file.
Settings
The following settings are available in the /etc/supermarket/supermarket.rb file.
Note
supermarket-ctl reconfigure to apply any changes made in
the supermarket.rb file.General
This configuration file has the following general settings:
default['enterprise']['name']The enterprise name that is used by the enterprise-chef-common cookbook. Default value:
'supermarket'.default['supermarket']['app_directory']Default value:
"#{node['supermarket']['install_directory']}/embedded/service/supermarket".default['supermarket']['chef_server_url']The URL of the Chef Infra Server.
default['supermarket']['config_directory']The directory that is used to store Supermarket configuration files. Default value:
'/etc/supermarket'.default['supermarket']['features']Use to enable additional features, such as announcements and GitHub integration. Default value:
'tools'.Features currently available:
tools,fieri,announcement,github, andno_crawl.default['supermarket']['fqdn']The fully qualified domain name for the Supermarket server. Defaults to using the current FQDN for the machine.
default['supermarket']['from_email']The default sender address of all Supermarket mailers. Default value:
nil.default['supermarket']['group']The system group that is used to manage Supermarket on the server. Default value:
'supermarket'.default['supermarket']['install_directory']The directory where Supermarket is installed. Default value:
'/opt/supermarket'.default['supermarket']['install_path']The directory in which Chef Supermarket is installed. Default value:
node['supermarket']['install_directory'].default['supermarket']['log_directory']The directory that Supermarket will use to store logs. Default value:
'/var/log/supermarket'.default['supermarket']['sysvinit_id']Use to specify 1-4 characters that define a unique identifier for the file located in
/etc/inittab. Default value:SUP.default['supermarket']['user']The system user that is used to run Supermarket. Default value:
'supermarket'.default['supermarket']['var_directory']The directory where data and cookbooks are installed. Default value:
'/var/opt/supermarket'.
Amazon Simple Storage Service (S3)
Use these settings to upload cookbooks to an Amazon Simple Storage Service (S3) bucket.
Note
default['supermarket']['cdn_url']The URL for the content delivery network. (optional)
default['supermarket']['s3_access_key_id']The secret key. (required to use S3)
default['supermarket']['s3_bucket']The bucket name. (required to use S3)
default['supermarket']['s3_path'](Optional) Directory structure to prepend to the standard path of the directory containing cookbooks. Set this if you must store cookbooks in a deeper directory structure within a shared bucket. However, keep in mind that dedicated S3 buckets are recommended for cookbook storage and distribution.
default['supermarket']['s3_private_objects']Whether cookbooks stored in S3 should be public or private.
true/falseDefault:falsedefault['supermarket']['s3_region']The region of the bucket. (required to use S3)
default['supermarket']['s3_secret_access_key']The access key identifier. (required to use S3)
Database
The following database options are available:
default['supermarket']['database']['extensions']Determines which PostgreSQL extensions are enabled. Default value:
{ 'pgpsql' => true, 'pg_trgm' => 'true' }.default['supermarket']['database']['host']The address PostgreSQL listens on. Default value:
node['supermarket']['postgresql']['listen_address'].default['supermarket']['database']['name']The name of the Supermarket database. Default value:
'supermarket'.default['supermarket']['database']['pool']The number of concurrent threads a database worker can create. Default value:
node['supermarket']['sidekiq']['concurrency'].default['supermarket']['database']['port']The port that the database listens on. Default value:
node['supermarket']['postgresql']['port'].default['supermarket']['database']['user']The database user. Default value:
node['supermarket']['postgresql']['username'].default['supermarket']['postgresql']['username']The system user that runs PostgreSQL. By default, this uses the value of
node['supermarket']['user'].
Fieri
Use these settings to enable Fieri, an optional service built into Supermarket that provides cookbook quality metrics.
As a Supermarket feature, Fieri must be enabled via the
default['supermarket']['features'] option.
default['supermarket']['fieri_url']The full URL that is used to access Fieri. Default value:
'http://localhost:13000/fieri/jobs'default['supermarket']['fieri_supermarket_endpoint']The URL of the Chef Supermarket that is using Fieri. Default value:
'https://localhost:13000'default['supermarket']['fieri_key']A string that is used as a key to authenticate Fieri. Default value:
nil
GitHub
Use these settings to integrate Supermarket with GitHub.
As a Supermarket feature, GitHub must be enabled via the
default['supermarket']['features'] option.
default['supermarket']['github_access_token']The access token created from your GitHub account. Default value:
nil.default['supermarket']['github_key']The application client ID that is used to authenticate Supermarket to GitHub. Default value:
nil.default['supermarket']['github_secret']The application client secret that is used to authenticate Supermarket to GitHub. Default value:
nil.
Google Analytics
Use this setting to set up Google Analytics tracking for Supermarket:
default['supermarket']['google_analytics_id']The Google Analytics tracking ID for Supermarket. Default value:
nil.
New Relic
Use these settings to integrate Supermarket with New Relic, a software analytics platform:
default['supermarket']['newrelic_agent_enabled']Determines whether or not the New Relic agent is enabled. Default value:
'false'.default['supermarket']['newrelic_app_name']The name used by New Relic to identify the Supermarket installation. Default value:
nil.default['supermarket']['newrelic_license_key']The New Relic license key. Default value:
nil.
Nginx
This configuration file has the following settings for nginx:
default['supermarket']['nginx']['access_log_options']A string of additional options to be added to the nginx access log directive. Default value:
nil.default['supermarket']['nginx']['cache']['directory']The directory used by nginx for caching. Default value:
"#{node['supermarket']['var_directory']}/nginx//cache".default['supermarket']['nginx']['cache']['enable']Determines whether or not nginx caching is enabled. Default value:
false.default['supermarket']['nginx']['client_body_buffer_size']The client_body_buffer_size used by nginx. Default value:
nil.default['supermarket']['nginx']['client_max_body_size']The maximum accepted body size for a client request, as indicated by the
Content-Lengthrequest header. When the maximum accepted body size is greater than this value, a413 Request Entity Too Largeerror is returned. Default value:250m. See the nginx documentation for additional information.default['supermarket']['nginx']['daemon_disable']Determines whether or not nginx is daemonized. By default, this will be handled by the init system. Default value:
true.default['supermarket']['nginx']['default']['modules']Determines which additional nginx modules should be included. Default value:
[].default['supermarket']['nginx']['default_site_enabled']Determines whether or not the nginx default page is enabled. Default value:
false.default['supermarket']['nginx']['dir']The working directory. The default value is the recommended value. Default value:
node['supermarket']['nginx']['directory'].default['supermarket']['nginx']['disable_access_log']Allows you to disable the nginx access log. Default value:
false.default['supermarket']['nginx']['error_log_options']A string of additional options to be added to the nginx access log directive. Default value:
nil.default['supermarket']['nginx']['enable']Enable the nginx service. Default value:
true.default['supermarket']['nginx']['event']Set the event-model. By default nginx looks for the most suitable method for your OS. Default value:
nil.default['supermarket']['nginx']['force_ssl']Force connections to use SSL. Default value:
true.default['supermarket']['nginx']['group']The system group that is used to manage nginx. Default value:
node['supermarket']['group'].default['supermarket']['nginx']['gzip']Enable gzip compression. Default value:
on.default['supermarket']['gzip_buffers']Set the gzip buffer <https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_buffers> size. The nginx default is equal to one memory page. Default value:
nil.default['supermarket']['nginx']['gzip_comp_level']The compression level used with gzip, from least amount of compression (
1, fastest) to the most (2, slowest). Default value:2.default['supermarket']['gzip_disable']Disables gzip compression when a
User-Agentfield is present in headers matching the specified regular expressions. Default value:'MSIE [1-6]\.'.default['supermarket']['nginx']['gzip_http_version']Enable gzip depending on the version of the HTTP request. Default value:
1.0.default['supermarket']['gzip_min_length']The minimum response length that will be compressed by gzip, as determined by the
Content-Lengthresponse header. Default value:1000.default['supermarket']['nginx']['gzip_proxied']Determines whether or not proxied requests are compressed with gzip, based on the presence of the
Viarequest header field. Default value:any.default['supermarket']['nginx']['gzip_static']Allows you to send precompressed files with the
.gzfile extension instead of regular files. Requires the ngx_http_gzip_static_module module. Default value:'off'.default['supermarket']['nginx']['gzip_types']Enable compression for the specified MIME-types. Default value:
[ 'text/plain', 'text/css', 'application/x-javascript', 'text/xml', 'application/xml', 'application/xml+rss', 'application/atom+xml', 'text/javascript', 'application/javascript', 'application/json' ].default['supermarket']['gzip_vary']Determines whether or not the
Vary: Accept-Encodingresponse header field is inserted when the following directives are active:gzip,gzip_static, orgunzip. Default value:'off'.default['supermarket']['nginx']['keepalive']Use to enable HTTP keepalive. Default value:
'on'.default['supermarket']['nginx']['keepalive_timeout']The amount of time (in seconds) to wait for requests on a HTTP keepalive connection. Default value:
65.default['supermarket']['nginx']['log_dir']The directory in which log data is stored. The default value is the recommended value. Default value:
node['supermarket']['nginx']['log_directory'].default['supermarket']['nginx']['log_rotation']The log rotation policy for this service. Log files are rotated when they exceed
file_maxbytes. The maximum number of log files in the rotation is defined bynum_to_keep. Default value:{ 'file_maxbytes' => 104857600, 'num_to_keep' => 10 }default['supermarket']['nginx']['multi_accept']Determines whether a worker process accepts a single connection at a time, or all new connections at one time. The default value sets this to a single connection at a time. Default value:
false.default['supermarket']['nginx']['non_ssl_port']The port on which the Automate interface and API are bound for non-SSL connections. Default value:
80. Set tofalseto disable non-SSL connections.default['supermarket']['nginx']['pid']The system process ID for the nginx service. Default value:
"#{node['supermarket']['nginx']['directory']}/nginx.pid".default['supermarket']['nginx']['proxy_read_timeout']Defines a timeout between two successive read operations for reading a response from the proxied server. Default value:
nil.default['supermarket']['nginx']['redirect_to_canonical']Redirect requests to the Supermarket server FQDN. Default value:
true.default['supermarket']['nginx']['sendfile']Copy data between file descriptors when
sendfile()is used. Default value:on.default['supermarket']['nginx']['server_names_hash_bucket_size']The size of the bucket that contains the server names hash tables. Default value:
64.default['supermarket']['nginx']['server_tokens']Determines whether or not the nginx version is included in error pages and the
Serverresponse header. Default value:nil.default['supermarket']['nginx']['ssl_port']The port that is used by nginx to terminate SSL connections. Default value:
443.default['supermarket']['nginx']['types_hash_bucket_size']Determines the bucket size for the types hash tables. Default value:
64.default['supermarket']['nginx']['types_hash_max_size']Sets the maximum size of the types hash table. Default value:
2048.default['supermarket']['nginx']['user']The system user that is used to run nginx. Default value:
node['supermarket']['user'].default['supermarket']['nginx']['worker_connections']The maximum number of simultaneous clients. Use with
nginx['worker_processes']to determine the maximum number of allowed clients. Default value:1024.default['supermarket']['nginx']['worker_rlimit_nofile']Determines the maximum number of open files allowed for worker processes. Default value:
nil.default['supermarket']['nginx']['worker_processes']The number of allowed worker processes. Use with
nginx['worker_connections']to determine the maximum number of allowed clients. Default value:node['cpu'] && node['cpu']['total'] ? node['cpu']['total'] : 1.
Oauth2
This configuration file has the following settings for the Chef Infra Server identity service:
default['supermarket']['chef_oauth2_app_id']The Chef Identity application ID created for Supermarket on the Chef Infra Server. See the Chef Identity configuration section of the Supermarket installation guide for additional details.
default['supermarket']['chef_oauth2_secret']The Chef Identity application secret created for Supermarket on the Chef Infra Server. See the Chef Identity configuration section of the Supermarket installation guide for additional details.
default['supermarket']['chef_oauth2_url']The URL of the Chef Infra Server that Supermarket connects to. Default value:
node['supermarket']['chef_server_url'].default['supermarket']['chef_oauth2_verify_ssl']Determines whether or not Supermarket performs SSL verification. Default value:
true. If your Chef Infra Server is using a self-signed certificate without a properly configured certificate authority, this must be set tofalse.
PostgreSQL
This configuration file has the following settings for PostgreSQL:
default['supermarket']['postgresql']['checkpoint_completion_target']A completion percentage that is used to determine how quickly a checkpoint should finish in relation to the completion status of the next checkpoint. For example, if the value is
0.5, then a checkpoint attempts to finish before 50% of the next checkpoint is done. Default value:0.5.default['supermarket']['postgresql']['checkpoint_segments']The maximum amount (in megabytes) between checkpoints in log file segments. Default value:
3.default['supermarket']['postgresql']['checkpoint_timeout']The amount of time (in minutes) between checkpoints. Default value:
'5min'.default['supermarket']['postgresql']['checkpoint_warning']The frequency (in seconds) at which messages are sent to the server log files if checkpoint segments are being filled faster than their currently configured values. Default value:
'30s'.default['supermarket']['postgresql']['data_directory']The directory in which on-disk data is stored. The default value is the recommended value. Default value:
"#{node['supermarket']['var_directory']}/postgresql/9.3/data".default['supermarket']['postgresql']['effective_cache_size']The size of the disk cache that is used for data files. Default value:
'128MB'.default['supermarket']['postgresql']['enable']Enable a service. Default value:
true.default['supermarket']['postgresql']['listen_address']The connection source to which PostgreSQL is to respond. Default value:
'127.0.0.1'.default['supermarket']['postgresql']['log_directory']The directory in which log data is stored. The default value is the recommended value. Default value:
"#{node['supermarket']['log_directory']}/postgresql".default['supermarket']['postgresql']['log_rotation']The log rotation policy for this service. Log files are rotated when they exceed
file_maxbytes. The maximum number of log files in the rotation is defined bynum_to_keep. Default value:{ 'file_maxbytes' => 104857600, 'num_to_keep' => 10 }default['supermarket']['postgresql']['max_connections']The maximum number of allowed concurrent connections. Default value:
350.default['supermarket']['postgresql']['md5_auth_cidr_addresses']Use to encrypt passwords using MD5 hashes. Default value:
['127.0.0.1/32', '::1/128'].default['supermarket']['postgresql']['port']The port on which the service is to listen. Default value:
15432.default['supermarket']['postgresql']['shared_buffers']The amount of memory that is dedicated to PostgreSQL for data caching. Default value:
"#{(node['memory']['total'].to_i / 4) / (1024)}MB".default['supermarket']['postgresql']['shmall']The total amount of available shared memory. Default value:
4194304.default['supermarket']['postgresql']['shmmax']The maximum amount of shared memory. Default value:
17179869184.default['supermarket']['postgresql']['work_mem']The size (in megabytes) of allowed in-memory sorting. Default value:
'8MB'.
Redis
This configuration file has the following settings for Redis:
default['supermarket']['redis']['bind']Bind Redis to the specified IP address. Default value:
'127.0.0.1'.default['supermarket']['redis']['directory']The working directory. The default value is the recommended value. Default value:
"#{node['supermarket']['var_directory']}/redis".default['supermarket']['redis']['enable']Enable a service. Default value:
true.default['supermarket']['redis']['log_directory']The directory in which log data is stored. The default value is the recommended value. Default value:
"#{node['supermarket']['log_directory']}/redis".default['supermarket']['redis']['log_rotation']The log rotation policy for this service. Log files are rotated when they exceed
file_maxbytes. The maximum number of log files in the rotation is defined bynum_to_keep. Default value:{ 'file_maxbytes' => 104857600, 'num_to_keep' => 10 }default['supermarket']['redis']['port']The port on which the service is to listen. Default value:
'16379'.
Ruby on Rails
This configuration file has the following settings for Ruby on Rails:
default['supermarket']['rails']['enable']Enable a service. Default value:
true.default['supermarket']['rails']['log_directory']The directory in which log data is stored. The default value is the recommended value. Default value:
"#{node['supermarket']['log_directory']}/rails".default['supermarket']['rails']['log_rotation']The log rotation policy for this service. Log files are rotated when they exceed
file_maxbytes. The maximum number of log files in the rotation is defined bynum_to_keep. Default value:{ 'file_maxbytes' => 104857600, 'num_to_keep' => 10 }default['supermarket']['rails']['port']The port on which the service is to listen. Default value:
13000.
runit
This configuration file has the following settings for runit:
default['supermarket']['runit']['svlogd_bin']Default value:
"#{node['supermarket']['install_directory']}/embedded/bin/svlogd".
Sentry
This option is used to integrate Supermarket with the Sentry error logging service:
default['supermarket']['sentry_url']The Sentry URL that is used to send error reports. Default value:
nil.
Sidekiq
This configuration file has the following settings for background processes that are managed by Sidekiq:
default['supermarket']['sidekiq']['concurrency']Determines how many threads a Sidekiq process can spin up. Default value:
25.default['supermarket']['sidekiq']['enable']Enable the Sidekiq service. Default value:
true.default['supermarket']['sidekiq']['log_directory']The directory in which log data is stored. The default value is the recommended value. Default value:
"#{node['supermarket']['log_directory']}/sidekiq".default['supermarket']['sidekiq']['log_rotation']The log rotation policy for this service. Log files are rotated when they exceed
file_maxbytes. The maximum number of log files in the rotation is defined bynum_to_keep. Default value:{ 'file_maxbytes' => 104857600, 'num_to_keep' => 10 }default['supermarket']['sidekiq']['timeout']The amount of time (in seconds) that Sidekiq should wait for a worker before it is terminated. Default value:
30.
SMTP
This configuration file has the following settings for SMTP:
default['supermarket']['smtp_address']The SMTP server address that Supermarket will use to send mail.
default['supermarket']['smtp_password']The SMTP server password.
default['supermarket']['smtp_port']The port on which the service is to listen.
default['supermarket']['smtp_user_name']The user on the SMTP server.
default['supermarket']['from_email']The default sender address of all Supermarket mailers. Default value:
nil.
SSL
This configuration file has the following settings for SSL:
default['supermarket']['ssl']['certificate']The SSL certificate used to verify communication over HTTPS.
default['supermarket']['ssl']['certificate_key']The certificate key used for SSL communication.
default['supermarket']['ssl']['company_name']The name of your company. Default value:
'My Supermarket'.default['supermarket']['ssl']['country_name']The country in which your company is located. Default value:
'US'.default['supermarket']['ssl']['directory']The working directory. Default value:
'/var/opt/supermarket/ssl'.default['supermarket']['ssl']['email_address']The default email address for your company. Default value:
'you@example.com'.default['supermarket']['ssl']['locality_name']The city in which your company is located. Default value:
'Seattle'.default['supermarket']['ssl']['openssl_bin']Default value:
"#{node['supermarket']['install_directory']}/embedded/bin/openssl".default['supermarket']['ssl']['organizational_unit_name']The organization or group within your company that is running the Chef Infra Server. Default value:
'Operations'.default['supermarket']['ssl']['session_cache']Default value:
'shared:SSL:4m'.default['supermarket']['ssl']['session_timeout']Default value:
'5m'.default['supermarket']['ssl']['ciphers']The list of supported cipher suites that are used to establish a secure connection. To favor AES256 with ECDHE forward security, drop the
RC4-SHA:RC4-MD5:RC4:RSAprefix. See https://www.openssl.org/docs/man1.0.2/man1/ciphers.html for more information. For example:nginx['ssl_ciphers'] = HIGH:MEDIUM:!LOW:!kEDH:!aNULL:!ADH:!eNULL:!EXP:!SSLv2:!SEED:!CAMELLIA:!PSKdefault['supermarket']['ssl']['protocols']The SSL protocol versions that are enabled. Default value:
'TLSv1 TLSv1.1 TLSv1.2'.default['supermarket']['ssl']['state_name']The state, province, or region in which your company is located. Default value:
'WA'.
StatsD
This configuration file has the following settings for reporting to a StatsD server:
default['supermarket']['statsd_port']The port on which the service is to listen. Default value:
nil.default['supermarket']['statsd_url']The URL to which reporting metrics are sent. Default value:
nil.
URLs
Use these settings to replace chef.io URLs with your own internal
mirrors or alternatives.
default['supermarket']['chef_blog_url']The URL of the Chef blog. Default value:
"https://www.#{node['supermarket']['chef_domain']}/blog".default['supermarket']['chef_docs_url']The URL of the Chef Docs site. Default value:
"https://docs.#{node['supermarket']['chef_domain']}".default['supermarket']['chef_downloads_url']The URL of the Chef downloads page. Default value:
"https://downloads.#{node['supermarket']['chef_domain']}".default['supermarket']['chef_domain']The root domain that is used by all Chef URLs. Most of the settings in this section rely upon this setting. Default value:
'chef.io'.default['supermarket']['chef_identity_url']The URL that is used to interact with Chef Identity on the Chef Infra Server. Default value:
"#{node['supermarket']['chef_server_url']}/id".default['supermarket']['chef_profile_url']The URL that is used to log in to your Chef profile. Default value:
node['supermarket']['chef_server_url'].default['supermarket']['chef_sign_up_url']The community signup URL. Default value:
"#{node['supermarket']['chef_server_url']}/signup?ref=community".default['supermarket']['chef_www_url']The Chef website URL. Default value:
"https://www.#{node['supermarket']['chef_domain']}".default['supermarket']['learn_chef_url']The Learn Chef Rally URL. Default value:
"https://learn.#{node['supermarket']['chef_domain']}".
Was this page helpful?