Skip to content

Stack Configuration

Unlike Wodby 1.0 there's no differences between managed and custom stacks. All stacks are custom and supposed to be changed to your needs. And at the same time all stacks get updates from the included managed services.

Environment Variables

You can add stack-wide environment variables from "[Stack] > Configure > Env vars" page. Such environment variables will be added to all app services' kubernetes resources during deployment in app instances that use this stack revision.

An environment variable can be optionally marked as secret, when "Secret" selected the environment variable value will be stored in a kubernetes secret and won't be shown in Wodby dashboard.

You can optionally limit a variable to a certain environment type, when set env var will be added only to app instances that use the selected environment type.

Annotations

You can add stack-wide annotations from "[Stack] > Configure > Annotations" page. Such annotations will be added to all app services' kubernetes resources during deployment in app instances that use this stack revision.

You can optionally limit an annotation to a certain environment type, when set annotations will be added only to app instances that use the selected environment type.

Tokens

You can add stack-wide tokens from "[Stack] > Configure > Tokens" page. Such tokens will be added to all app services in app instances that use this stack revision.

Tokens can either have a plain value or a regular expression that will be used to generate a random secret value when an app services created/updated. You can use tokens in environment variables' values.

You can optionally limit a token to a certain environment type, when set tokens will be added only to app instances that use the selected environment type.

Stack Services

A stack always includes a specific revision of a service. When a new service revision issued corresponding stacks can be updated to switch to the latest revision of a service.

Each service in a stack can be configured under "[Stack] > Configure > Stack services > [Service]". A service can be enabled or disabled, set as mandatory or optional. When set mandatory it cannot be excluded during new app creation.

Only one service can be set as main, in this case, if a service has http endpoints, the app instance's main technical domain will target the main endpoint of the main app service.

Replicas

You can change number of replicas per service, not available for external services.

Integrations

If a service provides integrations in its manifest, you can link a specific integration from your project that satisfies requirements of a service integration. Example: OpenSMTPD service allows smtp typed integrations to be connected to use as relay, a user has Brevo integration in her organization and selects it under "[Stack] > Configure > Stack services > OpenSMTPD > Integrations", then creates a new app with this Stack, the app will already have Brevo integration connected and will use it to send emails from OpenSMTPD.

Additionally, to all non-external services you can add Variable integrations.

Environment Variables

You can add service-specific environment variables from "[Stack] > Configure > Stack services > [Service] > Env vars" page. Such environment variables will be added to the corresponding app service's kubernetes resources during deployment in app instances that use this stack revision.

An environment variable can be optionally marked as secret, when "Secret" selected the environment variable value will be stored in a kubernetes secret and won't be shown in Wodby dashboard.

You can optionally limit a variable to a certain environment type, when set env var will be added only to app instances that use the selected environment type.

Resources

For non-external services you can set up resources requests and limits from "[Stack] > Configure > Stack services > [Service] > Resources" page. Resources requests and limits correspond to kubernetes resources request and limits.

Request

You may set up request for CPU and memory. Requests help your cluster to schedule and distribute workloads across the nodes. When resources request specified your deployments may fail if there are not enough resources on the cluster. CPU requests are mandatory for scalability.

Limit

You may set up limits for CPU and memory. Resources limits are useful to limit burstable workloads and their effect on other resources on the same cluster.

Options

Options represent different versions or variant of a service. Some stacks may limit which options are supported (enabled) to match with compatibility requirements or to exclude end of life (EOL) versions. You can change the default option and enabled options for a service in your stack from "[Stack] > Configure > Stack services > [Service] > Options" page.

A service may provide a link, it's a way to represent integration of a service with another service. The simplest example would be Nginx's service link to upstream/backend (e.g. PHP-FPM). Some links are mandatory, some are optional. If a link is mandatory, a stack must specify which service from the stack should be used for a specific links. For example, in Drupal stack the PHP service requires Database link, you can set it to use container-based MariaDB or an external Cloud MySQL.

You may change links in your stack from "[Stack] > Configure > Stack services > [Service] > Links" page.

Volumes

You can change the size of volumes provided by a service for your stack from "[Stack] > Configure > Stack services > [Service] > Volumes" page.

Settings

You can override settings provided by a service for your stack from "[Stack] > Configure > Stack services > [Service] > Setting" page. Settings that source value from links cannot be edited.

Cron

You can create cron schedules for a service in your stack from "[Stack] > Configure > Stack services > [Service] > Cron" page. Cron schedule must have a name, command and schedule. Schedule supports full crontab format (e.g. 0 0 * * * for every day on midnight) and @hourly, @daily formats. A container with a specified command will be run according to the schedule.

You can optionally limit a cron schedule to a certain environment type, when set the cron will run only on app instances that use the selected environment type.

Tokens

You can add service-specific tokens for your stack from "[Stack] > Configure > Stack services > [Service] > Tokens" page. Such tokens will be added to a corresponding app service in app instances that use this stack revision.

Tokens can either have a plain value or a regular expression that will be used to generate a random secret value when an app services created/updated. You can use tokens in environment variables' values.

You can optionally limit a token to a certain environment type, when set tokens will be added only to app instances that use the selected environment type.

Annotations

You can add service-specific annotations from "[Stack] > Configure > Stack services > [Service] > Annotations" page. Such annotations will be added to the corresponding app service's kubernetes resources during deployment in app instances that use this stack revision.

You can optionally limit an annotation to a certain environment type, when set annotations will be added only to app instances that use the selected environment type.