|
| 1 | +# Tuning Component Settings |
| 2 | + |
| 3 | +Helm Charts are a set of Kubernetes manifests that reflect best practices for deploying an |
| 4 | +application or service. Helm is heavily influenced by [Homebrew](http://brew.sh/), including the |
| 5 | +[formula model](https://github.com/Homebrew/homebrew-core). A Helm Chart is to Helm as a Formula |
| 6 | +is to Homebrew. |
| 7 | + |
| 8 | +After you cetch the Workflow chart, you can customize the chart using `helmc edit` before using |
| 9 | +`helmc generate` and `helmc install` to complete the installation. To customize the respective |
| 10 | +component, edit `tpl/deis-<component>-rc.yaml` and modify the `env` section of the component to |
| 11 | +tune these settings. |
| 12 | + |
| 13 | +For example, to allow only administrators to register new accounts in the controller, |
| 14 | +edit `tpl/deis-controller-rc.yaml` and add the following under the `env` section: |
| 15 | + |
| 16 | +``` |
| 17 | +env: |
| 18 | + - name: REGISTRATION_MODE |
| 19 | + value: "admin_only" |
| 20 | +``` |
| 21 | + |
| 22 | +## Customizing the Builder |
| 23 | + |
| 24 | +The following environment variables are tunable for the [Builder][] component: |
| 25 | + |
| 26 | +Setting | Description |
| 27 | +------- | --------------------------------- |
| 28 | +DEBUG | Enable debug log output (default: false) |
| 29 | + |
| 30 | +## Customizing the Controller |
| 31 | + |
| 32 | +The following environment variables are tunable for the [Controller][] component: |
| 33 | + |
| 34 | +Setting | Description |
| 35 | +----------------------------------------------- | --------------------------------- |
| 36 | +REGISTRATION_MODE | set registration to "enabled", "disabled", or "admin_only" (default: "enabled") |
| 37 | +GUNICORN_WORKERS | number of [gunicorn][] workers spawned to process requests (default: CPU cores * 4 + 1) |
| 38 | +RESERVED_NAMES | a comma-separated list of names which applications cannot reserve for routing (default: "deis, deis-builder, deis-workflow-manager") |
| 39 | +SLUGRUNNER_IMAGE_NAME | the image used to run buildpack application slugs (default: "quay.io/deisci/slugrunner:canary") |
| 40 | +SLUG_BUILDER_IMAGE_PULL_POLICY | the kubernetes [image pull policy][pull-policy] for slugbuilder (default: "Always") |
| 41 | +DOCKER_BUILDER_IMAGE_PULL_POLICY | the kubernetes [image pull policy][pull-policy] for dockerbuilder (default: "Always") |
| 42 | +DEIS_DEPLOY_BATCHES | the number of pods to bring up and take down sequentially during a scale (default: all) |
| 43 | +KUBERNETES_POD_TERMINATION_GRACE_PERIOD_SECONDS | how many seconds kubernetes waits for a pod to finish work after a SIGTERM before sending SIGKILL (default: 30) |
| 44 | + |
| 45 | +## Customizing the Database |
| 46 | + |
| 47 | +The following environment variables are tunable for the [Database][] component: |
| 48 | + |
| 49 | +Setting | Description |
| 50 | +----------------- | --------------------------------- |
| 51 | +BACKUP_FREQUENCY | how often the database should perform a base backup (default: "12h") |
| 52 | +BACKUPS_TO_RETAIN | number of base backups the backing store should retain (default: 5) |
| 53 | + |
| 54 | +## Customizing Fluentd |
| 55 | + |
| 56 | +The following environment variables are tunable for [Fluentd][logger]: |
| 57 | + |
| 58 | +Setting | Description |
| 59 | +----------------- | --------------------------------- |
| 60 | +SYSLOG_HOST_1 | The hostname of a remote syslog endpoint for shipping logs |
| 61 | +SYSLOG_PORT_1 | The port of a remote syslog endpoint for shipping logs |
| 62 | + |
| 63 | +## Customizing the Logger |
| 64 | + |
| 65 | +The following environment variables are tunable for the [Logger][] component: |
| 66 | + |
| 67 | +Setting | Description |
| 68 | +----------------- | --------------------------------- |
| 69 | +STORAGE_ADAPTER | How to store logs that are sent to the logger (default: "memory") |
| 70 | +NUMBER_OF_LINES | How many lines to store in the ring buffer (default: 1000) |
| 71 | + |
| 72 | +## Customizing the Monitor |
| 73 | + |
| 74 | +The monitor component uses [Telegraf](https://github.com/influxdata/telegraf) under the hood, and |
| 75 | +derives most of its configuration from it. Please see |
| 76 | +[telegraf configuration](https://github.com/influxdata/telegraf/blob/master/docs/CONFIGURATION.md) |
| 77 | +for more information on tuning the [Monitor][] component. |
| 78 | + |
| 79 | +## Customizing the Registry |
| 80 | + |
| 81 | +The [Registry][] component can be tuned by following the |
| 82 | +[deis/distribution config doc](https://github.com/deis/distribution/blob/master/docs/configuration.md). |
| 83 | + |
| 84 | +## Customizing the Router |
| 85 | + |
| 86 | +The majority of router settings are tunable through annotations, which allows the router to be |
| 87 | +re-configured with zero downtime post-installation. You can find the list of annotations to tune |
| 88 | +[here](https://github.com/deis/router#annotations). |
| 89 | + |
| 90 | +The following environment variables are tunable for the [Router][] component: |
| 91 | + |
| 92 | +Setting | Description |
| 93 | +----------------- | --------------------------------- |
| 94 | +POD_NAMESPACE | The pod namespace the router resides in. This is set by the [Kubernetes downward API][downward-api]. |
| 95 | + |
| 96 | +## Customizing Workflow Manager |
| 97 | + |
| 98 | +The following environment variables are tunable for [Workflow Manager][]: |
| 99 | + |
| 100 | +Setting | Description |
| 101 | +---------------------------------- | --------------------------------- |
| 102 | +CHECK_VERSIONS | Enables the external version check at <https://versions.deis.com/> (default: "true") |
| 103 | +POLL_INTERVAL_SEC | The interval when Workflow Manager performs a version check, in seconds (default: 43200, or 12 hours) |
| 104 | +VERSIONS_API_URL | The versions API URL (default: "<https://versions-staging.deis.com>") |
| 105 | +DOCTOR_API_URL | The doctor API URL (default: "<https://doctor-staging.deis.com>") |
| 106 | +API_VERSION | The version number Workflow Manager sends to the versions API (default: "v2") |
| 107 | + |
| 108 | + |
| 109 | +[builder]: ../understanding-workflow/components.md#builder |
| 110 | +[controller]: ../understanding-workflow/components.md#controller |
| 111 | +[database]: ../understanding-workflow/components.md#database |
| 112 | +[downward-api]: http://kubernetes.io/docs/user-guide/downward-api/ |
| 113 | +[gunicorn]: http://gunicorn.org/ |
| 114 | +[logger]: ../understanding-workflow/components.md#logger-fluentd-logger |
| 115 | +[monitor]: ../understanding-workflow/components.md#monitor |
| 116 | +[pull-policy]: http://kubernetes.io/docs/user-guide/images/ |
| 117 | +[registry]: ../understanding-workflow/components.md#registry |
| 118 | +[router]: ../understanding-workflow/components.md#router |
| 119 | +[workflow manager]: ../understanding-workflow/components.md#workflow-manager |
0 commit comments