-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates configuration page #1532
base: main
Are you sure you want to change the base?
Changes from 11 commits
e9c281a
ecb37ef
ab2c3c6
858b3cc
1316379
8bba5e7
9945d62
61c45f1
3ba9a2a
fc8136a
ff27ba5
b9790e1
35ccd63
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,59 @@ | ||||||||||
--- | ||||||||||
title: Configuration | ||||||||||
description: This page discusses configuration settings for Pomerium Core. | ||||||||||
keywords: [core configuration] | ||||||||||
sidebar_label: Configuration | ||||||||||
--- | ||||||||||
|
||||||||||
# Configuration | ||||||||||
|
||||||||||
You can configure Pomerium using either a configuration file or [environment variables](https://en.wikipedia.org/wiki/Environment_variable). If using a configuration file, the following languages are supported: | ||||||||||
|
||||||||||
- [YAML](https://yaml.org/) | ||||||||||
- [JSON](https://www.json.org/json-en.html) | ||||||||||
- [TOML](https://toml.io/en/) | ||||||||||
ZPain8464 marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
|
||||||||||
(Our documentation always assumes a YAML configuration file.) | ||||||||||
|
||||||||||
You can use both environment variables and a configuration file. If a particular option is set using both an environment variable and a config file key, the environment variable will take precedence. | ||||||||||
|
||||||||||
:::tip | ||||||||||
|
||||||||||
Pomerium can hot-reload route configuration details, authorization policy, certificates, and other proxy settings. | ||||||||||
|
||||||||||
::: | ||||||||||
|
||||||||||
### Configuration syntax | ||||||||||
|
||||||||||
Both configuration file keys and environment variables are case sensitive. | ||||||||||
|
||||||||||
Configuration file keys are always lowercase. Environmental variables are identical to configuration file keys, except they are always uppercase. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Environmental -> environment here if we want to be consistent with this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I missed this instance and updated it for this page. But, there are many instances elsewhere in our docs that use "environmental". I'll note this decision for future PRs, though. |
||||||||||
|
||||||||||
See the [Reference](/docs/reference) page for a comprehensive list of Pomerium's configuration settings. | ||||||||||
|
||||||||||
## All-In-One and Split-Service modes | ||||||||||
|
||||||||||
You can configure Pomerium using either All-In-One mode or Split Service mode. | ||||||||||
|
||||||||||
### All-In-One mode | ||||||||||
|
||||||||||
All-In-One mode means all of Pomerium's configuration settings are set in a single configuration file. You can use All-In-One mode when running Pomerium: | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For me this is not a clear explanation of the difference between all-in-one and split service mode. In all-in-one mode, a single Pomerium process runs all of the four logical services. In split service mode, each logical service runs as its own process. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updated. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would prefer we pick one way to write "all-in-one" mode and use it consistently. By my count the existing docs have:
Based on the existing usage "All-In-One" looks out of place to me here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK. I left a comment earlier which explains my position on this. But, I've updated this page so that is uses "All-in-One". There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For the record, I'm saying "all-in-one" (lowercase) would be most consistent with the existing documentation. If you don't think we should aim to be consistent I won't argue the point any further. |
||||||||||
|
||||||||||
- As a single system service or container, or | ||||||||||
- In a distributed environment where there are multiple processes that each handle separate [Pomerium services](/docs/internals/architecture#component-level). | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't understand what this is saying. In all-in-one mode the services are combined, not separate. |
||||||||||
|
||||||||||
All-In-One mode is the default configuration mode, and the easiest way to configure Pomerium. | ||||||||||
|
||||||||||
### Split-Service mode | ||||||||||
|
||||||||||
Alternately, you can create individual configuration files (or sets of environment variables) for each Pomerium service. In Split-Service mode, each configuration file (or set of environment variables) defines which service a process will run by using the [service mode](/docs/reference/service-mode) key. | ||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it would be good to start with a brief explanation of how split service mode differs from all-in-one mode. Probably also good to link to the Service URL Settings page here. Maybe something like this?
Suggested change
|
||||||||||
|
||||||||||
:::tip Our recommendation | ||||||||||
|
||||||||||
We recommend All-In-One mode to configure Pomerium for the following reasons: | ||||||||||
|
||||||||||
- **Reduce complexity**: All-In-One mode reduces the complexity of managing configuration. A single configuration file means there is one source of truth. | ||||||||||
- **Secure communication**: Pomerium services communicate internally. Splitting up services requires securing these endpoints and configuring DNS records for each service. | ||||||||||
- **Scaling**: All-In-One deployments scale for better performance. All URLs point at the same Pomerium service instance. | ||||||||||
|
||||||||||
::: |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this link target exist? Should it be
#all-in-one-and-split-service-modes
instead?(ditto throughout this PR)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated.